function save_way_point(){ //When the ` is pressed, it will save player pan, x and y position for waypoints
//var old_pan = 0;
//var degree_difference = 0;
handle_position = file_open_append("waypoint.txt");
wait(1);
degree_difference = Player.pan - old_pan;
file_var_write(handle_position, player_pan);
file_var_write(handle_position, degree_difference);
file_var_write(handle_position, player_x);
file_var_write(handle_position, player_y);
file_close(handle_position);
old_pan = Player.pan;
}
function replay_waypoints(){
var old_x = 0;
var old_y = 0;
var old_pos_x = 0;
var old_pos_y = 0;
var difference_x = 0;
var difference_y = 0;
var absolute_pan = 0;
var counter = 0;
var border_x = 0;
var border_y = 0;
var time_counter = 0;
replaying = 1;
handle_position = file_open_read("waypoint.txt");
wait(1);
Player.pan = file_var_read(handle_position);
absolute_pan = file_var_read(handle_position);
Player.x = file_var_read(handle_position);
Player.y = file_var_read(handle_position);
while(1){
old_pos_x = player_x;
old_pos_y = player_y;
player_pan = file_var_read(handle_position);
if(player_pan == -361){break;}
absolute_pan = file_var_read(handle_position);
player_x = file_var_read(handle_position);
player_y = file_var_read(handle_position);
counter = 0;
while(counter <= 19){
Player.pan += absolute_pan/20;
wait(10);
counter +=1;
}
//Fail Safe Method
difference_x = old_pos_x - player_x;
if(difference_x < 0){border_x = 1;} //Number is positive
else{border_x = -1;} //Number is negative
difference_y = old_pos_y - player_y;
if(difference_y < 0){border_y = 1;} //Number is positive
else{border_y = -1;} //Number is negative
time_counter = 0;
while(vec_dist(Player.x, vector(player_x,player_y,Player.z)) > 10){
c_move(Player,vector(2,0,0),vector(0,0,0),NULL);
if(difference_x == 1){
if(Player.x >= player_x + 10){Player.x = player_x;}
}
if(difference_x == 1){
if(Player.x <= player_x - 10){Player.x = player_x;}
}
if(difference_y == 1){
if(Player.y >= player_y + 10){Player.y = player_y;}
}
if(difference_y == 1){
if(Player.y <= player_y - 10){Player.y = player_y;}
}
//Animate Player
ent_animate(Player,"walk",Player.animation,anm_cycle);
Player.animation += 0.25;
//Make sure player isn't stuck in a wall
time_counter += 1;
if(time_counter == 5){
old_x = Player.x;
old_y = Player.y;
}
if(time_counter >= 30){
if(old_x == Player.x && old_y == Player.y){
Player.x = player_x;
Player.y = player_y;
}
time_counter = 0;
}
wait(1);
}
wait(1);
}
file_close(handle_position);
replaying = 0;
}