MISSION_START
// *****************************************************************************************
// *****************************************************************************************
// *****************************************************************************************
// *************************************** Fire missions ***********************************
// *****************************************************************************************
// *****************************************************************************************
// *****************************************************************************************
// Mission start stuff
GOSUB mission_start_fire
GOSUB failed
MISSION_END
// Variables for mission
VAR_INT fire_time_limit fire_to_extinguish fire_to_extinguish_blip car_on_fire random_car_model fires_extinguished
VAR_INT car_on_fire_created player_in_range_fire flag_got_range_mssg intermediate_int score_ft displayed_timer
VAR_INT total_score displayed_counter first_fire_flag mission_end_button_ft fire_location dummy_ped_for_zone
VAR_INT players_firetruck players_firetruck_health car_on_fire_health
VAR_FLOAT random_fire_x random_fire_y time_divider time_divider_divider
VAR_FLOAT player1_x player1_y player1_z
VAR_FLOAT fire_coord_x fire_coord_y fire_coord_z
VAR_FLOAT difference_x_float difference_y_float sum_difference_xy
VAR_FLOAT players_distance_from_fire fire_time_limit_float random_car_heading
// ****************************************Mission Start************************************
mission_start_fire:
flag_player_on_mission = 1
flag_player_on_fire_mission = 1
SCRIPT_NAME firetru
WAIT 0
fire_time_limit = 0
fire_to_extinguish = 0
fire_to_extinguish_blip = 0
car_on_fire = 0
random_car_model = 0
car_on_fire_created = 0
player_in_range_fire = 0
flag_got_range_mssg = 0
score_ft = 250
displayed_timer = 0
fires_extinguished = 0
displayed_counter = 0
total_score = 0
first_fire_flag = 0
mission_end_button_ft = 0
fire_location = 0
time_divider_divider = 2.0
next_fire:
WAIT 0
SET_WANTED_MULTIPLIER 0.5
GET_PLAYER_COORDINATES player player1_x player1_y player1_z
IF NOT IS_PLAYER_IN_MODEL player CAR_FIRETRUCK
PRINT_NOW F_CANC 3000 1//"Fire truck mission cancelled!"
GOTO failed
ENDIF
GET_CONTROLLER_MODE controlmode
IF NOT controlmode = 3
IF IS_BUTTON_PRESSED PAD1 RIGHTSHOCK
mission_end_button_ft = 1
ENDIF
ELSE
IF IS_BUTTON_PRESSED PAD1 SQUARE
mission_end_button_ft = 1
ENDIF
ENDIF
IF mission_end_button_ft = 1
IF NOT controlmode = 3
IF NOT IS_BUTTON_PRESSED PAD1 RIGHTSHOCK
PRINT_NOW F_CANC 3000 1//"Fire truck mission cancelled!"
GOTO failed
ENDIF
ELSE
IF NOT IS_BUTTON_PRESSED PAD1 SQUARE
PRINT_NOW F_CANC 3000 1//"Fire truck mission cancelled!"
GOTO failed
ENDIF
ENDIF
ENDIF
//IF IS_PLAYER_IN_AREA_2D player 778.0 -1110.0 1540.0 190.0 0 //INDUSTRIAL
IF IS_COLLISION_IN_MEMORY LEVEL_INDUSTRIAL
GENERATE_RANDOM_FLOAT_IN_RANGE 778.0 1540.0 random_fire_x
GENERATE_RANDOM_FLOAT_IN_RANGE -1110.0 190.0 random_fire_y
flag_got_range_mssg = 0
player_in_range_fire = 1
fire_location = 1
time_divider = 13.0
ENDIF
//IF IS_PLAYER_IN_AREA_2D player -192.0 -1626.0 545.0 98.0 0 //COMMERCIAL
IF IS_COLLISION_IN_MEMORY LEVEL_COMMERCIAL
GENERATE_RANDOM_FLOAT_IN_RANGE -192.0 545.0 random_fire_x
GENERATE_RANDOM_FLOAT_IN_RANGE -1626.0 98.0 random_fire_y
flag_got_range_mssg = 0
player_in_range_fire = 1
fire_location = 2
time_divider = 14.0
ENDIF
//IF IS_PLAYER_IN_AREA_2D player -1300.0 -608.8 -265.0 380.0 0 //SUBURBIA
IF IS_COLLISION_IN_MEMORY LEVEL_SUBURBAN
GENERATE_RANDOM_FLOAT_IN_RANGE -1300.0 -414.0 random_fire_x
GENERATE_RANDOM_FLOAT_IN_RANGE -608.8 380.0 random_fire_y
flag_got_range_mssg = 0
player_in_range_fire = 1
fire_location = 3
time_divider = 11.0
ENDIF
IF player_in_range_fire = 0
AND flag_got_range_mssg = 0
IF flag_got_range_mssg = 0
PRINT_NOW F_RANGE 5000 1 //"The radio is out of range, get closer."
flag_got_range_mssg = 1
ENDIF
GOTO failed
ENDIF
GET_CLOSEST_CAR_NODE random_fire_x random_fire_y player1_z fire_coord_x fire_coord_y fire_coord_z
IF fire_coord_x > 670.0 //MIN_X // CALAHAN BRIDGE
AND fire_coord_x < 1035.0 //MAX_X
AND fire_coord_y > -953.0 //MIN_Y
AND fire_coord_y < -912.0 //MAX_Y
GOTO next_fire
ENDIF
IF fire_coord_x > 649.0 //MIN_X // TUNNEL ENTRANCE INDUSTRIAL
AND fire_coord_x < 1066.0 //MAX_X
AND fire_coord_y > 25.0 //MIN_Y
AND fire_coord_y < 217.0 //MAX_Y
GOTO next_fire
ENDIF
IF fire_coord_x > -1611.5 //MIN_X // AIRPORT SUBURBAN
AND fire_coord_x < -745.3 //MAX_X
AND fire_coord_y > -1001.9 //MIN_Y
AND fire_coord_y < -371.2 //MAX_Y
GOTO next_fire
ENDIF
IF fire_coord_x > -1255.4 //MIN_X // BAIT WAREHOUSE CARPARK SUBURBIA
AND fire_coord_x < -1187.9 //MAX_X
AND fire_coord_y > 80.6 //MIN_Y
AND fire_coord_y < 123.4 //MAX_Y
GOTO next_fire
ENDIF
IF fire_coord_x > 1386.4 //MIN_X // FRANKIES HOUSE
AND fire_coord_x < 1475.8 //MAX_X
AND fire_coord_y > -292.1 //MIN_Y
AND fire_coord_y < -168.0 //MAX_Y
GOTO next_fire
ENDIF
IF fire_location = 1
IF NOT fire_coord_x > 778.0 //MIN_X // INDUSTRIAL
OR NOT fire_coord_x < 1540.0 //MAX_X
OR NOT fire_coord_y > -1110.0 //MIN_Y
OR NOT fire_coord_y < 190.0 //MAX_Y
GOTO next_fire
ENDIF
ENDIF
IF fire_location = 2
IF NOT fire_coord_x > -192.0 //MIN_X // COMMERCIAL
OR NOT fire_coord_x < 545.0 //MAX_X
OR NOT fire_coord_y > -1626.0 //MIN_Y
OR NOT fire_coord_y < 98.0 //MAX_Y
GOTO next_fire
ENDIF
ENDIF
IF fire_location = 3
IF NOT fire_coord_x > -1300.0 //MIN_X // SUBURBIA
OR NOT fire_coord_x < -414.0 //MAX_X
OR NOT fire_coord_y > -608.8 //MIN_Y
OR NOT fire_coord_y < 380.0 //MAX_Y
GOTO next_fire
ENDIF
ENDIF
IF fire_coord_z < -1.0
GOTO next_fire
ENDIF
difference_x_float = player1_x - fire_coord_x
difference_y_float = player1_y - fire_coord_y
difference_x_float = difference_x_float * difference_x_float
difference_y_float = difference_y_float * difference_y_float
sum_difference_xy = difference_x_float + difference_y_float
SQRT sum_difference_xy players_distance_from_fire
IF players_distance_from_fire < 200.0
GOTO next_fire
ENDIF
fire_time_limit_float = players_distance_from_fire / time_divider
time_divider += time_divider_divider
time_divider_divider += 2.0
fire_time_limit_float = fire_time_limit_float * 1000.0
intermediate_int =# fire_time_limit_float
fire_time_limit += intermediate_int
IF fires_extinguished = 0
IF fire_time_limit < 50000
fire_time_limit = 50000
ENDIF
ENDIF
generate_model:
GENERATE_RANDOM_INT_IN_RANGE 90 140 random_car_model //INC 90 NOT INC 140
IF random_car_model > 113 // CAR_BUGGY CAR_CORPSE CAR_POLICE CAR_ENFORCER CAR_SECURICAR CAR_BANSHEE BOAT_PREDATOR CAR_BUS
AND random_car_model < 128 // CAR_RHINO CAR_BARRACKS TRAIN_SUBWAY HELI_POLICE PLANE_DODO CAR_COACH
GOTO generate_model
ENDIF
IF random_car_model = 92 // CAR_BOXTER
OR random_car_model = 97 // CAR_FIRETRUCK
OR random_car_model = 101 // CAR_INFERNUS
OR random_car_model = 105 // CAR_CHEETAH
GOTO generate_model
ENDIF
IF random_car_model = 106 // CAR_AMBULANCE
OR random_car_model = 107 // CAR_FBI
OR random_car_model = 131 // CAR_RCBANDIT
OR random_car_model = 140 // PLANE_AIRTRAIN
GOTO generate_model
ENDIF
REQUEST_MODEL random_car_model
IF first_fire_flag = 1
TIMERA = 0
ELSE
TIMERA = 3001
first_fire_flag = 1
ENDIF
WHILE NOT HAS_MODEL_LOADED random_car_model
OR NOT TIMERA > 3000
WAIT 0
IF fire_time_limit < 1
PRINT_NOW F_FAIL2 5000 1
GOTO failed
ENDIF
IF NOT IS_PLAYER_IN_MODEL player CAR_FIRETRUCK
PRINT_NOW F_CANC 3000 1//"Fire truck mission cancelled!"
GOTO failed
ENDIF
GET_CONTROLLER_MODE controlmode
IF NOT controlmode = 3
IF IS_BUTTON_PRESSED PAD1 RIGHTSHOCK
mission_end_button_ft = 1
ENDIF
ELSE
IF IS_BUTTON_PRESSED PAD1 SQUARE
mission_end_button_ft = 1
ENDIF
ENDIF
IF mission_end_button_ft = 1
IF NOT controlmode = 3
IF NOT IS_BUTTON_PRESSED PAD1 RIGHTSHOCK
PRINT_NOW F_CANC 3000 1//"Fire truck mission cancelled!"
GOTO failed
ENDIF
ELSE
IF NOT IS_BUTTON_PRESSED PAD1 SQUARE
PRINT_NOW F_CANC 3000 1//"Fire truck mission cancelled!"
GOTO failed
ENDIF
ENDIF
ENDIF
ENDWHILE
}
GENERATE_RANDOM_FLOAT_IN_RANGE 0.0 359.9 random_car_heading
IF car_on_fire_created = 0
CREATE_CAR random_car_model fire_coord_x fire_coord_y fire_coord_z car_on_fire
car_on_fire_created = 1
ENDIF
CREATE_CHAR_INSIDE_CAR car_on_fire PEDTYPE_CIVMALE PED_MALE1 dummy_ped_for_zone
MARK_MODEL_AS_NO_LONGER_NEEDED random_car_model
SET_CAR_HEADING car_on_fire random_car_heading
START_CAR_FIRE car_on_fire fire_to_extinguish
ADD_BLIP_FOR_CAR car_on_fire fire_to_extinguish_blip
CAR_SET_IDLE car_on_fire
CHAR_SET_IDLE dummy_ped_for_zone
SET_CAR_CRUISE_SPEED car_on_fire 0.0
SET_CAR_ONLY_DAMAGED_BY_PLAYER car_on_fire TRUE
//PRINT_NOW F_START 3000 1
IF IS_CHAR_IN_ZONE dummy_ped_for_zone PORT_W
PRINT_STRING_IN_STRING_NOW F_START PORT_W 5000 1 // The suspect is in the Callahan Point area.
ENDIF
IF IS_CHAR_IN_ZONE dummy_ped_for_zone PORT_S
PRINT_STRING_IN_STRING_NOW F_START PORT_S 5000 1 // The suspect is in the Atlantic Quays area.
ENDIF
IF IS_CHAR_IN_ZONE dummy_ped_for_zone PORT_E
PRINT_STRING_IN_STRING_NOW F_START PORT_E 5000 1 // The suspect is in the Portland Harbour area.
ENDIF
IF IS_CHAR_IN_ZONE dummy_ped_for_zone PORT_I
PRINT_STRING_IN_STRING_NOW F_START PORT_I 5000 1 // The suspect is in the Trenton area.
ENDIF
IF IS_CHAR_IN_ZONE dummy_ped_for_zone S_VIEW
PRINT_STRING_IN_STRING_NOW F_START S_VIEW 5000 1 // The suspect is in the Portland View area.
ENDIF
IF IS_CHAR_IN_ZONE dummy_ped_for_zone CHINA
PRINT_STRING_IN_STRING_NOW F_START CHINA 5000 1 // The dummy_ped_for_zone is proceeding south in Chinatown
ENDIF
IF IS_CHAR_IN_ZONE dummy_ped_for_zone EASTBAY
PRINT_STRING_IN_STRING_NOW F_START EASTBAY 5000 1 // The dummy_ped_for_zone is proceeding south in Portland Beach
ENDIF
IF IS_CHAR_IN_ZONE dummy_ped_for_zone LITTLEI
PRINT_STRING_IN_STRING_NOW F_START LITTLEI 5000 1 // The dummy_ped_for_zone is proceeding south in Saint Mark's
ENDIF
IF IS_CHAR_IN_ZONE dummy_ped_for_zone REDLIGH
PRINT_STRING_IN_STRING_NOW F_START REDLIGH 5000 1 // The dummy_ped_for_zone is proceeding south in Red Light District
ENDIF
IF IS_CHAR_IN_ZONE dummy_ped_for_zone TOWERS
PRINT_STRING_IN_STRING_NOW F_START TOWERS 5000 1 // The dummy_ped_for_zone is proceeding south in Hepburn Heights
ENDIF
IF IS_CHAR_IN_ZONE dummy_ped_for_zone HARWOOD
PRINT_STRING_IN_STRING_NOW F_START HARWOOD 5000 1 // The dummy_ped_for_zone is proceeding south in Harwood
ENDIF
IF IS_CHAR_IN_ZONE dummy_ped_for_zone ROADBR1
PRINT_STRING_IN_STRING_NOW F_START ROADBR1 5000 1 // The dummy_ped_for_zone is proceeding south in Callahan Bridge
ENDIF
IF IS_CHAR_IN_ZONE dummy_ped_for_zone ROADBR2
PRINT_STRING_IN_STRING_NOW F_START ROADBR2 5000 1 // The dummy_ped_for_zone is proceeding south in Callahan Bridge
ENDIF
//IF IS_CHAR_IN_ZONE dummy_ped_for_zone TUNNELP
// PRINT_STRING_IN_STRING_NOW F_START TUNNELP 5000 1 // The dummy_ped_for_zone is proceeding south in Porter Tunnel
//ENDIF
IF IS_CHAR_IN_ZONE dummy_ped_for_zone STADIUM
PRINT_STRING_IN_STRING_NOW F_START STADIUM 5000 1 // The dummy_ped_for_zone is proceeding south in Aspatria
ENDIF
IF IS_CHAR_IN_ZONE dummy_ped_for_zone HOSPI_2
PRINT_STRING_IN_STRING_NOW F_START HOSPI_2 5000 1 // The dummy_ped_for_zone is proceeding south in Rockford
ENDIF
IF IS_CHAR_IN_ZONE dummy_ped_for_zone UNIVERS
PRINT_STRING_IN_STRING_NOW F_START UNIVERS 5000 1 // The dummy_ped_for_zone is proceeding south in Liberty Campus
ENDIF
IF IS_CHAR_IN_ZONE dummy_ped_for_zone CONSTRU
PRINT_STRING_IN_STRING_NOW F_START CONSTRU 5000 1 // The dummy_ped_for_zone is proceeding south in Fort Staunton
ENDIF
IF IS_CHAR_IN_ZONE dummy_ped_for_zone PARK
PRINT_STRING_IN_STRING_NOW F_START PARK 5000 1 // The dummy_ped_for_zone is proceeding south in Belleville Park
ENDIF
IF IS_CHAR_IN_ZONE dummy_ped_for_zone COM_EAS
PRINT_STRING_IN_STRING_NOW F_START COM_EAS 5000 1 // The dummy_ped_for_zone is proceeding south in Newport
ENDIF
IF IS_CHAR_IN_ZONE dummy_ped_for_zone SHOPING
PRINT_STRING_IN_STRING_NOW F_START SHOPING 5000 1 // The dummy_ped_for_zone is proceeding south in Bedford Point
ENDIF
IF IS_CHAR_IN_ZONE dummy_ped_for_zone YAKUSA
PRINT_STRING_IN_STRING_NOW F_START YAKUSA 5000 1 // The dummy_ped_for_zone is proceeding south in Torrington
ENDIF
IF IS_CHAR_IN_ZONE dummy_ped_for_zone AIRPORT
PRINT_STRING_IN_STRING_NOW F_START AIRPORT 5000 1 // The dummy_ped_for_zone is proceeding south in Francis International Airport
ENDIF
IF IS_CHAR_IN_ZONE dummy_ped_for_zone PROJECT
PRINT_STRING_IN_STRING_NOW F_START PROJECT 5000 1 // The dummy_ped_for_zone is proceeding south in Wichita Gardens
ENDIF
IF IS_CHAR_IN_ZONE dummy_ped_for_zone SUB_IND
PRINT_STRING_IN_STRING_NOW F_START SUB_IND 5000 1 // The dummy_ped_for_zone is proceeding south in Pike Creek
ENDIF
IF IS_CHAR_IN_ZONE dummy_ped_for_zone SWANKS
PRINT_STRING_IN_STRING_NOW F_START SWANKS 5000 1 // The dummy_ped_for_zone is proceeding south in Cedar Grove
ENDIF
IF IS_CHAR_IN_ZONE dummy_ped_for_zone BIG_DAM
PRINT_STRING_IN_STRING_NOW F_START BIG_DAM 5000 1 // The dummy_ped_for_zone is proceeding south in Cochrane Dam
ENDIF
DELETE_CHAR dummy_ped_for_zone
IF displayed_timer = 0
DISPLAY_ONSCREEN_TIMER fire_time_limit
displayed_timer = 1
ENDIF
CLEAR_HELP
IF got_siren_help_before = 1
GET_CONTROLLER_MODE controlmode
IF controlmode = 0
PRINT_HELP SIREN_1 //"To turn on this vehicles sirens tap the ~h~L1 button~w~."
ENDIF
IF controlmode = 1
PRINT_HELP SIREN_2 //"To turn on this vehicles sirens tap the ~h~L1 button~w~."
ENDIF
IF controlmode = 2
PRINT_HELP SIREN_3 //"To turn on this vehicles sirens tap the ~h~R1 button~w~."
ENDIF
IF controlmode = 3
PRINT_HELP SIREN_4 //"To turn on this vehicles sirens tap the ~h~L3 button~w~."
ENDIF
got_siren_help_before = 2
ENDIF
IF got_siren_help_before = 0
GET_CONTROLLER_MODE controlmode
IF controlmode = 0
PRINT_HELP SPRAY_1 //"To turn on this vehicles sirens tap the ~h~L1 button~w~."
ENDIF
IF controlmode = 1
PRINT_HELP SPRAY_1 //"To turn on this vehicles sirens tap the ~h~L1 button~w~."
ENDIF
IF controlmode = 2
PRINT_HELP SPRAY_1 //"To turn on this vehicles sirens tap the ~h~R1 button~w~."
ENDIF
IF controlmode = 3
PRINT_HELP SPRAY_4 //"To turn on this vehicles sirens tap the ~h~L3 button~w~."
ENDIF
got_siren_help_before = 1
ENDIF
WHILE NOT IS_SCRIPT_FIRE_EXTINGUISHED fire_to_extinguish
WAIT 0
IF IS_CAR_DEAD car_on_fire
PRINT_NOW F_FAIL2 5000 1
GOTO failed
ENDIF
IF fire_time_limit < 1
PRINT_NOW F_FAIL2 5000 1
GOTO failed
ENDIF
IF NOT IS_PLAYER_IN_MODEL player CAR_FIRETRUCK
PRINT_NOW F_CANC 3000 1//"Fire truck mission cancelled!"
GOTO failed
ENDIF
GET_CAR_HEALTH car_on_fire car_on_fire_health
IF car_on_fire_health < 900
EXPLODE_CAR car_on_fire
ENDIF
GET_CONTROLLER_MODE controlmode
IF NOT controlmode = 3
IF IS_BUTTON_PRESSED PAD1 RIGHTSHOCK
mission_end_button_ft = 1
ENDIF
ELSE
IF IS_BUTTON_PRESSED PAD1 SQUARE
mission_end_button_ft = 1
ENDIF
ENDIF
IF mission_end_button_ft = 1
IF NOT controlmode = 3
IF NOT IS_BUTTON_PRESSED PAD1 RIGHTSHOCK
PRINT_NOW F_CANC 3000 1//"Fire truck mission cancelled!"
GOTO failed
ENDIF
ELSE
IF NOT IS_BUTTON_PRESSED PAD1 SQUARE
PRINT_NOW F_CANC 3000 1//"Fire truck mission cancelled!"
GOTO failed
ENDIF
ENDIF
ENDIF
ENDWHILE
GOTO passed
/////////////////////////////////////////////////
passed://////////////////////////////////////////
/////////////////////////////////////////////////
++ fires_extinguished
PRINT_BIG F_PASS1 5000 5
PRINT_WITH_NUMBER_BIG REWARD score_ft 6000 6
REGISTER_FIRE_EXTINGUISHED
IF fire_location = 1
++ ind_fires_exting
ENDIF
IF fire_location = 2
++ com_fires_exting
ENDIF
IF fire_location = 3
++ sub_fires_exting
ENDIF
IF earned_free_flamethrower = 0
IF ind_fires_exting > 19
AND com_fires_exting > 19
AND sub_fires_exting > 19
ADD_PAGER_MESSAGE PAGEB11 140 100 1 //"Flamethrower delivered to hideout"
PLAYER_MADE_PROGRESS 1
earned_free_flamethrower = 1
ENDIF
ENDIF
ADD_SCORE player score_ft
total_score += score_ft
score_ft += 250
REMOVE_ALL_SCRIPT_FIRES
REMOVE_BLIP fire_to_extinguish_blip
ADD_ONE_OFF_SOUND 0.0 0.0 0.0 SOUND_PART_MISSION_COMPLETE
IF IS_PLAYER_IN_ANY_CAR player
STORE_CAR_PLAYER_IS_IN player players_firetruck
GET_CAR_HEALTH players_firetruck players_firetruck_health
players_firetruck_health += 150
SET_CAR_HEALTH players_firetruck players_firetruck_health
ENDIF
//earned_free_flamethrower PAGEB11
IF displayed_counter = 0
DISPLAY_ONSCREEN_COUNTER_WITH_STRING fires_extinguished COUNTER_DISPLAY_NUMBER F_EXTIN
displayed_counter = 1
ENDIF
IF car_on_fire_created = 1
MARK_CAR_AS_NO_LONGER_NEEDED car_on_fire
IF NOT IS_CAR_DEAD car_on_fire
SET_CAR_ONLY_DAMAGED_BY_PLAYER car_on_fire FALSE
ENDIF
car_on_fire_created = 0
ENDIF
MARK_MODEL_AS_NO_LONGER_NEEDED random_car_model
GOTO next_fire
/////////////////////////////////////////////////
failed://////////////////////////////////////////
/////////////////////////////////////////////////
CLEAR_ONSCREEN_TIMER fire_time_limit
CLEAR_ONSCREEN_COUNTER fires_extinguished
PRINT_BIG F_FAIL1 5000 5
PRINT_WITH_NUMBER_BIG TSCORE total_score 6000 6
REMOVE_ALL_SCRIPT_FIRES
REMOVE_BLIP fire_to_extinguish_blip
CLEAR_HELP
SET_WANTED_MULTIPLIER 1.0
IF car_on_fire_created = 1
IF NOT IS_CAR_DEAD car_on_fire
SET_CAR_ONLY_DAMAGED_BY_PLAYER car_on_fire FALSE
EXPLODE_CAR car_on_fire
ENDIF
MARK_CAR_AS_NO_LONGER_NEEDED car_on_fire
car_on_fire_created = 0
ENDIF
MARK_MODEL_AS_NO_LONGER_NEEDED random_car_model
flag_player_on_mission = 0
flag_player_on_fire_mission = 0
MISSION_HAS_FINISHED
RETURN