{$CLEO .cs}
0000: NOP
30@ = 0
while true
wait 0
0AAA: 25@ = thread 'DSKOOL' pointer
0AAA: 26@ = thread 'BSKOOL' pointer
if and //textures
30@ == 0
25@ == 0
26@ == 0
Actor.Driving($PLAYER_ACTOR)
//$Active_Interior == 0
84C8: not actor $PLAYER_ACTOR driving_flying_vehicle
84A7: not actor $PLAYER_ACTOR driving_boat
//80DD: not actor $PLAYER_ACTOR driving_car_with_model #TAXI
//80DD: not actor $PLAYER_ACTOR driving_car_with_model #CABBIE
then
03C0: 1@ = actor $PLAYER_ACTOR car
0390: load_txd_dictionary "SPEED"
038F: load_texture "STRELK" as 115 // Load dictionary with 0390 first
038F: load_texture "CIF" as 116 // Load dictionary with 0390 first
038F: load_texture "CIFN" as 117 // Load dictionary with 0390 first
038F: load_texture "STRELKN" as 118 // Load dictionary with 0390 first
30@ = 1
{else
03F0: enable_text_draw 0
0391: release_txd_dictionary
30@ = 0 }
end //textures
while 30@ == 1
wait 0
gosub @CutsceneCheck
gosub @WideScreenCheck
00BF: 12@ = current_time_hours, 13@ = current_time_minutes
if and
056E: car 1@ defined
29@ == FALSE
28@ == FALSE
12@ > 6
then
//02E3: 2@ = car 1@ speed
//2@ *= 4.0
0AB1: call_scm_func @time 0
0AB1: call_scm_func @GEAR 0 23@
03F0: enable_text_draw 1
03E3: set_texture_to_be_drawn_antialiased 1
038D: draw_texture 116 position 550.0 360.0 size 191.25 170.0 RGBA 255 255 255 255
03E3: set_texture_to_be_drawn_antialiased 1
03E0: draw_text_behind_textures 1
074B: draw_texture 115 position 550.0 360.0 scale 191.25 170.0 angle 23@ color_RGBA 255 255 255 255
end
if and
056E: car 1@ defined
29@ == FALSE
28@ == FALSE
12@ <= 6
then
{02E3: 2@ = car 1@ speed
2@ *= 4.0}
0AB1: call_scm_func @time 0
0AB1: call_scm_func @GEAR 0 23@
03F0: enable_text_draw 1
03E3: set_texture_to_be_drawn_antialiased 1
038D: draw_texture 117 position 550.0 360.0 size 191.25 170.0 RGBA 255 255 255 255
03E3: set_texture_to_be_drawn_antialiased 1
03E0: draw_text_behind_textures 1
074B: draw_texture 118 position 550.0 360.0 scale 191.25 170.0 angle 23@ color_RGBA 255 255 255 255
end
if// or
//30@ == 2
80DF: not actor $PLAYER_ACTOR driving
then
03F0: enable_text_draw 0
wait 1
0391: release_txd_dictionary
30@ = 0
end
if //or
0ab0: 192 //~
//00DD: actor $PLAYER_ACTOR driving_car_with_model #TAXI
//00DD: actor $PLAYER_ACTOR driving_car_with_model #CABBIE
then
03F0: enable_text_draw 0
wait 1
0391: release_txd_dictionary
30@ = 0
end
end//30@ == 1
end
:time
00BF: 12@ = current_time_hours, 13@ = current_time_minutes
0349: set_text_draw_font 3
033F: set_text_draw_letter_size 0.25 0.84
0348: enable_text_draw_proportional 1
081C: draw_text_outline 1 RGBA 0 0 0 255
0340: set_text_draw_RGBA 221 148 32 200
03E0: draw_text_behind_textures 1
if
13@ > 9
then
045B: draw_text_2numbers 540.0 340.0 GXT 'TIME' numbers 12@ 13@ // ~1~:~1~
else
045B: draw_text_2numbers 540.0 340.0 GXT 'TIME_0' numbers 12@ 13@ // ~1~:~1~
end
0AB2: ret 0
:CutsceneCheck
if
06B9: cutscene_data_loaded
then
if
82E9: not cutscene_reached_end
then
29@ = TRUE
end
else
29@ = FALSE
end
return
:WideScreenCheck
0A8D: 27@ = read_memory 0xB6F065 size 4 virtual_protect 0
if
27@ == 1
then
28@ = TRUE
else
28@ = FALSE
end
return
:GEAR
if and
84C8: not actor $PLAYER_ACTOR driving_flying_vehicle
84A7: not actor $PLAYER_ACTOR driving_boat
//80DD: not actor $PLAYER_ACTOR driving_car_with_model #TAXI
//80DD: not actor $PLAYER_ACTOR driving_car_with_model #CABBIE
Actor.Driving($PLAYER_ACTOR)
then
03C0: 0@ $player_actor
0A97: 31@ = car 0@ struct
0A8E: 30@ = 31@ + 1424 // int
0A8D: 30@ = read_memory 30@ size 1 virtual_protect 0
0AA8: call_function_method 0x6D1080 struct 31@ num_params 0 pop 0 29@
if or
29@ == 1
29@ == 2
then
if or
30@ == 0
30@ == 9
then
0174: 3@ = car 0@ Z_angle
if and
3@ >= 60.0
3@ <= 150.0
then
0AA7: call_function 0x49D3A0 num_params 0 pop 0 3@ // ??? ????????? 2 WE
else
if and
3@ >= 240.0
3@ <= 330.0
then
0AA7: call_function 0x49D3A0 num_params 0 pop 0 3@ // ??? ????????? 2 WE
else
0AA7: call_function 0x49D350 num_params 0 pop 0 3@ // ??? ????????? 1 NS
end
end
for 4@ = 8 to 31
08C3: clear 3@ bit 4@
end // ???????? ???????: 0 - ???????, 1 - ??????, 2 - ???????
if
3@ == 0
then
4@ = 0
5@ = 255
6@ = 0
else
if
3@ == 1
then
4@ = 255
5@ = 128
6@ = 0
else
4@ = 255
5@ = 0
6@ = 0
end
end
0AB8: get_vehicle 0@ current_gear_to 2@
02E3: 0@ 0@
0@ *= 3.6
0087: 1@ = 0@ // (float)
if
1@ > 240.0
then
1@ = 240.0
end
0092: 0@ = float 1@ to_integer
0@ *= 1.35
03F0: enable_text_draw 1
0349: set_text_draw_font 3 // 0 2
03E4: enable_text_draw_align_right 1
0340: set_text_draw_RGBA 4@ 5@ 6@ 255 //0 128 0 255
081C: draw_text_outline 1 RGBA 0 0 0 200
033F: set_text_draw_letter_size 0.25 0.84
045A: draw_text_1number 567.0 358.0 GXT 'NUMBER' number 2@ // ~1~ ? +14
end // 30 ==
end // 29 ==
end
0AB2: ret 1 1@