{$CLEO .cs}
{$USE CLEO+}

script_name 'FPS'

:FPS_11
wait 0
0@ = Memory.Read(9867536, 4, False)
0@ *= 256
if and
  not Char.IsInAnyCar($scplayer)
  0@ == 1179669248
goto_if_false @FPS_11
Memory.Write(9867536, 4, 1179669248, False)
Streaming.RequestModel(364)
Streaming.RequestModel(1214)
Streaming.RequestAnimation("goggles")
Streaming.LoadAllModelsNow

:FPS_102
wait 0
if and
  Streaming.HasModelLoaded(364)
  Streaming.HasModelLoaded(1214)
  Streaming.HasAnimationLoaded("goggles")
goto_if_false @FPS_102
0@ = Memory.GetThisScriptStruct()
0@ += 16
0@ = Memory.Read(0@, 4, False)
0@ -= -14101
if 
  5@ = File.Open("CLEO\fps.set", 25202)
goto_if_false @FPS_362
1@ = 22

:FPS_212
6@ = File.Read(5@, 24)
Memory.Write(0@, 4, 6@, False)
0@ += 4
Memory.Write(0@, 4, 7@, False)
0@ += 4
Memory.Write(0@, 4, 8@, False)
0@ += 4
Memory.Write(0@, 4, 9@, False)
0@ += 4
Memory.Write(0@, 4, 10@, False)
0@ += 4
Memory.Write(0@, 4, 11@, False)
0@ += 4
1@ += 1
  1@ > 43
goto_if_false @FPS_212
File.Close(5@)

:FPS_362
Text.UseCommands(True)
Pad.SetPlayerEnterCarButton($player1, False)
Hud.Display(False)
Pad.SetPlayerDuckButton($player1, False)
Pad.SetPlayerFireButton($player1, False)
World.DisableAllEntryExits(True)
Pad.SetPlayerJumpButton($player1, False)
Pad.SetPlayerCycleWeaponButton($player1, False)
0@ = Memory.GetPedPointer($scplayer)
0@ += 1816
15@ = Memory.Read(0@, 1, False)
2@ = Memory.Read(11988014, 1, False)
Memory.Write(11988014, 1, 1, False)
6@, 7@, 8@ = Char.GetOffsetInWorldCoords($scplayer, 0.0, 0.0, 0.0)
0@ = Memory.GetPedPointer($scplayer)
0@ += 66
1@ = Memory.Read(0@, 1, False)
clear_local_var_bit_const 1@ {n} 0
clear_local_var_bit_const 1@ {n} 1
if 
  not is_local_var_bit_set_const 1@ {n} 6
goto_if_false @FPS_566
clear_local_var_bit_const 1@ {n} 4
goto @FPS_573

:FPS_566
set_local_var_bit_const 1@ {n} 4

:FPS_573
clear_local_var_bit_const 1@ {n} 6
3@ = Object.Create(1214, 6@, 7@, 8@)
Object.SetCollision(3@, True)
Object.SetDynamic(3@, True)
Object.SetVisible(3@, False)
Object.SetMass(3@, 20.0)
Object.SetTurnMass(3@, 99999.9)
0@ = Memory.GetObjectPointer(3@)
0@ += 66
Memory.Write(0@, 1, 1@, False)
Object.SetHealth(3@, 100000)
4@ = Object.Create(1214, 6@, 7@, 8@)
Object.SetCollision(4@, False)
Object.SetDynamic(4@, False)
Object.SetVisible(4@, False)
Object.SetMass(4@, 0.1)
Object.SetTurnMass(4@, 99999.9)
Object.SetProofs(4@, True, True, True, True, True)
gosub @FPS_12763
1@ = Char.GetHeading($scplayer)
Object.SetHeading(3@, 1@)
Char.AttachToObject($scplayer, 3@, 0.0, -0.27, 0.75, 0, 360.0, WeaponType.Unarmed)
Object.AttachToObject(4@, 3@, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0)
Char.SetHeading(5@, 1@)
1@ += -90.0
Player.SetHeadingForAttached($player1, 1@, 3600.0)
TIMERB = 0
21@ = 0.0
22@ = 0.0

:FPS_899
wait 0
Text.UseCommands(True)
cset_lvar_float_to_lvar_int TIMERB =# TIMERB
TIMERB /= 1000.0
22@ = Math.Sqrt(22@)
set_lvar_float_to_lvar_float 0@ = TIMERB
0@ *= 7.5
sub_float_lvar_from_float_lvar 22@ -= 0@
mult_float_lvar_by_float_lvar 22@ *= 22@
if 
  0.0 > 22@
goto_if_false @FPS_998
22@ = 0.0

:FPS_998
if and
  15@ > 1
  10 > 15@
  15@ <> 8
  16@ <> 41
  16@ <> 42
  is_local_var_bit_set_const 2@ {n} 1
goto_if_false @FPS_1105
add_float_lvar_to_float_lvar 21@ += TIMERB
add_float_lvar_to_float_lvar 21@ += TIMERB
if 
  21@ > 0.2
goto_if_false @FPS_1098
21@ = 0.2

:FPS_1098
goto @FPS_1152

:FPS_1105
sub_float_lvar_from_float_lvar 21@ -= TIMERB
sub_float_lvar_from_float_lvar 21@ -= TIMERB
if 
  0.0 > 21@
goto_if_false @FPS_1152
21@ = 0.0

:FPS_1152
if 
  21@ > 0.0
goto_if_false @FPS_1432
set_lvar_float_to_lvar_float 0@ = 21@
if 
  15@ == 2
goto_if_false @FPS_1209
0@ *= 0.0

:FPS_1209
if 
  15@ == 3
goto_if_false @FPS_1237
0@ *= 50.0

:FPS_1237
if 
  15@ == 4
goto_if_false @FPS_1265
0@ *= 50.0

:FPS_1265
if 
  15@ == 5
goto_if_false @FPS_1293
0@ *= 100.0

:FPS_1293
if 
  16@ == 33
goto_if_false @FPS_1321
0@ *= 150.0

:FPS_1321
if or
  16@ == 37
  16@ == 38
goto_if_false @FPS_1356
0@ *= 50.0

:FPS_1356
if 
  15@ == 9
goto_if_false @FPS_1384
0@ *= 50.0

:FPS_1384
1@ = 70.0
sub_float_lvar_from_float_lvar 1@ -= 0@
if 
  not is_local_var_bit_set_const 2@ {n} 14
goto_if_false @FPS_1432
Camera.SetLerpFov(1@, 1@, 80, True)

:FPS_1432
if 
  Pad.IsButtonPressed(PadId.Pad1, Button.Leftshock)
goto_if_false @FPS_1511
add_float_lvar_to_float_lvar 17@ += TIMERB
add_float_lvar_to_float_lvar 17@ += TIMERB
add_float_lvar_to_float_lvar 17@ += TIMERB
if 
  17@ > 0.75
goto_if_false @FPS_1504
17@ = 0.75

:FPS_1504
goto @FPS_1566

:FPS_1511
sub_float_lvar_from_float_lvar 17@ -= TIMERB
sub_float_lvar_from_float_lvar 17@ -= TIMERB
sub_float_lvar_from_float_lvar 17@ -= TIMERB
if 
  0.0 > 17@
goto_if_false @FPS_1566
17@ = 0.0

:FPS_1566
0@ = 2
1@ = 17
gosub @FPS_12571
0@ = 4
1@ = 6
gosub @FPS_12571
0@ = 6
1@ = 14
gosub @FPS_12571
0@ = 8
1@ = 7
gosub @FPS_12571
0@ = 10
1@ = 5
gosub @FPS_12571
0@ = 12
1@ = 19
gosub @FPS_12571
if and
  15@ > 1
  10 > 15@
  15@ <> 8
  16@ <> 34
  16@ <> 36
  16@ <> 41
  16@ <> 42
goto_if_false @FPS_1970
0@ = Memory.GetPedPointer(5@)
0@ += 1440
15@ *= 28
add_int_lvar_to_int_lvar 0@ += 15@
15@ /= 28
0@ += 4
0@ = Memory.Read(0@, 4, False)
set_lvar_int_to_lvar_int 1@ = 16@
1@ *= 112
1@ += 13150936
1@ = Memory.Read(1@, 2, False)
if and
  is_local_var_bit_set_const 2@ {n} 1
  is_local_var_bit_set_const 2@ {n} 4
  not is_local_var_bit_set_const 2@ {n} 5
goto_if_false @FPS_1892
clear_local_var_bit_const 2@ {n} 1
set_local_var_bit_const 2@ {n} 5

:FPS_1892
if and
  not is_local_var_bit_set_const 2@ {n} 1
  is_local_var_bit_set_const 2@ {n} 4
  not is_local_var_bit_set_const 2@ {n} 5
goto_if_false @FPS_1938
set_local_var_bit_const 2@ {n} 1
set_local_var_bit_const 2@ {n} 5

:FPS_1938
if and
  0@ == 2
  1@ <> 1
goto_if_false @FPS_1970
clear_local_var_bit_const 2@ {n} 1

:FPS_1970
if or
  16@ == 34
  16@ == 36
  16@ == 43
goto_if_false @FPS_2052
if 
  is_local_var_bit_set_const 2@ {n} 4
goto_if_false @FPS_2027
set_local_var_bit_const 2@ {n} 1

:FPS_2027
if 
  not is_local_var_bit_set_const 2@ {n} 4
goto_if_false @FPS_2052
clear_local_var_bit_const 2@ {n} 1

:FPS_2052
17@ -= 0.5
17@ *= -1.0
if or
  16@ == 34
  16@ == 36
  16@ == 43
goto_if_false @FPS_2726
if 
  is_local_var_bit_set_const 2@ {n} 1
goto_if_false @FPS_2535
if 
  not is_local_var_bit_set_const 2@ {n} 14
goto_if_false @FPS_2502
Char.ClearTasks($scplayer)
clear_local_var_bit_const 2@ {n} 14
Char.SetCurrentWeapon($scplayer, 16@)
Object.AttachToObject(4@, 3@, 0.0, -5.0, 0.75, 0.0, 0.0, 0.0)
15@ *= 28
0@ = Memory.GetPedPointer($scplayer)
0@ += 1440
add_int_lvar_to_int_lvar 0@ += 15@
0@ += 4
6@ = Memory.Read(0@, 4, False)
0@ += 4
7@ = Memory.Read(0@, 4, False)
0@ += 4
8@ = Memory.Read(0@, 4, False)
Char.DetachFromCar($scplayer)
17@ -= 0.5
Char.AttachToObject($scplayer, 3@, 0.0, 0.0, 17@, 0, 360.0, 16@)
if 
  16@ == 36
goto_if_false @FPS_2359
Camera.PointAtChar($scplayer, CameraMode.RocketLauncherHs, SwitchType.JumpCut)

:FPS_2359
17@ += 0.5
0@ = Memory.GetPedPointer($scplayer)
0@ += 1440
add_int_lvar_to_int_lvar 0@ += 15@
0@ += 4
Memory.Write(0@, 4, 6@, False)
0@ += 4
Memory.Write(0@, 4, 7@, False)
0@ += 4
Memory.Write(0@, 4, 8@, False)
15@ /= 28
1@ = Object.GetHeading(3@)
1@ += -90.0
Player.SetHeadingForAttached($player1, 1@, 3600.0)
Pad.SetPlayerFireButton($player1, True)
set_local_var_bit_const 2@ {n} 14

:FPS_2502
0@ = Memory.GetPedPointer($scplayer)
0@ += 28
Memory.Write(0@, 1, 35, False)
goto @FPS_2719

:FPS_2535
if 
  is_local_var_bit_set_const 2@ {n} 14
goto_if_false @FPS_2598
Camera.Restore
Char.DetachFromCar($scplayer)
1@ = Object.GetHeading(3@)
1@ += -90.0
Player.SetHeadingForAttached($player1, 1@, 3600.0)
clear_local_var_bit_const 2@ {n} 14

:FPS_2598
Char.AttachToObject($scplayer, 3@, 0.0, -0.27, 17@, 0, 360.0, WeaponType.Unarmed)
Task.PlayAnimNonInterruptable($scplayer, "FALL_skyDIVE", "PED", 2.0, False, False, False, False, -1)
Char.SetAnimPlayingFlag($scplayer, "FALL_skyDIVE", False)
Char.SetAnimCurrentTime($scplayer, "FALL_skyDIVE", 0.5)
Pad.SetPlayerFireButton($player1, False)

:FPS_2719
goto @FPS_2847

:FPS_2726
Char.AttachToObject($scplayer, 3@, 0.0, -0.27, 17@, 0, 360.0, WeaponType.Unarmed)
Task.PlayAnimNonInterruptable($scplayer, "FALL_skyDIVE", "PED", 2.0, False, False, False, False, -1)
Char.SetAnimPlayingFlag($scplayer, "FALL_skyDIVE", False)
Char.SetAnimCurrentTime($scplayer, "FALL_skyDIVE", 0.5)
Pad.SetPlayerFireButton($player1, False)

:FPS_2847
17@ /= -1.0
17@ += 0.5
if 
  not is_local_var_bit_set_const 2@ {n} 14
goto_if_false @FPS_3470
if and
  15@ > 1
  10 > 15@
  15@ <> 8
goto_if_false @FPS_3057
0@ = Memory.GetThisScriptStruct()
0@ += 16
0@ = Memory.Read(0@, 4, False)
0@ -= -14101
0@ += -528
16@ *= 24
add_int_lvar_to_int_lvar 0@ += 16@
16@ /= 24
9@ = Memory.Read(0@, 4, False)
0@ += 4
10@ = Memory.Read(0@, 4, False)
0@ += 4
11@ = Memory.Read(0@, 4, False)
0@ += 12
27@ = Memory.Read(0@, 4, False)
goto @FPS_3139

:FPS_3057
9@ = -0.05
10@ = 0.15
11@ = -0.6
if or
  15@ == 8
  15@ == 12
goto_if_false @FPS_3129
27@ = 0.4
goto @FPS_3139

:FPS_3129
27@ = 0.5

:FPS_3139
Camera.SetNearClip(27@)
sub_float_lvar_from_float_lvar 9@ -= 21@
21@ *= 0.25
add_float_lvar_to_float_lvar 11@ += 21@
21@ /= 0.25
11@ += 0.1
15@ *= 28
0@ = Memory.GetPedPointer(5@)
0@ += 1440
add_int_lvar_to_int_lvar 0@ += 15@
0@ += 4
6@ = Memory.Read(0@, 4, False)
0@ += 4
7@ = Memory.Read(0@, 4, False)
0@ += 4
8@ = Memory.Read(0@, 4, False)
set_lvar_int_to_lvar_int 0@ = 16@
0@ *= 112
0@ += 13150936
0@ = Memory.Read(0@, 2, False)
0@ = Memory.GetPedPointer(5@)
0@ += 1284
1@ = Memory.Read(0@, 2, False)
Char.AttachToObject(5@, 4@, 9@, 10@, 11@, 0, 360.0, 16@)
Memory.Write(0@, 2, 1@, False)
0@ = Memory.GetPedPointer(5@)
0@ += 1440
add_int_lvar_to_int_lvar 0@ += 15@
0@ += 4
Memory.Write(0@, 4, 6@, False)
0@ += 4
Memory.Write(0@, 4, 7@, False)
0@ += 4
Memory.Write(0@, 4, 8@, False)
15@ /= 28

:FPS_3470
if and
  not is_local_var_bit_set_const 2@ {n} 14
  not is_local_var_bit_set_const 2@ {n} 1
  is_local_var_bit_set_const 2@ {n} 8
  not is_local_var_bit_set_const 2@ {n} 9
goto_if_false @FPS_3747
gosub @FPS_13578
15@ += 1

:FPS_3523
  14 > 15@
goto_if_false @FPS_3671
15@ += 1
6@, 7@, 8@ = Char.GetWeaponInSlot($scplayer, 15@)
if 
  6@ == 0
goto_if_false @FPS_3586
goto @FPS_3664

:FPS_3586
if and
  15@ > 2
  11 > 15@
  7@ == 0
goto_if_false @FPS_3625
goto @FPS_3664

:FPS_3625
if and
  15@ == 12
  7@ == 0
goto_if_false @FPS_3657
goto @FPS_3664

:FPS_3657
goto @FPS_3671

:FPS_3664
goto @FPS_3523

:FPS_3671
if 
  15@ == 14
goto_if_false @FPS_3713
15@ = 1
6@, 7@, 8@ = Char.GetWeaponInSlot($scplayer, 15@)

:FPS_3713
15@ += -1
gosub @FPS_12763
21@ = 0.0
22@ = 0.0

:FPS_3747
if and
  not is_local_var_bit_set_const 2@ {n} 14
  not is_local_var_bit_set_const 2@ {n} 1
  is_local_var_bit_set_const 2@ {n} 10
  not is_local_var_bit_set_const 2@ {n} 11
goto_if_false @FPS_4007
gosub @FPS_13578
15@ += 1
if 
  15@ == 1
goto_if_false @FPS_3825
15@ = 14

:FPS_3825
  15@ > 1
goto_if_false @FPS_3973
15@ += -1
6@, 7@, 8@ = Char.GetWeaponInSlot($scplayer, 15@)
if 
  6@ == 0
goto_if_false @FPS_3888
goto @FPS_3966

:FPS_3888
if and
  15@ > 2
  11 > 15@
  7@ == 0
goto_if_false @FPS_3927
goto @FPS_3966

:FPS_3927
if and
  15@ == 12
  7@ == 0
goto_if_false @FPS_3959
goto @FPS_3966

:FPS_3959
goto @FPS_3973

:FPS_3966
goto @FPS_3825

:FPS_3973
15@ += -1
gosub @FPS_12763
21@ = 0.0
22@ = 0.0

:FPS_4007
if and
  not is_local_var_bit_set_const 2@ {n} 14
  not Char.HasGotWeapon($scplayer, 16@)
goto_if_false @FPS_4352
Char.Delete(5@)
if and
  15@ > 1
  8 > 15@
  16@ <> 35
  16@ <> 36
  16@ <> 37
goto_if_false @FPS_4121
set_lvar_int_to_lvar_int 0@ = 16@
0@ *= 112
0@ += 13150912
Memory.Write(0@, 4, 20@, False)

:FPS_4121
  14 > 15@
goto_if_false @FPS_4269
15@ += 1
6@, 7@, 8@ = Char.GetWeaponInSlot($scplayer, 15@)
if 
  6@ == 0
goto_if_false @FPS_4184
goto @FPS_4262

:FPS_4184
if and
  15@ > 2
  11 > 15@
  7@ == 0
goto_if_false @FPS_4223
goto @FPS_4262

:FPS_4223
if and
  15@ == 12
  7@ == 0
goto_if_false @FPS_4255
goto @FPS_4262

:FPS_4255
goto @FPS_4269

:FPS_4262
goto @FPS_4121

:FPS_4269
if 
  15@ == 14
goto_if_false @FPS_4311
15@ = 1
6@, 7@, 8@ = Char.GetWeaponInSlot($scplayer, 15@)

:FPS_4311
15@ += -1
gosub @FPS_12763
clear_local_var_bit_const 2@ {n} 1
21@ = 0.0
22@ = 0.0

:FPS_4352
if 
  not is_local_var_bit_set_const 2@ {n} 14
goto_if_false @FPS_7095
1@ = Char.GetAmmoInWeapon(5@, 16@)
if and
  15@ > 1
  10 > 15@
  is_int_lvar_greater_than_int_lvar 19@ > 1@
goto_if_false @FPS_6312
if 
  $Return_progress_Percentage >= 100.0
goto_if_false @FPS_4454
set_lvar_int_to_lvar_int 1@ = 19@
Char.SetAmmo(5@, 16@, 1@)

:FPS_4454
set_lvar_int_to_lvar_int 19@ = 1@
Char.SetAmmo($scplayer, 16@, 1@)
if and
  15@ > 1
  15@ <> 3
  8 > 15@
  16@ <> 35
  16@ <> 36
  16@ <> 37
goto_if_false @FPS_5158
Memory.Write(13142132, 4, 16@, False)
0@ = Memory.GetPedPointer($scplayer)
Memory.Write(13142136, 4, 0@, False)
0@ = Memory.Read(12045188, 4, False)
cset_lvar_float_to_lvar_int 0@ =# 0@
Memory.Write(13142140, 4, 0@, False)
Memory.Write(13142144, 1, 1, False)
6@, 7@, 8@ = Object.GetOffsetInWorldCoords(4@, 0.0, 1.0, 0.0)
Memory.Write(13142148, 4, 6@, False)
Memory.Write(13142152, 4, 7@, False)
Memory.Write(13142156, 4, 8@, False)
set_lvar_float_to_lvar_float 0@ = 22@
0@ = Math.Sqrt(0@)
6@, 7@, 8@ = Object.GetVelocity(3@)
1@ = Math.GetDistanceBetweenCoords3D(6@, 7@, 8@, 0.0, 0.0, 0.0)
1@ /= 2.0
add_float_lvar_to_float_lvar 0@ += 1@
if 
  Pad.IsButtonPressed(PadId.Pad1, Button.Leftshock)
goto_if_false @FPS_4786
0@ /= 1.5

:FPS_4786
if 
  is_local_var_bit_set_const 2@ {n} 1
goto_if_false @FPS_4814
0@ *= 0.0

:FPS_4814
mult_float_lvar_by_float_lvar 0@ *= 20@
0@ /= 200.0
if 
  15@ == 7
goto_if_false @FPS_4860
0@ = 0.0

:FPS_4860
7@ = Math.RandomFloatInRange(0.0, 0@)
0@ = Math.RandomFloatInRange(0.0, 360.0)
6@ = Math.Sin(0@)
8@ = Math.Cos(0@)
mult_float_lvar_by_float_lvar 6@ *= 7@
mult_float_lvar_by_float_lvar 8@ *= 7@
6@, 7@, 8@ = Object.GetOffsetInWorldCoords(4@, 6@, 20@, 8@)
9@, 10@, 11@ = Object.GetOffsetInWorldCoords(4@, 0.0, 1.0, 0.0)
sub_float_lvar_from_float_lvar 6@ -= 9@
sub_float_lvar_from_float_lvar 7@ -= 10@
sub_float_lvar_from_float_lvar 8@ -= 11@
Memory.Write(13142160, 4, 6@, False)
Memory.Write(13142164, 4, 7@, False)
Memory.Write(13142168, 4, 8@, False)
set_lvar_int_to_lvar_int 0@ = 16@
0@ *= 112
0@ += 13150938
0@ = Memory.Read(0@, 2, False)
Memory.Write(13142172, 2, 0@, False)
cset_lvar_float_to_lvar_int 0@ =# 0@
set_lvar_int_to_lvar_int 1@ = 16@
1@ *= 112
1@ += 13150960
1@ = Memory.Read(1@, 4, False)
0@ = Math.Sqrt(0@)
div_float_lvar_by_float_lvar 0@ /= 1@
add_float_lvar_to_float_lvar 22@ += 0@

:FPS_5158
if 
  15@ == 3
goto_if_false @FPS_5715
set_lvar_int_to_lvar_int 0@ = 16@
0@ *= 112
0@ += 13150960
22@ = Memory.Read(0@, 4, False)
mult_float_lvar_by_float_lvar 0@ *= 20@
0@ /= 10.0
1@ = 13141824

:FPS_5241
  13142176 > 1@
goto_if_false @FPS_5715
Memory.Write(1@, 4, 16@, False)
1@ += 4
0@ = Memory.GetPedPointer($scplayer)
Memory.Write(1@, 4, 0@, False)
1@ += 4
0@ = Memory.Read(12045188, 4, False)
cset_lvar_float_to_lvar_int 0@ =# 0@
Memory.Write(1@, 4, 0@, False)
1@ += 4
Memory.Write(1@, 1, 1, False)
1@ += 4
6@, 7@, 8@ = Object.GetOffsetInWorldCoords(4@, 0.0, 1.0, 0.0)
Memory.Write(1@, 4, 6@, False)
1@ += 4
Memory.Write(1@, 4, 7@, False)
1@ += 4
Memory.Write(1@, 4, 8@, False)
1@ += 4
7@ = Math.RandomFloatInRange(0.0, 1.0)
div_float_lvar_by_float_lvar 7@ /= 22@
0@ = Math.RandomFloatInRange(0.0, 360.0)
6@ = Math.Sin(0@)
8@ = Math.Cos(0@)
mult_float_lvar_by_float_lvar 6@ *= 7@
mult_float_lvar_by_float_lvar 8@ *= 7@
6@, 7@, 8@ = Object.GetOffsetInWorldCoords(4@, 6@, 20@, 8@)
9@, 10@, 11@ = Object.GetOffsetInWorldCoords(4@, 0.0, 1.0, 0.0)
sub_float_lvar_from_float_lvar 6@ -= 9@
sub_float_lvar_from_float_lvar 7@ -= 10@
sub_float_lvar_from_float_lvar 8@ -= 11@
Memory.Write(1@, 4, 6@, False)
1@ += 4
Memory.Write(1@, 4, 7@, False)
1@ += 4
Memory.Write(1@, 4, 8@, False)
1@ += 4
set_lvar_int_to_lvar_int 0@ = 16@
0@ *= 112
0@ += 13150938
0@ = Memory.Read(0@, 2, False)
Memory.Write(1@, 2, 0@, False)
1@ += 4
goto @FPS_5241

:FPS_5715
if or
  15@ == 8
  16@ == 35
  16@ == 36
goto_if_false @FPS_6312
1@ = 13144336
6@ = Memory.GetPedPointer(5@)
0@ = 13144492

:FPS_5775
7@ = Memory.Read(0@, 4, False)
if 
  is_int_lvar_equal_to_int_lvar 7@ == 6@
goto_if_false @FPS_6218
7@ = Memory.GetPedPointer($scplayer)
Memory.Write(0@, 4, 7@, False)
1@ = Memory.Read(1@, 4, False)
0@ = Memory.Read(12010652, 4, False)
6@ = Memory.Read(0@, 4, False)
sub_int_lvar_from_int_lvar 1@ -= 6@
1@ /= 412
0@ += 4
6@ = Memory.Read(0@, 4, False)
add_int_lvar_to_int_lvar 6@ += 1@
6@ = Memory.Read(6@, 1, False)
1@ *= 256
add_int_lvar_to_int_lvar 1@ += 6@
6@, 7@, 8@ = Camera.GetActiveCoordinates()
28@, 29@, 27@ = Camera.GetActivePointAt()
sub_float_lvar_from_float_lvar 28@ -= 6@
sub_float_lvar_from_float_lvar 29@ -= 7@
28@ = Math.GetDistanceBetweenCoords2D(0.0, 0.0, 28@, 29@)
sub_float_lvar_from_float_lvar 8@ -= 27@
set_lvar_float_to_lvar_float 29@ = 8@
gosub @FPS_13854
27@ += 90.0
27@ *= -1.0
8@ = Object.GetHeading(3@)
Object.SetRotation(1@, 27@, 0.0, 8@)
if 
  15@ == 8
goto_if_false @FPS_6115
6@, 7@, 8@ = Object.GetOffsetInWorldCoords(4@, 0.0, 20.0, 4.0)
goto @FPS_6144

:FPS_6115
6@, 7@, 8@ = Object.GetOffsetInWorldCoords(4@, 0.0, 20.0, 0.0)

:FPS_6144
9@, 10@, 11@ = Object.GetOffsetInWorldCoords(4@, 0.0, 0.0, 0.0)
sub_float_lvar_from_float_lvar 6@ -= 9@
sub_float_lvar_from_float_lvar 7@ -= 10@
sub_float_lvar_from_float_lvar 8@ -= 11@
Object.SetVelocity(1@, 6@, 7@, 8@)
goto @FPS_6249

:FPS_6218
1@ += 4
0@ += 36
  0@ > 13145608
goto_if_false @FPS_5775

:FPS_6249
if 
  16@ == 39
goto_if_false @FPS_6312
0@ = Memory.GetPedPointer($scplayer)
0@ += 1776
Memory.Write(0@, 4, 40, False)
0@ += 12
Memory.Write(0@, 4, 1, False)

:FPS_6312
0@ = Char.GetAnimCurrentTime(5@, "FIGHTA_M")
if and
  Char.IsPlayingAnim(5@, "FIGHTA_M")
  0@ > 0.5
  is_local_var_bit_set_const 2@ {n} 1
goto_if_false @FPS_6739
Memory.Write(13142132, 4, 16@, False)
0@ = Memory.GetPedPointer($scplayer)
Memory.Write(13142136, 4, 0@, False)
0@ = Memory.Read(12045188, 4, False)
cset_lvar_float_to_lvar_int 0@ =# 0@
Memory.Write(13142140, 4, 0@, False)
Memory.Write(13142144, 1, 1, False)
6@, 7@, 8@ = Object.GetOffsetInWorldCoords(4@, 0.0, 1.0, 0.0)
Memory.Write(13142148, 4, 6@, False)
Memory.Write(13142152, 4, 7@, False)
Memory.Write(13142156, 4, 8@, False)
6@, 7@, 8@ = Object.GetOffsetInWorldCoords(4@, 0.0, 20@, 0.0)
9@, 10@, 11@ = Object.GetOffsetInWorldCoords(4@, 0.0, 0.0, 0.0)
sub_float_lvar_from_float_lvar 6@ -= 9@
sub_float_lvar_from_float_lvar 7@ -= 10@
sub_float_lvar_from_float_lvar 8@ -= 11@
Memory.Write(13142160, 4, 6@, False)
Memory.Write(13142164, 4, 7@, False)
Memory.Write(13142168, 4, 8@, False)
set_lvar_int_to_lvar_int 0@ = 16@
0@ *= 112
0@ += 13151014
0@ = Memory.Read(0@, 1, False)
0@ *= 136
0@ += 12676870
0@ = Memory.Read(0@, 1, False)
Memory.Write(13142172, 2, 0@, False)
clear_local_var_bit_const 2@ {n} 1

:FPS_6739
0@ = Memory.GetPedPointer($scplayer)
0@ += 1769
1@ = Char.GetAnimCurrentTime(5@, "goggles_put_on")
if and
  Char.IsPlayingAnim(5@, "goggles_put_on")
  1@ > 0.5
  is_local_var_bit_set_const 2@ {n} 1
goto_if_false @FPS_6985
1@ = Memory.Read(0@, 1, False)
if 
  1@ == 0
goto_if_false @FPS_6934
if 
  16@ == 44
goto_if_false @FPS_6887
Game.SetNightVision(True)
clear_local_var_bit_const 2@ {n} 15

:FPS_6887
if 
  16@ == 45
goto_if_false @FPS_6916
Game.SetInfraredVision(True)
set_local_var_bit_const 2@ {n} 15

:FPS_6916
Memory.Write(0@, 1, 1, False)
goto @FPS_6978

:FPS_6934
if 
  not is_local_var_bit_set_const 2@ {n} 15
goto_if_false @FPS_6963
Game.SetNightVision(False)
goto @FPS_6967

:FPS_6963
Game.SetInfraredVision(False)

:FPS_6967
Memory.Write(0@, 1, 0, False)

:FPS_6978
clear_local_var_bit_const 2@ {n} 1

:FPS_6985
1@ = Memory.Read(0@, 1, False)
if 
  1@ <> 0
goto_if_false @FPS_7095
if and
  not is_local_var_bit_set_const 2@ {n} 15
  not Char.HasGotWeapon($scplayer, WeaponType.NightVision)
goto_if_false @FPS_7055
Game.SetNightVision(False)
Memory.Write(0@, 1, 0, False)

:FPS_7055
if and
  is_local_var_bit_set_const 2@ {n} 15
  not Char.HasGotWeapon($scplayer, WeaponType.Infrared)
goto_if_false @FPS_7095
Game.SetInfraredVision(False)
Memory.Write(0@, 1, 0, False)

:FPS_7095
if 
  not is_local_var_bit_set_const 2@ {n} 14
goto_if_false @FPS_7200
0@ = Char.GetAmmoInWeapon($scplayer, 16@)
1@ = Char.GetAmmoInWeapon(5@, 16@)
if 
  is_int_lvar_greater_than_int_lvar 0@ > 1@
goto_if_false @FPS_7200
if 
  0@ > 24999
goto_if_false @FPS_7181
0@ = 24999

:FPS_7181
Char.SetAmmo(5@, 16@, 0@)
set_lvar_int_to_lvar_int 19@ = 0@

:FPS_7200
0@ = Object.GetHealth(3@)
Object.SetHealth(3@, 100000)
0@ += -100000
0@ *= 4
0@ /= 10
1@ = Char.GetArmor($scplayer)
Char.AddArmor($scplayer, 0@)
add_int_lvar_to_int_lvar 0@ += 1@
if 
  0 > 0@
goto_if_false @FPS_7301
0@ *= -1
Char.Damage($scplayer, 0@, True)

:FPS_7301
if or
  2 > 15@
  15@ > 9
  15@ == 8
  16@ == 41
  16@ == 42
  not is_local_var_bit_set_const 2@ {n} 1
goto_if_false @FPS_7584
6@ = 640.0
8@ = Memory.Read(12677188, 4, False)
cset_lvar_float_to_lvar_int 8@ =# 8@
div_float_lvar_by_float_lvar 6@ /= 8@
7@ = 480.0
8@ = Memory.Read(12677192, 4, False)
cset_lvar_float_to_lvar_int 8@ =# 8@
div_float_lvar_by_float_lvar 7@ /= 8@
Hud.DrawRect(320.0, 224.0, 6@, 7@, 255, 255, 255, 255)
Hud.DrawRect(312.0, 224.0, 6@, 7@, 255, 255, 255, 255)
Hud.DrawRect(328.0, 224.0, 6@, 7@, 255, 255, 255, 255)
Hud.DrawRect(320.0, 216.53, 6@, 7@, 255, 255, 255, 255)
Hud.DrawRect(320.0, 231.47, 6@, 7@, 255, 255, 255, 255)

:FPS_7584
0@ = Memory.Read(12216169, 1, False)
if 
  is_local_var_bit_set_const 0@ {n} 0
goto_if_false @FPS_8494
6@ = Char.GetHealth($scplayer)
Hud.DrawRect(192.0, 418.13, 64.0, 29.87, 0, 0, 0, 96)
Text.SetScale(0.5, 3.6)
Text.SetColor(255, 224, 32, 192)
Text.SetCenter(False)
Text.SetBackground(False)
Text.SetProportional(False)
Text.SetRightJustify(True)
Text.SetFont(Font.Menu)
Text.SetEdge(0, 0, 0, 0, 0)
Text.DisplayWithNumber(220.0, 399.46, 'NUMBER', 6@)
6@ = Char.GetArmor($scplayer)
if 
  6@ <> 0
goto_if_false @FPS_7872
Hud.DrawRect(272.0, 418.13, 64.0, 29.87, 0, 0, 0, 96)
Text.SetScale(0.5, 3.6)
Text.SetColor(255, 224, 32, 192)
Text.SetCenter(False)
Text.SetBackground(False)
Text.SetProportional(False)
Text.SetRightJustify(True)
Text.SetFont(Font.Menu)
Text.SetEdge(0, 0, 0, 0, 0)
Text.DisplayWithNumber(300.0, 399.46, 'NUMBER', 6@)

:FPS_7872
if and
  15@ > 1
  10 > 15@
goto_if_false @FPS_8238
Hud.DrawRect(520.0, 418.13, 112.0, 29.87, 0, 0, 0, 96)
if 
  is_local_var_bit_set_const 2@ {n} 14
goto_if_false @FPS_7960
0@ = Memory.GetPedPointer($scplayer)
goto @FPS_7968

:FPS_7960
0@ = Memory.GetPedPointer(5@)

:FPS_7968
0@ += 1440
15@ *= 28
add_int_lvar_to_int_lvar 0@ += 15@
15@ /= 28
0@ += 8
6@ = Memory.Read(0@, 4, False)
0@ += 4
7@ = Memory.Read(0@, 4, False)
sub_int_lvar_from_int_lvar 7@ -= 6@
if 
  16@ == 37
goto_if_false @FPS_8076
6@ /= 10
7@ /= 10

:FPS_8076
Text.SetScale(0.5, 3.6)
Text.SetColor(255, 224, 32, 192)
Text.SetCenter(False)
Text.SetBackground(False)
Text.SetProportional(False)
Text.SetRightJustify(True)
Text.SetFont(Font.Menu)
Text.SetEdge(0, 0, 0, 0, 0)
Text.DisplayWithNumber(524.0, 399.46, 'NUMBER', 6@)
Text.SetScale(0.25, 1.8)
Text.SetColor(255, 224, 32, 192)
Text.SetCenter(False)
Text.SetBackground(False)
Text.SetProportional(False)
Text.SetRightJustify(True)
Text.SetFont(Font.Menu)
Text.SetEdge(0, 0, 0, 0, 0)
Text.DisplayWithNumber(568.0, 414.4, 'NUMBER', 7@)

:FPS_8238
6@ = Player.StoreWantedLevel($player1)
if 
  6@ <> 0
goto_if_false @FPS_8375
Hud.DrawRect(608.0, 418.13, 32.0, 29.87, 0, 0, 0, 96)
Text.SetScale(0.5, 3.6)
Text.SetColor(255, 224, 32, 192)
Text.SetCenter(False)
Text.SetBackground(False)
Text.SetProportional(False)
Text.SetRightJustify(True)
Text.SetFont(Font.Menu)
Text.SetEdge(0, 0, 0, 0, 0)
Text.DisplayWithNumber(620.0, 399.46, 'NUMBER', 6@)

:FPS_8375
6@ = Player.StoreScore($player1)
Hud.DrawRect(544.0, 373.33, 160.0, 29.87, 0, 0, 0, 96)
Text.SetScale(0.5, 3.6)
Text.SetColor(255, 224, 32, 192)
Text.SetCenter(False)
Text.SetBackground(False)
Text.SetProportional(False)
Text.SetRightJustify(True)
Text.SetFont(Font.Menu)
Text.SetEdge(0, 0, 0, 0, 0)
Text.DisplayWithNumber(620.0, 354.67, 'DOLLAR', 6@)

:FPS_8494
6@, 7@, 8@ = Camera.GetActiveCoordinates()
28@, 29@, 27@ = Camera.GetActivePointAt()
sub_float_lvar_from_float_lvar 28@ -= 6@
sub_float_lvar_from_float_lvar 29@ -= 7@
6@ = Math.GetDistanceBetweenCoords2D(0.0, 0.0, 28@, 29@)
sub_float_lvar_from_float_lvar 8@ -= 27@
gosub @FPS_13854
Object.SetRotation(3@, 0.0, 0.0, 27@)
if 
  not is_local_var_bit_set_const 2@ {n} 14
goto_if_false @FPS_8612
Char.SetHeading(5@, 27@)

:FPS_8612
set_lvar_float_to_lvar_float 28@ = 6@
set_lvar_float_to_lvar_float 29@ = 8@
gosub @FPS_13854
27@ += 90.0
27@ *= -1.0
6@, 6@, 7@ = Camera.GetActiveCoordinates()
6@, 6@, 8@ = Object.GetCoordinates(3@)
sub_float_lvar_from_float_lvar 7@ -= 8@
if 
  is_local_var_bit_set_const 2@ {n} 14
goto_if_false @FPS_8747
Object.AttachToObject(4@, 3@, 0.0, -5.0, 7@, 27@, 0.0, 0.0)
goto @FPS_8781

:FPS_8747
Object.AttachToObject(4@, 3@, 0.0, 0.0, 7@, 27@, 0.0, 0.0)

:FPS_8781
12@, 13@, 0@, 14@ = Pad.GetPositionOfAnalogueSticks(PadId.Pad1)
cset_lvar_float_to_lvar_int 12@ =# 12@
cset_lvar_float_to_lvar_int 13@ =# 13@
cset_lvar_float_to_lvar_int 14@ =# 14@
if and
  15@ > 1
  10 > 15@
  15@ <> 8
goto_if_false @FPS_9944
if or
  Pad.IsKeyPressed(KeyCode.Prior)
  Pad.IsKeyPressed(KeyCode.Next)
goto_if_false @FPS_9944
0@ = Memory.GetThisScriptStruct()
0@ += 16
0@ = Memory.Read(0@, 4, False)
0@ -= -14101
0@ += -528
16@ *= 24
add_int_lvar_to_int_lvar 0@ += 16@
16@ /= 24
6@ = Memory.Read(0@, 4, False)
0@ += 4
7@ = Memory.Read(0@, 4, False)
0@ += 4
8@ = Memory.Read(0@, 4, False)
0@ += 4
9@ = Memory.Read(0@, 4, False)
0@ += 4
10@ = Memory.Read(0@, 4, False)
0@ += 4
11@ = Memory.Read(0@, 4, False)
12@ /= 12800.0
13@ /= 12800.0
14@ /= 12800.0
if and
  Pad.IsKeyPressed(KeyCode.Prior)
  not Pad.IsKeyPressed(KeyCode.Next)
goto_if_false @FPS_9140
add_float_lvar_to_float_lvar 6@ += 12@
sub_float_lvar_from_float_lvar 7@ -= 14@
sub_float_lvar_from_float_lvar 8@ -= 13@
add_float_lvar_to_float_lvar 9@ += 12@
sub_float_lvar_from_float_lvar 10@ -= 13@
sub_float_lvar_from_float_lvar 11@ -= 14@

:FPS_9140
if and
  not Pad.IsKeyPressed(KeyCode.Prior)
  Pad.IsKeyPressed(KeyCode.Next)
goto_if_false @FPS_9183
add_float_lvar_to_float_lvar 9@ += 12@
sub_float_lvar_from_float_lvar 10@ -= 13@
sub_float_lvar_from_float_lvar 11@ -= 14@

:FPS_9183
12@ = 0.0
13@ = 0.0
14@ = 0.0
Memory.Write(0@, 4, 11@, False)
0@ += -4
Memory.Write(0@, 4, 10@, False)
0@ += -4
Memory.Write(0@, 4, 9@, False)
0@ += -4
Memory.Write(0@, 4, 8@, False)
0@ += -4
Memory.Write(0@, 4, 7@, False)
0@ += -4
Memory.Write(0@, 4, 6@, False)
6@ *= 1000.0
cset_lvar_int_to_lvar_float 6@ =# 6@
7@ *= 1000.0
cset_lvar_int_to_lvar_float 7@ =# 7@
8@ *= 1000.0
cset_lvar_int_to_lvar_float 8@ =# 8@
9@ *= 1000.0
cset_lvar_int_to_lvar_float 9@ =# 9@
10@ *= 1000.0
cset_lvar_int_to_lvar_float 10@ =# 10@
11@ *= 1000.0
cset_lvar_int_to_lvar_float 11@ =# 11@
Hud.DrawRect(544.0, 321.07, 160.0, 44.8, 0, 0, 0, 96)
Text.SetScale(0.25, 1.8)
Text.SetColor(255, 224, 32, 192)
Text.SetCenter(False)
Text.SetBackground(False)
Text.SetProportional(False)
Text.SetRightJustify(True)
Text.SetFont(Font.Menu)
Text.SetEdge(0, 0, 0, 0, 0)
Text.DisplayWithNumber(540.0, 296.8, 'NUMBER', 6@)
Text.SetScale(0.25, 1.8)
Text.SetColor(255, 224, 32, 192)
Text.SetCenter(False)
Text.SetBackground(False)
Text.SetProportional(False)
Text.SetRightJustify(True)
Text.SetFont(Font.Menu)
Text.SetEdge(0, 0, 0, 0, 0)
Text.DisplayWithNumber(540.0, 311.7, 'NUMBER', 7@)
Text.SetScale(0.25, 1.8)
Text.SetColor(255, 224, 32, 192)
Text.SetCenter(False)
Text.SetBackground(False)
Text.SetProportional(False)
Text.SetRightJustify(True)
Text.SetFont(Font.Menu)
Text.SetEdge(0, 0, 0, 0, 0)
Text.DisplayWithNumber(540.0, 326.67, 'NUMBER', 8@)
Text.SetScale(0.25, 1.8)
Text.SetColor(255, 224, 32, 192)
Text.SetCenter(False)
Text.SetBackground(False)
Text.SetProportional(False)
Text.SetRightJustify(True)
Text.SetFont(Font.Menu)
Text.SetEdge(0, 0, 0, 0, 0)
Text.DisplayWithNumber(620.0, 296.8, 'NUMBER', 9@)
Text.SetScale(0.25, 1.8)
Text.SetColor(255, 224, 32, 192)
Text.SetCenter(False)
Text.SetBackground(False)
Text.SetProportional(False)
Text.SetRightJustify(True)
Text.SetFont(Font.Menu)
Text.SetEdge(0, 0, 0, 0, 0)
Text.DisplayWithNumber(620.0, 311.73, 'NUMBER', 10@)
Text.SetScale(0.25, 1.8)
Text.SetColor(255, 224, 32, 192)
Text.SetCenter(False)
Text.SetBackground(False)
Text.SetProportional(False)
Text.SetRightJustify(True)
Text.SetFont(Font.Menu)
Text.SetEdge(0, 0, 0, 0, 0)
Text.DisplayWithNumber(620.0, 326.67, 'NUMBER', 11@)

:FPS_9944
12@ /= 1.5
if 
  13@ > 0.0
goto_if_false @FPS_9985
13@ /= 1.5

:FPS_9985
if 
  Pad.IsButtonPressed(PadId.Pad1, Button.Leftshock)
goto_if_false @FPS_10029
12@ /= 32.0
13@ /= -32.0
goto @FPS_10100

:FPS_10029
if and
  not is_local_var_bit_set_const 2@ {n} 14
  Pad.IsButtonPressed(PadId.Pad1, Button.Cross)
goto_if_false @FPS_10080
12@ /= 12.0
13@ /= -12.0
goto @FPS_10100

:FPS_10080
12@ /= 20.0
13@ /= -20.0

:FPS_10100
if and
  15@ > 1
  10 > 15@
  15@ <> 8
  16@ <> 41
  16@ <> 42
  is_local_var_bit_set_const 2@ {n} 1
goto_if_false @FPS_10173
12@ /= 2.0
13@ /= 2.0

:FPS_10173
6@, 7@, 8@ = Object.GetOffsetInWorldCoords(3@, 12@, 13@, 0.0)
9@, 10@, 11@ = Object.GetOffsetInWorldCoords(3@, 0.0, 0.0, 0.0)
sub_float_lvar_from_float_lvar 6@ -= 9@
sub_float_lvar_from_float_lvar 7@ -= 10@
9@, 10@, 8@ = Object.GetVelocity(3@)
9@, 10@, 11@ = Object.GetCoordinates(3@)
9@ = World.GetGroundZFor3DCoord(9@, 10@, 11@)
9@ += 1.0
sub_float_lvar_from_float_lvar 11@ -= 9@
set_lvar_float_to_lvar_float 10@ = 11@
11@ *= -15.0
if and
  11@ > 0.0
  is_float_lvar_greater_than_float_lvar 11@ > 8@
goto_if_false @FPS_10358
set_lvar_float_to_lvar_float 8@ = 11@

:FPS_10358
if 
  8@ > 6.5
goto_if_false @FPS_10389
8@ = 6.5

:FPS_10389
if and
  0.2 > 10@
  6.5 > 8@
  not Pad.IsButtonPressed(PadId.Pad1, Button.Leftshock)
  not is_local_var_bit_set_const 2@ {n} 14
  is_local_var_bit_set_const 2@ {n} 6
  not is_local_var_bit_set_const 2@ {n} 7
goto_if_false @FPS_10457
8@ = 6.5

:FPS_10457
if and
  Object.HasCollidedWithAnything(3@)
  not Pad.IsButtonPressed(PadId.Pad1, Button.Leftshock)
  not is_local_var_bit_set_const 2@ {n} 14
  is_local_var_bit_set_const 2@ {n} 6
  not is_local_var_bit_set_const 2@ {n} 7
goto_if_false @FPS_10510
8@ = 6.5

:FPS_10510
Object.SetVelocity(3@, 6@, 7@, 8@)
if 
  not is_local_var_bit_set_const 2@ {n} 14
goto_if_false @FPS_10715
if and
  not Char.IsPlayingAnim(5@, "fucku")
  not Char.IsPlayingAnim(5@, "FIGHTA_M")
  not Char.IsPlayingAnim(5@, "goggles_put_on")
  not Char.IsPlayingAnim(5@, "Gun_stand")
  not Char.IsPlayingAnim(5@, "WEAPON_crouch")
  not Char.IsPlayingAnim(5@, "WEAPON_start_throw")
  not Char.IsPlayingAnim(5@, "WEAPON_throw")
  not Char.IsPlayingAnim(5@, "WEAPON_throwu")
goto_if_false @FPS_10715
gosub @FPS_13578
gosub @FPS_12763

:FPS_10715
if 
  not is_local_var_bit_set_const 2@ {n} 14
goto_if_false @FPS_12018
if and
  15@ > 1
  10 > 15@
  15@ <> 8
goto_if_false @FPS_11265
if or
  16@ == 22
  16@ == 26
  16@ == 28
  16@ == 32
goto_if_false @FPS_10834
if 
  not Char.IsDucking(5@)
goto_if_false @FPS_10827
Task.ToggleDuck(5@, True)

:FPS_10827
goto @FPS_10857

:FPS_10834
if 
  Char.IsDucking(5@)
goto_if_false @FPS_10857
Task.ToggleDuck(5@, False)

:FPS_10857
0@ = Memory.GetThisScriptStruct()
0@ += 16
0@ = Memory.Read(0@, 4, False)
0@ -= -14101
0@ += -516
16@ *= 24
add_int_lvar_to_int_lvar 0@ += 16@
16@ /= 24
6@ = Memory.Read(0@, 4, False)
0@ += 4
8@ = Memory.Read(0@, 4, False)
6@ *= 10.0
8@ *= 10.0
28@, 29@, 27@ = Object.GetOffsetInWorldCoords(3@, 0.0, 0.0, 0.0)
6@, 7@, 8@ = Object.GetOffsetInWorldCoords(3@, 6@, 100.0, 8@)
sub_float_lvar_from_float_lvar 28@ -= 6@
sub_float_lvar_from_float_lvar 29@ -= 7@
28@ *= -1.0
29@ *= -1.0
gosub @FPS_13854
Char.SetHeading(5@, 27@)
if or
  15@ == 4
  15@ == 5
  16@ == 37
  16@ == 38
  16@ == 41
  16@ == 42
goto_if_false @FPS_11194
if 
  is_local_var_bit_set_const 2@ {n} 2
goto_if_false @FPS_11171
Task.ShootAtCoord(5@, 6@, 7@, 8@, 80)
goto @FPS_11187

:FPS_11171
Task.AimGunAtCoord(5@, 6@, 7@, 8@, 80)

:FPS_11187
goto @FPS_11258

:FPS_11194
if and
  is_local_var_bit_set_const 2@ {n} 2
  not is_local_var_bit_set_const 2@ {n} 3
goto_if_false @FPS_11242
Task.ShootAtCoord(5@, 6@, 7@, 8@, 80)
goto @FPS_11258

:FPS_11242
Task.AimGunAtCoord(5@, 6@, 7@, 8@, 80)

:FPS_11258
goto @FPS_12018

:FPS_11265
if and
  not is_local_var_bit_set_const 2@ {n} 1
  is_local_var_bit_set_const 2@ {n} 2
  not is_local_var_bit_set_const 2@ {n} 3
goto_if_false @FPS_11820
if 
  15@ == 8
goto_if_false @FPS_11361
6@, 7@, 8@ = Object.GetOffsetInWorldCoords(3@, 0.0, 20.0, 0.0)
Task.ShootAtCoord(5@, 6@, 7@, 8@, 200)

:FPS_11361
if 
  15@ == 12
goto_if_false @FPS_11655
0@ = 13144488

:FPS_11389
1@ = Memory.Read(0@, 4, False)
if 
  1@ == 39
goto_if_false @FPS_11470
Memory.Write(0@, 4, 16, False)
0@ += 12
1@ = Memory.Read(12045188, 4, False)
Memory.Write(0@, 4, 1@, False)
0@ += -12

:FPS_11470
0@ += 36
  0@ > 13145604
goto_if_false @FPS_11389
Char.RemoveWeapon($scplayer, WeaponType.Detonator)
if 
  Char.HasGotWeapon($scplayer, WeaponType.Satchel)
goto_if_false @FPS_11655
Char.Delete(5@)
if and
  15@ > 1
  8 > 15@
  16@ <> 35
  16@ <> 36
  16@ <> 37
goto_if_false @FPS_11607
set_lvar_int_to_lvar_int 0@ = 16@
0@ *= 112
0@ += 13150912
Memory.Write(0@, 4, 20@, False)

:FPS_11607
15@ = 8
16@ = 39
gosub @FPS_12763
clear_local_var_bit_const 2@ {n} 1
21@ = 0.0
22@ = 0.0

:FPS_11655
if or
  15@ == 0
  15@ == 1
  15@ == 10
  16@ == 46
goto_if_false @FPS_11736
Task.PlayAnimNonInterruptable(5@, "FIGHTA_M", "PED", 4.0, False, False, False, False, -1)
set_local_var_bit_const 2@ {n} 1

:FPS_11736
if or
  16@ == 44
  16@ == 45
goto_if_false @FPS_11813
Task.PlayAnimNonInterruptable(5@, "goggles_put_on", "goggles", 4.0, False, False, False, False, -1)
set_local_var_bit_const 2@ {n} 1

:FPS_11813
goto @FPS_12018

:FPS_11820
if and
  not Char.IsPlayingAnim(5@, "FIGHTA_M")
  not Char.IsPlayingAnim(5@, "goggles_put_on")
  not Char.IsPlayingAnim(5@, "WEAPON_start_throw")
  not Char.IsPlayingAnim(5@, "WEAPON_throw")
  not Char.IsPlayingAnim(5@, "WEAPON_throwu")
goto_if_false @FPS_12018
Task.PlayAnimNonInterruptable(5@, "fucku", "PED", 4.0, False, False, False, False, -1)
Char.SetAnimSpeed(5@, "fucku", 2.5)
Char.SetAnimPlayingFlag(5@, "fucku", False)
Char.SetAnimCurrentTime(5@, "fucku", 0.1)
clear_local_var_bit_const 2@ {n} 1

:FPS_12018
if and
  not is_local_var_bit_set_const 2@ {n} 14
  is_local_var_bit_set_const 2@ {n} 12
  not is_local_var_bit_set_const 2@ {n} 13
goto_if_false @FPS_12106
0@ = Memory.GetPedPointer(5@)
0@ += 1440
15@ *= 28
add_int_lvar_to_int_lvar 0@ += 15@
15@ /= 28
0@ += 4
Memory.Write(0@, 4, 2, False)

:FPS_12106
TIMERB = 0
if or
  Char.IsInAnyCar($scplayer)
  Pad.IsButtonPressed(PadId.Pad1, Button.Triangle)
  Char.IsDead($scplayer)
  not Char.IsHealthGreater($scplayer, 1)
  Object.IsInWater(3@)
  Cutscene.HasLoaded
  Char.HasBeenArrested($scplayer)
goto_if_false @FPS_899
Char.DetachFromCar($scplayer)
Char.ClearTasks($scplayer)
Char.SetCurrentWeapon($scplayer, 16@)
Object.Delete(3@)
Object.Delete(4@)
if 
  not is_local_var_bit_set_const 2@ {n} 14
goto_if_false @FPS_12212
gosub @FPS_13578

:FPS_12212
Camera.SetNearClip(0.1)
Text.UseCommands(False)
Pad.SetPlayerEnterCarButton($player1, True)
Hud.Display(True)
Pad.SetPlayerDuckButton($player1, True)
Pad.SetPlayerFireButton($player1, True)
World.DisableAllEntryExits(False)
Pad.SetPlayerJumpButton($player1, True)
Pad.SetPlayerCycleWeaponButton($player1, True)
Streaming.MarkModelAsNoLongerNeeded(364)
Streaming.MarkModelAsNoLongerNeeded(1214)
Streaming.RemoveAnimation("goggles")
if 
  is_local_var_bit_set_const 2@ {n} 0
goto_if_false @FPS_12325
Memory.Write(11988014, 1, 1, False)
goto @FPS_12338

:FPS_12325
Memory.Write(11988014, 1, 0, False)

:FPS_12338
Camera.Restore
0@ = Memory.GetThisScriptStruct()
0@ += 16
0@ = Memory.Read(0@, 4, False)
0@ -= -14101
if 
  5@ = File.Open("CLEO\fps.set", 25207)
goto_if_false @FPS_12564
1@ = 22

:FPS_12414
6@ = Memory.Read(0@, 4, False)
0@ += 4
7@ = Memory.Read(0@, 4, False)
0@ += 4
8@ = Memory.Read(0@, 4, False)
0@ += 4
9@ = Memory.Read(0@, 4, False)
0@ += 4
10@ = Memory.Read(0@, 4, False)
0@ += 4
11@ = Memory.Read(0@, 4, False)
0@ += 4
File.Write(5@, 24, 6@)
1@ += 1
  1@ > 43
goto_if_false @FPS_12414
File.Close(5@)

:FPS_12564
goto @FPS_11

:FPS_12571
if 
  is_local_var_bit_set_lvar 2@ {var_n} 0@
goto_if_false @FPS_12679
0@ += 1
if 
  is_local_var_bit_set_lvar 2@ {var_n} 0@
goto_if_false @FPS_12664
if 
  not Pad.IsButtonPressed(PadId.Pad1, 1@)
goto_if_false @FPS_12657
clear_local_var_bit_lvar 2@ {var_n} 0@
0@ += -1
clear_local_var_bit_lvar 2@ {var_n} 0@

:FPS_12657
goto @FPS_12672

:FPS_12664
set_local_var_bit_lvar 2@ {var_n} 0@

:FPS_12672
goto @FPS_12761

:FPS_12679
0@ += 1
if 
  is_local_var_bit_set_lvar 2@ {var_n} 0@
goto_if_false @FPS_12753
if 
  Pad.IsButtonPressed(PadId.Pad1, 1@)
goto_if_false @FPS_12746
clear_local_var_bit_lvar 2@ {var_n} 0@
0@ += -1
set_local_var_bit_lvar 2@ {var_n} 0@

:FPS_12746
goto @FPS_12761

:FPS_12753
set_local_var_bit_lvar 2@ {var_n} 0@

:FPS_12761
return 

:FPS_12763
6@, 7@, 8@ = Char.GetOffsetInWorldCoords($scplayer, 0.0, 0.0, 0.0)
1@ = Char.GetHeading($scplayer)
5@ = Char.Create(PedType.Special, 0, 6@, 7@, 8@)
Char.SetProofs(5@, True, True, True, True, True)
Char.SetAccuracy(5@, 100)
Char.SetVisible(5@, True)
Char.ShutUp(5@, True)
Char.SetCollision(5@, False)
Char.SetWeaponSkill(5@, 1)
Char.SetDrownsInWater(5@, False)
15@ += 1
6@, 7@, 8@ = Char.GetWeaponInSlot($scplayer, 15@)
15@ += -1
if 
  6@ <> 0
goto_if_false @FPS_12952
Streaming.RequestModel(8@)

:FPS_12929
  not Streaming.HasModelLoaded(8@)
goto_if_false @FPS_12952
wait 0
goto @FPS_12929

:FPS_12952
if and
  15@ > 1
  10 > 15@
  15@ <> 8
goto_if_false @FPS_13031
Camera.SetNearClip(0.5)
Char.AttachToObject(5@, 4@, 0.0, 0.25, -0.75, 0, 360.0, 6@)
goto @FPS_13071

:FPS_13031
Camera.SetNearClip(0.5)
Char.AttachToObject(5@, 4@, 0.0, 0.25, -0.375, 0, 360.0, 6@)

:FPS_13071
if 
  6@ <> 0
goto_if_false @FPS_13094
Streaming.MarkModelAsNoLongerNeeded(8@)

:FPS_13094
set_lvar_int_to_lvar_int 16@ = 6@
15@ *= 28
0@ = Memory.GetPedPointer($scplayer)
0@ += 1440
add_int_lvar_to_int_lvar 0@ += 15@
0@ += 4
6@ = Memory.Read(0@, 4, False)
0@ += 4
7@ = Memory.Read(0@, 4, False)
0@ += 4
8@ = Memory.Read(0@, 4, False)
set_lvar_int_to_lvar_int 0@ = 16@
0@ *= 112
0@ += 13150936
0@ = Memory.Read(0@, 2, False)
if 
  is_int_lvar_greater_than_int_lvar 7@ > 0@
goto_if_false @FPS_13254
set_lvar_int_to_lvar_int 7@ = 0@

:FPS_13254
if 
  8@ > 24999
goto_if_false @FPS_13281
8@ = 24999

:FPS_13281
0@ = Memory.GetPedPointer(5@)
0@ += 1440
add_int_lvar_to_int_lvar 0@ += 15@
0@ += 4
Memory.Write(0@, 4, 6@, False)
0@ += 4
Memory.Write(0@, 4, 7@, False)
0@ += 4
Memory.Write(0@, 4, 8@, False)
15@ /= 28
set_lvar_int_to_lvar_int 19@ = 8@
if and
  15@ > 1
  8 > 15@
  16@ <> 35
  16@ <> 36
  16@ <> 37
goto_if_false @FPS_13474
set_lvar_int_to_lvar_int 0@ = 16@
0@ *= 112
0@ += 13150912
20@ = Memory.Read(0@, 4, False)
Memory.Write(0@, 4, 0.0, False)

:FPS_13474
if or
  15@ > 9
  2 > 15@
goto_if_false @FPS_13566
set_lvar_int_to_lvar_int 0@ = 16@
0@ *= 112
0@ += 13151014
0@ = Memory.Read(0@, 1, False)
0@ *= 136
0@ += 12676836
20@ = Memory.Read(0@, 4, False)

:FPS_13566
20@ += 1.0
return 

:FPS_13578
15@ *= 28
0@ = Memory.GetPedPointer(5@)
0@ += 1440
add_int_lvar_to_int_lvar 0@ += 15@
0@ += 4
6@ = Memory.Read(0@, 4, False)
0@ += 4
7@ = Memory.Read(0@, 4, False)
0@ += 4
8@ = Memory.Read(0@, 4, False)
0@ = Memory.GetPedPointer($scplayer)
0@ += 1440
add_int_lvar_to_int_lvar 0@ += 15@
0@ += 4
Memory.Write(0@, 4, 6@, False)
0@ += 4
Memory.Write(0@, 4, 7@, False)
0@ += 4
Memory.Write(0@, 4, 8@, False)
15@ /= 28
Char.Delete(5@)
if and
  15@ > 1
  8 > 15@
  16@ <> 35
  16@ <> 36
  16@ <> 37
goto_if_false @FPS_13852
20@ += -1.0
set_lvar_int_to_lvar_int 0@ = 16@
0@ *= 112
0@ += 13150912
Memory.Write(0@, 4, 20@, False)

:FPS_13852
return 

:FPS_13854
27@ = Math.GetDistanceBetweenCoords2D(28@, 29@, 0.0, 0.0)
div_float_lvar_by_float_lvar 28@ /= 27@
div_float_lvar_by_float_lvar 29@ /= 27@
27@ = Math.GetDistanceBetweenCoords2D(28@, 29@, 0.0, 1.0)
26@ = 0

:FPS_13919
27@ /= 2.0
mult_float_lvar_by_float_lvar 27@ *= 27@
set_lvar_float_to_lvar_float 29@ = 27@
27@ *= -1.0
27@ += 1.0
27@ = Math.Sqrt(27@)
27@ *= -1.0
27@ += 1.0
mult_float_lvar_by_float_lvar 27@ *= 27@
add_float_lvar_to_float_lvar 27@ += 29@
27@ = Math.Sqrt(27@)
26@ += 1
  26@ > 15
goto_if_false @FPS_13919
27@ *= 65536.0
27@ /= 3.141529
27@ *= 180.0
if 
  28@ > 0.0
goto_if_false @FPS_14099
27@ *= -1.0

:FPS_14099
return 
hex
 8F C2 C9 3D 00 00 00 00 66 E1 06 BE D0 A3 2E BF
 E2 91 BE BF 03 00 D0 3E 68 66 0E 3D 00 00 00 00
 2A DC 3E BF E5 7A 82 BE EE 51 A8 BC 3B 0A 89 3E
 AF 47 E1 3C 21 85 0F 3E 72 BD 46 BF 99 99 A2 BE
 94 C2 BA BE 90 C2 C4 3E B6 1E 85 3B 00 00 00 00
 49 E1 2C BF 90 C2 F4 BE AB 47 AD 3E 54 B8 97 3E
 29 5C 33 3E 00 00 00 00 26 D7 4F BE EF A8 D4 BF
 05 57 24 BF 22 85 E1 3E 48 D0 CC B9 79 14 26 3E
 A4 70 D1 BE 68 66 B9 BE 8C C2 A1 3E 71 3D D7 3E
 A0 70 49 3E CD CC 4C BB 35 AE 51 BE 8C A2 0D C0
 DC 7A 30 BF DC A3 E3 3E 0B D7 1B 3D A6 70 DD 3D
 0B D7 3A BF 90 42 7B BF 49 78 9A BF FF FF BE 3E
 D0 D5 23 B9 E2 7A 84 3D 42 0A 38 BF 2B D7 BB BE
 E0 28 C8 BD FD FF 93 3E A6 47 41 BC 47 E1 FE 3D
 EF 51 3D BF 6C 3D 87 BE 4D B8 E0 3E 14 AE A3 3E
 B7 1E 25 3E 00 00 00 00 44 0A 85 BE 5A 0F D5 BF
 B2 70 AD BD D4 A3 FE 3E AD 47 41 3C 00 00 00 00
 70 BD 2F BF 31 33 03 BF B9 1E 31 BE 00 00 80 3E
 CD CC CC 3C 00 00 00 00 9A 99 39 BF 00 00 00 00
 00 00 00 00 00 00 80 3E 3C 0A C7 BC 00 00 00 00
 32 B3 3F BF D9 FA 55 3F 33 33 EE 3E E9 51 5C 3E
 F0 D6 23 BA 00 00 00 00 47 61 23 BF 16 05 47 3F
 72 3D 93 3E CC CC 9D 3E FF FF A7 BD 0F AE 6F 3E
 11 D7 FF BE 34 33 DB BD 1D 5C 94 BE 44 DC 0C 3F
 14 D7 C3 BD 1B D7 73 3E 3E 33 F2 BE 45 0A 77 BE
 60 EB 05 3E B3 C7 0C 3F CD CC CC 3C 00 00 00 00
 9A 99 39 BF 00 00 00 00 00 00 00 00 00 00 80 3E
 CD CC CC 3C 00 00 00 00 9A 99 39 BF 00 00 00 00
 00 00 00 00 00 00 80 3E 8F C2 81 3D 51 B8 5A 3E
 65 66 30 BF F0 68 82 BF 33 33 13 3D
end
Game.AllowPauseInWidescreen(v$overall_score)
hex
 AE 6D BE 54 B8 B4 3E E0 7A B5 BE 28 5C 1A BF 77
 FD 8A 3F D8 CC 12 3F 4D B8 56 3D 9C 47 77 3E 48
 E1 17 BF D2 A3 E0 3C 49 E1 06 3E 7D 3D DB 3E
end



как работает этот код