:CRANE1 thread 'CRANE1' 5@ = 0 if 5@ == 1 else_jump @CRANE1_102 0@ = Object.Init(#WOODENBOX, 0.0, 0.0, 0.0) 1@ = Object.Init(#WOODENBOX, 0.0, 0.0, 0.0) 2@ = Object.Init(#WOODENBOX, 0.0, 0.0, 0.0) :CRANE1_102 if 03CA: object 0@ exists else_jump @CRANE1_258 if 04E5: object 0@ near_point -2080.441 256.015 radius 10.0 10.0 flag 0 else_jump @CRANE1_188 008B: 1@ = $2723 // (int) 008B: 2@ = $2724 // (int) 008B: 3@ = $2726 // (int) 008B: 4@ = $2725 // (int) :CRANE1_188 if 04E5: object 0@ near_point 2399.202 1879.139 radius 10.0 10.0 flag 0 else_jump @CRANE1_258 008B: 1@ = $2744 // (int) 008B: 2@ = $2745 // (int) 008B: 3@ = $2747 // (int) 008B: 4@ = $2746 // (int) :CRANE1_258 $10490 = 0 21@ = 0 :CRANE1_272 wait 0 if 03CA: object 0@ exists else_jump @CRANE1_2496 if Player.Defined($PLAYER_CHAR) else_jump @CRANE1_2489 if $10493 == 0 else_jump @CRANE1_2489 if $1911 == 1 else_jump @CRANE1_351 gosub @CRANE1_2512 :CRANE1_351 if 0471: actor $PLAYER_ACTOR near_object_in_rectangle 0@ radius 100.0 100.0 flag 0 else_jump @CRANE1_2487 if $FLAG_PLAYER_IN_CRANE == 1 else_jump @CRANE1_407 gosub @CRANE1_2512 :CRANE1_407 if 5@ == 0 else_jump @CRANE1_461 0400: store_coords_to 9@ 10@ 11@ from_object 0@ with_offset 0.0 -7.2092 -31.7581 5@ += 1 :CRANE1_461 if 5@ == 1 else_jump @CRANE1_646 if 00FF: actor $PLAYER_ACTOR sphere 1 in_sphere 9@ 10@ 11@ radius 1.2 1.2 1.5 on_foot else_jump @CRANE1_619 if 044B: actor $PLAYER_ACTOR on_foot else_jump @CRANE1_612 if $10490 == 0 else_jump @CRANE1_573 0512: show_permanent_text_box 'CR_2' // ~k~~VEHICLE_ENTER_EXIT~ - ŸažeŸ¦© ®a kpa®. $10490 = 1 :CRANE1_573 if 00E1: player 0 pressed_key 15 else_jump @CRANE1_612 5@ += 1 32@ = 6000 $10490 = 0 :CRANE1_612 jump @CRANE1_646 :CRANE1_619 if not $10490 == 0 else_jump @CRANE1_646 03E6: remove_text_box $10490 = 0 :CRANE1_646 if 5@ == 2 else_jump @CRANE1_1068 if 03CA: object 1@ exists else_jump @CRANE1_688 097B: play_audio_at_object 1@ event 1019 :CRANE1_688 Player.CanMove($PLAYER_CHAR) = False 09BD: unknown_flag 1 fade 0 500 :CRANE1_706 if fading else_jump @CRANE1_730 wait 0 jump @CRANE1_706 :CRANE1_730 if 07D6: 1@ == $2723 // integer vars else_jump @CRANE1_758 079E: unknown_set_game_controller_to_steer_object_TWRCRANE_M_02 // originally SF site ballcrane jump @CRANE1_760 :CRANE1_758 07FA: set_game_controller_to_steer_object_TWRCRANE_M_02 // originally LV site magnocrane :CRANE1_760 0A44: unknown_flag 1 7@ = Object.Angle(1@) Object.StorePos(1@, $TEMPVAR_FLOAT_1, $TEMPVAR_FLOAT_2, $TEMPVAR_FLOAT_3) Object.StorePos(2@, 12@, 13@, 14@) 0509: 8@ = distance_between_XY $TEMPVAR_FLOAT_1 $TEMPVAR_FLOAT_2 and_XY 12@ 13@ if 8@ > 47.5 else_jump @CRANE1_848 8@ = 47.5 :CRANE1_848 if 10.0 > 8@ else_jump @CRANE1_879 8@ = 10.0 :CRANE1_879 if 03CA: object 1@ exists else_jump @CRANE1_943 if Player.Defined($PLAYER_CHAR) else_jump @CRANE1_943 04F4: put_actor $PLAYER_ACTOR into_turret_on_object 0@ offset_from_object_origin 0.0 0.0 34.5 orientation 0 both_side_angle_limit 360.0 lock_weapon 0 :CRANE1_943 if Player.Defined($PLAYER_CHAR) else_jump @CRANE1_1016 Actor.LockInCurrentPosition($PLAYER_ACTOR) = True 0337: set_actor $PLAYER_ACTOR visibility 0 Player.CanMove($PLAYER_CHAR) = True 0619: enable_actor $PLAYER_ACTOR collision_detection 0 Actor.SetImmunities($PLAYER_ACTOR, 1, 1, 1, 1, 1) $FLAG_PLAYER_IN_CRANE = 1 22@ = 0 :CRANE1_1016 03BF: set_player $PLAYER_CHAR ignored_by_everyone 0 gosub @CRANE1_2512 fade 1 500 :CRANE1_1037 if fading else_jump @CRANE1_1061 wait 0 jump @CRANE1_1037 :CRANE1_1061 5@ += 1 :CRANE1_1068 if 5@ == 3 else_jump @CRANE1_2277 if 32@ > 6000 else_jump @CRANE1_1468 $10490 += 1 if 7 > $10490 else_jump @CRANE1_1461 0871: init_jump_table $10490 total_jumps 6 default_jump 0 @CRANE1_1461 jumps 1 @CRANE1_1193 2 @CRANE1_1250 3 @CRANE1_1307 4 @CRANE1_1364 5 @CRANE1_1421 6 @CRANE1_1441 -1 @CRANE1_1461 :CRANE1_1193 03E6: remove_text_box if 07D6: 1@ == $2723 // integer vars else_jump @CRANE1_1232 0512: show_permanent_text_box 'CONS_1' // ~k~~GO_LEFT~ œ ~k~~GO_RIGHT~ - £o¢opa¤œ¢a¦© kpa®. jump @CRANE1_1243 :CRANE1_1232 0512: show_permanent_text_box 'CONS_1B' // ~k~~GO_LEFT~ œ ~k~~GO_RIGHT~ £o¢opa¤œ¢a¦© kpa®. :CRANE1_1243 jump @CRANE1_1461 :CRANE1_1250 03E6: remove_text_box if 07D6: 1@ == $2723 // integer vars else_jump @CRANE1_1289 0512: show_permanent_text_box 'CONS_2' // ~k~~GO_BACK~ - £epe¯ec¦œ¦© ¥ap —žœ›e k oc®o¢a®œ«, ~k~~GO_FORWARD~ - £epe¯ec¦œ¦© ¥ap šaž©¥e o¦ oc®o¢a®œ¬. jump @CRANE1_1300 :CRANE1_1289 0512: show_permanent_text_box 'CONS_2B' // ~k~~GO_FORWARD~ œ ~k~~GO_BACK~ £epeš¢œ™a¦© ¯a™®œ¦ —žœ›e œ šaž©¥e. :CRANE1_1300 jump @CRANE1_1461 :CRANE1_1307 03E6: remove_text_box if 07D6: 1@ == $2723 // integer vars else_jump @CRANE1_1346 0512: show_permanent_text_box 'CONS_3' // ~k~~PED_JUMPING~ - £oš®¬¦© ¥ap. jump @CRANE1_1357 :CRANE1_1346 0512: show_permanent_text_box 'CONS_3B' // ~k~~PED_JUMPING~ - £oš®¬¦© ¯a™®œ¦. :CRANE1_1357 jump @CRANE1_1461 :CRANE1_1364 03E6: remove_text_box if 07D6: 1@ == $2723 // integer vars else_jump @CRANE1_1403 0512: show_permanent_text_box 'CONS_4' // ~k~~PED_SPRINT~ - o£yc¦œ¦© ¥ap. jump @CRANE1_1414 :CRANE1_1403 0512: show_permanent_text_box 'CONS_4B' // Press ~k~~PED_SPRINT~ to lower the magnet. :CRANE1_1414 jump @CRANE1_1461 :CRANE1_1421 03E6: remove_text_box 0512: show_permanent_text_box 'CONS_5' // ~k~~CAMERA_CHANGE_VIEW_ALL_SITUATIONS~ - c¯e®œ¦© ¢œš ka¯ep¨. jump @CRANE1_1461 :CRANE1_1441 03E6: remove_text_box 03E5: show_text_box 'CR_3' // ~k~~VEHICLE_ENTER_EXIT~ - £okœ®y¦© kpa®. jump @CRANE1_1461 :CRANE1_1461 32@ = 0 :CRANE1_1468 if Player.Defined($PLAYER_CHAR) else_jump @CRANE1_2277 if 0735: NOP_false 81 else_jump @CRANE1_1509 $10487 += 0.1 :CRANE1_1509 if 0735: NOP_false 65 else_jump @CRANE1_1534 $10487 += -0.1 :CRANE1_1534 if 0735: NOP_false 87 else_jump @CRANE1_1559 $10488 += 0.1 :CRANE1_1559 if 0735: NOP_false 83 else_jump @CRANE1_1584 $10488 += -0.1 :CRANE1_1584 if 0735: NOP_false 69 else_jump @CRANE1_1609 $10489 += 0.1 :CRANE1_1609 if 0735: NOP_false 68 else_jump @CRANE1_1634 $10489 += -0.1 :CRANE1_1634 if 00E1: player 0 pressed_key 0 else_jump @CRANE1_1749 0494: get_joystick 0 data_to $MOVE_AXIS_X $MOVE_AXIS_Y $SPECIAL_AXIS_X $SPECIAL_AXIS_Y 008F: 6@ = integer $MOVE_AXIS_X to_float 6@ /= 500.0 0081: 7@ -= unknown_float * 6@ // (float) if Player.Defined($PLAYER_CHAR) else_jump @CRANE1_1742 if not 22@ == 1 else_jump @CRANE1_1742 097B: play_audio_at_object 1@ event 1020 22@ = 1 :CRANE1_1742 jump @CRANE1_1798 :CRANE1_1749 if Player.Defined($PLAYER_CHAR) else_jump @CRANE1_1798 if not 22@ == 0 else_jump @CRANE1_1798 097B: play_audio_at_object 1@ event 1021 22@ = 0 :CRANE1_1798 if 00E1: player 0 pressed_key 1 else_jump @CRANE1_2000 0494: get_joystick 0 data_to $MOVE_AXIS_X $MOVE_AXIS_Y $SPECIAL_AXIS_X $SPECIAL_AXIS_Y 008F: 6@ = integer $MOVE_AXIS_Y to_float 6@ /= 128.0 if or 6@ > 0.6 -0.6 > 6@ else_jump @CRANE1_1993 6@ *= 0.15 0081: 8@ -= unknown_float * 6@ // (float) if 8@ > 47.5 else_jump @CRANE1_1929 8@ = 47.5 :CRANE1_1929 if 10.0 > 8@ else_jump @CRANE1_1960 8@ = 10.0 :CRANE1_1960 if not 23@ == 1 else_jump @CRANE1_1993 097B: play_audio_at_object 2@ event 1020 23@ = 1 :CRANE1_1993 jump @CRANE1_2033 :CRANE1_2000 if not 23@ == 0 else_jump @CRANE1_2033 097B: play_audio_at_object 2@ event 1021 23@ = 0 :CRANE1_2033 if 03CA: object 2@ exists else_jump @CRANE1_2071 if 00E1: player 0 pressed_key 16 else_jump @CRANE1_2071 0799: set_crane_magnet 2@ release_stuff_from_magnet :CRANE1_2071 if 03CA: object 1@ exists else_jump @CRANE1_2172 if 03CA: object 0@ exists else_jump @CRANE1_2172 0400: store_coords_to $TEMPVAR_FLOAT_1 $TEMPVAR_FLOAT_2 $TEMPVAR_FLOAT_3 from_object 0@ with_offset 0.0 0.0 32.521 Object.Angle(1@) = 7@ if 03CA: object 3@ exists else_jump @CRANE1_2164 Object.Angle(3@) = 7@ :CRANE1_2164 Actor.Angle($PLAYER_ACTOR) = 7@ :CRANE1_2172 if 03CA: object 1@ exists else_jump @CRANE1_2253 if 03CA: object 2@ exists else_jump @CRANE1_2253 0400: store_coords_to $TEMPVAR_FLOAT_1 $TEMPVAR_FLOAT_2 $TEMPVAR_FLOAT_3 from_object 1@ with_offset 0.0 8@ 3.453 0815: put_object 2@ at $TEMPVAR_FLOAT_1 $TEMPVAR_FLOAT_2 $TEMPVAR_FLOAT_3 and_keep_rotation Object.Angle(2@) = 7@ :CRANE1_2253 if 00E1: player 0 pressed_key 15 else_jump @CRANE1_2277 5@ += 1 :CRANE1_2277 if 5@ == 4 else_jump @CRANE1_2480 if Player.Defined($PLAYER_CHAR) else_jump @CRANE1_2480 Actor.StorePos($PLAYER_ACTOR, $TEMPVAR_FLOAT_1, $TEMPVAR_FLOAT_2, $TEMPVAR_FLOAT_3) if 03CA: object 1@ exists else_jump @CRANE1_2349 097B: play_audio_at_object 1@ event 1022 :CRANE1_2349 03E6: remove_text_box 079F: unknown_set_game_controller_to_steer_no_crane_objects 09BD: unknown_flag 0 0400: store_coords_to $TEMPVAR_FLOAT_1 $TEMPVAR_FLOAT_2 $TEMPVAR_FLOAT_3 from_object 0@ with_offset 2.0 -7.0 0.0 02CE: $TEMPVAR_FLOAT_3 = ground_z_at $TEMPVAR_FLOAT_1 $TEMPVAR_FLOAT_2 $TEMPVAR_FLOAT_3 Actor.PutAt($PLAYER_ACTOR, $TEMPVAR_FLOAT_1, $TEMPVAR_FLOAT_2, $TEMPVAR_FLOAT_3) 0465: remove_actor $PLAYER_ACTOR from_turret_mode Actor.LockInCurrentPosition($PLAYER_ACTOR) = False 0337: set_actor $PLAYER_ACTOR visibility 1 0619: enable_actor $PLAYER_ACTOR collision_detection 1 Actor.SetImmunities($PLAYER_ACTOR, 0, 0, 0, 0, 0) Player.CanMove($PLAYER_CHAR) = True Camera.Restore_WithJumpCut $FLAG_PLAYER_IN_CRANE = 0 5@ = 0 end_thread :CRANE1_2480 jump @CRANE1_2489 :CRANE1_2487 end_thread :CRANE1_2489 jump @CRANE1_2505 :CRANE1_2496 5@ = 0 end_thread :CRANE1_2505 jump @CRANE1_272 :CRANE1_2512 if $10494 == 0 else_jump @CRANE1_3074 if 00E1: player 0 pressed_key 13 else_jump @CRANE1_2619 if 24@ == 0 else_jump @CRANE1_2612 21@ += 1 if 21@ > 2 else_jump @CRANE1_2597 21@ = 0 :CRANE1_2597 008A: $10495 = 21@ // (int) 24@ += 1 :CRANE1_2612 jump @CRANE1_2644 :CRANE1_2619 if not 24@ == 0 else_jump @CRANE1_2644 24@ = 0 :CRANE1_2644 if $FLAG_PLAYER_IN_CRANE == 1 else_jump @CRANE1_2695 if $1911 == 1 else_jump @CRANE1_2695 0084: $10495 = $10495 // (int) $1911 = 0 :CRANE1_2695 if 21@ == 0 else_jump @CRANE1_2758 if 03CA: object 1@ exists else_jump @CRANE1_2758 0400: store_coords_to 15@ 16@ 17@ from_object 1@ with_offset -7.18 -6.42 15.79 :CRANE1_2758 if 21@ == 1 else_jump @CRANE1_2920 if 03CA: object 1@ exists else_jump @CRANE1_2920 0400: store_coords_to 15@ 16@ 17@ from_object 2@ with_offset 0.0 -4.5 20.1999 if 03CA: object 2@ exists else_jump @CRANE1_2920 0400: store_coords_to $TEMPVAR_FLOAT_1 $TEMPVAR_FLOAT_2 $TEMPVAR_FLOAT_3 from_object 2@ with_offset 0.0 0.0 20.1999 0796: get_crane_magnet 2@ magnet_lane_length_to 6@ // float 6@ += -1.0 6@ *= -1.0 6@ *= 72.0 0067: $TEMPVAR_FLOAT_3 -= 6@ // (float) 0089: 17@ = $TEMPVAR_FLOAT_3 // (float) :CRANE1_2920 if 03CA: object 2@ exists else_jump @CRANE1_3035 0400: store_coords_to $TEMPVAR_FLOAT_1 $TEMPVAR_FLOAT_2 $TEMPVAR_FLOAT_3 from_object 2@ with_offset 0.0 0.0 2.0 0796: get_crane_magnet 2@ magnet_lane_length_to 6@ // float 6@ += -1.0 6@ *= -1.0 6@ *= 72.0 0067: $TEMPVAR_FLOAT_3 -= 6@ // (float) 0089: 18@ = $TEMPVAR_FLOAT_1 // (float) 0089: 19@ = $TEMPVAR_FLOAT_2 // (float) 0089: 20@ = $TEMPVAR_FLOAT_3 // (float) :CRANE1_3035 Camera.SetPosition(15@, 16@, 17@, 0.0, 0.0, 0.0) Camera.PointAt(18@, 19@, 20@, 2) :CRANE1_3074 return end_thread