Autodriver
Autodriver
//-------------MAIN---------------
0006: 30@ = 0
0007: 4@ = 25.0
:NONAME_17
0001: wait 0 ms
00D6: if
0256: player $PLAYER_CHAR defined
004D: jump_if_false @NONAME_732
00D6: if and
00DF: actor $PLAYER_ACTOR driving
80DD: not actor $PLAYER_ACTOR driving_car_with_model #FREIGHT
80DD: not actor $PLAYER_ACTOR driving_car_with_model #STREAK
84A7: not actor $PLAYER_ACTOR driving_boat
84C8: not actor $PLAYER_ACTOR driving_flying_vehicle
004D: jump_if_false @NONAME_309
03C0: 0@ = actor $PLAYER_ACTOR car
00D6: if
0AB0: key_pressed 90
004D: jump_if_false @NONAME_200
00D6: if and
056E: car 0@ defined
0AB6: store_target_marker_coords_to 1@ 2@ 3@ // IF and SET
004D: jump_if_false @NONAME_188
018C: play_sound 1058 at 0.0 0.0 0.0
00D6: if
0039: 30@ == 0
004D: jump_if_false @NONAME_181
0050: gosub @NONAME_844
0002: jump @NONAME_188
:NONAME_181
0050: gosub @NONAME_739
:NONAME_188
0AB1: call_scm_func @NONAME_1337 1 90
:NONAME_200
00D6: if
0039: 22@ == 0
0AB0: key_pressed 16
004D: jump_if_false @NONAME_262
0470: 21@ = actor $PLAYER_ACTOR current_weapon
00D6: if and
0029: 21@ >= 22
8019: not 21@ > 32
004D: jump_if_false @NONAME_262
0050: gosub @NONAME_1211
:NONAME_262
00D6: if
8039: not 22@ == 0
004D: jump_if_false @NONAME_309
00D6: if
0AB0: key_pressed 16
004D: jump_if_false @NONAME_302
0002: jump @NONAME_309
:NONAME_302
0050: gosub @NONAME_1262
:NONAME_309
00D6: if
0039: 30@ == 1
004D: jump_if_false @NONAME_695
00D6: if or
00E1: player 0 pressed_key 15
02BF: car 0@ sunk
0119: car 0@ wrecked
004D: jump_if_false @NONAME_361
0050: gosub @NONAME_739
:NONAME_361
00D6: if and
056E: car 0@ defined
01F4: car 0@ flipped
004D: jump_if_false @NONAME_389
0050: gosub @NONAME_798
:NONAME_389
00D6: if
856E: not car 0@ defined
004D: jump_if_false @NONAME_419
0006: 30@ = 0
0002: jump @NONAME_688
:NONAME_419
00D6: if
80DB: not actor $PLAYER_ACTOR in_car 0@
004D: jump_if_false @NONAME_445
0006: 30@ = 0
:NONAME_445
00D6: if and
0AB0: key_pressed 65
0AB6: store_target_marker_coords_to 1@ 2@ 3@ // IF and SET
004D: jump_if_false @NONAME_490
0050: gosub @NONAME_927
0AB1: call_scm_func @NONAME_1337 1 65
:NONAME_490
00D6: if
0AB0: key_pressed 32
004D: jump_if_false @NONAME_576
054C: use_GXT_table 'FTRAIN'
00D6: if
0039: 29@ == 0
004D: jump_if_false @NONAME_562
0AB1: call_scm_func @NONAME_1365 4 10 1 -1647 3
0006: 29@ = 1
:NONAME_562
0050: gosub @NONAME_977
0002: jump @NONAME_613
:NONAME_576
00D6: if
0039: 29@ == 1
004D: jump_if_false @NONAME_613
0006: 29@ = 0
0AB1: call_scm_func @NONAME_1431 1 10
:NONAME_613
00D6: if
01AE: car 0@ sphere 0 near_point 1@ 2@ radius 3.0 3.0 stopped
004D: jump_if_false @NONAME_654
0050: gosub @NONAME_739
:NONAME_654
00D6: if
0AB0: key_pressed 88
004D: jump_if_false @NONAME_688
0050: gosub @NONAME_1108
0AB1: call_scm_func @NONAME_1337 1 88
:NONAME_688
0002: jump @NONAME_732
:NONAME_695
00D6: if
0039: 29@ == 1
004D: jump_if_false @NONAME_732
0006: 29@ = 0
0AB1: call_scm_func @NONAME_1431 1 10
:NONAME_732
0002: jump @NONAME_17
:NONAME_739
0006: 30@ = 0
072A: put_actor $PLAYER_ACTOR into_car 0@ driverseat
0423: set_car 0@ improved_handling_to 1.0 // (float)
01C3: remove_references_to_car 0@
03AB: set_car 0@ strong 0
018C: play_sound 1058 at 0.0 0.0 0.0
0051: return
:NONAME_798
0174: 5@ = car 0@ Z_angle
00AA: store_car 0@ position_to 6@ 7@ 8@
00AB: put_car 0@ at 6@ 7@ 8@
0175: set_car 0@ Z_angle_to 5@
0051: return
:NONAME_844
0006: 30@ = 1
02CE: 3@ = ground_z_at 1@ 2@ 3@
00AF: set_car 0@ driver_behaviour_to 0
00AE: set_car 0@ traffic_behaviour_to 2
0423: set_car 0@ improved_handling_to 2.0 // (float)
03AB: set_car 0@ strong 1
00A7: car 0@ drive_to 1@ 2@ 3@
00AD: set_car 0@ max_speed_to 4@
0006: 20@ = 0
0051: return
:NONAME_927
02CE: 3@ = ground_z_at 1@ 2@ 3@
00A7: car 0@ drive_to 1@ 2@ 3@
018C: play_sound 1058 at 0.0 0.0 0.0
0051: return
:NONAME_977
00D6: if and
0021: 4@ > 3.5
0AB0: key_pressed 40
0029: 32@ >= 75
004D: jump_if_false @NONAME_1034
0006: 32@ = 0
000B: 4@ += -0.5
00AD: set_car 0@ max_speed_to 4@
:NONAME_1034
00D6: if and
8031: not 4@ >= 50.0
0AB0: key_pressed 38
0029: 32@ >= 75
004D: jump_if_false @NONAME_1091
0006: 32@ = 0
000B: 4@ += 0.5
00AD: set_car 0@ max_speed_to 4@
:NONAME_1091
0092: 10@ = float 4@ to_integer
0012: 10@ *= 2
0051: return
:NONAME_1108
00D6: if
0039: 20@ == 0
004D: jump_if_false @NONAME_1154
0006: 20@ = 1
00AE: set_car 0@ traffic_behaviour_to 1
00AF: set_car 0@ driver_behaviour_to 1
0002: jump @NONAME_1189
:NONAME_1154
0006: 20@ = 0
00AE: set_car 0@ traffic_behaviour_to 2
00AF: set_car 0@ driver_behaviour_to 0
00A7: car 0@ drive_to 1@ 2@ 3@
:NONAME_1189
018C: play_sound 1058 at 0.0 0.0 0.0
0051: return
:NONAME_1211
0006: 22@ = 1
0713: actor $PLAYER_ACTOR driveby_actor -1 car -1 point 0.0 0.0 0.0 radius 300.0 8
0 firing_rate 75
015D: set_gamespeed 0.5
0051: return
:NONAME_1262
0006: 22@ = 0
072A: put_actor $PLAYER_ACTOR into_car 0@ driverseat
00D6: if
0039: 30@ == 1
004D: jump_if_false @NONAME_1328
:NONAME_1295
0001: wait 0 ms
00DB: actor $PLAYER_ACTOR in_car 0@
004D: jump_if_false @NONAME_1295
00A7: car 0@ drive_to 1@ 2@ 3@
:NONAME_1328
015D: set_gamespeed 1.0
0051: return
:NONAME_1337
0AB0: key_pressed 0@
004D: jump_if_false @NONAME_1360
0001: wait 0 ms
0002: jump @NONAME_1337
:NONAME_1360
0AB2: ret 0
:NONAME_1365
0AB1: call_scm_func @NONAME_1472 1 0@ 0@
0AB1: call_scm_func @NONAME_1575 1 2@ 2@
0AA6: call_method 4509088 struct 12195720 num_params 4 pop 0 3@ 2@ 1@ 0@
0AB2: ret 0
:NONAME_1431
0AB1: call_scm_func @NONAME_1472 1 0@ 0@
0AA6: call_method 4509312 struct 12195720 num_params 1 pop 0 0@
0AB2: ret 0
:NONAME_1472
0A9F: 1@ = current_thread_pointer
0A8E: 2@ = 1@ + 220 // int
0A8D: 2@ = read_memory 2@ size 1 virtual_protect 0
00D6: if
0039: 2@ == 1
004D: jump_if_false @NONAME_1535
0006: 1@ = 10783072
0002: jump @NONAME_1542
:NONAME_1535
000A: 1@ += 60
:NONAME_1542
0012: 0@ *= 4
005A: 1@ += 0@ // (int)
000E: 1@ -= 10787168
0AB2: ret 1 1@
:NONAME_1575
00D6: if
0039: 0@ == 0
004D: jump_if_false @NONAME_1600
0AB2: ret 1 0
:NONAME_1600
0A9F: 1@ = current_thread_pointer
000A: 1@ += 16
0A8D: 1@ = read_memory 1@ size 4 virtual_protect 0
0062: 1@ -= 0@ // (int)
000A: 1@ += 3
0AB2: ret 1 1@
0900: clear_object 'FREI_11' last_weapon_damage
0000: NOP