var hasmoved = false;
if(keyboard_check(vk_left) && keyboard_check(vk_up)){
hasmoved = true;
ds_list_insert(historyX, 0, x);
ds_list_insert(historyY, 0, y);
ds_list_insert(historyDir, 0, currentDir);
if(ds_list_size(historyX) >= 30){ // since they should be the same size, we only check one
ds_list_delete(historyX, ds_list_size(historyX)-1);
ds_list_delete(historyY, ds_list_size(historyY)-1);
ds_list_delete(historyDir, ds_list_size(historyDir)-1);
}
x -= 2;
y -= 2;
sprite_index = mario_run_upleft;
currentDir = "upleft";
}
else if(keyboard_check(vk_right) && keyboard_check(vk_up)){
hasmoved = true;
ds_list_insert(historyX, 0, x);
ds_list_insert(historyY, 0, y);
ds_list_insert(historyDir, 0, currentDir);
if(ds_list_size(historyX) >= 30){
ds_list_delete(historyX, ds_list_size(historyX)-1);
ds_list_delete(historyY, ds_list_size(historyY)-1);
ds_list_delete(historyDir, ds_list_size(historyDir)-1);
}
x += 2;
y -= 2;
sprite_index = mario_run_upright;
currentDir = "upright";
}
else if(keyboard_check(vk_right) && keyboard_check(vk_down)){
hasmoved = true;
ds_list_insert(historyX, 0, x);
ds_list_insert(historyY, 0, y);
ds_list_insert(historyDir, 0, currentDir);
if(ds_list_size(historyX) >= 30){
ds_list_delete(historyX, ds_list_size(historyX)-1);
ds_list_delete(historyY, ds_list_size(historyY)-1);
ds_list_delete(historyDir, ds_list_size(historyDir)-1);
}
x += 2;
y += 2;
sprite_index = mario_run_downright;
currentDir = "downright";
}
else if (keyboard_check(vk_left) && keyboard_check (vk_down)){
hasmoved = true;
ds_list_insert (historyX, 0, x);
ds_list_insert (historyY, 0, y);
ds_list_insert(historyDir, 0, currentDir);
if (ds_list_size(historyX) >= 30){
ds_list_delete (historyX, ds_list_size (historyX)-1);
ds_list_delete(historyY, ds_list_size(historyY)-1);
ds_list_delete(historyDir, ds_list_size(historyDir)-1);
}
x -= 2;
y += 2;
sprite_index = mario_run_downleft;
currentDir = "downleft";
}
else if (keyboard_check(vk_left)){
hasmoved = true;
ds_list_insert (historyX, 0, x);
ds_list_insert (historyY, 0, y);
ds_list_insert(historyDir, 0, currentDir);
if (ds_list_size(historyX) >= 30){
ds_list_delete (historyX, ds_list_size (historyX)-1);
ds_list_delete(historyY, ds_list_size(historyY)-1);
ds_list_delete(historyDir, ds_list_size(historyDir)-1);
}
x -= 4;
y -= 0;
sprite_index = mario_run_left;
currentDir = "left";
}else if (keyboard_check(vk_right)){
hasmoved = true;
ds_list_insert (historyX, 0, x);
ds_list_insert (historyY, 0, y);
ds_list_insert(historyDir, 0, currentDir);
if (ds_list_size(historyX) >= 30){
ds_list_delete (historyX, ds_list_size (historyX)-1);
ds_list_delete(historyY, ds_list_size(historyY)-1);
ds_list_delete(historyDir, ds_list_size(historyDir)-1);
}
x += 4;
y += 0;
sprite_index = mario_run_right;
currentDir = "right";
}else if (keyboard_check(vk_down)){
hasmoved = true;
ds_list_insert (historyX, 0, x);
ds_list_insert (historyY, 0, y);
ds_list_insert(historyDir, 0, currentDir);
if (ds_list_size(historyX) >= 30){
ds_list_delete (historyX, ds_list_size (historyX)-1);
ds_list_delete(historyY, ds_list_size(historyY)-1);
ds_list_delete(historyDir, ds_list_size(historyDir)-1);
}
x += 0;
y += 4;
sprite_index = mario_run_front;
currentDir = "down";
}else if (keyboard_check(vk_up)){
hasmoved = true;
ds_list_insert (historyX, 0, x);
ds_list_insert (historyY, 0, y);
ds_list_insert(historyDir, 0, currentDir);
if (ds_list_size(historyX) >= 30){
ds_list_delete (historyX, ds_list_size (historyX)-1);
ds_list_delete(historyY, ds_list_size(historyY)-1);
ds_list_delete(historyDir, ds_list_size(historyDir)-1);
}
x += 0;
y -= 4;
sprite_index = mario_run_back;
currentDir = "up";
}
if(hasmoved && ds_list_size(historyX) > 10){
follower.x = historyX[| 10];
follower.y = historyY[| 10];
follower.dir = historyDir[| 10];
}
depth = -y;
if(dir == "still"){
if(sprite_index == mario_run_upright) {
sprite_index = mario_idle_upright;
}
else if(sprite_index == mario_run_upleft){
sprite_index = mario_idle_upleft;
}
else if(sprite_index == mario_run_downleft){
sprite_index = mario_idle_downleft;
}
else if(sprite_index == mario_run_downright){
sprite_index = mario_idle_downright;
}
else if(sprite_index == mario_run_left){
sprite_index = mario_idle_left;
}
else if(sprite_index == mario_run_right){
sprite_index = mario_idle_right;
}
else if(sprite_index == mario_run_back){
sprite_index = mario_idle_back;
}
else if(sprite_index == mario_run_front){
sprite_index = mario_idle_front;
}
}