// This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007
{$VERSION 3.1.0027}
{$CLEO .cs}
//-------------MAIN---------------
thread 'FPS'
:FPS_11
wait 0
0@ = -229908
008B: 0@ = &0(0@,1i) // (int)
0085: 1@ = 0@ // (int)
0@ /= 16777216
0@ *= 16777216
0062: 1@ -= 0@ // (int)
if and
not Actor.Driving($PLAYER_ACTOR)
1@ == 4608083
else_jump @FPS_11
0@ = -229908
&0(0@,1i) = 1179669248
Model.Load(1582)
:FPS_128
wait 0
if
Model.Available(1582)
else_jump @FPS_128
03F0: enable_text_draw 1
07CC: set_player $PLAYER_CHAR button_15 0
082A: set_player $PLAYER_CHAR able_to_use_crouch_button 0
0881: set_player $PLAYER_CHAR able_to_shoot_weapons 0
08E7: disable_entrance_markers 1
0901: enable_player $PLAYER_CHAR jump_key 0
0470: 30@ = actor $PLAYER_ACTOR current_weapon
0A96: 0@ = actor $PLAYER_ACTOR struct
0@ += 1816
0A8D: 31@ = read_memory 0@ size 1 virtual_protect 0
Actor.StorePos($PLAYER_ACTOR, 4@, 5@, 6@)
1@ = Actor.Angle($PLAYER_ACTOR)
2@ = Object.Create(1582, 4@, 5@, 6@)
Object.CollisionDetection(2@) = True
Object.ToggleInMovingList(2@) = True
04D9: object 2@ set_scripted_collision_check 1
0750: set_object 2@ visibility 0
0906: set_object 2@ mass_to 75.0 // float
0908: set_object 2@ turn_mass_to 99999.9 // float
Object.SetImmunities(2@, 1, 1, 1, 1, 1)
3@ = Actor.Create(Special, #NULL, 4@, 5@, 6@)
Actor.SetImmunities(3@, 1, 1, 1, 1, 1)
Actor.WeaponAccuracy(3@) = 100
0337: set_actor 3@ visibility 1
0489: set_actor 3@ muted 1
0619: enable_actor 3@ collision_detection 0
081A: set_actor 3@ weapon_skill_to 2
04D8: set_actor 3@ drowns_in_water 0
Object.Angle(2@) = 1@
if or
30@ == 34
30@ == 35
30@ == 36
30@ == 43
else_jump @FPS_483
04F4: put_actor $PLAYER_ACTOR into_turret_on_object 2@ offset_from_object_origin 0.0 0.2 0.1 orientation 0 both_side_angle_limit 360.0 lock_weapon 0
jump @FPS_516
:FPS_483
04F4: put_actor $PLAYER_ACTOR into_turret_on_object 2@ offset_from_object_origin 0.0 0.2 0.1 orientation 0 both_side_angle_limit 360.0 lock_weapon 30@
:FPS_516
04F4: put_actor 3@ into_turret_on_object 2@ offset_from_object_origin 0.0 0.25 0.0 orientation 0 both_side_angle_limit 360.0 lock_weapon 30@
Actor.Angle(3@) = 1@
1@ += -90.0
0858: set_player $PLAYER_CHAR scan_horizon_to_angle 1@ rotation_speed 3600.0
20@ = 0
21@ = 0
22@ = 0
23@ = 0
24@ = 0
0A8D: 25@ = read_memory 11988014 size 1 virtual_protect 0
0A8C: write_memory 11988014 size 1 value 1 virtual_protect 0
32@ = -1000
:FPS_650
wait 0
0@ = 0
1@ = 5
gosub @FPS_4116
0@ = 1
1@ = 6
gosub @FPS_4116
0@ = 2
1@ = 7
gosub @FPS_4116
0@ = 3
1@ = 14
gosub @FPS_4116
0@ = 4
1@ = 19
gosub @FPS_4116
if or
30@ == 34
30@ == 35
30@ == 36
30@ == 43
else_jump @FPS_821
if
21@ == 0
else_jump @FPS_821
0687: clear_actor $PLAYER_ACTOR task
:FPS_821
if or
20@ == 1
22@ == 1
else_jump @FPS_1313
26@ = 0
:FPS_853
if
20@ == 1
else_jump @FPS_903
31@ += -1
if
31@ == -1
else_jump @FPS_903
31@ = 10
:FPS_903
if
22@ == 1
else_jump @FPS_953
31@ += 1
if
31@ == 11
else_jump @FPS_953
31@ = 0
:FPS_953
0085: 4@ = 31@ // (int)
4@ *= 28
0A96: 0@ = actor $PLAYER_ACTOR struct
0@ += 1440
005A: 0@ += 4@ // (int)
0A8D: 4@ = read_memory 0@ size 4 virtual_protect 0
if or
not 4@ == 0
31@ == 0
else_jump @FPS_1292
0085: 30@ = 4@ // (int)
if or
30@ == 34
30@ == 35
30@ == 36
30@ == 43
else_jump @FPS_1115
04F4: put_actor $PLAYER_ACTOR into_turret_on_object 2@ offset_from_object_origin 0.0 0.2 0.1 orientation 0 both_side_angle_limit 360.0 lock_weapon 0
jump @FPS_1148
:FPS_1115
04F4: put_actor $PLAYER_ACTOR into_turret_on_object 2@ offset_from_object_origin 0.0 0.2 0.1 orientation 0 both_side_angle_limit 360.0 lock_weapon 30@
:FPS_1148
Actor.DestroyInstantly(3@)
3@ = Actor.Create(Special, #NULL, 4@, 5@, 6@)
Actor.SetImmunities(3@, 1, 1, 1, 1, 1)
Actor.WeaponAccuracy(3@) = 100
0337: set_actor 3@ visibility 1
0489: set_actor 3@ muted 1
0619: enable_actor 3@ collision_detection 0
081A: set_actor 3@ weapon_skill_to 2
04D8: set_actor 3@ drowns_in_water 0
04F4: put_actor 3@ into_turret_on_object 2@ offset_from_object_origin 0.0 0.25 0.0 orientation 0 both_side_angle_limit 360.0 lock_weapon 30@
1@ = Actor.Angle($PLAYER_ACTOR)
Actor.Angle(3@) = 1@
32@ = -1000
jump @FPS_1313
:FPS_1292
26@ += 1
26@ > 12
else_jump @FPS_853
:FPS_1313
068D: get_camera_position_to 4@ 5@ 6@
068E: get_camera_target_point_to 28@ 29@ 27@
0063: 28@ -= 4@ // (float)
0063: 29@ -= 5@ // (float)
0509: 4@ = distance_between_XY 0.0 0.0 and_XY 28@ 29@
0063: 6@ -= 27@ // (float)
gosub @FPS_4272
0453: set_object 2@ XY_rotation 0.0 0.0 angle 27@
0087: 28@ = 4@ // (float)
0087: 29@ = 6@ // (float)
gosub @FPS_4272
27@ /= 120.0
if
-0.75 > 27@
else_jump @FPS_1469
27@ = -0.75
:FPS_1469
if and
30@ == 22
21@ == 2
else_jump @FPS_1511
27@ += 1.5
jump @FPS_1521
:FPS_1511
27@ += 1.25
:FPS_1521
041D: set_camera_near_clip 27@
0494: get_joystick 0 data_to 10@ 11@ 26@ 26@
0093: 10@ = integer 10@ to_float
0093: 11@ = integer 11@ to_float
10@ /= 1.5
if
11@ > 0.0
else_jump @FPS_1599
11@ /= 1.5
:FPS_1599
if
21@ == 2
else_jump @FPS_1644
10@ /= 32.0
11@ /= -32.0
jump @FPS_1664
:FPS_1644
10@ /= 24.0
11@ /= -24.0
:FPS_1664
0400: store_coords_to 4@ 5@ 6@ from_object 2@ with_offset 10@ 11@ 0.0
0400: store_coords_to 7@ 8@ 9@ from_object 2@ with_offset 0.0 0.0 0.0
0063: 4@ -= 7@ // (float)
0063: 5@ -= 8@ // (float)
059F: get_object 2@ velocity_in_direction 7@ 8@ 6@
Object.StorePos(2@, 7@, 8@, 9@)
02CE: 7@ = ground_z_at 7@ 8@ 9@
7@ += 1.0
0063: 9@ -= 7@ // (float)
0087: 8@ = 9@ // (float)
9@ *= -15.0
if and
9@ > 0.0
0025: 9@ > 6@ // (float)
else_jump @FPS_1849
0087: 6@ = 9@ // (float)
:FPS_1849
if or
30@ == 34
30@ == 35
30@ == 36
30@ == 43
else_jump @FPS_1950
if and
0.2 > 8@
6.5 > 6@
23@ == 1
21@ == 0
else_jump @FPS_1943
6@ = 6.5
:FPS_1943
jump @FPS_1998
:FPS_1950
if and
0.2 > 8@
6.5 > 6@
23@ == 1
else_jump @FPS_1998
6@ = 6.5
:FPS_1998
Object.Throw(2@, 4@, 5@, 6@)
068D: get_camera_position_to 7@ 8@ 9@
068E: get_camera_target_point_to 4@ 5@ 6@
0063: 4@ -= 7@ // (float)
0063: 5@ -= 8@ // (float)
0063: 6@ -= 9@ // (float)
050A: 27@ = distance_between_XYZ 0.0 0.0 0.0 and_XYZ 4@ 5@ 6@
27@ /= 100.0
0073: 4@ /= 27@ // (float)
0073: 5@ /= 27@ // (float)
0073: 6@ /= 27@ // (float)
005B: 4@ += 7@ // (float)
005B: 5@ += 8@ // (float)
005B: 6@ += 9@ // (float)
if
00E1: player 0 pressed_key 17
else_jump @FPS_2415
if or
30@ == 16
30@ == 17
30@ == 18
30@ == 39
else_jump @FPS_2312
if
0 > 32@
else_jump @FPS_2233
32@ = 0
jump @FPS_2305
:FPS_2233
if
32@ > 2000
else_jump @FPS_2305
0400: store_coords_to 7@ 8@ 9@ from_object 2@ with_offset 0.0 25.0 0.0
0668: AS_actor 3@ rotate_and_shoot_at 7@ 8@ 9@ 100 ms
32@ = -1000
:FPS_2305
jump @FPS_2408
:FPS_2312
if or
30@ == 34
30@ == 35
30@ == 36
30@ == 43
else_jump @FPS_2392
if
21@ == 0
else_jump @FPS_2385
0668: AS_actor 3@ rotate_and_shoot_at 4@ 5@ 6@ 100 ms
:FPS_2385
jump @FPS_2408
:FPS_2392
0668: AS_actor 3@ rotate_and_shoot_at 4@ 5@ 6@ 100 ms
:FPS_2408
jump @FPS_2574
:FPS_2415
if or
30@ == 16
30@ == 17
30@ == 18
30@ == 39
else_jump @FPS_2558
if
32@ > 0
else_jump @FPS_2543
0093: 4@ = integer 32@ to_float
4@ /= 100.0
4@ += 10.0
0400: store_coords_to 7@ 8@ 9@ from_object 2@ with_offset 0.0 4@ 0.0
0668: AS_actor 3@ rotate_and_shoot_at 7@ 8@ 9@ 100 ms
:FPS_2543
32@ = -1000
jump @FPS_2574
:FPS_2558
0667: AS_actor 3@ aim_at 4@ 5@ 6@ 100 ms
:FPS_2574
0A96: 0@ = actor 3@ struct
0@ += 1816
0A8D: 1@ = read_memory 0@ size 1 virtual_protect 0
1@ *= 28
0A96: 0@ = actor 3@ struct
0@ += 1444
005A: 0@ += 1@ // (int)
0A8D: 1@ = read_memory 0@ size 4 virtual_protect 0
033F: set_text_draw_letter_size 0.3 1.4
if
1@ == 2
else_jump @FPS_2693
0340: set_text_draw_RGBA 86 101 120 255
jump @FPS_2707
:FPS_2693
0340: set_text_draw_RGBA 172 203 241 255
:FPS_2707
0342: enable_text_draw_centered 1
0345: enable_text_draw_background 0
0348: enable_text_draw_proportional 0
03E4: enable_text_draw_align_right 0
0349: set_text_draw_font 1
081C: draw_text_outline 1 RGBA 0 0 0 255
0@ += 4
0A8D: 1@ = read_memory 0@ size 4 virtual_protect 0
045A: draw_text_1number 520.0 63.0 GXT 'NUMBER' number 1@ // ~1~
if
24@ == 1
else_jump @FPS_2871
0A96: 0@ = actor 3@ struct
0@ += 1816
0A8D: 1@ = read_memory 0@ size 1 virtual_protect 0
1@ *= 28
0A96: 0@ = actor 3@ struct
0@ += 1444
005A: 0@ += 1@ // (int)
0A8C: write_memory 0@ size 4 value 2 virtual_protect 0
:FPS_2871
if or
30@ == 22
30@ == 23
30@ == 24
30@ == 25
30@ == 27
30@ == 29
else_jump @FPS_3366
if
21@ == 1
else_jump @FPS_3147
0922: set_camera_zoom_in_factor 70.0 out_factor 40.0 timelimit 500 mode 1
0A96: 0@ = actor 3@ struct
0@ += 1816
0A8D: 1@ = read_memory 0@ size 1 virtual_protect 0
1@ *= 28
0A96: 0@ = actor 3@ struct
0@ += 1448
005A: 0@ += 1@ // (int)
0A8D: 1@ = read_memory 0@ size 4 virtual_protect 0
if
30@ == 22
else_jump @FPS_3095
081A: set_actor 3@ weapon_skill_to 3
04F4: put_actor 3@ into_turret_on_object 2@ offset_from_object_origin -0.13 0.25 0.2 orientation 0 both_side_angle_limit 360.0 lock_weapon 30@
jump @FPS_3135
:FPS_3095
081A: set_actor 3@ weapon_skill_to 2
04F4: put_actor 3@ into_turret_on_object 2@ offset_from_object_origin -0.11 0.25 0.05 orientation 0 both_side_angle_limit 360.0 lock_weapon 30@
:FPS_3135
0A8C: write_memory 0@ size 4 value 1@ virtual_protect 0
:FPS_3147
if
21@ == 2
else_jump @FPS_3208
0801: get_camera_zoom_factor_to 4@ // float
if
42.5 >= 4@
else_jump @FPS_3208
0922: set_camera_zoom_in_factor 40.0 out_factor 40.0 timelimit 1000 mode 1
:FPS_3208
if
21@ == 3
else_jump @FPS_3366
0922: set_camera_zoom_in_factor 40.0 out_factor 70.0 timelimit 500 mode 1
081A: set_actor 3@ weapon_skill_to 2
0A96: 0@ = actor 3@ struct
0@ += 1816
0A8D: 1@ = read_memory 0@ size 1 virtual_protect 0
1@ *= 28
0A96: 0@ = actor 3@ struct
0@ += 1448
005A: 0@ += 1@ // (int)
0A8D: 1@ = read_memory 0@ size 4 virtual_protect 0
04F4: put_actor 3@ into_turret_on_object 2@ offset_from_object_origin 0.0 0.25 0.0 orientation 0 both_side_angle_limit 360.0 lock_weapon 30@
0A8C: write_memory 0@ size 4 value 1@ virtual_protect 0
:FPS_3366
if or
30@ == 30
30@ == 31
30@ == 33
else_jump @FPS_3775
if
21@ == 1
else_jump @FPS_3556
0922: set_camera_zoom_in_factor 70.0 out_factor 30.0 timelimit 500 mode 1
081A: set_actor 3@ weapon_skill_to 2
0A96: 0@ = actor 3@ struct
0@ += 1816
0A8D: 1@ = read_memory 0@ size 1 virtual_protect 0
1@ *= 28
0A96: 0@ = actor 3@ struct
0@ += 1448
005A: 0@ += 1@ // (int)
0A8D: 1@ = read_memory 0@ size 4 virtual_protect 0
04F4: put_actor 3@ into_turret_on_object 2@ offset_from_object_origin -0.14 0.25 0.1 orientation 0 both_side_angle_limit 360.0 lock_weapon 30@
0A8C: write_memory 0@ size 4 value 1@ virtual_protect 0
:FPS_3556
if
21@ == 2
else_jump @FPS_3617
0801: get_camera_zoom_factor_to 4@ // float
if
32.5 >= 4@
else_jump @FPS_3617
0922: set_camera_zoom_in_factor 30.0 out_factor 30.0 timelimit 1000 mode 1
:FPS_3617
if
21@ == 3
else_jump @FPS_3775
0922: set_camera_zoom_in_factor 30.0 out_factor 70.0 timelimit 500 mode 1
081A: set_actor 3@ weapon_skill_to 2
0A96: 0@ = actor 3@ struct
0@ += 1816
0A8D: 1@ = read_memory 0@ size 1 virtual_protect 0
1@ *= 28
0A96: 0@ = actor 3@ struct
0@ += 1448
005A: 0@ += 1@ // (int)
0A8D: 1@ = read_memory 0@ size 4 virtual_protect 0
04F4: put_actor 3@ into_turret_on_object 2@ offset_from_object_origin 0.0 0.25 0.0 orientation 0 both_side_angle_limit 360.0 lock_weapon 30@
0A8C: write_memory 0@ size 4 value 1@ virtual_protect 0
:FPS_3775
if or
30@ == 34
30@ == 35
30@ == 36
30@ == 43
else_jump @FPS_4005
if
21@ == 1
else_jump @FPS_3910
04F4: put_actor $PLAYER_ACTOR into_turret_on_object 2@ offset_from_object_origin 0.0 0.3 0.1 orientation 0 both_side_angle_limit 360.0 lock_weapon 30@
0337: set_actor 3@ visibility 0
0881: set_player $PLAYER_CHAR able_to_shoot_weapons 1
1@ = Object.Angle(2@)
1@ += -90.0
0858: set_player $PLAYER_CHAR scan_horizon_to_angle 1@ rotation_speed 3600.0
:FPS_3910
if
21@ == 3
else_jump @FPS_4005
04F4: put_actor $PLAYER_ACTOR into_turret_on_object 2@ offset_from_object_origin 0.0 0.3 0.1 orientation 0 both_side_angle_limit 360.0 lock_weapon 0
0337: set_actor 3@ visibility 1
0881: set_player $PLAYER_CHAR able_to_shoot_weapons 0
1@ = Object.Angle(2@)
1@ += -90.0
0858: set_player $PLAYER_CHAR scan_horizon_to_angle 1@ rotation_speed 3600.0
:FPS_4005
if or
00E1: player 0 pressed_key 15
Actor.Dead($PLAYER_ACTOR)
06B9: cutscene_data_loaded
04E7: object 2@ in_water
else_jump @FPS_650
0465: remove_actor $PLAYER_ACTOR from_turret_mode
Object.Destroy(2@)
Actor.DestroyInstantly(3@)
041D: set_camera_near_clip 0.1
07CC: set_player $PLAYER_CHAR button_15 1
082A: set_player $PLAYER_CHAR able_to_use_crouch_button 1
0881: set_player $PLAYER_CHAR able_to_shoot_weapons 1
08E7: disable_entrance_markers 0
0901: enable_player $PLAYER_CHAR jump_key 1
Camera.Restore
Model.Destroy(1582)
0A8C: write_memory 11988014 size 1 value 25@ virtual_protect 0
jump @FPS_11
:FPS_4116
if and
20@(0@,1i) == 0
00E1: player 0 pressed_key 1@
else_jump @FPS_4158
20@(0@,1i) = 1
return
:FPS_4158
if
20@(0@,1i) == 1
else_jump @FPS_4193
20@(0@,1i) = 2
return
:FPS_4193
if and
20@(0@,1i) == 2
80E1: not player 0 pressed_key 1@
else_jump @FPS_4235
20@(0@,1i) = 3
return
:FPS_4235
if
20@(0@,1i) == 3
else_jump @FPS_4270
20@(0@,1i) = 0
return
:FPS_4270
return
:FPS_4272
0509: 27@ = distance_between_XY 28@ 29@ and_XY 0.0 0.0
0073: 28@ /= 27@ // (float)
0073: 29@ /= 27@ // (float)
0509: 27@ = distance_between_XY 28@ 29@ and_XY 0.0 1.0
26@ = 0
:FPS_4337
27@ /= 2.0
006B: 27@ *= 27@ // (float)
0087: 29@ = 27@ // (float)
27@ *= -1.0
27@ += 1.0
01FB: 27@ = square_root 27@
27@ *= -1.0
27@ += 1.0
006B: 27@ *= 27@ // (float)
005B: 27@ += 29@ // (float)
01FB: 27@ = square_root 27@
26@ += 1
26@ > 15
else_jump @FPS_4337
27@ *= 65536.0
27@ /= 3.141529
27@ *= 180.0
if
28@ > 0.0
else_jump @FPS_4517
27@ *= -1.0
:FPS_4517
return