image_speed = 0; _input_enabled = false; _sprite_left = 3122; _sprite_right = 99; _sprite_down = 2254; _sprite_up = 4343; directional_sprites = [2254, 99, 4343, 3122]; press_l = -1; press_r = -1; press_u = -1; press_d = -1; pressdir = 0; px = 0; py = 0; wspeed = 0.2; walk = 0; walkanim = 0; walkbuffer = 0; walktimer = 0; fun = 0; climbing = 0; _weird_mode = false; runmove = 0; fullspeed = false; _parent = -4; init = function(arg0) { _parent = arg0; }; enable_input = function() { _input_enabled = true; }; disable_input = function() { _input_enabled = false; }; pause = function() { disable_input(); image_index = 0; }; resume = function() { enable_input(); }; is_paused = function() { return !_input_enabled; }; reset_input = function() { press_l = -1; press_r = -1; press_u = -1; press_d = -1; }; update_facing = function() { reset_input(); if (left_h()) press_l = 1; if (right_h()) press_r = 1; if (up_h()) press_u = 1; if (down_h()) press_d = 1; pressdir = -1; px = 0; py = 0; if (press_r == 1) { px = wspeed; pressdir = 1; } if (press_l == 1) { px = -wspeed; pressdir = 3; } if (press_d == 1) { py = wspeed; pressdir = 0; } if (press_u == 1) { py = -wspeed; pressdir = 2; } if (pressdir != -1) sprite_index = directional_sprites[pressdir]; }; collision_check = function() { nopress = 0; xmeet = 0; ymeet = 0; xymeet = 0; run = 0; nowx = x; nowy = y; if (press_d == 0 && press_l == 0 && press_u == 0 && press_r == 0) nopress = 1; if (place_meeting(x + px, y + py, obj_solidblock)) xymeet = 1; if (place_meeting(x + px, y, obj_solidblock)) { if (place_meeting(x + px, y, obj_solidblock)) { for (g = wspeed; g > 0; g -= 1) { mvd = 0; if (press_d == 0 && !place_meeting(x + px, y - g, obj_solidblock)) { y -= g; py = 0; break; mvd = 1; } if (press_u == 0 && mvd == 0 && !place_meeting(x + px, y + g, obj_solidblock)) { y += g; py = 0; break; } } } xmeet = 1; bkx = 0; if (px > 0) { for (i = px; i >= 0; i -= 1) { if (!place_meeting(x + i, y, obj_solidblock)) { px = i; bkx = 1; break; } } } if (px < 0) { for (i = px; i <= 0; i += 1) { if (!place_meeting(x + i, y, obj_solidblock)) { px = i; bkx = 1; break; } } } if (bkx == 0) px = 0; } if (place_meeting(x, y + py, obj_solidblock)) { ymeet = 1; bky = 0; if (place_meeting(x, y + py, obj_solidblock)) { for (g = wspeed; g > 0; g -= 1) { mvd = 0; if (press_r == 0 && !place_meeting(x - g, y + py, obj_solidblock)) { x -= g; px = 0; break; mvd = 1; } if (mvd == 0 && press_l == 0 && !place_meeting(x + g, y + py, obj_solidblock)) { x += g; px = 0; break; } } } if (py > 0) { for (i = py; i >= 0; i -= 1) { if (!place_meeting(x, y + i, obj_solidblock)) { py = i; bky = 1; break; } } } if (py < 0) { for (i = py; i <= 0; i += 1) { if (!place_meeting(x, y + i, obj_solidblock)) { py = i; bky = 1; break; } } } if (bky == 0) py = 0; } if (place_meeting(x + px, y + py, obj_solidblock)) { xymeet = 1; bkxy = 0; i = px; j = py; while (j != 0 || i != 0) { if (!place_meeting(x + i, y + j, obj_solidblock)) { px = i; py = j; bkxy = 1; break; } if (abs(j) >= 1) { if (j > 0) j -= 1; if (j < 0) j += 1; } else { j = 0; } if (abs(i) >= 1) { if (i > 0) i -= 1; if (i < 0) i += 1; } else { i = 0; } } if (bkxy == 0) { px = 0; py = 0; } } }; update_walk = function() { if (walkbuffer > 3 && fun == 0) { walktimer += 1.5; if (runmove == 1) walktimer += 1.5; if (walktimer >= 40) walktimer -= 40; if (walktimer < 10) image_index = 0; if (walktimer >= 10) image_index = 1; if (walktimer >= 20) image_index = 2; if (walktimer >= 30) image_index = 3; } if (walkbuffer <= 0 && fun == 0 && climbing == 0) { if (walktimer < 10) walktimer = 9.5; if (walktimer >= 10 && walktimer < 20) walktimer = 19.5; if (walktimer >= 20 && walktimer < 30) walktimer = 29.5; if (walktimer >= 30) walktimer = 39.5; image_index = 0; } walkbuffer -= 0.75; }; is_full_speed = function() { return wspeed >= 3.5; }; draw_func = -1; scr_addtoselfshadows(true, id, true, false);