DEFINE VERSION SA 0.33

0002: jump ££Second_Segment
DEFINE MEMORY  61730   ; Equals Mission Builder type global variable range $2 to $11249

:Second_Segment                                        
0002: jump ££Third_Segment
DEFINE OBJECTS  9
DEFINE OBJECT KMB_PARACHUTE               ; This is an unused object. You can put anything here.
DEFINE OBJECT PARA_PACK                   ; Object number -1
DEFINE OBJECT PARACHUTE                   ; Object number -2
DEFINE OBJECT PARA_COLLISION              ; Object number -3 
DEFINE OBJECT WHEEL_OR1                    
DEFINE OBJECT KMB_GOFLAG
DEFINE OBJECT WOODENBOX    
DEFINE OBJECT BARREL4  
DEFINE OBJECT BARREL3         
              
:Third_Segment
0002: jump ££Fourth_Segment
DEFINE MISSIONS  1 
DEFINE MISSION 0 AT ££SMOKE2_1 	; originally: Running Dog

:Fourth_Segment
0002: jump ££Fifth_Segment
DEFINE EXTERNAL_SCRIPTS  2
DEFINE EXTERNAL_SCRIPT_NAME PLAYER_PARACHUTE  ;  0  player using parachute
DEFINE EXTERNAL_SCRIPT_NAME PARACHUTE  ;  1  npc actors with parachutes

:Fifth_Segment
0002: jump ££Sixth_Segment
DEFINE UNKNOWN_FIFTH_SEGMENT
DEFINE UNKNOWN1  0

:Sixth_Segment 
0002: jump ££MAIN_1
DEFINE UNKNOWN_SIXTH_SEGMENT
DEFINE UNKNOWN3  574

;-------------MAIN---------------


:MAIN_1
03A4: name_thread 'MAIN'
016A: fade  0 ()  0 ms
04E4: unknown_refresh_game_renderer_at  408.4  2512.3
03CB: set_camera  408.4  2508.3  17.1
0053: $PLAYER_CHAR = create_player  0 at  408.4  2512.3  17.1
07AF: $PLAYER_GROUP = player $PLAYER_CHAR group
01F5: $PLAYER_ACTOR = create_emulated_actor_from_player $PLAYER_CHAR
087B: set_player $PLAYER_CHAR clothes "JEANSDENIM" "JEANS"  2 
;; 087B: set_player $PLAYER_CHAR clothes "SNEAKERBINCBLK" "SNEAKER"  3 
;; 087B: set_player $PLAYER_CHAR clothes "PLAYER_FACE" "HEAD"  1 
;; 087B: set_player $PLAYER_CHAR clothes "MOTO" "MOTO"  16 
070D: $PLAYER_CHAR 
04BB: select_interior  0  ;; select render area
016C: restart_if_wasted at  408.4  2512.3  17.1 angle  0.0 unknown  0 
0914: init_external_script  0 (PLAYER_PARACHUTE) 
0914: init_external_script  1 (PARACHUTE) 
0005: $1500 =  5.0  ;; floating-point values
0005: $1501 = -5.0  ;; floating-point values
0005: $1503 = -1.5  ;; floating-point values
0005: $1504 = -30.0  ;; floating-point values
0005: $1505 =  32.0  ;; floating-point values
0005: $1506 =  0.0  ;; floating-point values
0004: $1512 =  0  ;; integer values
0004: $1513 =  0  ;; integer values
0004: $1497 =  0  ;; integer values
016A: fade  1 (back)  0 ms
0002: jump ££MAIN_29à
004E: end_thread

:MAIN_29à 

    
0417: start_mission  0   ; Originally: Race Tournament / 8-track / Dirt Track
 
:MAIN_29
  
   
   00D6: if  0
0122:   player $PLAYER_CHAR pressing_horn
   004D: jump_if_false ££label_here1
      $sss += 1              
      0001: wait  700 ms 
    018C: play_sound  1058 at  0.0  0.0  0.0      
    00D6: if  0
      $sss == 2
    004D: jump_if_false ££label_here
      $sss = 0
 0002: jump ££label_walking_on_great
   
   
 :label_here1   
  00D6: if  0
      $sss == 1  
  004D: jump_if_false ££label_no_car
     
           
:label_here    

00D6: if  0
00DF:   actor $PLAYER_ACTOR driving
004D: jump_if_false ££label_walking_on_great  


04C4: create_coordinate $xxs $yys $zzs  from_actor $PLAYER_ACTOR offset   0.1 2.4 0.6
04C4: create_coordinate $xxp $yyp $zzp from_actor $PLAYER_ACTOR offset   0.1 3.4 0.6
 015F: set_camera_position  $xxs $yys $zzs  0.0  0.0  0.0
 0160: point_camera  $xxp $yyp $zzp 2 
   0002: jump ££label_no_car


:label_walking_on_great  
  02EB: restore_camera_with_jumpcut     

:label_no_car 

00D6: if  0
80DF: NOT  actor $PLAYER_ACTOR driving
004D: jump_if_false ££label_walking_on_grea111  

00D6: if  0
      $flag2 == 1
004D: jump_if_false ££label_walking_on1122
00A6: destroy_car @11     
0001: wait  2000 ms
00A5: @11 = create_car  517 at $xpss $ypss $zpss 
 0175: set_car @11 z_angle_to $zangle

036A: put_actor $PLAYER_ACTOR in_car @11
0084:  $curr_time = $back_time     
0002: jump ££label_walking_on_grea111
      

:label_walking_on1122   
      
 
:label_walking_on_grea111
0001: wait  3 ms
0002: jump ££MAIN_29


00D6: if  0
0491:   actor $PLAYER_ACTOR has_weapon  46 
004D: jump_if_false ££MAIN_43
0926: $EXTERNAL_SCRIPT_STATUS = external_script_status  0 (PLAYER_PARACHUTE) 
00D6: if  0
0038:   $EXTERNAL_SCRIPT_STATUS ==  0  ;; integer values
004D: jump_if_false ££MAIN_41
08A9: load_external_script  0 (PLAYER_PARACHUTE) 
00D6: if  0
08AB:   external_script  0 (PLAYER_PARACHUTE) loaded
004D: jump_if_false ££MAIN_41
0913: run_external_script  0 (PLAYER_PARACHUTE) 

:MAIN_41
0001: wait  100 ms
0002: jump ££MAIN_29

:MAIN_43
090F: end_external_script  0 (PLAYER_PARACHUTE) 
0001: wait  100 ms
0002: jump ££MAIN_29 

;-------------Mission 28---------------
; Originally: Running Dog


:SMOKE2_1
03A4: name_thread 'SMOKE2'
0050: gosub £SMOKE2_9
00D6: if  0
0112:   wasted_or_busted
004D: jump_if_false £SMOKE2_7    
0001: wait  2000 ms
 
0050: gosub £SMOKE2_3281 
0002: jump £SMOKE2_116


:SMOKE2_7
0050: gosub £SMOKE2_3292

004E: end_thread

:SMOKE2_9
0317: increment_mission_attempts
054C: use_GXT_table 'SMOKE2'
0004: $ON_MISSION =  1  ;; integer values
0001: wait  0 ms
0007: @36 =  2068.42  ;; floating-point values
0007: @37 = -1694.87  ;; floating-point values
0007: @38 =  13.3  ;; floating-point values
0007: @39 =  270.0  ;; floating-point values
0005: $6893 =  2514.34  ;; floating-point values
0005: $6894 = -1411.93  ;; floating-point values
0005: $6895 =  27.41  ;; floating-point values
0006: @162 =  0  ;; integer values
0006: @163 =  0  ;; integer values
0006: @164 =  0  ;; integer values
0006: @165 =  0  ;; integer values
0006: @166 =  0  ;; integer values
0006: @167 =  0  ;; integer values
0006: @168 =  0  ;; integer values
0006: @169 =  0  ;; integer values
0006: @170 =  0  ;; integer values
0006: @171 =  0  ;; integer values
0006: @172 =  0  ;; integer values
0006: @173 =  0  ;; integer values
0006: @174 =  0  ;; integer values
0006: @175 =  0  ;; integer values
0006: @46 =  22  ;; integer values
0007: @47 =  2459.8  ;; floating-point values
0007: @69 = -1402.19  ;; floating-point values
0007: @91 =  24.06  ;; floating-point values
0007: @48 =  2442.07  ;; floating-point values
0007: @70 = -1370.23  ;; floating-point values
0007: @92 =  24.06  ;; floating-point values
0007: @49 =  2414.49  ;; floating-point values
0007: @71 = -1369.36  ;; floating-point values
0007: @93 =  24.76  ;; floating-point values
0007: @50 =  2410.19  ;; floating-point values
0007: @72 = -1364.03  ;; floating-point values
0007: @94 =  24.75  ;; floating-point values
0007: @51 =  2399.68  ;; floating-point values
0007: @73 = -1358.24  ;; floating-point values
0007: @95 =  24.93  ;; floating-point values
0007: @52 =  2381.88  ;; floating-point values
0007: @74 = -1354.88  ;; floating-point values
0007: @96 =  24.08  ;; floating-point values
0007: @53 =  2343.29  ;; floating-point values
0007: @75 = -1351.41  ;; floating-point values
0007: @97 =  24.06  ;; floating-point values
0007: @54 =  2336.29  ;; floating-point values
0007: @76 = -1310.99  ;; floating-point values
0007: @98 =  24.29  ;; floating-point values
0007: @55 =  2257.07  ;; floating-point values
0007: @77 = -1291.85  ;; floating-point values
0007: @99 =  24.01  ;; floating-point values
0007: @56 =  2241.61  ;; floating-point values
0007: @78 = -1281.61  ;; floating-point values
0007: @100 =  24.42  ;; floating-point values
0007: @57 =  2241.61  ;; floating-point values
0007: @79 = -1264.68  ;; floating-point values
0007: @101 =  24.37  ;; floating-point values
0007: @58 =  2239.48  ;; floating-point values
0007: @80 = -1260.91  ;; floating-point values
0007: @102 =  23.98  ;; floating-point values
0007: @59 =  2241.18  ;; floating-point values
0007: @81 = -1257.88  ;; floating-point values
0007: @103 =  23.99  ;; floating-point values
0007: @60 =  2241.18  ;; floating-point values
0007: @82 = -1254.46  ;; floating-point values
0007: @104 =  24.46  ;; floating-point values
0007: @61 =  2241.18  ;; floating-point values
0007: @83 = -1238.3  ;; floating-point values
0007: @105 =  25.21  ;; floating-point values
0007: @62 =  2221.54  ;; floating-point values
0007: @84 = -1235.75  ;; floating-point values
0007: @106 =  24.62  ;; floating-point values
0007: @63 =  2202.27  ;; floating-point values
0007: @85 = -1236.72  ;; floating-point values
0007: @107 =  24.0  ;; floating-point values
0007: @64 =  2202.21  ;; floating-point values
0007: @86 = -1257.05  ;; floating-point values
0007: @108 =  23.91  ;; floating-point values
0007: @65 =  2199.57  ;; floating-point values
0007: @87 = -1263.15  ;; floating-point values
0007: @109 =  23.92  ;; floating-point values
0007: @66 =  2199.08  ;; floating-point values
0007: @88 = -1279.44  ;; floating-point values
0007: @110 =  24.57  ;; floating-point values
0007: @67 =  2182.07  ;; floating-point values
0007: @89 = -1280.2  ;; floating-point values
0007: @111 =  24.68  ;; floating-point values
0007: @68 =  2175.18  ;; floating-point values
0007: @90 = -1282.82  ;; floating-point values
0007: @112 =  24.02  ;; floating-point values
0007: @126 =  2117.86  ;; floating-point values
0007: @127 = -1071.42  ;; floating-point values
0007: @128 =  24.64  ;; floating-point values
0006: @129 =  0  ;; integer values
0006: @176 =  0  ;; integer values
0006: @177 =  0  ;; integer values
0006: @178 =  0  ;; integer values
0006: @179 =  0  ;; integer values
0006: @180 =  0  ;; integer values
0006: @157 =  0  ;; integer values
0006: @158 =  0  ;; integer values
0006: @160 =  0  ;; integer values
0006: @182 =  0  ;; integer values
0169: set_fade_color  0  0  0
016A: fade  0 ()  2000 ms
     

:SMOKE2_116
00D6: if  0
016B:   fading
004D: jump_if_false £SMOKE2_121
0001: wait  0 ms
0002: jump £SMOKE2_116

:SMOKE2_121

        

:SMOKE2_148
01B4: set_player $PLAYER_CHAR frozen_state  0 (frozen)
023C: load_special_actor  1 'SMOKE'

0247: request_model  466
0247: request_model  346
0247: request_model  521
0247: request_model  109
0247: request_model  517
0247: request_model  402
0247: request_model  32
0247: request_model  513
0247: request_model  434
0247: request_model  280
0247: request_model  523
0247: request_model  488
0247: request_model  444
0247: request_model  584
0247: request_model  473
038B: load_requested_models

:SMOKE2_169
00D6: if  35
823D:   NOT   special_actor  1 loaded
8248:   NOT   model  466 available
8248:   NOT   model  346 available
8248:   NOT   model  521 available
8248:   NOT   model  109 available
8248:   NOT   model  517 available
8248:   NOT   model  402 available
8248:   NOT   model  32 available
8248:   NOT   model  513 available
8248:   NOT   model  434 available
8248:   NOT   model  280 available
8248:   NOT   model  523 available
8248:   NOT   model  488 available
8248:   NOT   model  444 available
8248:   NOT   model  584 available
8248:   NOT   model  473 available
004D: jump_if_false £SMOKE2_190
0001: wait  0 ms
0002: jump £SMOKE2_169
0002: jump £SMOKE2_169

:SMOKE2_190
0050: gosub £SMOKE2_2592
03CB: set_camera  2069.9 -1702.73  12.59
0395: clear_area  0 at  2069.9 -1702.73  12.59 range  100.0
0395: clear_area  0 at $6893 $6894 $6895 range  100.0
01E8: create_forbidden_for_cars_cube  2488.0 -1431.93  25.41  2528.0 -1391.93  29.41
01E8: create_forbidden_for_cars_cube  2252.89 -1286.37  22.25  2258.89 -1280.37  28.25
041E: set_radio_station  3 
00A1: put_actor $PLAYER_ACTOR at  2070.87 -1703.01  12.55
0173: set_actor $PLAYER_ACTOR z_angle_to  0.0
0169: set_fade_color  0  0  0
0001: wait  500 ms
016A: fade  1 (back)  1500 ms
0373: set_camera_directly_behind_player
02EB: restore_camera_with_jumpcut

01B4: set_player $PLAYER_CHAR frozen_state  1 (unfrozen)

:LABEL11  
  
      $timing = 0
      $counter = 0
       $flag2 = 0 
        $flag3 = 0 
       
 0110: clear_player $PLAYER_CHAR wanted_level 
 01F0: set_max_wanted_level_to  0
         
03C4: set_status_text_to $11045.25  0 (number) 'ZER2_43'
0004: $11044.25 =  0 ;; integer values
0004: $11043.25 =  17 ;; integer values
0001: wait  2000 ms
            
:INTRO_973
00D6: if  0
00E1:   key_pressed  0  16
004D: jump_if_false £INTRO_977
0002: jump ££INTRO_985

:INTRO_977
0008: $11045.25 +=  1  ;; integer values
0001: wait  1000 ms
00D6: if  0
001C:   $11045.25 > $11043.25  ;; integer values
004D: jump_if_false £INTRO_984
0084: $11045.25 = $11044.25  ;; integer values and handles
0001: wait  1000 ms

:INTRO_984
0002: jump £INTRO_973

:INTRO_985
0084: $11042.25 = $11045.25  ;; integer values and handles
0151: remove_status_text $11045.25

       
  
     0108: destroy_object $expl1
      0108: destroy_object $expl2
       0108: destroy_object $expl3
     
     014F: stop_timer $timing
     014F: stop_timer $curr_time
     $curr_time = 5000

00D6: if  0
0038:   $11042.25 ==  0  ;; integer values
004D: jump_if_false £label_next_point
0001: wait  1500 ms

0005: $11036.25 =  2476.035  ;; floating-point values
0005: $11035.25 =  -1678.379  ;; floating-point values
0005: $11034.25 =  12.3457  ;; floating-point values
0005: $11032.25 =  90.0  ;; floating-point values
0002: jump £label_here_set

:label_next_point
00D6: if  0
0038:   $11042.25 ==  1  ;; integer values
004D: jump_if_false £label_next_point1
0001: wait  1500 ms
0005: $11036.25 =  1786.067  ;; floating-point values
0005: $11035.25 =  -1911.462  ;; floating-point values
0005: $11034.25 =  12.3937 ;; floating-point values
0005: $11032.25 =  90.0  ;; floating-point values
0002: jump £label_here_set  

:label_next_point1
00D6: if  0
0038:   $11042.25 ==  2  ;; integer values
004D: jump_if_false £label_next_point2
0001: wait  1500 ms
0005: $11036.25 = -2198.067  ;; floating-point values
0005: $11035.25 = -816.462  ;; floating-point values
0005: $11034.25 =  59.397  ;; floating-point values
0005: $11032.25 =  180.0  ;; floating-point values

0002: jump £label_here_set

:label_next_point2
00D6: if  0
0038:   $11042.25 ==  3  ;; integer values
004D: jump_if_false £label_next_point3
0001: wait  1500 ms
0005: $11036.25 =  405.06  ;; floating-point values
0005: $11035.25 =  -1479.462  ;; floating-point values
0005: $11034.25 =  30.397 ;; floating-point values
0005: $11032.25 =  90.0  ;; floating-point values
0002: jump £label_here_set

:label_next_point3
00D6: if  0
0038:   $11042.25 ==  4  ;; integer values
004D: jump_if_false £label_next_point4
0001: wait  1500 ms
0005: $11036.25 =  -1748.402  ;; floating-point values
0005: $11035.25 =  909.7514  ;; floating-point values
0005: $11034.25 =  23.8906  ;; floating-point values
0005: $11032.25 =  90.0  ;; floating-point values
0002: jump £label_here_set

:label_next_point4
00D6: if  0
0038:   $11042.25 ==  5  ;; integer values
004D: jump_if_false £label_next_point5
0001: wait  1500 ms
0005: $11036.25 =  -2367.402  ;; floating-point values
0005: $11035.25 =  1068.751  ;; floating-point values
0005: $11034.25 =  55.8906   ;; floating-point values
0005: $11032.25 =  90.0  ;; floating-point values
0002: jump £label_here_set

:label_next_point5
00D6: if  0
0038:   $11042.25 ==  6  ;; integer values
004D: jump_if_false £label_next_point6
0001: wait  1500 ms
0005: $11036.25 =  2848.333 ;; floating-point values
0005: $11035.25 =  -1134.333  ;; floating-point values
0005: $11034.25 =  24.333  ;; floating-point values
0005: $11032.25 =  90.0  ;; floating-point values
0002: jump £label_here_set

:label_next_point6 
00D6: if  0
0038:   $11042.25 ==  7  ;; integer values
004D: jump_if_false £label_next_point7
0001: wait  1500 ms
0005: $11036.25 =  -2762.06  ;; floating-point values
0005: $11035.25 =  807.462  ;; floating-point values
0005: $11034.25 =  52.397 ;; floating-point values
0005: $11032.25 =  90.0  ;; floating-point values
0002: jump £label_here_set

:label_next_point7

00D6: if  0
0038:   $11042.25 ==  8  ;; integer values
004D: jump_if_false £label_next_point8
0001: wait  1500 ms
0005: $11036.25 =   -846.06 ;; floating-point values
0005: $11035.25 =   -1826.462   ;; floating-point values
0005: $11034.25 =  91.397 ;; floating-point values
0005: $11032.25 =  90.0  ;; floating-point values
0002: jump £label_here_set

:label_next_point8

00D6: if  0
0038:   $11042.25 ==  9  ;; integer values
004D: jump_if_false £label_next_point9
0001: wait  1500 ms
0005: $11036.25 =   2818.5  ;; floating-point values
0005: $11035.25 =  1311.379   ;; floating-point values
0005: $11034.25 =  10.5457 ;; floating-point values
0005: $11032.25 =  90.0  ;; floating-point values
0002: jump £label_here_set

:label_next_point9

00D6: if  0
0038:   $11042.25 == 10  ;; integer values
004D: jump_if_false £label_next_point10
0001: wait  1500 ms
0005: $11036.25 =   -122.333  ;; floating-point values
0005: $11035.25 =  838.333  ;; floating-point values
0005: $11034.25 =  19.333  ;; floating-point values
0005: $11032.25 =  90.0  ;; floating-point values
0002: jump £label_here_set

:label_next_point10

00D6: if  0
0038:   $11042.25 == 11  ;; integer values
004D: jump_if_false £label_next_point11
0001: wait  1500 ms
0005: $11036.25 =  811.192    ;; floating-point values
0005: $11035.25 =  -1769.85   ;; floating-point values
0005: $11034.25 =  13.5892  ;; floating-point values
0005: $11032.25 =  90.0  ;; floating-point values
0002: jump £label_here_set

:label_next_point11

00D6: if  0
0038:   $11042.25 == 12  ;; integer values
004D: jump_if_false £label_next_point12
0001: wait  1500 ms
0005: $11036.25 =  576.48  ;; floating-point values
0005: $11035.25 =  -1180.516  ;; floating-point values
0005: $11034.25 =  44.978 ;; floating-point values
0005: $11032.25 =  90.0  ;; floating-point values
0002: jump £label_here_set

:label_next_point12

00D6: if  0
0038:   $11042.25 == 13  ;; integer values
004D: jump_if_false £label_next_point13
0001: wait  1500 ms
0005: $11036.25 =  2179.544   ;; floating-point values
0005: $11035.25 =  -1007.622  ;; floating-point values
0005: $11034.25 =  62.217 ;; floating-point values
0005: $11032.25 =  90.0  ;; floating-point values
0002: jump £label_here_set

:label_next_point13

00D6: if  0
0038:   $11042.25 == 14  ;; integer values
004D: jump_if_false £label_next_point14
0001: wait  1500 ms
0005: $11036.25 =  238.544  ;; floating-point values
0005: $11035.25 =  -1568.622  ;; floating-point values
0005: $11034.25 =  32.217 ;; floating-point values
0005: $11032.25 =  90.0  ;; floating-point values
0002: jump £label_here_set

:label_next_point14

00D6: if  0
0038:   $11042.25 == 15  ;; integer values
004D: jump_if_false £label_next_point15
0001: wait  1500 ms
0005: $11036.25 =  2478.544 ;; floating-point values
0005: $11035.25 =   2772.622  ;; floating-point values
0005: $11034.25 =  10.217 ;; floating-point values
0005: $11032.25 =  90.0  ;; floating-point values
0002: jump £label_here_set

:label_next_point15

00D6: if  0
0038:   $11042.25 == 16  ;; integer values
004D: jump_if_false £label_next_point16
0001: wait  1500 ms
0005: $11036.25 =  -714.48   ;; floating-point values
0005: $11035.25 =  2321.516  ;; floating-point values
0005: $11034.25 =  127.978  ;; floating-point values
0005: $11032.25 =  90.0  ;; floating-point values
0002: jump £label_here_set

:label_next_point16

00D6: if  0
0038:   $11042.25 == 17  ;; integer values
004D: jump_if_false £label_next_point17
0001: wait  1500 ms
0005: $11036.25 =  134.544   ;; floating-point values
0005: $11035.25 =  1951.622  ;; floating-point values
0005: $11034.25 =  19.217  ;; floating-point values
0005: $11032.25 =  90.0  ;; floating-point values
0002: jump £label_here_set

:label_next_point17

:label_here_set
00A5: @11 = create_car  517 at $11036.25 $11035.25 $11034.25
036A: put_actor $PLAYER_ACTOR in_car @11
0224: set_car @11 health_to  2000
0175: set_car @11 z_angle_to $11032.25 
      $curr_time = 5000
00AA: store_car @11 position_to $xpos1 $ypos1 $zpos1
03BC: $11037.25 = create_sphere $xpos1 $ypos1 $zpos1  3.0
018A: $11033.25 = create_checkpoint_at $xpos1 $ypos1 $zpos1
03C3: set_timer_with_text_to $timing type  0 text 'TIMER'
01EB: set_car_density_to  0.0
04F7: status_text $counter  0 line  2 'RYD3_F'
 0001: wait  2000 ms 
   $flag2 = 0
0002: jump £SMOKE2_599


:SMOKE2_599
00D6: if  0
0039:   @182 ==  1  ;; integer values
004D: jump_if_false £SMOKE2_610
00A5: @34 = create_car  466 at  0.0  0.0 -100.0
0186: @183 = create_marker_above_car @34
009A: @35 = create_actor  24  290 at  0.0  0.0 -100.0
009A: @41 = create_actor  25  108 at  0.0  0.0 -100.0
00A5: @42 = create_car  405 at  0.0  0.0 -100.0
0129: @43 = create_actor  25  109 in_car @42 driverseat
009A: @44 = create_actor  25  109 at  0.0  0.0 -100.0
009A: @45 = create_actor  25  110 at  0.0  0.0 -100.0

:SMOKE2_610
022B: create_forbidden_for_peds_cube  2458.5 -1410.63  24.06  2504.27 -1395.83  28.55
0615: @115 
05D3: unknown_action_sequence -1 @47 @69 @91  6 -1 
05D3: unknown_action_sequence -1 @48 @70 @92  6 -1 
05D3: unknown_action_sequence -1 @49 @71 @93  6 -1 
05D3: unknown_action_sequence -1 @50 @72 @94  6 -1 
078F: unknown_action_sequence -1  1 
05D3: unknown_action_sequence -1 @51 @73 @95  6 -1 
078F: unknown_action_sequence -1  1 
05D3: unknown_action_sequence -1 @52 @74 @96  6 -1 
0616: @115 
0615: @116 
078F: unknown_action_sequence -1  1 
05D3: unknown_action_sequence -1 @53 @75 @97  6 -1 
05D3: unknown_action_sequence -1 @54 @76 @98  6 -1 
05D3: unknown_action_sequence -1 @55 @77 @99  7 -1 
05D3: unknown_action_sequence -1  2254.09 -1283.83  25.18  6 -1 
05D3: unknown_action_sequence -1 @56 @78 @100  6 -1 
05D3: unknown_action_sequence -1 @57 @79 @101  6 -1 
078F: unknown_action_sequence -1  1 
0616: @116 
0615: @117 
05D3: unknown_action_sequence -1 @58 @80 @102  6 -1 
05D3: unknown_action_sequence -1 @59 @81 @103  6 -1 
05D3: unknown_action_sequence -1 @60 @82 @104  6 -1 
05D3: unknown_action_sequence -1 @61 @83 @105  6 -1 
05D4: unknown_action_sequence -1 unknown_angle  90.0 
078F: unknown_action_sequence -1  1 
05D3: unknown_action_sequence -1 @62 @84 @106  6 -1 
078F: unknown_action_sequence -1  1 
0616: @117 
0615: @118 
05D3: unknown_action_sequence -1 @63 @85 @107  6 -1 
05D3: unknown_action_sequence -1 @64 @86 @108  6 -1 
078F: unknown_action_sequence -1  1 
05D3: unknown_action_sequence -1 @65 @87 @109  6 -1 
078F: unknown_action_sequence -1  1 
05D3: unknown_action_sequence -1 @66 @88 @110  6 -1 
05D3: unknown_action_sequence -1 @67 @89 @111  6 -1 
05D3: unknown_action_sequence -1 @68 @90 @112  6 -1 
0616: @118 
0615: @114 
0618: -1 @115 
0618: -1 @116 
0618: -1 @117 
0618: -1 @118 
0616: @114 
00BC: text_highpriority 'SMK2_1'  10000 ms  0

:SMOKE2_658
0001: wait  0 ms
00D6: if  0
0735:  83 
004D: jump_if_false £SMOKE2_663
0002: jump £SMOKE2_3284

:SMOKE2_663
00D6: if  2
8039:   NOT   @162 ==  1  ;; integer values
8118:   NOT   actor @35 dead
8119:   NOT   car @34 wrecked
004D: jump_if_false £SMOKE2_679
00D6: if  0
00DB:   actor $PLAYER_ACTOR in_car @34
004D: jump_if_false £SMOKE2_679
0164: disable_marker @183
018A: @184 = create_checkpoint_at $6893 $6894 $6895
0006: @162 =  1  ;; integer values
0006: @163 =  1  ;; integer values
00BC: text_highpriority 'SMK2_2'  11000 ms  0
032B: @40 = create_weapon_pickup  346  3 ammo  100 at  2444.895 -1981.524  13.933
02A8: @186 = create_marker  18 at  2444.895 -1981.524  13.933
0006: @32 =  0  ;; integer values

:SMOKE2_679


 00D6: if  0
      $flag2 == 0 
004D: jump_if_false £label22_design  
  
00D6: if  0
001C:  $timing > $curr_time
004D: jump_if_false £label22_walking  
                
           
00D6: if  0
00DF:   actor $PLAYER_ACTOR driving
004D: jump_if_false £label22_walking  

 
 02E3: @333 = car @11 speed
      $flag3 = 1
      
00D6: if  0
0021:  @333 >  15.0  ;; floating-point values
004D: jump_if_false £label22_walking
   
   0209: $flag = random_int  0  3             
        
         $flag = 2           
00D6: if  0
      $flag == 0 
004D: jump_if_false £label22_setit1                   
04C4: create_coordinate $xx1 $yy1 $zz1  from_actor $PLAYER_ACTOR offset   4.0 -5.0 0.0
04C4: create_coordinate $xx2 $yy2 $zz2 from_actor $PLAYER_ACTOR offset   -2.0  -5.0 0.0

0002: jump £label22_setitall
:label22_setit1 
00D6: if  0
      $flag == 1    
004D: jump_if_false £label22_setit2
04C4: create_coordinate $xx1 $yy1 $zz1  from_actor $PLAYER_ACTOR offset   -4.0 -5.0 0.0
04C4: create_coordinate $xx2 $yy2 $zz2 from_actor $PLAYER_ACTOR offset   2.0  -5.0 0.0

0002: jump £label22_setitall

:label22_setit2  
00D6: if  0
      $flag == 2    
004D: jump_if_false £label22_setitall
04C4: create_coordinate $xx1 $yy1 $zz1  from_actor $PLAYER_ACTOR offset   3.0 -5.0 0.0
04C4: create_coordinate $xx2 $yy2 $zz2 from_actor $PLAYER_ACTOR offset   -3.0  -5.0 0.0



:label22_setitall
02CE: $zz1 = ground_z $xx1 $yy1 $zz1
02CE: $zz2 = ground_z $xx2 $yy2 $zz2
02CE: $zz3 = ground_z $xx3 $yy3 $zz3
0107: $expl1 = create_object #BARREL4 at  $xx1 $yy1 $zz1
0107: $expl2 = create_object #BARREL4 at  $xx2 $yy2 $zz2

  $counter += 1
  $curr_time += 700   
  
  00D6: if  0  
  
 
      $counter == 60 
004D: jump_if_false ££label22_walking 
018C: play_sound  1058 at  0.0  0.0  0.0

   $flag2 = 1   
0001: wait  3000 ms  
00AA: store_car @11 position_to $xpss $ypss $zpss        

0174: $zangle = car @11 z_angle
014F: stop_timer $timing 
    $curr_time += 20000 
0084: $back_time = $curr_time     
03C3: set_timer_with_text_to $curr_time type  1 text 'TIMER' 
03BC: $11037.25 = create_sphere $xpos1 $ypos1 $zpos1  3.0
018A: $11033.25 = create_checkpoint_at $xpos1 $ypos1 $zpos1
   
  
:label22_walking 
0002: jump £SMOKE2_2210

:label22_design 
   00D6: if  0
  $curr_time >  0
   004D: jump_if_false £SMOKE2_3281   
   00D6: if  0
00EC:   actor $PLAYER_ACTOR  0 ()near_point $xpos1 $ypos1  radius  5.0  5.0
004D: jump_if_false £SMOKE2_2210


0002: jump £SMOKE2_3284   
     
 0002: jump £SMOKE2_2210



:SMOKE2_2210
00D6: if  3
0039:   @162 ==  1  ;; integer values
8039:   NOT   @166 ==  1  ;; integer values
8118:   NOT   actor @35 dead
8119:   NOT   car @34 wrecked
004D: jump_if_false £SMOKE2_2309
00D6: if  0
8039:   NOT   @167 ==  1  ;; integer values
004D: jump_if_false £SMOKE2_2224
00D6: if  0
0214:   pickup @40 picked_up
004D: jump_if_false £SMOKE2_2224
0164: disable_marker @186
0006: @167 =  1  ;; integer values

:SMOKE2_2224
00D6: if  1
0039:   @163 ==  1  ;; integer values
80DB:   NOT   actor $PLAYER_ACTOR in_car @34
004D: jump_if_false £SMOKE2_2251
0164: disable_marker @184
0186: @183 = create_marker_above_car @34
07E0: @183  1 
0050: gosub £SMOKE2_3211
00D6: if  0
0118:   actor @35 dead
004D: jump_if_false £SMOKE2_2238
040D: unload_wav  2
00BC: text_highpriority 'SMK2_7'  4000 ms  0
0002: jump £SMOKE2_3281

:SMOKE2_2238
00D6: if  0
0119:   car @34 wrecked
004D: jump_if_false £SMOKE2_2243
00BC: text_highpriority 'SMK2_12'  5000 ms  0
0002: jump £SMOKE2_3281

:SMOKE2_2243
00D6: if  21
80EC:   NOT   actor $PLAYER_ACTOR  0 ()near_point  2444.895 -1981.524 radius  20.0  20.0
0039:   @167 ==  1  ;; integer values
004D: jump_if_false £SMOKE2_2249
00BC: text_highpriority 'SMK2_3'  5000 ms  0
0002: jump £SMOKE2_2250

:SMOKE2_2249
00BC: text_highpriority 'SMK2_16'  5000 ms  0

:SMOKE2_2250
0006: @163 =  0  ;; integer values

:SMOKE2_2251
00D6: if  1
0039:   @163 ==  0  ;; integer values
00DB:   actor $PLAYER_ACTOR in_car @34
004D: jump_if_false £SMOKE2_2262
0164: disable_marker @183
018A: @184 = create_checkpoint_at $6893 $6894 $6895
00D6: if  0
0039:   @165 ==  1  ;; integer values
004D: jump_if_false £SMOKE2_2261
00BC: text_highpriority 'SMK2_15'  5000 ms  0

:SMOKE2_2261
0006: @163 =  1  ;; integer values

:SMOKE2_2262
00D6: if  0
0039:   @163 ==  1  ;; integer values
004D: jump_if_false £SMOKE2_2290
00D6: if  1
8039:   NOT   @164 ==  1  ;; integer values
0019:   @32 >  10000  ;; integer values
004D: jump_if_false £SMOKE2_2276
0006: @161 =  2  ;; integer values
0050: gosub £SMOKE2_3109
00D6: if  0
8118:   NOT   actor @35 dead
004D: jump_if_false £SMOKE2_2275
0A09: @35  1 

:SMOKE2_2275
0006: @164 =  1  ;; integer values

:SMOKE2_2276
00D6: if  1
0039:   @164 ==  1  ;; integer values
8039:   NOT   @165 ==  1  ;; integer values
004D: jump_if_false £SMOKE2_2290
00D6: if  0
001D:   @159 > @158  ;; integer values  
004D: jump_if_false £SMOKE2_2285
0050: gosub £SMOKE2_3173
0002: jump £SMOKE2_2290

:SMOKE2_2285
00D6: if  0
8118:   NOT   actor @35 dead
004D: jump_if_false £SMOKE2_2289
0A09: @35  0 

:SMOKE2_2289
0006: @165 =  1  ;; integer values

:SMOKE2_2290
00D6: if  0
0039:   @163 ==  1  ;; integer values
004D: jump_if_false £SMOKE2_2309
00D6: if  0
0100:   actor $PLAYER_ACTOR near_point_in_car $6893 $6894 $6895 radius  4.0  4.0  2.0 sphere  1
004D: jump_if_false £SMOKE2_2309
01B4: set_player $PLAYER_CHAR frozen_state  0 (frozen)
0006: @166 =  1  ;; integer values
0164: disable_marker @184
0164: disable_marker @186
091D:  2488.0 -1431.93  25.41  2528.0 -1391.93  29.41 
00D6: if  0
8118:   NOT   actor @35 dead
004D: jump_if_false £SMOKE2_2305
0A09: @35  0 

:SMOKE2_2305
0050: gosub £SMOKE2_2615
01E8: create_forbidden_for_cars_cube  2164.51 -1287.88  20.0  2170.88 -1267.88  30.0
00BC: text_highpriority 'SMK2_17'  10000 ms  0
0006: @32 =  0  ;; integer values

:SMOKE2_2309
00D6: if  0
0039:   @166 ==  1  ;; integer values
004D: jump_if_false £SMOKE2_2550
00D6: if  1
8039:   NOT   @168 ==  1  ;; integer values
0019:   @32 >  10000  ;; integer values
004D: jump_if_false £SMOKE2_2319
0512: permanent_text_box 'SMK2_H1'
0006: @168 =  1  ;; integer values
0006: @32 =  0  ;; integer values

:SMOKE2_2319
00D6: if  2
0039:   @168 ==  1  ;; integer values
8039:   NOT   @169 ==  1  ;; integer values
0019:   @32 >  10000  ;; integer values
004D: jump_if_false £SMOKE2_2327
0512: permanent_text_box 'SMK2_H2'
0006: @169 =  1  ;; integer values
0006: @32 =  0  ;; integer values

:SMOKE2_2327
00D6: if  2
0039:   @169 ==  1  ;; integer values
8039:   NOT   @170 ==  1  ;; integer values
0019:   @32 >  10000  ;; integer values
004D: jump_if_false £SMOKE2_2335
0512: permanent_text_box 'SPRSTAM'
0006: @170 =  1  ;; integer values
0006: @32 =  0  ;; integer values

:SMOKE2_2335
00D6: if  2
0039:   @170 ==  1  ;; integer values
8039:   NOT   @171 ==  1  ;; integer values
0019:   @32 >  10000  ;; integer values
004D: jump_if_false £SMOKE2_2342
03E6: remove_text_box
0006: @171 =  1  ;; integer values

:SMOKE2_2342
00D6: if  0
8039:   NOT   @173 ==  1  ;; integer values
004D: jump_if_false £SMOKE2_2380
00D6: if  0
8118:   NOT   actor @35 dead
004D: jump_if_false £SMOKE2_2359
00D6: if  1
00F2:   actor $PLAYER_ACTOR near_actor @35 radius  5.0  5.0  0
8039:   NOT   @172 ==  1  ;; integer values
004D: jump_if_false £SMOKE2_2359
0006: @161 =  1  ;; integer values
0050: gosub £SMOKE2_3109
00D6: if  0
8118:   NOT   actor @35 dead
004D: jump_if_false £SMOKE2_2358
0A09: @35  1 

:SMOKE2_2358
0006: @172 =  1  ;; integer values

:SMOKE2_2359
00D6: if  1
0039:   @172 ==  1  ;; integer values
0039:   @161 ==  1  ;; integer values
004D: jump_if_false £SMOKE2_2380
00D6: if  0
001D:   @159 > @158  ;; integer values  
004D: jump_if_false £SMOKE2_2375
00D6: if  0
8118:   NOT   actor @35 dead
004D: jump_if_false £SMOKE2_2371
0050: gosub £SMOKE2_3173
0002: jump £SMOKE2_2374

:SMOKE2_2371
040D: unload_wav  1
00BE: text_clear_all
0006: @173 =  1  ;; integer values

:SMOKE2_2374
0002: jump £SMOKE2_2380

:SMOKE2_2375
00D6: if  0
8118:   NOT   actor @35 dead
004D: jump_if_false £SMOKE2_2379
0A09: @35  0 

:SMOKE2_2379
0006: @173 =  1  ;; integer values

:SMOKE2_2380
00D6: if  0
8039:   NOT   @174 ==  1  ;; integer values
004D: jump_if_false £SMOKE2_2397
00D6: if  0
00EC:   actor $PLAYER_ACTOR  0 ()near_point  2354.11 -1355.54 radius  15.0  15.0
004D: jump_if_false £SMOKE2_2397
0006: @113 =  0  ;; integer values

:SMOKE2_2387
00D6: if  0
001B:    2 > @113  ;; integer values
004D: jump_if_false £SMOKE2_2396
00D6: if  0
8118:   NOT   actor @44(@113,2i) dead
004D: jump_if_false £SMOKE2_2394
0816: @44(@113,2i)  0 

:SMOKE2_2394
000A: @113 +=  1  ;; integer values
0002: jump £SMOKE2_2387

:SMOKE2_2396
0006: @174 =  1  ;; integer values

:SMOKE2_2397
00D6: if  0
8118:   NOT   actor @41 dead
004D: jump_if_false £SMOKE2_2433
00D6: if  0
8039:   NOT   @175 ==  1  ;; integer values
004D: jump_if_false £SMOKE2_2413
062E: @41  1952 @122 
00D6: if  0
04A4: @122  1 
004D: jump_if_false £SMOKE2_2413
07A4: @41 @119 @120 
00D6: if  1
0039:   @119 ==  1  ;; integer values
0039:   @120 ==  4  ;; integer values
004D: jump_if_false £SMOKE2_2413
0006: @175 =  1  ;; integer values

:SMOKE2_2413
00D6: if  0
8039:   NOT   @175 ==  1  ;; integer values
004D: jump_if_false £SMOKE2_2425
00D6: if  0
0611: @41 "RUN_GANG1" 
004D: jump_if_false £SMOKE2_2420
0393: @41 "RUN_GANG1"  1.5 

:SMOKE2_2420
00D6: if  0
0611: @41 "SPRINT_CIVI" 
004D: jump_if_false £SMOKE2_2424
0393: @41 "SPRINT_CIVI"  1.5 

:SMOKE2_2424
0002: jump £SMOKE2_2433

:SMOKE2_2425
00D6: if  0
0611: @41 "RUN_GANG1" 
004D: jump_if_false £SMOKE2_2429
0393: @41 "RUN_GANG1"  1.2 

:SMOKE2_2429
00D6: if  0
0611: @41 "SPRINT_CIVI" 
004D: jump_if_false £SMOKE2_2433
0393: @41 "SPRINT_CIVI"  1.2 

:SMOKE2_2433
00D6: if  0
8118:   NOT   actor @41 dead
004D: jump_if_false £SMOKE2_2549
00D6: if  0
8039:   NOT   @176 ==  1  ;; integer values
004D: jump_if_false £SMOKE2_2455
0085: @113 = @46  ;; integer values and handles
000E: @113 -=  1  ;; integer values
062E: @41  1952 @122 
00D6: if  1
04A4: @122  7 
00FE:   actor @41  0 ()near_point @47(@113,22f) @69(@113,22f) @91(@113,22f) radius  10.0  10.0  10.0
004D: jump_if_false £SMOKE2_2455
0006: @176 =  1  ;; integer values
00D6: if  1
8119:   NOT   car @42 wrecked
8118:   NOT   actor @43 dead
004D: jump_if_false £SMOKE2_2455
00D6: if  0
8495:   NOT   unknown_car_check @42
004D: jump_if_false £SMOKE2_2455
05CA: unknown_action_sequence @41 @42 -2  0 

:SMOKE2_2455
00D6: if  0
8039:   NOT   @180 ==  1  ;; integer values
004D: jump_if_false £SMOKE2_2467
00D6: if  1
8118:   NOT   actor @43 dead
8119:   NOT   car @42 wrecked
004D: jump_if_false £SMOKE2_2467
00D6: if  0
0495:   unknown_car_check @42
004D: jump_if_false £SMOKE2_2467
05E2: unknown_action_sequence @43 $PLAYER_ACTOR 
0006: @180 =  1  ;; integer values

:SMOKE2_2467
00D6: if  1
0039:   @176 ==  1  ;; integer values
8039:   NOT   @177 ==  1  ;; integer values
004D: jump_if_false £SMOKE2_2548
00D6: if  0
8039:   NOT   @178 ==  1  ;; integer values
004D: jump_if_false £SMOKE2_2508
00D6: if  1
8119:   NOT   car @42 wrecked
8118:   NOT   actor @43 dead
004D: jump_if_false £SMOKE2_2493
00D6: if  0
00DB:   actor @41 in_car @42
004D: jump_if_false £SMOKE2_2493
0006: @178 =  1  ;; integer values
05D2: unknown_action_sequence @43 @42  30.0  2 
01B2: give_actor @41 weapon  28 ammo  99999  ;; Load the weapon model before using this
0713: unknown_action_sequence @41 $PLAYER_ACTOR -1  0.0  0.0  0.0  1000.0  8  0  60 
091D:  2164.51 -1287.88  20.0  2170.88 -1267.88  30.0 
00D6: if  0
00DF:   actor $PLAYER_ACTOR driving
004D: jump_if_false £SMOKE2_2491
00BC: text_highpriority 'SMK2_9'  10000 ms  0
0002: jump £SMOKE2_2492

:SMOKE2_2491
00BC: text_highpriority 'SMK2_8'  10000 ms  0

:SMOKE2_2492
0006: @32 =  0  ;; integer values

:SMOKE2_2493
00D6: if  0
8039:   NOT   @178 ==  1  ;; integer values
004D: jump_if_false £SMOKE2_2508
00D6: if  21
0119:   car @42 wrecked
0118:   actor @43 dead
004D: jump_if_false £SMOKE2_2503
05DD: unknown_action_sequence @41 $PLAYER_ACTOR  1000.0  9999999 
0006: @177 =  1  ;; integer values
0002: jump £SMOKE2_2508

:SMOKE2_2503
00D6: if  0
0495:   unknown_car_check @42
004D: jump_if_false £SMOKE2_2508
05DD: unknown_action_sequence @41 $PLAYER_ACTOR  1000.0  9999999 
0006: @177 =  1  ;; integer values

:SMOKE2_2508
00D6: if  0
0039:   @178 ==  1  ;; integer values
004D: jump_if_false £SMOKE2_2548
00D6: if  0
8039:   NOT   @177 ==  1  ;; integer values
004D: jump_if_false £SMOKE2_2530
00D6: if  0
8119:   NOT   car @42 wrecked
004D: jump_if_false £SMOKE2_2530
046C: @125 = car @42 driver
00D6: if  21
0495:   unknown_car_check @42
0039:   @125 == -1  ;; integer values
004D: jump_if_false £SMOKE2_2530
05DD: unknown_action_sequence @41 $PLAYER_ACTOR  1000.0  9999999 
00D6: if  1
8118:   NOT   actor @43 dead
8039:   NOT   @180 ==  1  ;; integer values
004D: jump_if_false £SMOKE2_2529
05E2: unknown_action_sequence @43 $PLAYER_ACTOR 
0006: @180 =  1  ;; integer values

:SMOKE2_2529
0006: @177 =  1  ;; integer values

:SMOKE2_2530
00D6: if  0
8039:   NOT   @177 ==  1  ;; integer values
004D: jump_if_false £SMOKE2_2548
00D6: if  1
8039:   NOT   @179 ==  1  ;; integer values
0019:   @32 >  180000  ;; integer values
004D: jump_if_false £SMOKE2_2548
00D6: if  1
8119:   NOT   car @42 wrecked
8118:   NOT   actor @43 dead
004D: jump_if_false £SMOKE2_2548
00D6: if  1
00DB:   actor @43 in_car @42
00DB:   actor @41 in_car @42
004D: jump_if_false £SMOKE2_2548
05D1: unknown_action_sequence @43 @42 @126 @127 @128  30.0  0  0  2 
0006: @179 =  1  ;; integer values
00BC: text_highpriority 'SMK2_10'  7000 ms  0

:SMOKE2_2548
0002: jump £SMOKE2_2550

:SMOKE2_2549
0002: jump £SMOKE2_3284

:SMOKE2_2550
00D6: if  0
0118:   actor @35 dead
004D: jump_if_false £SMOKE2_2555
00BC: text_highpriority 'SMK2_7'  4000 ms  0
0002: jump £SMOKE2_3281

:SMOKE2_2555
00D6: if  1
8039:   NOT   @166 ==  1  ;; integer values
0119:   car @34 wrecked
004D: jump_if_false £SMOKE2_2561
00BC: text_highpriority 'SMK2_12'  5000 ms  0
0002: jump £SMOKE2_3281

:SMOKE2_2561
00D6: if  1
0039:   @176 ==  1  ;; integer values
8118:   NOT   actor @41 dead
004D: jump_if_false £SMOKE2_2570
00D6: if  0
80F2:   NOT   actor $PLAYER_ACTOR near_actor @41 radius  300.0  300.0  0
004D: jump_if_false £SMOKE2_2570
00BC: text_highpriority 'SMK2_11'  4000 ms  0
0002: jump £SMOKE2_3281

:SMOKE2_2570
00D6: if  4
0039:   @179 ==  1  ;; integer values
8039:   NOT   @177 ==  1  ;; integer values
8118:   NOT   actor @41 dead
8118:   NOT   actor @43 dead
8119:   NOT   car @42 wrecked
004D: jump_if_false £SMOKE2_2591
00D6: if  2
00DB:   actor @41 in_car @42
00DB:   actor @43 in_car @42
01AF:   car @42  0 ()near_point @126 @127 @128 radius  6.0  6.0  4.0
004D: jump_if_false £SMOKE2_2591
00D6: if  0
0038:   $38 ==  1  ;; integer values
004D: jump_if_false £SMOKE2_2588
0050: gosub £SMOKE2_2938
0002: jump £SMOKE2_2589

:SMOKE2_2588
034F: destroy_actor_with_fade @41  ;; The actor fades away like a ghost

:SMOKE2_2589
00BC: text_highpriority 'SMK2_11'  4000 ms  0
0002: jump £SMOKE2_3281

:SMOKE2_2591
0002: jump £SMOKE2_658

:SMOKE2_2592
0674: set_car_model  466 numberplate "_A2TMFK_" 
00A5: @34 = create_car  466 at @36 @37 @38
0175: set_car @34 z_angle_to @39
0229: set_car @34 color_to  98  14
0186: @183 = create_marker_above_car @34
07E0: @183  1 
01C8: @35 = create_actor  24  290 in_car @34 passenger_seat  0
0223: set_actor @35 health_to  500
08AF: @35  500 
01B2: give_actor @35 weapon  22 ammo  99999  ;; Load the weapon model before using this
02A9: set_actor @35 immune_to_nonplayer  1
0568: @35  1
0446: (unknown) @35  0 
0245: set_actor @35 walk_style_to "FATMAN"
039E: (unknown) @35  1 
0526: unknown_actor @35  1
09F6: @35  0 
07E5: unknown_copy_entity -1 @124 
0708: unknown_add_entity_item @124  79 
060B: unknown_actor_use_entity @35 @124 
077C: @35  3 
077C: @35  4 
0051: return

:SMOKE2_2615
016A: fade  0 ()  1000 ms

:SMOKE2_2616
00D6: if  0
016B:   fading
004D: jump_if_false £SMOKE2_2621
0001: wait  0 ms
0002: jump £SMOKE2_2616

:SMOKE2_2621
040D: unload_wav  1
040D: unload_wav  2
00BE: text_clear_all
0395: clear_area  1 at $6893 $6894 $6895 range  150.0
01E8: create_forbidden_for_cars_cube  2441.38 -1405.59  15.0  2460.42 -1368.34  40.0
022B: create_forbidden_for_peds_cube  2441.38 -1405.59  15.0  2460.42 -1368.34  40.0
01EB: set_car_density_to  0.0
09B2:  1 @192 @193 
00D6: if  0
8039:   NOT   @192 == -1  ;; integer values
004D: jump_if_false £SMOKE2_2638
00A5: @188 = create_car @192 at  2448.31 -1392.34  23.68
0560: @188 @190
0175: set_car @188 z_angle_to  180.0
00A5: @189 = create_car @192 at  2453.7 -1408.14  23.68
0560: @189 @191
0175: set_car @189 z_angle_to  0.0

:SMOKE2_2638
00D6: if  0
8119:   NOT   car @34 wrecked
004D: jump_if_false £SMOKE2_2652
00D6: if  0
00DB:   actor $PLAYER_ACTOR in_car @34
004D: jump_if_false £SMOKE2_2645
0362: remove_actor $PLAYER_ACTOR from_car_and_place_at  2473.6 -1420.86  27.88

:SMOKE2_2645
00D6: if  0
8118:   NOT   actor @35 dead
004D: jump_if_false £SMOKE2_2652
00D6: if  0
00DB:   actor @35 in_car @34
004D: jump_if_false £SMOKE2_2652
0362: remove_actor @35 from_car_and_place_at  2470.6 -1420.86  27.88

:SMOKE2_2652
00A6: destroy_car @34
01B4: set_player $PLAYER_CHAR frozen_state  0 (frozen)
03EF: player $PLAYER_CHAR make_safe
02E4: load_cutscene_data 'SMOKE2B'

:SMOKE2_2656
00D6: if  0
86B9:   NOT   cutscene_data_loaded
004D: jump_if_false £SMOKE2_2661
0001: wait  0 ms
0002: jump £SMOKE2_2656

:SMOKE2_2661
02E7: start_cutscene
016A: fade  1 (back)  1000 ms

:SMOKE2_2663
00D6: if  0
82E9:   NOT cutscene_reached_end
004D: jump_if_false £SMOKE2_2668
0001: wait  0 ms
0002: jump £SMOKE2_2663

:SMOKE2_2668
016A: fade  0 ()  0 ms

:SMOKE2_2669
00D6: if  0
016B:   fading
004D: jump_if_false £SMOKE2_2674
0001: wait  0 ms
0002: jump £SMOKE2_2669

:SMOKE2_2674
02EA: end_cutscene
01B4: set_player $PLAYER_CHAR frozen_state  0 (frozen)
02A3: toggle_widescreen  1 (on)
01EB: set_car_density_to  1.0
0247: request_model  108
0247: request_model  109
0247: request_model  110
0247: request_model  405
0247: request_model  352
038B: load_requested_models

:SMOKE2_2684
00D6: if  24
8248:   NOT   model  108 available
8248:   NOT   model  109 available
8248:   NOT   model  110 available
8248:   NOT   model  405 available
8248:   NOT   model  352 available
004D: jump_if_false £SMOKE2_2693
0001: wait  0 ms
0002: jump £SMOKE2_2684

:SMOKE2_2693
05AA: s@130 = 'SMO2B11'  ;; 8-byte strings
04AF: @148 = unknown_wav_reference  35200 
0209: $6896 = random_int  0  3
00D6: if  0
0038:   $6896 ==  0  ;; integer values
004D: jump_if_false £SMOKE2_2701
05AA: s@132 = 'SMO2_CA'  ;; 8-byte strings
04AF: @149 = unknown_wav_reference  35214 

:SMOKE2_2701
00D6: if  0
0038:   $6896 ==  1  ;; integer values
004D: jump_if_false £SMOKE2_2706
05AA: s@132 = 'SMO2_CB'  ;; 8-byte strings
04AF: @149 = unknown_wav_reference  35215 

:SMOKE2_2706
00D6: if  0
0038:   $6896 ==  2  ;; integer values
004D: jump_if_false £SMOKE2_2711
05AA: s@132 = 'SMO2_CC'  ;; 8-byte strings
04AF: @149 = unknown_wav_reference  35216 

:SMOKE2_2711
03CF: load_wav @148 as  1
03CF: load_wav @149 as  2

:SMOKE2_2713
00D6: if  21
83D0:   NOT   wav  1 loaded
83D0:   NOT   wav  2 loaded
004D: jump_if_false £SMOKE2_2719
0001: wait  0 ms
0002: jump £SMOKE2_2713

:SMOKE2_2719
03CB: set_camera  2471.99 -1402.32  27.82
009A: @41 = create_actor  25  108 at  2471.99 -1402.32  27.82
0173: set_actor @41 z_angle_to  90.0
0223: set_actor @41 health_to  200
08AF: @41  200 
03FE: set_actor @41 money  500
02A9: set_actor @41 immune_to_nonplayer  1
01B2: give_actor @41 weapon  22 ammo  99999  ;; Load the weapon model before using this
02E2: set_actor @41 weapon_accuracy_to  5
0350: unknown_actor @41 not_scared_flag  1
077C: @41  3 
077C: @41  4 
00D6: if  0
8118:   NOT   actor @41 dead
004D: jump_if_false £SMOKE2_2735
0618: @41 @114 

:SMOKE2_2735
00A1: put_actor $PLAYER_ACTOR at  2473.99 -1402.32  27.82
0173: set_actor $PLAYER_ACTOR z_angle_to  90.0
00D6: if  0
8118:   NOT   actor @35 dead
004D: jump_if_false £SMOKE2_2742
00A1: put_actor @35 at  2517.99 -1402.32  27.82
0173: set_actor @35 z_angle_to  90.0

:SMOKE2_2742
015F: set_camera_position  2460.993 -1400.991  24.5671  0.0  0.0  0.0
0160: point_camera  2461.876 -1401.406  24.7836  2
016A: fade  1 (back)  1000 ms

:SMOKE2_2745
00D6: if  0
016B:   fading
004D: jump_if_false £SMOKE2_2750
0001: wait  0 ms
0002: jump £SMOKE2_2745

:SMOKE2_2750
0006: @181 =  1  ;; integer values
0707: unknown_bunnyjump £SMOKE2_2849 
0001: wait  2000 ms
05D6: clear_scmpath
05D7: add_point_to_scmpath @47 @69 @91 
05D7: add_point_to_scmpath @48 @70 @92 
05D8: AS_assign_scmpath to_actor $PLAYER_ACTOR flags  6  0 
00D6: if  0
8118:   NOT   actor @35 dead
004D: jump_if_false £SMOKE2_2766
0615: @121 
05D3: unknown_action_sequence -1 @47 @69 @91  6 -1 
0605: unknown_action_sequence -1 "IDLE_TIRED" "PED"  4.0  1  0  0  0 -1 
0616: @121 
0618: @35 @121 
061B: @121 

:SMOKE2_2766
03D1: play_wav  1
00BC: text_highpriority s@130  10000 ms  1
0001: wait  4000 ms
040D: unload_wav  1
00BE: text_clear_all
00D6: if  0
8039:   NOT   @192 == -1  ;; integer values
004D: jump_if_false £SMOKE2_2779
00D6: if  1
8118:   NOT   actor @190 dead
8119:   NOT   car @188 wrecked
004D: jump_if_false £SMOKE2_2779
05D1: unknown_action_sequence @190 @188  2448.31 -1429.92  23.68  10.0  0  0  3 

:SMOKE2_2779
015F: set_camera_position  2459.716 -1406.529  23.4481  0.0  0.0  0.0
0160: point_camera  2459.658 -1405.536  23.553  2
00D6: if  0
8118:   NOT   actor @35 dead
004D: jump_if_false £SMOKE2_2802
062E: @35  1560 @122 
00D6: if  0
04A4: @122  1 
004D: jump_if_false £SMOKE2_2802
0646: @35 @119 

:SMOKE2_2789
00D6: if  0
002B:    0 >= @119  ;; integer values 
004D: jump_if_false £SMOKE2_2802
0001: wait  0 ms
00D6: if  0
8118:   NOT   actor @35 dead
004D: jump_if_false £SMOKE2_2801
062E: @35  1560 @122 
00D6: if  0
04A4: @122  1 
004D: jump_if_false £SMOKE2_2801
0646: @35 @119 

:SMOKE2_2801
0002: jump £SMOKE2_2789

:SMOKE2_2802
03D1: play_wav  2
00BC: text_highpriority s@132  10000 ms  1

:SMOKE2_2804
00D6: if  0
83D2:   NOT   wav  2 ended
004D: jump_if_false £SMOKE2_2809
0001: wait  0 ms
0002: jump £SMOKE2_2804

:SMOKE2_2809
040D: unload_wav  2
00BE: text_clear_all
0001: wait  1000 ms
0395: clear_area  0 at @49 @71 @93 range  35.0
00D6: if  0
8118:   NOT   actor @41 dead
004D: jump_if_false £SMOKE2_2819
00A1: put_actor @41 at @49 @71  23.74
0173: set_actor @41 z_angle_to  45.0
07A0: @41 @114  0  3 

:SMOKE2_2819
015F: set_camera_position  2406.65 -1358.0  25.33  0.0  0.0  0.0
0160: point_camera @50 @72 @94  2
0001: wait  1000 ms
00D6: if  0
8118:   NOT   actor @41 dead
004D: jump_if_false £SMOKE2_2844
062E: @41  1952 @122 
00D6: if  0
04A4: @122  1 
004D: jump_if_false £SMOKE2_2844
07A4: @41 @119 @120 

:SMOKE2_2830
00D6: if  1
0039:   @119 ==  0  ;; integer values
002B:    3 >= @120  ;; integer values 
004D: jump_if_false £SMOKE2_2844
0001: wait  0 ms
00D6: if  0
8118:   NOT   actor @41 dead
004D: jump_if_false £SMOKE2_2843
062E: @41  1952 @122 
00D6: if  0
04A4: @122  1 
004D: jump_if_false £SMOKE2_2843
07A4: @41 @119 @120 

:SMOKE2_2843
0002: jump £SMOKE2_2830

:SMOKE2_2844
0001: wait  2200 ms
015F: set_camera_position  2404.81 -1354.37  25.71  0.0  0.0  0.0
0160: point_camera  2401.4 -1356.79  25.31  2
0001: wait  4500 ms
0006: @181 =  0  ;; integer values

:SMOKE2_2849
0701: (unknown)
00D6: if  0
0039:   @181 ==  1  ;; integer values
004D: jump_if_false £SMOKE2_2873
00D6: if  0
8118:   NOT   actor @35 dead
004D: jump_if_false £SMOKE2_2864
00D6: if  0
00DF:   actor @35 driving
004D: jump_if_false £SMOKE2_2861
0362: remove_actor @35 from_car_and_place_at @47 @69  23.06
0002: jump £SMOKE2_2862

:SMOKE2_2861
00A1: put_actor @35 at @47 @69  23.06

:SMOKE2_2862
0173: set_actor @35 z_angle_to  90.0
0605: unknown_action_sequence @35 "IDLE_TIRED" "PED"  4.0  1  0  0  0 -1 

:SMOKE2_2864
00D6: if  0
8118:   NOT   actor @41 dead
004D: jump_if_false £SMOKE2_2870
00A1: put_actor @41 at  2390.73 -1355.69  23.74
0173: set_actor @41 z_angle_to  81.47
07A0: @41 @114  0  7 

:SMOKE2_2870
040D: unload_wav  1
040D: unload_wav  2
00BE: text_clear_all

:SMOKE2_2873
00D6: if  0
8118:   NOT   actor @41 dead
004D: jump_if_false £SMOKE2_2888
07E5: unknown_copy_entity -1 @123 
0708: unknown_add_entity_item @123  79 
0708: unknown_add_entity_item @123  9 
0708: unknown_add_entity_item @123  15 
0708: unknown_add_entity_item @123  31 
0708: unknown_add_entity_item @123  43 
0708: unknown_add_entity_item @123  36 
0708: unknown_add_entity_item @123  37 
0708: unknown_add_entity_item @123  11 
0708: unknown_add_entity_item @123  20 
060B: unknown_actor_use_entity @41 @123 
0187: @185 = create_marker_above_actor @41

:SMOKE2_2888
0395: clear_area  0 at  2170.68 -1282.01  23.7 range  100.0
00A5: @42 = create_car  405 at  2170.68 -1282.01  23.7
0129: @43 = create_actor  25  109 in_car @42 driverseat
0175: set_car @42 z_angle_to  357.03
02AA: set_car @42 immune_to_nonplayer  1
053F: set_car @42 tires_vulnerable  0
020A: set_car @42 door_status_to  3
02A9: set_actor @43 immune_to_nonplayer  1
01B2: give_actor @43 weapon  22 ammo  99999  ;; Load the weapon model before using this
0395: clear_area  0 at  2353.86 -1356.92  23.41 range  5.0
009A: @44 = create_actor  25  109 at  2353.86 -1356.92  23.41
009A: @45 = create_actor  25  110 at  2354.11 -1355.54  23.41
0173: set_actor @44 z_angle_to  90.0
0173: set_actor @45 z_angle_to  270.0
0006: @113 =  0  ;; integer values

:SMOKE2_2903
00D6: if  0
001B:    2 > @113  ;; integer values
004D: jump_if_false £SMOKE2_2915
02A9: set_actor @44(@113,2i) immune_to_nonplayer  1
01B2: give_actor @44(@113,2i) weapon  22 ammo  99999  ;; Load the weapon model before using this
02E2: set_actor @44(@113,2i) weapon_accuracy_to  50
077C: @44(@113,2i)  3 
077C: @44(@113,2i)  4 
0816: @44(@113,2i)  1 
05E2: unknown_action_sequence @44(@113,2i) $PLAYER_ACTOR 
000A: @113 +=  1  ;; integer values
0002: jump £SMOKE2_2903

:SMOKE2_2915
0249: release_model  110
00D6: if  0
00DF:   actor $PLAYER_ACTOR driving
004D: jump_if_false £SMOKE2_2921
0362: remove_actor $PLAYER_ACTOR from_car_and_place_at @48 @70  23.05
0002: jump £SMOKE2_2922

:SMOKE2_2921
00A1: put_actor $PLAYER_ACTOR at @48 @70  23.05

:SMOKE2_2922
0173: set_actor $PLAYER_ACTOR z_angle_to  90.0
091D:  2441.38 -1405.59  15.0  2460.42 -1368.34  40.0 
091E:  2441.38 -1405.59  15.0  2460.42 -1368.34  40.0 
00D6: if  0
8039:   NOT   @192 == -1  ;; integer values
004D: jump_if_false £SMOKE2_2932
01C3: remove_references_to_car @188  ;; Like turning a car into any random car
01C2: remove_references_to_actor @190  ;; Like turning an actor into a random pedestrian
01C3: remove_references_to_car @189  ;; Like turning a car into any random car
01C2: remove_references_to_actor @191  ;; Like turning an actor into a random pedestrian

:SMOKE2_2932
02A3: toggle_widescreen  0 (off)
0373: set_camera_directly_behind_player
02EB: restore_camera_with_jumpcut
01B4: set_player $PLAYER_CHAR frozen_state  1 (unfrozen)
0687: $PLAYER_ACTOR 
0051: return

:SMOKE2_2938
01B4: set_player $PLAYER_CHAR frozen_state  0 (frozen)
00D6: if  0
8118:   NOT   actor @41 dead
004D: jump_if_false £SMOKE2_2943
02AB: set_actor @41 immunities  1  1  1  1  1

:SMOKE2_2943
00D6: if  0
8118:   NOT   actor @43 dead
004D: jump_if_false £SMOKE2_2947
02AB: set_actor @43 immunities  1  1  1  1  1

:SMOKE2_2947
00D6: if  0
8119:   NOT   car @42 wrecked
004D: jump_if_false £SMOKE2_2951
02AC: set_car @42 immunities  1  1  1  1  1

:SMOKE2_2951
016A: fade  0 ()  1000 ms

:SMOKE2_2952
00D6: if  0
016B:   fading
004D: jump_if_false £SMOKE2_2957
0001: wait  0 ms
0002: jump £SMOKE2_2952

:SMOKE2_2957
0395: clear_area  0 at @126 @127 @128 range  100.0
01E8: create_forbidden_for_cars_cube  2108.5 -1080.59  4.73  2128.5 -1060.59  44.73
022B: create_forbidden_for_peds_cube  2108.5 -1080.59  4.73  2128.5 -1060.59  44.73
00A0: store_actor $PLAYER_ACTOR position_to @195 @196 @197
0172: @198 = actor $PLAYER_ACTOR z_angle
092E: @195 @196  0 @200 
02CE: @199 = ground_z @195 @196 @197
00D6: if  0
0025:   @200 > @199  ;; floating-point values  
004D: jump_if_false £SMOKE2_2968
0087: @199 = @200  ;; floating-point values only

:SMOKE2_2968
04E4: unknown_refresh_game_renderer_at @126 @127
03CB: set_camera @126 @127 @128
01E8: create_forbidden_for_cars_cube  2082.91 -1107.01  4.53  2102.91 -1087.01  44.53
022B: create_forbidden_for_peds_cube  2082.91 -1107.01  4.53  2102.91 -1087.01  44.53
0395: clear_area  0 at  2092.91 -1097.01  24.53 range  20.0
00A1: put_actor $PLAYER_ACTOR at  2092.91 -1097.01 -100.0
00D6: if  0
00DF:   actor $PLAYER_ACTOR driving
004D: jump_if_false £SMOKE2_2979
00D9: @194 = actor $PLAYER_ACTOR car
0175: set_car @194 z_angle_to  242.86

:SMOKE2_2979
00D6: if  0
8119:   NOT   car @42 wrecked
004D: jump_if_false £SMOKE2_3002
00AB: put_car @42 at @126 @127 -100.0
0175: set_car @42 z_angle_to  50.74
00D6: if  0
8118:   NOT   actor @41 dead
004D: jump_if_false £SMOKE2_2993
0792: @41 
00D6: if  0
00DF:   actor @41 driving
004D: jump_if_false £SMOKE2_2992
0362: remove_actor @41 from_car_and_place_at  2115.98 -1059.43  24.75

:SMOKE2_2992
0430: @41 @42  0 

:SMOKE2_2993
00D6: if  0
8118:   NOT   actor @43 dead
004D: jump_if_false £SMOKE2_3002
0792: @43 
00D6: if  0
00DF:   actor @43 driving
004D: jump_if_false £SMOKE2_3001
0362: remove_actor @43 from_car_and_place_at  2117.04 -1061.53  24.53

:SMOKE2_3001
036A: put_actor @43 in_car @42

:SMOKE2_3002
0001: wait  1000 ms
02A3: toggle_widescreen  1 (on)
015F: set_camera_position  2110.56 -1067.61  25.27  0.0  0.0  0.0
0160: point_camera  2114.84 -1067.77  25.63  2
00D6: if  0
8118:   NOT   actor @41 dead
004D: jump_if_false £SMOKE2_3021
05D6: clear_scmpath
05D7: add_point_to_scmpath  2121.0 -1068.03  23.82 
05D7: add_point_to_scmpath  2127.23 -1061.17  28.33 
05D7: add_point_to_scmpath  2139.74 -1066.82  34.06 
05D7: add_point_to_scmpath  2143.63 -1066.27  34.06 
05D7: add_point_to_scmpath  2157.15 -1072.39  39.48 
0615: @201 
0633: unknown_action_sequence -1 
05D8: AS_assign_scmpath to_actor -1 flags  6  0 
0616: @201 
0618: @41 @201 
061B: @201 

:SMOKE2_3021
016A: fade  1 (back)  500 ms

:SMOKE2_3022
00D6: if  0
016B:   fading
004D: jump_if_false £SMOKE2_3034
0001: wait  0 ms
00D6: if  0
8118:   NOT   actor @41 dead
004D: jump_if_false £SMOKE2_3033
00D6: if  0
0611: @41 "RUN_GANG1" 
004D: jump_if_false £SMOKE2_3033
0393: @41 "RUN_GANG1"  1.0 

:SMOKE2_3033
0002: jump £SMOKE2_3022

:SMOKE2_3034
0006: @202 =  0  ;; integer values
0006: @203 =  0  ;; integer values
0006: @181 =  1  ;; integer values
0707: unknown_bunnyjump £SMOKE2_3067 

:SMOKE2_3038
00D6: if  0
8039:   NOT   @203 ==  1  ;; integer values
004D: jump_if_false £SMOKE2_3066
0001: wait  0 ms
00D6: if  0
8118:   NOT   actor @41 dead
004D: jump_if_false £SMOKE2_3065
00D6: if  0
0611: @41 "RUN_GANG1" 
004D: jump_if_false £SMOKE2_3049
0393: @41 "RUN_GANG1"  1.0 

:SMOKE2_3049
00D6: if  0
8039:   NOT   @202 ==  1  ;; integer values
004D: jump_if_false £SMOKE2_3058
00D6: if  0
00FF:   actor @41  0 ()near_point_on_foot  2143.63 -1066.27  34.06 radius  4.0  4.0  4.0
004D: jump_if_false £SMOKE2_3058
015F: set_camera_position  2131.97 -1067.61  33.57  0.0  0.0  0.0
0160: point_camera  2137.38 -1068.03  34.43  2
0006: @202 =  1  ;; integer values

:SMOKE2_3058
00D6: if  0
8039:   NOT   @203 ==  1  ;; integer values
004D: jump_if_false £SMOKE2_3065
00D6: if  0
00FF:   actor @41  0 ()near_point_on_foot  2157.15 -1072.39  39.48 radius  6.0  6.0  4.0
004D: jump_if_false £SMOKE2_3065
0006: @203 =  1  ;; integer values

:SMOKE2_3065
0002: jump £SMOKE2_3038

:SMOKE2_3066
0006: @181 =  0  ;; integer values

:SMOKE2_3067
0701: (unknown)
016A: fade  0 ()  1000 ms

:SMOKE2_3069
00D6: if  0
016B:   fading
004D: jump_if_false £SMOKE2_3081
0001: wait  0 ms
00D6: if  0
8118:   NOT   actor @41 dead
004D: jump_if_false £SMOKE2_3080
00D6: if  0
0611: @41 "RUN_GANG1" 
004D: jump_if_false £SMOKE2_3080
0393: @41 "RUN_GANG1"  1.0 

:SMOKE2_3080
0002: jump £SMOKE2_3069

:SMOKE2_3081
04E4: unknown_refresh_game_renderer_at @195 @196
03CB: set_camera @195 @196 @199
00A1: put_actor $PLAYER_ACTOR at @195 @196 @199
00D6: if  0
00DF:   actor $PLAYER_ACTOR driving
004D: jump_if_false £SMOKE2_3090
00D9: @194 = actor $PLAYER_ACTOR car
0175: set_car @194 z_angle_to @198
0002: jump £SMOKE2_3091

:SMOKE2_3090
0173: set_actor $PLAYER_ACTOR z_angle_to @198

:SMOKE2_3091
009B: destroy_actor_instantly @41
009B: destroy_actor_instantly @43
00A6: destroy_car @42
091D:  2108.5 -1080.59  4.73  2128.5 -1060.59  44.73 
091E:  2108.5 -1080.59  4.73  2128.5 -1060.59  44.73 
091D:  2082.91 -1107.01  4.53  2102.91 -1087.01  44.53 
091E:  2082.91 -1107.01  4.53  2102.91 -1087.01  44.53 
02A3: toggle_widescreen  0 (off)
0373: set_camera_directly_behind_player
02EB: restore_camera_with_jumpcut
01B4: set_player $PLAYER_CHAR frozen_state  1 (unfrozen)
016A: fade  1 (back)  1000 ms

:SMOKE2_3103
00D6: if  0
016B:   fading
004D: jump_if_false £SMOKE2_3108
0001: wait  0 ms
0002: jump £SMOKE2_3103

:SMOKE2_3108
0051: return

:SMOKE2_3109
0871: init_jump_table @161 total_jumps  3  1 £SMOKE2_3166 jumps  0 £SMOKE2_3110  1 £SMOKE2_3128  2 £SMOKE2_3146 -1 £SMOKE2_3167 -1 £SMOKE2_3167 -1 £SMOKE2_3167 -1 £SMOKE2_3167 

:SMOKE2_3110
0209: $6896 = random_int  0  3
00D6: if  0
0038:   $6896 ==  0  ;; integer values
004D: jump_if_false £SMOKE2_3116
05AA: s@130 = 'SMO2_CA'  ;; 8-byte strings
04AF: @148 = unknown_wav_reference  35214 

:SMOKE2_3116
00D6: if  0
0038:   $6896 ==  1  ;; integer values
004D: jump_if_false £SMOKE2_3121
05AA: s@130 = 'SMO2_CB'  ;; 8-byte strings
04AF: @148 = unknown_wav_reference  35215 

:SMOKE2_3121
00D6: if  0
0038:   $6896 ==  2  ;; integer values
004D: jump_if_false £SMOKE2_3126
05AA: s@130 = 'SMO2_CC'  ;; 8-byte strings
04AF: @148 = unknown_wav_reference  35216 

:SMOKE2_3126
0006: @159 =  1  ;; integer values
0002: jump £SMOKE2_3167

:SMOKE2_3128
0209: $6896 = random_int  0  3
00D6: if  0
0038:   $6896 ==  0  ;; integer values
004D: jump_if_false £SMOKE2_3134
05AA: s@130 = 'SMO2_DA'  ;; 8-byte strings
04AF: @148 = unknown_wav_reference  35217 

:SMOKE2_3134
00D6: if  0
0038:   $6896 ==  1  ;; integer values
004D: jump_if_false £SMOKE2_3139
05AA: s@130 = 'SMO2_DB'  ;; 8-byte strings
04AF: @148 = unknown_wav_reference  35218 

:SMOKE2_3139
00D6: if  0
0038:   $6896 ==  2  ;; integer values
004D: jump_if_false £SMOKE2_3144
05AA: s@130 = 'SMO2_DC'  ;; 8-byte strings
04AF: @148 = unknown_wav_reference  35219 

:SMOKE2_3144
0006: @159 =  1  ;; integer values
0002: jump £SMOKE2_3167

:SMOKE2_3146
05AA: s@130 = 'SMO2_BA'  ;; 8-byte strings
04AF: @148 = unknown_wav_reference  35203 
05AA: s@132 = 'SMO2_BB'  ;; 8-byte strings
04AF: @149 = unknown_wav_reference  35204 
05AA: s@134 = 'SMO2_BC'  ;; 8-byte strings
04AF: @150 = unknown_wav_reference  35205 
05AA: s@136 = 'SMO2_BD'  ;; 8-byte strings
04AF: @151 = unknown_wav_reference  35206 
05AA: s@138 = 'SMO2_BE'  ;; 8-byte strings
04AF: @152 = unknown_wav_reference  35207 
05AA: s@140 = 'SMO2_BF'  ;; 8-byte strings
04AF: @153 = unknown_wav_reference  35208 
05AA: s@142 = 'SMO2_BG'  ;; 8-byte strings
04AF: @154 = unknown_wav_reference  35209 
05AA: s@144 = 'SMO2_BH'  ;; 8-byte strings
04AF: @155 = unknown_wav_reference  35210 
05AA: s@146 = 'SMO2_BJ'  ;; 8-byte strings
04AF: @156 = unknown_wav_reference  35211 
0006: @159 =  9  ;; integer values
0002: jump £SMOKE2_3167

:SMOKE2_3166
0002: jump £SMOKE2_3167

:SMOKE2_3167
0006: @157 =  0  ;; integer values
0006: @158 =  0  ;; integer values
0006: @160 =  0  ;; integer values
040D: unload_wav  1
00BE: text_clear_all
0051: return

:SMOKE2_3173
00D6: if  21
0039:   @157 ==  0  ;; integer values
0039:   @157 ==  1  ;; integer values
004D: jump_if_false £SMOKE2_3184
00D6: if  0
001D:   @159 > @158  ;; integer values  
004D: jump_if_false £SMOKE2_3184
00D6: if  0
0019:   @33 >  200  ;; integer values
004D: jump_if_false £SMOKE2_3184
0050: gosub £SMOKE2_3196

:SMOKE2_3184
00D6: if  0
0039:   @157 ==  2  ;; integer values
004D: jump_if_false £SMOKE2_3195
00D6: if  0
03D2:   wav  1 ended
004D: jump_if_false £SMOKE2_3195
0006: @157 =  0  ;; integer values
000A: @158 +=  1  ;; integer values
0006: @160 =  0  ;; integer values
00BE: text_clear_all
0006: @33 =  0  ;; integer values

:SMOKE2_3195
0051: return

:SMOKE2_3196
00D6: if  0
0039:   @157 ==  0  ;; integer values
004D: jump_if_false £SMOKE2_3201
03CF: load_wav @148(@158,9i) as  1
0006: @157 =  1  ;; integer values

:SMOKE2_3201
00D6: if  0
0039:   @157 ==  1  ;; integer values
004D: jump_if_false £SMOKE2_3210
00D6: if  0
03D0:   wav  1 loaded
004D: jump_if_false £SMOKE2_3210
00BC: text_highpriority @130(@158,9s)  10000 ms  1
03D1: play_wav  1
0006: @157 =  2  ;; integer values

:SMOKE2_3210
0051: return

:SMOKE2_3211
040D: unload_wav  2
0871: init_jump_table @129 total_jumps  5  1 £SMOKE2_3223 jumps  0 £SMOKE2_3213  1 £SMOKE2_3215  2 £SMOKE2_3217  3 £SMOKE2_3219  4 £SMOKE2_3221 -1 £SMOKE2_3224 -1 £SMOKE2_3224 

:SMOKE2_3213
03CF: load_wav  35800 as  2
0002: jump £SMOKE2_3224

:SMOKE2_3215
03CF: load_wav  35801 as  2
0002: jump £SMOKE2_3224

:SMOKE2_3217
03CF: load_wav  35802 as  2
0002: jump £SMOKE2_3224

:SMOKE2_3219
03CF: load_wav  35803 as  2
0002: jump £SMOKE2_3224

:SMOKE2_3221
03CF: load_wav  35804 as  2
0002: jump £SMOKE2_3224

:SMOKE2_3223
0002: jump £SMOKE2_3224

:SMOKE2_3224
0968: $PLAYER_ACTOR 
040D: unload_wav  1

:SMOKE2_3226
00D6: if  0
83D0:   NOT   wav  2 loaded
004D: jump_if_false £SMOKE2_3244
0001: wait  0 ms
00D6: if  21
0118:   actor @35 dead
0119:   car @34 wrecked
004D: jump_if_false £SMOKE2_3235
0051: return

:SMOKE2_3235
00D6: if  0
8039:   NOT   @167 ==  1  ;; integer values
004D: jump_if_false £SMOKE2_3243
00D6: if  0
0214:   pickup @40 picked_up
004D: jump_if_false £SMOKE2_3243
0164: disable_marker @186
0006: @167 =  1  ;; integer values

:SMOKE2_3243
0002: jump £SMOKE2_3226

:SMOKE2_3244
03D1: play_wav  2
0871: init_jump_table @129 total_jumps  5  1 £SMOKE2_3256 jumps  0 £SMOKE2_3246  1 £SMOKE2_3248  2 £SMOKE2_3250  3 £SMOKE2_3252  4 £SMOKE2_3254 -1 £SMOKE2_3257 -1 £SMOKE2_3257 

:SMOKE2_3246
00BC: text_highpriority 'SMOX_AA'  3000 ms  1
0002: jump £SMOKE2_3257

:SMOKE2_3248
00BC: text_highpriority 'SMOX_AB'  3000 ms  1
0002: jump £SMOKE2_3257

:SMOKE2_3250
00BC: text_highpriority 'SMOX_AC'  3000 ms  1
0002: jump £SMOKE2_3257

:SMOKE2_3252
00BC: text_highpriority 'SMOX_AD'  3000 ms  1
0002: jump £SMOKE2_3257

:SMOKE2_3254
00BC: text_highpriority 'SMOX_AE'  3000 ms  1
0002: jump £SMOKE2_3257

:SMOKE2_3256
0002: jump £SMOKE2_3257

:SMOKE2_3257
00D6: if  0
83D2:   NOT   wav  2 ended
004D: jump_if_false £SMOKE2_3275
0001: wait  0 ms
00D6: if  21
0118:   actor @35 dead
0119:   car @34 wrecked
004D: jump_if_false £SMOKE2_3266
0051: return

:SMOKE2_3266
00D6: if  0
8039:   NOT   @167 ==  1  ;; integer values
004D: jump_if_false £SMOKE2_3274
00D6: if  0
0214:   pickup @40 picked_up
004D: jump_if_false £SMOKE2_3274
0164: disable_marker @186
0006: @167 =  1  ;; integer values

:SMOKE2_3274
0002: jump £SMOKE2_3257

:SMOKE2_3275
000A: @129 +=  1  ;; integer values
00D6: if  0
0019:   @129 >  4  ;; integer values
004D: jump_if_false £SMOKE2_3280
0006: @129 =  0  ;; integer values

:SMOKE2_3280
0051: return

:SMOKE2_3281
00BA: text_styled 'M_FAIL'  5000 ms  1
0004: $29 =  1  ;; integer values  
00A6: destroy_car @11  
0001: wait  2000 ms
0002: jump £LABEL11
0051: return

:SMOKE2_3284
0008: $SMOKES_MISSIONS_PASSED +=  1  ;; integer values
0318: set_latest_mission_passed 'SMOKE_2'
030C: set_mission_points +=  1
01E3: text_1number_styled 'M_PASSR'  3  5000 ms  1
0998: add_respect  3 
0110: clear_player $PLAYER_CHAR wanted_level
0394: play_music  1  
$flag2 = 0  
00A6: destroy_car @11  
0001: wait  2000 ms  

0002: jump £LABEL11
0051: return

:SMOKE2_3292
0249: release_model  108
0249: release_model  109
0249: release_model  110
0249: release_model  466
0249: release_model  405
0249: release_model  346
0249: release_model  352
0296: unload_special_actor  1
034F: destroy_actor_with_fade @35  ;; The actor fades away like a ghost
0215: destroy_pickup @40
0164: disable_marker @186
0164: disable_marker @183
0164: disable_marker @184
0164: disable_marker @185
061B: @114 
061B: @115 
061B: @116 
061B: @117 
061B: @118 
061B: @121 
061B: @201 
03E6: remove_text_box
065C: unknown_create_def_entity @123  ; unknown_destroy
065C: unknown_create_def_entity @124  ; unknown_destroy
091E:  2458.5 -1410.63  24.06  2504.27 -1395.83  28.55 
091D:  2488.0 -1431.93  25.41  2528.0 -1391.93  29.41 
091D:  2252.89 -1286.37  22.25  2258.89 -1280.37  28.25 
091D:  2164.51 -1287.88  20.0  2170.88 -1267.88  30.0 
091D:  2108.5 -1080.59  4.73  2128.5 -1060.59  44.73 
091E:  2108.5 -1080.59  4.73  2128.5 -1060.59  44.73 
091D:  2082.91 -1107.01  4.53  2102.91 -1087.01  44.53 
091E:  2082.91 -1107.01  4.53  2102.91 -1087.01  44.53 
091D:  2441.38 -1405.59  15.0  2460.42 -1368.34  40.0 
091E:  2441.38 -1405.59  15.0  2460.42 -1368.34  40.0 
01EB: set_car_density_to  1.0
05D6: clear_scmpath
01BD: $184 = current_time_in_ms
0004: $ON_MISSION =  0  ;; integer values
00D8: mission_cleanup
0051: return


;-----------------------------------------------------
DEFINE EXTERNAL_SCRIPT_START PARACHUTE
; Originally: player using parachute

03A4: name_thread 'PARACH'
0004: $8275 =  0  ;; integer values
0209: @31 = random_int  0  6
0006: @11 =  10  ;; integer values
0006: @17 =  0  ;; integer values
0006: @12 =  0  ;; integer values
0004: $8289 =  0  ;; integer values
00D6: if  0
0039:   @12 ==  100  ;; integer values
004D: jump_if_false £PARACH_13
0213: @0 = create_pickup -190 type  3 at  32.1527  2239.726  125.672
009A: @8 = create_actor  4  61 at  32.1527  2239.726  125.672

:PARACH_13
00D6: if  0
8118:   NOT   actor @8 dead
004D: jump_if_false £PARACH_17
0819: @8 @30 

:PARACH_17
0001: wait  0 ms
008A: $8290 = @17  ;; integer values and handles
00D6: if  0
0038:   $8289 ==  2  ;; integer values
004D: jump_if_false £PARACH_26
00D6: if  0
07D6: @8 $PLAYER_ACTOR 
004D: jump_if_false £PARACH_26
0050: gosub £PARACH_693

:PARACH_26
00D6: if  0
8039:   NOT   @0 == -1  ;; integer values
004D: jump_if_false £PARACH_41
00D6: if  0
0039:   @11 ==  10  ;; integer values
004D: jump_if_false £PARACH_41
00D6: if  0
8039:   NOT   @0 == -1  ;; integer values
004D: jump_if_false £PARACH_40
00D6: if  0
0214:   pickup @0 picked_up
004D: jump_if_false £PARACH_39
0006: @11 =  0  ;; integer values

:PARACH_39
0002: jump £PARACH_41

:PARACH_40
0006: @11 =  0  ;; integer values

:PARACH_41
00D6: if  0
0039:   @0 == -1  ;; integer values
004D: jump_if_false £PARACH_48
00D6: if  0
0039:   @11 ==  10  ;; integer values
004D: jump_if_false £PARACH_48
0006: @11 =  0  ;; integer values

:PARACH_48
00D6: if  0
0039:   @11 ==  0  ;; integer values
004D: jump_if_false £PARACH_55
04ED: load_animation "PARACHUTE"
0247: request_model #PARACHUTE
0247: request_model #PARA_PACK
0006: @11 =  1  ;; integer values

:PARACH_55
00D6: if  0
0039:   @11 ==  1  ;; integer values
004D: jump_if_false £PARACH_64
00D6: if  2
04EE:   animation "PARACHUTE" loaded
0248:   model #PARACHUTE available
0248:   model #PARA_PACK available
004D: jump_if_false £PARACH_64
0006: @11 =  2  ;; integer values

:PARACH_64
00D6: if  0
0039:   @11 ==  2  ;; integer values
004D: jump_if_false £PARACH_81
00D6: if  0
8118:   NOT   actor @8 dead
004D: jump_if_false £PARACH_71
00A0: store_actor @8 position_to $69 $70 $71

:PARACH_71
0107: @9 = create_object #PARACHUTE at $69 $70 $71
0107: @10 = create_object #PARA_PACK at $69 $70 $71
0750: @9  0 
00D6: if  0
8118:   NOT   actor @8 dead
004D: jump_if_false £PARACH_80
069B: @9 @8  0.0  0.0  0.0  0.0  0.0  0.0 
0453: object @10 set_rotation  90.0  90.0  90.0
070A: unknown_action_sequence @8 @10 -.11 -.05  0.0  1  16 "NULL" "NULL"  0 

:PARACH_80
0006: @11 =  3  ;; integer values

:PARACH_81
00D6: if  0
0039:   @11 ==  3  ;; integer values
004D: jump_if_false £PARACH_647
00D6: if  0
8118:   NOT   actor @8 dead
004D: jump_if_false £PARACH_647
00D6: if  0
0039:   @31 ==  0  ;; integer values
004D: jump_if_false £PARACH_97
0819: @8 @30 
00D6: if  0
0023:    5.0 > @30  ;; floating-point values
004D: jump_if_false £PARACH_96
0006: @31 =  2  ;; integer values
0002: jump £PARACH_97

:PARACH_96
0006: @31 =  5  ;; integer values

:PARACH_97
000E: @31 -=  1  ;; integer values
00D6: if  0
87D6:   NOT @8 $PLAYER_ACTOR 
004D: jump_if_false £PARACH_102
0050: gosub £PARACH_708

:PARACH_102
00D6: if  0
00DF:   actor @8 driving
004D: jump_if_false £PARACH_107
0004: $8302 =  1  ;; integer values
0002: jump £PARACH_108

:PARACH_107
0004: $8302 =  0  ;; integer values

:PARACH_108
00D6: if  0
8118:   NOT   actor @8 dead
004D: jump_if_false £PARACH_147
00D6: if  21
0818: @8 
0038:   $8302 ==  0  ;; integer values
004D: jump_if_false £PARACH_147
00D6: if  2
0039:   @17 ==  0  ;; integer values
0039:   @14 ==  0  ;; integer values
0021:   @30 >  5.0  ;; floating-point values
004D: jump_if_false £PARACH_147
00D6: if  0
0038:   $8302 ==  0  ;; integer values
004D: jump_if_false £PARACH_130
02F6: $8303 = cosine $8301  ;; sinus swapped with cosine
0069: $8303 *= $8300  ;; floating-point values
0011: $8303 *= -1.0  ;; floating-point values
02F7: $8304 = sinus $8301 ;; cosine swapped with sinus
0069: $8304 *= $8300  ;; floating-point values
083D: @8 $8276 $8276 $8276 
083C: @8 $8303 $8304 $8276 

:PARACH_130
0006: @17 =  1  ;; integer values
0004: $8275 =  1  ;; integer values
0085: @18 = @32  ;; integer values and handles
0172: @27 = actor @8 z_angle
00D6: if  0
07D6: @8 $PLAYER_ACTOR 
004D: jump_if_false £PARACH_141
0005: $8297 =  3.0  ;; floating-point values
0005: $8298 = -2.0  ;; floating-point values
0006: @16 =  0  ;; integer values
0050: gosub £PARACH_652

:PARACH_141
00D6: if  0
0039:   @7 ==  0  ;; integer values
004D: jump_if_false £PARACH_146
0812: unknown_action_sequence @8 "FALL_SKYDIVE" "PARACHUTE"  1.0  1  0  0  0 -1 
0002: jump £PARACH_147

:PARACH_146
0812: unknown_action_sequence @8 "FALL_SKYDIVE" "PARACHUTE"  1000.0  1  0  0  0 -1 

:PARACH_147
00D6: if  0
0039:   @17 ==  1  ;; integer values
004D: jump_if_false £PARACH_318
00D6: if  0
04AD: @8
004D: jump_if_false £PARACH_155
0829: unknown_action_sequence @8 "FALL_SKYDIVE_DIE" "PARACHUTE"  1000.0  0 
0006: @17 =  2  ;; integer values

:PARACH_155
00D6: if  0
0023:    3.0 > @30  ;; floating-point values
004D: jump_if_false £PARACH_160
0829: unknown_action_sequence @8 "FALL_SKYDIVE_DIE" "PARACHUTE"  1000.0  0 
0006: @17 =  2  ;; integer values

:PARACH_160
083D: @8 $8276 $8276 $8277 
00D6: if  0
0027:   @1 > $8277  ;; floating-point values only
004D: jump_if_false £PARACH_165
0088: $8277 = @1  ;; floating-point values only

:PARACH_165
008A: $8282 = @32  ;; integer values and handles
0066: $8282 -= @18  ;; integer values 
008F: @28 = integer_to_float $8282  
0017: @28 /=  2000.0  ;; floating-point values 
00D6: if  0
0021:   @28 >  1.0  ;; floating-point values
004D: jump_if_false £PARACH_173
0007: @28 =  1.0  ;; floating-point values

:PARACH_173
00D6: if  0
07D6: @8 $PLAYER_ACTOR 
004D: jump_if_false £PARACH_180
00D6: if  0
0033:    1.0 >= @28  ;; floating-point values 
004D: jump_if_false £PARACH_180
0050: gosub £PARACH_680

:PARACH_180
00D6: if  0
0043:   @28 ==  1.0  ;; floating-point values
004D: jump_if_false £PARACH_278
00D6: if  0
07D6: @8 $PLAYER_ACTOR 
004D: jump_if_false £PARACH_277
0494: get_joystick_data  0 $8282 $8283 $8284 $8284
008D: $8279 = integer_to_float $8282
0015: $8279 /=  256.0  ;; floating-point values
005D: @25 += $8279  ;; floating-point values 
0088: $8280 = @25  ;; floating-point values only
0015: $8280 /=  30.0  ;; floating-point values
00D6: if  0
0022:   -1.6 > $8280  ;; floating-point values
004D: jump_if_false £PARACH_196
0005: $8280 = -1.6  ;; floating-point values

:PARACH_196
00D6: if  0
0020:   $8280 >  1.6  ;; floating-point values
004D: jump_if_false £PARACH_200
0005: $8280 =  1.6  ;; floating-point values

:PARACH_200
0065: @27 -= $8280  ;; floating-point values 
00D6: if  0
0042:   $8279 ==  0.0  ;; floating-point values
004D: jump_if_false £PARACH_208
00D6: if  0
8043:   NOT   @25 ==  0.0  ;; floating-point values
004D: jump_if_false £PARACH_208
0013: @25 *=  .95  ;; floating-point values 

:PARACH_208
0088: $8278 = @26  ;; floating-point values only
0011: $8278 *=  6.0  ;; floating-point values
008D: $8281 = integer_to_float $8283
0061: $8281 -= $8278  ;; floating-point values
0015: $8281 /=  256.0  ;; floating-point values
005D: @26 += $8281  ;; floating-point values 
00D6: if  0
0023:   -30.0 > @26  ;; floating-point values
004D: jump_if_false £PARACH_218
0007: @26 = -30.0  ;; floating-point values

:PARACH_218
00D6: if  0
0021:   @26 >  30.0  ;; floating-point values
004D: jump_if_false £PARACH_222
0007: @26 =  30.0  ;; floating-point values

:PARACH_222
00D6: if  0
0042:   $8281 ==  0.0  ;; floating-point values
004D: jump_if_false £PARACH_229
00D6: if  0
8043:   NOT   @26 ==  0.0  ;; floating-point values
004D: jump_if_false £PARACH_229
0013: @26 *=  .97  ;; floating-point values 

:PARACH_229
02F6: $73 = cosine @27  ;; sinus swapped with cosine
02F7: $74 = sinus @27 ;; cosine swapped with sinus
0088: $8279 = @26  ;; floating-point values only
0015: $8279 /= -5.0  ;; floating-point values
006D: $73 *= @2  ;; floating-point values
0069: $73 *= $8279  ;; floating-point values
0011: $73 *= -1.0  ;; floating-point values
006D: $74 *= @2  ;; floating-point values
0069: $74 *= $8279  ;; floating-point values
083D: @8 $8278 $8279 $8276 
0011: $73 *= -1.0  ;; floating-point values
0059: $73 += $8278  ;; floating-point values
0011: $73 *=  .1  ;; floating-point values
0061: $8278 -= $73  ;; floating-point values
0011: $74 *= -1.0  ;; floating-point values
0059: $74 += $8279  ;; floating-point values
0011: $74 *=  .1  ;; floating-point values
0061: $8279 -= $74  ;; floating-point values
083C: @8 $8278 $8279 $8277 
083E: @8 @26  0.0 @27 
00D6: if  0
001A:   -100 > $8283  ;; integer values
004D: jump_if_false £PARACH_258
00D6: if  0
8039:   NOT   @15 ==  4  ;; integer values
004D: jump_if_false £PARACH_257
0006: @15 =  4  ;; integer values
0812: unknown_action_sequence @8 "FALL_SKYDIVE_ACCEL" "PARACHUTE"  1.0  1  0  0  1 -2 

:PARACH_257
0002: jump £PARACH_276

:PARACH_258
00D6: if  1
0038:   $8282 ==  0  ;; integer values
8039:   NOT   @15 ==  0  ;; integer values
004D: jump_if_false £PARACH_264
0006: @15 =  0  ;; integer values
0812: unknown_action_sequence @8 "FALL_SKYDIVE" "PARACHUTE"  1.0  1  0  0  1 -2 

:PARACH_264
00D6: if  1
001A:    0 > $8282  ;; integer values
8039:   NOT   @15 == -1  ;; integer values
004D: jump_if_false £PARACH_270
0006: @15 = -1  ;; integer values
0812: unknown_action_sequence @8 "FALL_SKYDIVE_L" "PARACHUTE"  1.0  1  0  0  1 -2 

:PARACH_270
00D6: if  1
0018:   $8282 >  0  ;; integer values
8039:   NOT   @15 ==  1  ;; integer values
004D: jump_if_false £PARACH_276
0006: @15 =  1  ;; integer values
0812: unknown_action_sequence @8 "FALL_SKYDIVE_R" "PARACHUTE"  1.0  1  0  0  1 -2 

:PARACH_276
0002: jump £PARACH_278

:PARACH_277
083C: @8  0.0  0.0 @1 

:PARACH_278
00D6: if  21
00E1:   key_pressed  0  17
0038:   $8299 ==  1  ;; integer values
004D: jump_if_false £PARACH_301
00D6: if  0
8038:   NOT   $8299 ==  2  ;; integer values
004D: jump_if_false £PARACH_301
00D6: if  0
07D6: @8 $PLAYER_ACTOR 
004D: jump_if_false £PARACH_301
0006: @17 =  0  ;; integer values
0006: @15 =  0  ;; integer values
0006: @14 =  1  ;; integer values
0750: @9  1 
0001: wait  0 ms
00D6: if  0
8118:   NOT   actor @8 dead
004D: jump_if_false £PARACH_301
0812: unknown_action_sequence @8 "PARA_OPEN" "PARACHUTE"  1000.0  0  0  0  1 -2 
075A: @9 "PARA_OPEN_O" "PARACHUTE"  1000.0  0  1 
083D: @8 $8276 $8276 @24 
0088: $8288 = @24  ;; floating-point values only
0009: $8288 +=  5.0  ;; floating-point values

:PARACH_301
00D6: if  1
0039:   @12 ==  1  ;; integer values
87D6:   NOT @8 $PLAYER_ACTOR 
004D: jump_if_false £PARACH_318
0006: @17 =  0  ;; integer values
0006: @15 =  0  ;; integer values
0006: @14 =  1  ;; integer values
0750: @9  1 
0001: wait  0 ms
00D6: if  0
8118:   NOT   actor @8 dead
004D: jump_if_false £PARACH_318
0812: unknown_action_sequence @8 "PARA_OPEN" "PARACHUTE"  1000.0  0  0  0  1 -2 
075A: @9 "PARA_OPEN_O" "PARACHUTE"  1000.0  0  1 
083D: @8 $8276 $8276 @24 
0088: $8288 = @24  ;; floating-point values only
0009: $8288 +=  5.0  ;; floating-point values

:PARACH_318
00D6: if  0
0039:   @14 ==  1  ;; integer values
004D: jump_if_false £PARACH_399
00D6: if  0
8118:   NOT   actor @8 dead
004D: jump_if_false £PARACH_395
00D6: if  0
0611: @8 "PARA_OPEN" 
004D: jump_if_false £PARACH_395
0613: @8 "PARA_OPEN" $8274 
00A0: store_actor @8 position_to $69 $70 $71
0011: $8274 *=  2.0  ;; floating-point values
000D: $8274 -=  .5  ;; floating-point values
00D6: if  0
0020:   $8274 >  1.0  ;; floating-point values
004D: jump_if_false £PARACH_335
0005: $8274 =  1.0  ;; floating-point values

:PARACH_335
00D6: if  0
0022:    0.0 > $8274  ;; floating-point values
004D: jump_if_false £PARACH_339
0005: $8274 =  0.0  ;; floating-point values

:PARACH_339
00D6: if  1
0032:    .25 >= $8274  ;; floating-point values
07D6: @8 $PLAYER_ACTOR 
004D: jump_if_false £PARACH_353
0005: $8297 = -2.0  ;; floating-point values
0005: $8298 = -2.0  ;; floating-point values
0089: @28 = $8274  ;; floating-point values only
0013: @28 *=  4.0  ;; floating-point values 
00D6: if  0
0039:   @16 ==  1  ;; integer values
004D: jump_if_false £PARACH_352
0006: @16 =  2  ;; integer values
0050: gosub £PARACH_652

:PARACH_352
0050: gosub £PARACH_680

:PARACH_353
00D6: if  1
0020:   $8274 >  .25  ;; floating-point values
07D6: @8 $PLAYER_ACTOR 
004D: jump_if_false £PARACH_368
0005: $8297 =  5.0  ;; floating-point values
0005: $8298 = -5.0  ;; floating-point values
0089: @28 = $8274  ;; floating-point values only
000F: @28 -=  .25  ;; floating-point values
0013: @28 *=  1.333  ;; floating-point values 
00D6: if  0
0039:   @16 ==  2  ;; integer values
004D: jump_if_false £PARACH_367
0006: @16 =  3  ;; integer values
0050: gosub £PARACH_652

:PARACH_367
0050: gosub £PARACH_680

:PARACH_368
0086: $8276 = $8288  ;; floating-point values only
0069: $8276 *= $8274  ;; floating-point values
0011: $8276 *= -1.0  ;; floating-point values
005F: $8276 += @24  ;; floating-point values 
083D: @8 $8278 $8279 $8277 
02F6: $73 = cosine @27  ;; sinus swapped with cosine
02F7: $74 = sinus @27 ;; cosine swapped with sinus
006D: $73 *= @5  ;; floating-point values
0011: $73 *= -1.0  ;; floating-point values
006D: $74 *= @5  ;; floating-point values
0011: $73 *= -1.0  ;; floating-point values
0059: $73 += $8278  ;; floating-point values
0011: $73 *=  .01  ;; floating-point values
0061: $8278 -= $73  ;; floating-point values
0011: $74 *= -1.0  ;; floating-point values
0059: $74 += $8279  ;; floating-point values
0011: $74 *=  .01  ;; floating-point values
0061: $8279 -= $74  ;; floating-point values
083C: @8 $8278 $8279 $8276 
00D6: if  0
0042:   $8274 ==  1.0  ;; floating-point values
004D: jump_if_false £PARACH_395
0812: unknown_action_sequence @8 "PARA_FLOAT" "PARACHUTE"  2.0  1  0  0  1 -2 
075A: @9 "PARA_FLOAT_O" "PARACHUTE"  2.0  1  1 
0006: @14 =  2  ;; integer values
0089: @29 = $8276  ;; floating-point values only
0007: @25 =  0.0  ;; floating-point values

:PARACH_395
00D6: if  0
0023:    3.0 > @30  ;; floating-point values
004D: jump_if_false £PARACH_399
0006: @14 =  3  ;; integer values

:PARACH_399
00D6: if  0
0039:   @14 ==  2  ;; integer values
004D: jump_if_false £PARACH_625
00D6: if  1
8039:   NOT   @13 ==  5  ;; integer values
04AD: @8
004D: jump_if_false £PARACH_407
0006: @13 =  4  ;; integer values

:PARACH_407
00D6: if  0
0039:   @13 ==  0  ;; integer values
004D: jump_if_false £PARACH_519
02F6: $73 = cosine @27  ;; sinus swapped with cosine
02F7: $74 = sinus @27 ;; cosine swapped with sinus
0004: $8284 =  0  ;; integer values
0004: $8285 =  0  ;; integer values
00D6: if  0
07D6: @8 $PLAYER_ACTOR 
004D: jump_if_false £PARACH_419
0494: get_joystick_data  0 $8282 $8283 $8284 $8285
0002: jump £PARACH_422

:PARACH_419
008A: $8282 = @22  ;; integer values and handles
0004: $8283 =  0  ;; integer values
0004: $8284 =  0  ;; integer values

:PARACH_422
00D6: if  1
8038:   NOT   $8284 ==  0  ;; integer values
8038:   NOT   $8285 ==  0  ;; integer values
004D: jump_if_false £PARACH_426

:PARACH_426
00D6: if  21
0018:   $8283 >  100  ;; integer values
0039:   @12 ==  2  ;; integer values
004D: jump_if_false £PARACH_434
006D: $73 *= @6  ;; floating-point values
0011: $73 *= -1.0  ;; floating-point values
006D: $74 *= @6  ;; floating-point values
0002: jump £PARACH_437

:PARACH_434
006D: $73 *= @5  ;; floating-point values
0011: $73 *= -1.0  ;; floating-point values
006D: $74 *= @5  ;; floating-point values

:PARACH_437
0084: $8285 = $8283  ;; integer values and handles
083E: @8  0.0 @25 @27 
00D6: if  0
0021:   @30 >  3.0  ;; floating-point values
004D: jump_if_false £PARACH_498
008D: $8281 = integer_to_float $8282
0015: $8281 /=  128.0  ;; floating-point values
005D: @25 += $8281  ;; floating-point values 
00D6: if  0
0021:   @25 >  45.0  ;; floating-point values
004D: jump_if_false £PARACH_449
0007: @25 =  45.0  ;; floating-point values

:PARACH_449
00D6: if  0
0023:   -45.0 > @25  ;; floating-point values
004D: jump_if_false £PARACH_453
0007: @25 = -45.0  ;; floating-point values

:PARACH_453
0088: $8280 = @25  ;; floating-point values only
0015: $8280 /=  15.0  ;; floating-point values
0065: @27 -= $8280  ;; floating-point values 
00D6: if  0
0042:   $8281 ==  0.0  ;; floating-point values
004D: jump_if_false £PARACH_463
00D6: if  0
8043:   NOT   @25 ==  0.0  ;; floating-point values
004D: jump_if_false £PARACH_463
0013: @25 *=  .95  ;; floating-point values 

:PARACH_463
083E: @8  0.0 @25 @27 
00D6: if  21
0018:   $8283 >  100  ;; integer values
0039:   @12 ==  2  ;; integer values
004D: jump_if_false £PARACH_476
0088: $75 = @4  ;; floating-point values only
00D6: if  0
8039:   NOT   @15 ==  4  ;; integer values
004D: jump_if_false £PARACH_475
0006: @15 =  4  ;; integer values
0812: unknown_action_sequence @8 "PARA_DECEL" "PARACHUTE"  1.0  1  0  0  1 -2 
075A: @9 "PARA_DECEL_O" "PARACHUTE"  1.0  1  1 

:PARACH_475
0002: jump £PARACH_498

:PARACH_476
0088: $75 = @3  ;; floating-point values only
00D6: if  1
0042:   $8281 ==  0.0  ;; floating-point values
8039:   NOT   @15 ==  0  ;; integer values
004D: jump_if_false £PARACH_484
0006: @15 =  0  ;; integer values
0812: unknown_action_sequence @8 "PARA_FLOAT" "PARACHUTE"  1.0  1  0  0  1 -2 
075A: @9 "PARA_FLOAT_O" "PARACHUTE"  1.0  1  1 

:PARACH_484
00D6: if  1
0022:    0.0 > $8281  ;; floating-point values
8039:   NOT   @15 == -1  ;; integer values
004D: jump_if_false £PARACH_491
0006: @15 = -1  ;; integer values
0812: unknown_action_sequence @8 "PARA_STEERL" "PARACHUTE"  1.0  1  0  0  1 -2 
075A: @9 "PARA_STEERL_O" "PARACHUTE"  1.0  1  1 

:PARACH_491
00D6: if  1
0020:   $8281 >  0.0  ;; floating-point values
8039:   NOT   @15 ==  1  ;; integer values
004D: jump_if_false £PARACH_498
0006: @15 =  1  ;; integer values
0812: unknown_action_sequence @8 "PARA_STEERR" "PARACHUTE"  1.0  1  0  0  1 -2 
075A: @9 "PARA_STEERR_O" "PARACHUTE"  1.0  1  1 

:PARACH_498
083D: @8 $8278 $8279 $8276 
0011: $73 *= -1.0  ;; floating-point values
0059: $73 += $8278  ;; floating-point values
0011: $73 *=  .1  ;; floating-point values
0061: $8278 -= $73  ;; floating-point values
0011: $74 *= -1.0  ;; floating-point values
0059: $74 += $8279  ;; floating-point values
0011: $74 *=  .1  ;; floating-point values
0061: $8279 -= $74  ;; floating-point values
0011: $75 *= -1.0  ;; floating-point values
005F: $75 += @29  ;; floating-point values 
0011: $75 *=  .2  ;; floating-point values
0088: $8276 = @29  ;; floating-point values only
0061: $8276 -= $75  ;; floating-point values
0089: @29 = $8276  ;; floating-point values only
083C: @8 $8278 $8279 $8276 
0069: $8278 *= $8278  ;; floating-point values
0069: $8279 *= $8279  ;; floating-point values
0086: $8280 = $8278  ;; floating-point values only
0059: $8280 += $8279  ;; floating-point values
01FB: $8280 = square_root $8280

:PARACH_519
00D6: if  0
0023:    3.0 > @30  ;; floating-point values
004D: jump_if_false £PARACH_554
0173: set_actor @8 z_angle_to @27
0007: @25 =  0.0  ;; floating-point values
02F6: $73 = cosine @27  ;; sinus swapped with cosine
02F7: $74 = sinus @27 ;; cosine swapped with sinus
006D: $73 *= @6  ;; floating-point values
0011: $73 *= -1.0  ;; floating-point values
006D: $74 *= @6  ;; floating-point values
083C: @8 $73 $74 -2.0 
00D6: if  0
0039:   @13 ==  0  ;; integer values
004D: jump_if_false £PARACH_542
0006: @13 =  1  ;; integer values
0812: unknown_action_sequence @8 "PARA_DECEL" "PARACHUTE"  4.0  1  0  0  1 -2 
075A: @9 "PARA_DECEL_O" "PARACHUTE"  4.0  1  1 
00D6: if  0
07D6: @8 $PLAYER_ACTOR 
004D: jump_if_false £PARACH_542
0086: $8297 = $8292  ;; floating-point values only
0086: $8298 = $8291  ;; floating-point values only
0050: gosub £PARACH_652

:PARACH_542
00D6: if  1
0039:   @13 ==  1  ;; integer values
07D6: @8 $PLAYER_ACTOR 
004D: jump_if_false £PARACH_554
0007: @28 =  3.0  ;; floating-point values
0063: @28 -= @30  ;; floating-point values 
0013: @28 *=  .75  ;; floating-point values 
00D6: if  0
0021:   @28 >  1.0  ;; floating-point values
004D: jump_if_false £PARACH_553
0007: @28 =  1.0  ;; floating-point values

:PARACH_553
0050: gosub £PARACH_680

:PARACH_554
00D6: if  1
0023:    1.5 > @30  ;; floating-point values
0039:   @13 ==  1  ;; integer values
004D: jump_if_false £PARACH_561
0006: @13 =  2  ;; integer values
0812: unknown_action_sequence @8 "PARA_LAND" "PARACHUTE"  1000.0  0  1  0  1 -2 
075A: @9 "PARA_LAND_O" "PARACHUTE"  1000.0  0  1 

:PARACH_561
00D6: if  0
0039:   @13 ==  2  ;; integer values
004D: jump_if_false £PARACH_595
00D6: if  0
0611: @8 "PARA_LAND" 
004D: jump_if_false £PARACH_595
0613: @8 "PARA_LAND" $8274 
00D6: if  0
0042:   $8274 ==  1.0  ;; floating-point values
004D: jump_if_false £PARACH_595
0108: destroy_object @9
0108: destroy_object @10
04A5: unknown_store_dead_actor @8 position_to $69 $70 $71
00D6: if  0
8039:   NOT   @0 == -1  ;; integer values
004D: jump_if_false £PARACH_578
0215: destroy_pickup @0

:PARACH_578
05B9: unknown_action_sequence @8  1 
0792: @8 
0006: @14 =  3  ;; integer values
083E: @8  0.0  0.0  0.0 
0173: set_actor @8 z_angle_to @27
00A0: store_actor @8 position_to $69 $70 $71
00D6: if  0
07D6: @8 $PLAYER_ACTOR 
004D: jump_if_false £PARACH_588
0004: $8289 =  1  ;; integer values

:PARACH_588
00D6: if  0
0038:   $ON_MISSION ==  1  ;; integer values
004D: jump_if_false £PARACH_592
0050: gosub £PARACH_693

:PARACH_592
0006: @0 =  0  ;; integer values
0213: @0 = create_pickup -190 type  3 at $69 $70 $71
0006: @13 =  3  ;; integer values

:PARACH_595
00D6: if  0
0039:   @13 ==  4  ;; integer values
004D: jump_if_false £PARACH_602
0812: unknown_action_sequence @8 "PARA_LAND_WATER" "PARACHUTE"  1000.0  0  1  0  1 -2 
075A: @9 "PARA_LAND_WATER_O" "PARACHUTE"  1.0  0  1 
0006: @13 =  5  ;; integer values
0005: $8274 =  0.0  ;; floating-point values

:PARACH_602
00D6: if  0
0039:   @13 ==  5  ;; integer values
004D: jump_if_false £PARACH_625
00D6: if  0
0611: @8 "PARA_LAND_WATER" 
004D: jump_if_false £PARACH_609
0613: @8 "PARA_LAND_WATER" $8274 

:PARACH_609
00D6: if  0
0042:   $8274 ==  1.0  ;; floating-point values
004D: jump_if_false £PARACH_625
00D6: if  0
07D6: @8 $PLAYER_ACTOR 
004D: jump_if_false £PARACH_616
0004: $8289 =  1  ;; integer values

:PARACH_616
0108: destroy_object @9
0108: destroy_object @10
0006: @13 =  3  ;; integer values
05B9: unknown_action_sequence @8  1 
0792: @8 
0006: @14 =  3  ;; integer values
083E: @8  0.0  0.0  0.0 
0173: set_actor @8 z_angle_to @27
00A0: store_actor @8 position_to $69 $70 $71

:PARACH_625
00D6: if  1
0039:   @14 ==  3  ;; integer values
0039:   @13 ==  0  ;; integer values
004D: jump_if_false £PARACH_632
075A: @9 "PARA_LAND_O" "PARACHUTE"  1.0  0  1 
0829: unknown_action_sequence @8 "FALL_SKYDIVE_DIE" "PARACHUTE"  1000.0  0 
0006: @13 =  1  ;; integer values

:PARACH_632
00D6: if  0
0039:   @14 ==  3  ;; integer values
004D: jump_if_false £PARACH_647
00D6: if  0
0214:   pickup @0 picked_up
004D: jump_if_false £PARACH_643
0006: @11 =  10  ;; integer values
0006: @17 =  0  ;; integer values
0006: @14 =  0  ;; integer values
0006: @7 =  0  ;; integer values
0006: @13 =  0  ;; integer values

:PARACH_643
00D6: if  0
80FE:   NOT   actor @8  0 ()near_point $69 $70 $71 radius  50.0  50.0  50.0
004D: jump_if_false £PARACH_647
0002: jump £PARACH_693

:PARACH_647
00D6: if  0
0118:   actor @8 dead
004D: jump_if_false £PARACH_651
0002: jump £PARACH_693

:PARACH_651
0002: jump £PARACH_17

:PARACH_652
068D: $73 $74 $75 
00A0: store_actor @8 position_to $69 $70 $71
0086: $8278 = $69  ;; floating-point values only
0061: $8278 -= $73  ;; floating-point values
0086: $8279 = $70  ;; floating-point values only
0061: $8279 -= $74  ;; floating-point values
0086: $8293 = $75  ;; floating-point values only
0061: $8293 -= $71  ;; floating-point values
0086: $8276 = $8278  ;; floating-point values only
0069: $8276 *= $8278  ;; floating-point values
0086: $8277 = $8279  ;; floating-point values only
0069: $8277 *= $8279  ;; floating-point values
0086: $8294 = $8276  ;; floating-point values only
0059: $8294 += $8277  ;; floating-point values
0011: $8294 *= -1.0  ;; floating-point values
01FB: $8294 = square_root $8294
0086: $8295 = $8297  ;; floating-point values only
0061: $8295 -= $8293  ;; floating-point values
0011: $8294 *= -1.0  ;; floating-point values
0086: $8296 = $8298  ;; floating-point values only
0061: $8296 -= $8294  ;; floating-point values
00D6: if  0
0039:   @16 ==  0  ;; integer values
004D: jump_if_false £PARACH_679
0006: @16 =  1  ;; integer values
0086: $8291 = $8294  ;; floating-point values only
0086: $8292 = $8293  ;; floating-point values only

:PARACH_679
0051: return

:PARACH_680
00A0: store_actor @8 position_to $69 $70 $71
0088: $8278 = @28  ;; floating-point values only
0011: $8278 *=  180.0  ;; floating-point values
02F7: $8278 = sinus $8278 ;; cosine swapped with sinus
000D: $8278 -=  1.0  ;; floating-point values
0011: $8278 *= -.5  ;; floating-point values
0086: $75 = $8295  ;; floating-point values only
0069: $75 *= $8278  ;; floating-point values
0059: $75 += $8293  ;; floating-point values
0086: $74 = $8296  ;; floating-point values only
0069: $74 *= $8278  ;; floating-point values
0059: $74 += $8294  ;; floating-point values
0051: return

:PARACH_693
04EF: release_animation "PARACHUTE"
0249: release_model #PARACHUTE
0249: release_model #PARA_PACK
00D6: if  0
8039:   NOT   @0 == -1  ;; integer values
004D: jump_if_false £PARACH_700
0215: destroy_pickup @0

:PARACH_700
0108: destroy_object @9
0108: destroy_object @10
00D6: if  0
07D6: @8 $PLAYER_ACTOR 
004D: jump_if_false £PARACH_706
0004: $8299 =  0  ;; integer values

:PARACH_706
004E: end_thread
0051: return

:PARACH_708
00A0: store_actor @8 position_to $69 $70 $71
0086: $73 = $8271  ;; floating-point values only
0061: $73 -= $69  ;; floating-point values
0086: $74 = $8272  ;; floating-point values only
0061: $74 -= $70  ;; floating-point values
0086: $75 = $71  ;; floating-point values only
0061: $75 -= $8273  ;; floating-point values
00D6: if  0
0039:   @17 ==  1  ;; integer values
004D: jump_if_false £PARACH_731
0069: $73 *= $73  ;; floating-point values
0069: $74 *= $74  ;; floating-point values
0059: $73 += $74  ;; floating-point values
01FB: $73 = square_root $73
0086: $8276 = $75  ;; floating-point values only
0071: $8276 /= $73  ;; floating-point values
0088: $8277 = @3  ;; floating-point values only
0075: $8277 /= @5  ;; floating-point values 
0011: $8277 *= -1.2  ;; floating-point values
00D6: if  0
0024:   $8277 > $8276  ;; floating-point values only
004D: jump_if_false £PARACH_731
0006: @12 =  1  ;; integer values

:PARACH_731
00D6: if  0
0039:   @14 ==  2  ;; integer values
004D: jump_if_false £PARACH_816
0604: $73 $74 @20 
0172: @19 = actor @8 z_angle
000F: @3 -=  1.0  ;; floating-point values
000F: @4 -=  1.0  ;; floating-point values
0087: @21 = @20  ;; floating-point values only
0063: @21 -= @19  ;; floating-point values 
00D6: if  0
001D:   @32 > @23  ;; integer values  
004D: jump_if_false £PARACH_789
0085: @23 = @32  ;; integer values and handles
000A: @23 +=  3000  ;; integer values
0208: $8286 = random_float -20.0  0.0
0208: $8287 = random_float  0.0  20.0
0069: $73 *= $73  ;; floating-point values
0069: $74 *= $74  ;; floating-point values
0059: $73 += $74  ;; floating-point values
01FB: $73 = square_root $73
0086: $8277 = $73  ;; floating-point values only
0075: $8277 /= @5  ;; floating-point values 
0086: $8276 = $75  ;; floating-point values only
0071: $8276 /= $8277  ;; floating-point values
0088: $8277 = @3  ;; floating-point values only
005F: $8277 += @4  ;; floating-point values 
0015: $8277 /=  2.0  ;; floating-point values
0088: $8278 = @3  ;; floating-point values only
0067: $8278 -= @4  ;; floating-point values
0015: $8278 /=  4.0  ;; floating-point values
0059: $8278 += $8277  ;; floating-point values
0088: $8279 = @3  ;; floating-point values only
0067: $8279 -= @4  ;; floating-point values
0015: $8279 /= -4.0  ;; floating-point values
0059: $8279 += $8277  ;; floating-point values
0011: $8278 *= -1.0  ;; floating-point values
0011: $8279 *= -1.0  ;; floating-point values
00D6: if  1
0024:   $8278 > $8276  ;; floating-point values only
0024:   $8276 > $8279  ;; floating-point values only
004D: jump_if_false £PARACH_781
0209: $8282 = random_int  0  2
00D6: if  0
0038:   $8282 ==  0  ;; integer values
004D: jump_if_false £PARACH_777
0006: @12 =  2  ;; integer values

:PARACH_777
00D6: if  0
0038:   $8282 ==  1  ;; integer values
004D: jump_if_false £PARACH_781
0006: @12 =  0  ;; integer values

:PARACH_781
00D6: if  0
0034:   $8276 >= $8278  ;; floating-point values 
004D: jump_if_false £PARACH_785
0006: @12 =  0  ;; integer values

:PARACH_785
00D6: if  0
0034:   $8279 >= $8276  ;; floating-point values 
004D: jump_if_false £PARACH_789
0006: @12 =  2  ;; integer values

:PARACH_789
00D6: if  21
0026:   $8286 > @21  ;; floating-point values 
0027:   @21 > $8287  ;; floating-point values only
004D: jump_if_false £PARACH_813
00D6: if  0
0023:   -180.0 > @21  ;; floating-point values
004D: jump_if_false £PARACH_797
000B: @21 +=  360.0  ;; floating-point values

:PARACH_797
00D6: if  0
0021:   @21 >  180.0  ;; floating-point values
004D: jump_if_false £PARACH_801
000F: @21 -=  360.0  ;; floating-point values

:PARACH_801
0017: @21 /=  180.0  ;; floating-point values 
00D6: if  0
0021:   @21 >  1.0  ;; floating-point values
004D: jump_if_false £PARACH_806
0007: @21 =  1.0  ;; floating-point values

:PARACH_806
00D6: if  0
0023:   -1.0 > @21  ;; floating-point values
004D: jump_if_false £PARACH_810
0007: @21 = -1.0  ;; floating-point values

:PARACH_810
0013: @21 *= -128.0  ;; floating-point values 
0092: @22 = float_to_integer @21  
0002: jump £PARACH_814

:PARACH_813
0006: @22 =  0  ;; integer values

:PARACH_814
000B: @3 +=  1.0  ;; floating-point values
000B: @4 +=  1.0  ;; floating-point values

:PARACH_816
0051: return
004E: end_thread

;-----------------------------------------------------
DEFINE EXTERNAL_SCRIPT_START PLAYER_PARACHUTE
; Originally: npc actors with parachutes

03A4: name_thread 'PLCHUTE'
0247: request_model  371

:PLCHUTE_3
00D6: if  0
8248:   NOT   model  371 available
004D: jump_if_false £PLCHUTE_8
0001: wait  0 ms
0002: jump £PLCHUTE_3

:PLCHUTE_8
00D6: if  0
8118:   NOT   actor $PLAYER_ACTOR dead
004D: jump_if_false £PLCHUTE_11

:PLCHUTE_11
0004: $1498 =  0  ;; integer values
0004: $1513 =  0  ;; integer values
0004: $1497 =  0  ;; integer values
00D6: if  0
0038:   $1498 ==  999  ;; integer values
004D: jump_if_false £PLCHUTE_18
0213: $8269 = create_pickup  371 type  3 at $69 $70 $71

:PLCHUTE_18
0001: wait  0 ms
00D6: if  0
8118:   NOT   actor $PLAYER_ACTOR dead
004D: jump_if_false £PLCHUTE_606
00D6: if  0
8800:   NOT (unknown)
004D: jump_if_false £PLCHUTE_606
00D6: if  0
8038:   NOT   $1513 ==  0  ;; integer values
004D: jump_if_false £PLCHUTE_29
0992: $PLAYER_CHAR  0 

:PLCHUTE_29
00D6: if  0
0018:   $1497 >  0  ;; integer values
004D: jump_if_false £PLCHUTE_36
00D6: if  0
8491:   NOT   actor $PLAYER_ACTOR has_weapon  46 
004D: jump_if_false £PLCHUTE_36
0050: gosub £PLCHUTE_614

:PLCHUTE_36
00D6: if  0
0038:   $1497 ==  0  ;; integer values
004D: jump_if_false £PLCHUTE_45
00D6: if  0
0491:   actor $PLAYER_ACTOR has_weapon  46 
004D: jump_if_false £PLCHUTE_45
0247: request_model #PARACHUTE
0004: $1497 =  1  ;; integer values
0004: $1498 =  0  ;; integer values

:PLCHUTE_45
00D6: if  0
0038:   $1497 ==  1  ;; integer values
004D: jump_if_false £PLCHUTE_55
00D6: if  0
0248:   model #PARACHUTE available
004D: jump_if_false £PLCHUTE_55
0107: @17 = create_object #PARACHUTE at $69 $70 $71
069B: @17 $PLAYER_ACTOR  0.0  0.0  0.0  0.0  0.0  0.0 
0750: @17  0 
0004: $1497 =  2  ;; integer values

:PLCHUTE_55
00D6: if  1
0038:   $1497 ==  2  ;; integer values
0038:   $1513 ==  1  ;; integer values
004D: jump_if_false £PLCHUTE_60
0004: $1497 =  3  ;; integer values

:PLCHUTE_60
00D6: if  1
0038:   $1513 ==  0  ;; integer values
0018:   $1497 >  0  ;; integer values
004D: jump_if_false £PLCHUTE_80
00D6: if  0
0818: $PLAYER_ACTOR 
004D: jump_if_false £PLCHUTE_80
083D: $PLAYER_ACTOR $1507 $1508 $1509 
00D6: if  0
0022:   -10.0 > $1509  ;; floating-point values
004D: jump_if_false £PLCHUTE_80
0819: $PLAYER_ACTOR @7 
00D6: if  0
0021:   @7 >  20.0  ;; floating-point values
004D: jump_if_false £PLCHUTE_80
097A: -1000.0 -1000.0 -1000.0  1037 
0004: $1513 =  1  ;; integer values
01B9: set_actor $PLAYER_ACTOR armed_weapon_to  46
0006: @0 =  0  ;; integer values
0005: $8268 =  0.0  ;; floating-point values

:PLCHUTE_80
00D6: if  0
0038:   $1513 ==  1  ;; integer values
004D: jump_if_false £PLCHUTE_280
00D6: if  0
0039:   @0 ==  0  ;; integer values
004D: jump_if_false £PLCHUTE_87
0006: @0 =  2  ;; integer values

:PLCHUTE_87
00D6: if  0
0039:   @0 ==  2  ;; integer values
004D: jump_if_false £PLCHUTE_99
062E: $PLAYER_ACTOR  2066 @27 
00D6: if  0
04A4: @27  7 
004D: jump_if_false £PLCHUTE_99
0812: unknown_action_sequence $PLAYER_ACTOR "FALL_SKYDIVE" "PED"  1.0  1  0  0  0 -1 
04ED: load_animation "PARACHUTE"
0006: @15 =  1  ;; integer values
0172: @1 = actor $PLAYER_ACTOR z_angle
0006: @0 =  3  ;; integer values

:PLCHUTE_99
00D6: if  0
0039:   @0 ==  3  ;; integer values
004D: jump_if_false £PLCHUTE_280
062E: $PLAYER_ACTOR  2066 @27 
00D6: if  0
04A4: @27  7 
004D: jump_if_false £PLCHUTE_107
0812: unknown_action_sequence $PLAYER_ACTOR "FALL_SKYDIVE" "PED"  1.0  1  0  0  0 -1 

:PLCHUTE_107
0819: $PLAYER_ACTOR @7 
00D6: if  1
0023:    100.0 > @7  ;; floating-point values
0021:   @7 >  60.0  ;; floating-point values
004D: jump_if_false £PLCHUTE_119
00D6: if  0
04EE:   animation "PARACHUTE" loaded
004D: jump_if_false £PLCHUTE_119
00D6: if  0
0038:   $ON_MISSION ==  0  ;; integer values
004D: jump_if_false £PLCHUTE_119
00BC: text_highpriority 'PARA_01'  1000 ms  1

:PLCHUTE_119
0494: get_joystick_data  0 @10 @11 @12 @12
00D6: if  0
0038:   $1511 ==  1  ;; integer values
004D: jump_if_false £PLCHUTE_125
0006: @10 =  0  ;; integer values
0006: @11 =  0  ;; integer values

:PLCHUTE_125
0093: @21 = integer_to_float @10  
0017: @21 /=  4.267  ;; floating-point values 
0063: @21 -= @2  ;; floating-point values 
0017: @21 /=  20.0  ;; floating-point values 
005B: @2 += @21  ;; floating-point values 
0087: @21 = @2  ;; floating-point values only
0017: @21 /=  5.0  ;; floating-point values 
0063: @1 -= @21  ;; floating-point values 
00D6: if  0
0021:   @1 >  180.0  ;; floating-point values
004D: jump_if_false £PLCHUTE_137
000F: @1 -=  360.0  ;; floating-point values

:PLCHUTE_137
00D6: if  0
0023:   -180.0 > @1  ;; floating-point values
004D: jump_if_false £PLCHUTE_141
000B: @1 +=  360.0  ;; floating-point values

:PLCHUTE_141
0093: @22 = integer_to_float @11  
0017: @22 /=  4.267  ;; floating-point values 
0063: @22 -= @3  ;; floating-point values 
0017: @22 /=  20.0  ;; floating-point values 
005B: @3 += @22  ;; floating-point values 
083D: $PLAYER_ACTOR @8 @9 $1509 
00D6: if  0
0024:   $1504 > $1509  ;; floating-point values only
004D: jump_if_false £PLCHUTE_151
0086: $1509 = $1504  ;; floating-point values only

:PLCHUTE_151
00D6: if  0
0024:   $8268 > $1509  ;; floating-point values only
004D: jump_if_false £PLCHUTE_155
0086: $8268 = $1509  ;; floating-point values only

:PLCHUTE_155
00D6: if  0
0024:   $1504 > $8268  ;; floating-point values only
004D: jump_if_false £PLCHUTE_159
0086: $8268 = $1504  ;; floating-point values only

:PLCHUTE_159
00D6: if  1
0024:   $1509 > $8268  ;; floating-point values only
8038:   NOT   $1902 ==  1  ;; integer values
004D: jump_if_false £PLCHUTE_176
00D6: if  0
84AD:   NOT $PLAYER_ACTOR
004D: jump_if_false £PLCHUTE_174
00D6: if  0
0022:   -20.0 > $8268  ;; floating-point values
004D: jump_if_false £PLCHUTE_171
0004: $1513 =  2  ;; integer values
0002: jump £PLCHUTE_173

:PLCHUTE_171
0812: unknown_action_sequence $PLAYER_ACTOR "FALL_SKYDIVE" "PED"  1.0  1  0  0  0  100 
0004: $1513 =  7  ;; integer values

:PLCHUTE_173
0002: jump £PLCHUTE_176

:PLCHUTE_174
0812: unknown_action_sequence $PLAYER_ACTOR "FALL_SKYDIVE" "PED"  1.0  1  0  0  0  100 
0004: $1513 =  7  ;; integer values

:PLCHUTE_176
0087: @4 = @3  ;; floating-point values only
0017: @4 /=  30.0  ;; floating-point values 
006F: @4 *= $1505  ;; floating-point values
02F6: $1507 = cosine @1  ;; sinus swapped with cosine
02F7: $1508 = sinus @1 ;; cosine swapped with sinus
006D: $1507 *= @4  ;; floating-point values
006D: $1508 *= @4  ;; floating-point values
0011: $1508 *= -1.0  ;; floating-point values
0059: $1508 += $1506  ;; floating-point values
0087: @21 = @8  ;; floating-point values only
0065: @21 -= $1507  ;; floating-point values 
0013: @21 *=  .01  ;; floating-point values 
0088: $1507 = @8  ;; floating-point values only
0067: $1507 -= @21  ;; floating-point values
0087: @21 = @9  ;; floating-point values only
0065: @21 -= $1508  ;; floating-point values 
0013: @21 *=  .01  ;; floating-point values 
0088: $1508 = @9  ;; floating-point values only
0067: $1508 -= @21  ;; floating-point values
0085: @12 = @10  ;; integer values and handles
0085: @13 = @11  ;; integer values and handles
0095: make @12 absolute_integer  
0095: make @13 absolute_integer  
00D6: if  21
0019:   @12 >  40  ;; integer values
0019:   @13 >  40  ;; integer values
004D: jump_if_false £PLCHUTE_252
00D6: if  0
001D:   @12 > @13  ;; integer values  
004D: jump_if_false £PLCHUTE_229
00D6: if  0
0029:   @10 >=  0  ;; integer values
004D: jump_if_false £PLCHUTE_217
00D6: if  0
8039:   NOT   @15 ==  2  ;; integer values
004D: jump_if_false £PLCHUTE_217
00D6: if  0
04EE:   animation "PARACHUTE" loaded
004D: jump_if_false £PLCHUTE_216
0812: unknown_action_sequence $PLAYER_ACTOR "FALL_SKYDIVE_R" "PARACHUTE"  1.0  1  0  0  1 -2 

:PLCHUTE_216
0006: @15 =  2  ;; integer values

:PLCHUTE_217
00D6: if  0
001B:    0 > @10  ;; integer values
004D: jump_if_false £PLCHUTE_228
00D6: if  0
8039:   NOT   @15 ==  3  ;; integer values
004D: jump_if_false £PLCHUTE_228
00D6: if  0
04EE:   animation "PARACHUTE" loaded
004D: jump_if_false £PLCHUTE_227
0812: unknown_action_sequence $PLAYER_ACTOR "FALL_SKYDIVE_L" "PARACHUTE"  1.0  1  0  0  1 -2 

:PLCHUTE_227
0006: @15 =  3  ;; integer values

:PLCHUTE_228
0002: jump £PLCHUTE_251

:PLCHUTE_229
00D6: if  0
0029:   @11 >=  0  ;; integer values
004D: jump_if_false £PLCHUTE_240
00D6: if  0
8039:   NOT   @15 ==  4  ;; integer values
004D: jump_if_false £PLCHUTE_240
00D6: if  0
04EE:   animation "PARACHUTE" loaded
004D: jump_if_false £PLCHUTE_239
0812: unknown_action_sequence $PLAYER_ACTOR "FALL_SKYDIVE" "PARACHUTE"  1.0  1  0  0  1 -2 

:PLCHUTE_239
0006: @15 =  4  ;; integer values

:PLCHUTE_240
00D6: if  0
001B:    0 > @11  ;; integer values
004D: jump_if_false £PLCHUTE_251
00D6: if  0
8039:   NOT   @15 ==  5  ;; integer values
004D: jump_if_false £PLCHUTE_251
00D6: if  0
04EE:   animation "PARACHUTE" loaded
004D: jump_if_false £PLCHUTE_250
0812: unknown_action_sequence $PLAYER_ACTOR "FALL_SKYDIVE_ACCEL" "PARACHUTE"  1.0  1  0  0  1 -2 

:PLCHUTE_250
0006: @15 =  5  ;; integer values

:PLCHUTE_251
0002: jump £PLCHUTE_260

:PLCHUTE_252
00D6: if  0
8039:   NOT   @15 ==  1  ;; integer values
004D: jump_if_false £PLCHUTE_260
00D6: if  0
04EE:   animation "PARACHUTE" loaded
004D: jump_if_false £PLCHUTE_260
0812: unknown_action_sequence $PLAYER_ACTOR "FALL_SKYDIVE" "PARACHUTE"  1.0  1  0  0  1 -2 
0006: @15 =  1  ;; integer values

:PLCHUTE_260
00D6: if  21
00E1:   key_pressed  0  17
0038:   $1512 ==  1  ;; integer values
004D: jump_if_false £PLCHUTE_280
00D6: if  0
8038:   NOT   $1902 ==  1  ;; integer values
004D: jump_if_false £PLCHUTE_280
00D6: if  0
04EE:   animation "PARACHUTE" loaded
004D: jump_if_false £PLCHUTE_280
00D6: if  1
0038:   $1497 ==  3  ;; integer values
0038:   $1511 ==  0  ;; integer values
004D: jump_if_false £PLCHUTE_280
0812: unknown_action_sequence $PLAYER_ACTOR "PARA_OPEN" "PARACHUTE"  8.0  0  0  0  1 -2 
097A: -1000.0 -1000.0 -1000.0  1038 
008A: $8270 = @32  ;; integer values and handles
0008: $8270 +=  1100  ;; integer values
0004: $1513 =  3  ;; integer values
0006: @0 =  0  ;; integer values

:PLCHUTE_280
00D6: if  0
0038:   $1513 ==  2  ;; integer values
004D: jump_if_false £PLCHUTE_292
00D6: if  0
04EE:   animation "PARACHUTE" loaded
004D: jump_if_false £PLCHUTE_290
0173: set_actor $PLAYER_ACTOR z_angle_to @1
0829: unknown_action_sequence $PLAYER_ACTOR "FALL_SKYDIVE_DIE" "PARACHUTE"  1000.0  0 
09F1: $PLAYER_ACTOR  1189 
0002: jump £PLCHUTE_291

:PLCHUTE_290
05BE: unknown_action_sequence $PLAYER_ACTOR 

:PLCHUTE_291
0050: gosub £PLCHUTE_614

:PLCHUTE_292
00D6: if  0
0038:   $1513 ==  3  ;; integer values
004D: jump_if_false £PLCHUTE_534
00D6: if  0
0018:   $8270 >  0  ;; integer values
004D: jump_if_false £PLCHUTE_303
00D6: if  0
001F:   @32 > $8270  ;; integer values
004D: jump_if_false £PLCHUTE_303
097A: -1000.0 -1000.0 -1000.0  1039 
0004: $8270 =  0  ;; integer values

:PLCHUTE_303
00D6: if  0
0039:   @0 ==  0  ;; integer values
004D: jump_if_false £PLCHUTE_316
0087: @25 = @3  ;; floating-point values only
0017: @25 /=  500.0  ;; floating-point values 
0087: @26 = @2  ;; floating-point values only
0017: @26 /=  500.0  ;; floating-point values 
0085: @18 = @32  ;; integer values and handles
0085: @19 = @32  ;; integer values and handles
0087: @5 = @4  ;; floating-point values only
0013: @5 *= -1.0  ;; floating-point values 
0089: @6 = $1509  ;; floating-point values only
0006: @0 =  1  ;; integer values

:PLCHUTE_316
00D6: if  0
0039:   @0 ==  1  ;; integer values
004D: jump_if_false £PLCHUTE_338
0085: @10 = @32  ;; integer values and handles
0062: @10 -= @19  ;; integer values 
00D6: if  0
001B:    500 > @10  ;; integer values
004D: jump_if_false £PLCHUTE_335
0085: @10 = @32  ;; integer values and handles
0062: @10 -= @18  ;; integer values 
0085: @18 = @32  ;; integer values and handles
0093: @21 = integer_to_float @10  
0087: @22 = @25  ;; floating-point values only
006B: @22 *= @21  ;; floating-point values
0087: @23 = @26  ;; floating-point values only
006B: @23 *= @21  ;; floating-point values
0063: @3 -= @22  ;; floating-point values 
0063: @2 -= @23  ;; floating-point values 
0002: jump £PLCHUTE_338

:PLCHUTE_335
0007: @2 =  0.0  ;; floating-point values
0007: @3 =  0.0  ;; floating-point values
0006: @0 =  2  ;; integer values

:PLCHUTE_338
00D6: if  0
0039:   @0 ==  2  ;; integer values
004D: jump_if_false £PLCHUTE_350
00D6: if  0
03CA:   object @17 exists
004D: jump_if_false £PLCHUTE_350
0750: @17  1 
08D2: @17  0.0 
0085: @19 = @32  ;; integer values and handles
0001: wait  0 ms
075A: @17 "PARA_OPEN_O" "PARACHUTE"  1000.0  0  1 
0006: @0 =  3  ;; integer values

:PLCHUTE_350
00D6: if  0
0039:   @0 ==  3  ;; integer values
004D: jump_if_false £PLCHUTE_364
0085: @10 = @32  ;; integer values and handles
0062: @10 -= @19  ;; integer values 
00D6: if  0
001B:    500 > @10  ;; integer values
004D: jump_if_false £PLCHUTE_362
0093: @21 = integer_to_float @10  
0017: @21 /=  500.0  ;; floating-point values 
08D2: @17 @21 
0002: jump £PLCHUTE_364

:PLCHUTE_362
08D2: @17  1.0 
0006: @0 =  4  ;; integer values

:PLCHUTE_364
00D6: if  0
0039:   @0 ==  5  ;; integer values
004D: jump_if_false £PLCHUTE_372
0107: @20 = create_object #PARA_COLLISION at  0.0  0.0  0.0
0750: @20  0 
0392: object @20 toggle_in_moving_list  1
04D9: object @20 set_scripted_collision_check  1
0006: @0 =  6  ;; integer values

:PLCHUTE_372
00D6: if  0
0039:   @0 ==  6  ;; integer values
004D: jump_if_false £PLCHUTE_489
0494: get_joystick_data  0 @10 @11 @12 @12
00D6: if  0
0038:   $1511 ==  1  ;; integer values
004D: jump_if_false £PLCHUTE_381
0006: @10 =  0  ;; integer values
0006: @11 =  0  ;; integer values

:PLCHUTE_381
0093: @21 = integer_to_float @10  
0017: @21 /=  4.267  ;; floating-point values 
0063: @21 -= @2  ;; floating-point values 
0017: @21 /=  20.0  ;; floating-point values 
005B: @2 += @21  ;; floating-point values 
0087: @21 = @2  ;; floating-point values only
0017: @21 /=  15.0  ;; floating-point values 
0063: @1 -= @21  ;; floating-point values 
00D6: if  0
0021:   @1 >  180.0  ;; floating-point values
004D: jump_if_false £PLCHUTE_393
000F: @1 -=  360.0  ;; floating-point values

:PLCHUTE_393
00D6: if  0
0023:   -180.0 > @1  ;; floating-point values
004D: jump_if_false £PLCHUTE_397
000B: @1 +=  360.0  ;; floating-point values

:PLCHUTE_397
02F6: $1507 = cosine @1  ;; sinus swapped with cosine
02F7: $1508 = sinus @1 ;; cosine swapped with sinus
0069: $1507 *= $1500  ;; floating-point values
0069: $1508 *= $1500  ;; floating-point values
0011: $1507 *= -1.0  ;; floating-point values
0085: @12 = @10  ;; integer values and handles
0085: @13 = @11  ;; integer values and handles
0095: make @12 absolute_integer  
0095: make @13 absolute_integer  
00D6: if  21
0019:   @12 >  40  ;; integer values
0019:   @13 >  40  ;; integer values
004D: jump_if_false £PLCHUTE_463
00D6: if  0
001D:   @12 > @13  ;; integer values  
004D: jump_if_false £PLCHUTE_436
0089: @21 = $1501  ;; floating-point values only
0065: @21 -= $1509  ;; floating-point values 
0017: @21 /=  20.0  ;; floating-point values 
005F: $1509 += @21  ;; floating-point values 
00D6: if  0
0029:   @10 >=  0  ;; integer values
004D: jump_if_false £PLCHUTE_426
00D6: if  0
8039:   NOT   @15 ==  2  ;; integer values
004D: jump_if_false £PLCHUTE_426
0812: unknown_action_sequence $PLAYER_ACTOR "PARA_STEERR" "PARACHUTE"  1.0  1  0  0  1 -2 
075A: @17 "PARA_STEERR_O" "PARACHUTE"  1.0  1  1 
0006: @15 =  2  ;; integer values

:PLCHUTE_426
00D6: if  0
001B:    0 > @10  ;; integer values
004D: jump_if_false £PLCHUTE_435
00D6: if  0
8039:   NOT   @15 ==  3  ;; integer values
004D: jump_if_false £PLCHUTE_435
0812: unknown_action_sequence $PLAYER_ACTOR "PARA_STEERL" "PARACHUTE"  1.0  1  0  0  1 -2 
075A: @17 "PARA_STEERL_O" "PARACHUTE"  1.0  1  1 
0006: @15 =  3  ;; integer values

:PLCHUTE_435
0002: jump £PLCHUTE_462

:PLCHUTE_436
00D6: if  0
0029:   @11 >=  0  ;; integer values
004D: jump_if_false £PLCHUTE_449
0089: @21 = $1503  ;; floating-point values only
0065: @21 -= $1509  ;; floating-point values 
0017: @21 /=  20.0  ;; floating-point values 
005F: $1509 += @21  ;; floating-point values 
00D6: if  0
8039:   NOT   @15 ==  4  ;; integer values
004D: jump_if_false £PLCHUTE_449
0812: unknown_action_sequence $PLAYER_ACTOR "PARA_DECEL" "PARACHUTE"  1.0  1  0  0  1 -2 
075A: @17 "PARA_DECEL_O" "PARACHUTE"  1.0  1  1 
0006: @15 =  4  ;; integer values

:PLCHUTE_449
00D6: if  0
001B:    0 > @11  ;; integer values
004D: jump_if_false £PLCHUTE_462
0089: @21 = $1501  ;; floating-point values only
0065: @21 -= $1509  ;; floating-point values 
0017: @21 /=  20.0  ;; floating-point values 
005F: $1509 += @21  ;; floating-point values 
00D6: if  0
8039:   NOT   @15 ==  5  ;; integer values
004D: jump_if_false £PLCHUTE_462
0812: unknown_action_sequence $PLAYER_ACTOR "PARA_FLOAT" "PARACHUTE"  1.0  1  0  0  1 -2 
075A: @17 "PARA_FLOAT_O" "PARACHUTE"  1.0  1  1 
0006: @15 =  5  ;; integer values

:PLCHUTE_462
0002: jump £PLCHUTE_476

:PLCHUTE_463
0089: @21 = $1501  ;; floating-point values only
0065: @21 -= $1509  ;; floating-point values 
0017: @21 /=  20.0  ;; floating-point values 
005F: $1509 += @21  ;; floating-point values 
00D6: if  0
8039:   NOT   @15 ==  5  ;; integer values
004D: jump_if_false £PLCHUTE_476
00D6: if  0
8039:   NOT   @15 ==  1  ;; integer values
004D: jump_if_false £PLCHUTE_476
0812: unknown_action_sequence $PLAYER_ACTOR "PARA_FLOAT" "PARACHUTE"  1.0  1  0  0  1 -2 
075A: @17 "PARA_FLOAT_O" "PARACHUTE"  1.0  1  1 
0006: @15 =  1  ;; integer values

:PLCHUTE_476
01BB: store_object @17 position_to $73 $74 $75
0815: @20 $73 $74 $75 
00D6: if  0
04DA:   has_object @20 collided
004D: jump_if_false £PLCHUTE_483
075A: @17 "PARA_RIP_LOOP_O" "PARACHUTE"  8.0  1  1 
0006: @0 =  7  ;; integer values

:PLCHUTE_483
00D6: if  0
00E1:   key_pressed  0  15
004D: jump_if_false £PLCHUTE_489
0792: $PLAYER_ACTOR 
0004: $1513 =  6  ;; integer values
0004: $1498 =  3  ;; integer values

:PLCHUTE_489
00D6: if  0
03CA:   object @17 exists
004D: jump_if_false £PLCHUTE_518
00D6: if  0
0837: @17 "PARA_OPEN_O" 
004D: jump_if_false £PLCHUTE_518
0839: @17 "PARA_OPEN_O" @21 
0087: @22 = @6  ;; floating-point values only
0065: @22 -= $1501  ;; floating-point values 
0087: @23 = @22  ;; floating-point values only
006B: @23 *= @21  ;; floating-point values
0088: $1509 = @6  ;; floating-point values only
0067: $1509 -= @23  ;; floating-point values
0087: @22 = @5  ;; floating-point values only
0065: @22 -= $1500  ;; floating-point values 
0087: @23 = @22  ;; floating-point values only
006B: @23 *= @21  ;; floating-point values
0087: @4 = @5  ;; floating-point values only
0063: @4 -= @23  ;; floating-point values 
02F6: $1507 = cosine @1  ;; sinus swapped with cosine
02F7: $1508 = sinus @1 ;; cosine swapped with sinus
006D: $1507 *= @4  ;; floating-point values
006D: $1508 *= @4  ;; floating-point values
0011: $1507 *= -1.0  ;; floating-point values
00D6: if  1
0043:   @21 ==  1.0  ;; floating-point values
0039:   @0 ==  4  ;; integer values
004D: jump_if_false £PLCHUTE_518
0006: @0 =  5  ;; integer values

:PLCHUTE_518
00D6: if  0
8118:   NOT   actor $PLAYER_ACTOR dead
004D: jump_if_false £PLCHUTE_534
00D6: if  0
04AD: $PLAYER_ACTOR
004D: jump_if_false £PLCHUTE_528
0812: unknown_action_sequence $PLAYER_ACTOR "PARA_LAND_WATER" "PARACHUTE"  8.0  1  1  0  0  1000 
075A: @17 "PARA_LAND_WATER_O" "PARACHUTE"  1000.0  0  1 
0004: $1513 =  5  ;; integer values
0006: @0 =  0  ;; integer values

:PLCHUTE_528
083D: $PLAYER_ACTOR @21 @21 @23 
00D6: if  0
0021:   @23 > -.1  ;; floating-point values
004D: jump_if_false £PLCHUTE_534
0004: $1513 =  4  ;; integer values
0006: @0 =  0  ;; integer values

:PLCHUTE_534
00D6: if  0
0038:   $1513 ==  4  ;; integer values
004D: jump_if_false £PLCHUTE_579
00D6: if  0
0039:   @0 ==  0  ;; integer values
004D: jump_if_false £PLCHUTE_567
0004: $1498 =  1  ;; integer values
00A0: store_actor $PLAYER_ACTOR position_to $69 $70 $71
000D: $71 -=  1.0  ;; floating-point values
00A1: put_actor $PLAYER_ACTOR at $69 $70 $71
083E: $PLAYER_ACTOR  0.0  0.0 @1 
00D6: if  0
0022:   -10.0 > $1509  ;; floating-point values
004D: jump_if_false £PLCHUTE_551
0004: $1513 =  2  ;; integer values
0006: @0 =  0  ;; integer values
0002: jump £PLCHUTE_563

:PLCHUTE_551
00D6: if  0
0022:   -4.0 > $1509  ;; floating-point values
004D: jump_if_false £PLCHUTE_561
0615: @14 
0812: unknown_action_sequence -1 "FALL_FRONT" "PED"  20.0  0  0  0  1  700 
0812: unknown_action_sequence -1 "GETUP_FRONT" "PED"  8.0  0  1  0  0 -2 
0616: @14 
0618: $PLAYER_ACTOR @14 
061B: @14 
0002: jump £PLCHUTE_562

:PLCHUTE_561
0812: unknown_action_sequence $PLAYER_ACTOR "RUN_PLAYER" "PED"  8.0  1  1  0  0  1000 

:PLCHUTE_562
0006: @0 =  1  ;; integer values

:PLCHUTE_563
075A: @17 "PARA_LAND_O" "PARACHUTE"  1000.0  0  1 
0682: @17  0.0  0.0  0.0  0 
0085: @18 = @32  ;; integer values and handles
000A: @18 +=  1000  ;; integer values

:PLCHUTE_567
00D6: if  0
0039:   @0 ==  1  ;; integer values
004D: jump_if_false £PLCHUTE_579
00D6: if  0
0837: @17 "PARA_LAND_O" 
004D: jump_if_false £PLCHUTE_579
0839: @17 "PARA_LAND_O" @21 
00D6: if  0
0043:   @21 ==  1.0  ;; floating-point values
004D: jump_if_false £PLCHUTE_579
0004: $1498 =  2  ;; integer values
0050: gosub £PLCHUTE_614

:PLCHUTE_579
00D6: if  0
0038:   $1513 ==  5  ;; integer values
004D: jump_if_false £PLCHUTE_588
0004: $1498 =  1  ;; integer values
00D6: if  0
0039:   @0 ==  0  ;; integer values
004D: jump_if_false £PLCHUTE_588
0004: $1498 =  2  ;; integer values
0050: gosub £PLCHUTE_614

:PLCHUTE_588
00D6: if  1
0018:   $1513 >  0  ;; integer values
001A:    4 > $1513  ;; integer values
004D: jump_if_false £PLCHUTE_598
00D6: if  0
8118:   NOT   actor $PLAYER_ACTOR dead
004D: jump_if_false £PLCHUTE_598
083C: $PLAYER_ACTOR $1507 $1508 $1509 
0173: set_actor $PLAYER_ACTOR z_angle_to @1
083E: $PLAYER_ACTOR @3 @2 @1 

:PLCHUTE_598
00D6: if  0
0038:   $1513 ==  6  ;; integer values
004D: jump_if_false £PLCHUTE_602
0050: gosub £PLCHUTE_614

:PLCHUTE_602
00D6: if  0
0038:   $1513 ==  7  ;; integer values
004D: jump_if_false £PLCHUTE_606
0050: gosub £PLCHUTE_607

:PLCHUTE_606
0002: jump £PLCHUTE_18

:PLCHUTE_607
0004: $1513 =  0  ;; integer values
0006: @0 =  0  ;; integer values
0249: release_model #PARACHUTE
04EF: release_animation "PARACHUTE"
083E: $PLAYER_ACTOR  0.0  0.0 @1 
0992: $PLAYER_CHAR  1 
0051: return

:PLCHUTE_614
0682: @17  0.0  0.0  0.0  0 
09A2: @17 
0108: destroy_object @20
0555: remove_weapon  46 from_actor $PLAYER_ACTOR 
0004: $1513 =  0  ;; integer values
0004: $1497 =  0  ;; integer values
0006: @0 =  0  ;; integer values
0249: release_model #PARACHUTE
04EF: release_animation "PARACHUTE"
0249: release_model  371
083E: $PLAYER_ACTOR  0.0  0.0 @1 
0992: $PLAYER_CHAR  1 
004E: end_thread
