Improved delays
parent
e76a78d199
commit
137f8cefc1
|
@ -30,16 +30,17 @@ k_jump=4
|
||||||
k_dash=5
|
k_dash=5
|
||||||
|
|
||||||
|
|
||||||
|
-- If true, disable screensake
|
||||||
|
hack_no_shake = true
|
||||||
|
|
||||||
-- False until the game has initialized
|
-- False until the game has initialized
|
||||||
hack_ready = false
|
hack_ready = false
|
||||||
hack_no_shake = true
|
|
||||||
|
|
||||||
-- Slow down frame rate
|
-- Slow down frame rate
|
||||||
hack_frame_counter = 0
|
hack_frame_counter = 0
|
||||||
hack_frame_freeze = 10 -- Freeze for n frames
|
hack_frame_freeze = 10 -- Freeze for n frames
|
||||||
hack_frame_foward = 3 -- Run this many frames without sending status
|
hack_frame_foward = 3 -- Run this many frames without sending status
|
||||||
hack_frame_foward_bonus = 0 -- Set when actions need extra frames (like dashes)
|
hack_frame_foward_bonus = 0 -- Set when actions need extra frames (like dashes)
|
||||||
|
|
||||||
-- HACK: keep track of player state
|
-- HACK: keep track of player state
|
||||||
hack_player_state = {}
|
hack_player_state = {}
|
||||||
|
@ -277,7 +278,7 @@ player =
|
||||||
has_dashed=true
|
has_dashed=true
|
||||||
|
|
||||||
-- HACK: fast-forward dashes
|
-- HACK: fast-forward dashes
|
||||||
hack_frame_foward_bonus = 8
|
hack_frame_foward_bonus = 10
|
||||||
hack_can_dash = false
|
hack_can_dash = false
|
||||||
|
|
||||||
this.dash_effect_time=10
|
this.dash_effect_time=10
|
||||||
|
@ -1209,7 +1210,7 @@ end
|
||||||
-- default for celeste is 30.
|
-- default for celeste is 30.
|
||||||
function _update()
|
function _update()
|
||||||
|
|
||||||
-- Skip a few frames at start to initialize
|
-- Run at full speed until ready
|
||||||
if not hack_ready then
|
if not hack_ready then
|
||||||
old_update()
|
old_update()
|
||||||
old_draw()
|
old_draw()
|
||||||
|
@ -1221,83 +1222,71 @@ function _update()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- Do nothing for a few frames.
|
||||||
|
-- This gives us time to run computations
|
||||||
|
|
||||||
if hack_frame_counter < hack_frame_freeze then
|
if hack_frame_counter < hack_frame_freeze then
|
||||||
-- Freeze frames
|
|
||||||
hack_frame_counter+=1
|
hack_frame_counter+=1
|
||||||
return
|
return
|
||||||
elseif hack_frame_counter < (hack_frame_foward + hack_frame_freeze + hack_frame_foward_bonus) then
|
|
||||||
-- Forward frames
|
|
||||||
hack_frame_counter+=1
|
|
||||||
old_update()
|
|
||||||
old_draw()
|
|
||||||
extcmd("screen")
|
|
||||||
else
|
|
||||||
-- Wait for input
|
|
||||||
if (not (
|
|
||||||
btn(k_left) or
|
|
||||||
btn(k_right) or
|
|
||||||
btn(k_up) or
|
|
||||||
btn(k_down) or
|
|
||||||
btn(k_jump) or
|
|
||||||
btn(k_dash)
|
|
||||||
)
|
|
||||||
and hack_has_sent_first_message
|
|
||||||
) then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
hack_frame_counter = 0
|
|
||||||
hack_frame_foward_bonus = 0
|
|
||||||
|
|
||||||
|
|
||||||
old_update()
|
|
||||||
old_draw()
|
|
||||||
extcmd("screen")
|
|
||||||
|
|
||||||
hack_has_sent_first_message = true
|
|
||||||
out_string = "dc:" .. tostr(deaths) .. ";"
|
|
||||||
|
|
||||||
if hack_can_dash then
|
|
||||||
out_string = out_string .. "ds:t;"
|
|
||||||
else
|
|
||||||
out_string = out_string .. "ds:f;"
|
|
||||||
end
|
|
||||||
|
|
||||||
for k, v in pairs(hack_player_state) do
|
|
||||||
out_string = out_string .. k ..":" .. v .. ";"
|
|
||||||
end
|
|
||||||
printh(out_string)
|
|
||||||
end
|
end
|
||||||
end
|
|
||||||
|
|
||||||
-- Called at the same rate as _update
|
|
||||||
function _draw()
|
|
||||||
|
|
||||||
--old_draw()
|
-- Wait for input
|
||||||
|
if (not (
|
||||||
--[[
|
|
||||||
if not (
|
|
||||||
btn(k_left) or
|
btn(k_left) or
|
||||||
btn(k_right) or
|
btn(k_right) or
|
||||||
btn(k_up) or
|
btn(k_up) or
|
||||||
btn(k_down) or
|
btn(k_down) or
|
||||||
btn(k_jump) or
|
btn(k_jump) or
|
||||||
btn(k_dash)
|
btn(k_dash)
|
||||||
) and hack_run_delay then
|
)
|
||||||
|
and hack_has_sent_first_message
|
||||||
|
) then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
if draw_frame_counter < frame_rate_hack and hack_run_delay then
|
|
||||||
draw_frame_counter += 1
|
-- Delay for input to stabilize
|
||||||
else
|
-- Required to reliably send multiple key presses
|
||||||
draw_frame_counter = 0
|
wait(5)
|
||||||
|
|
||||||
|
-- Run a few frames
|
||||||
|
for i=1,hack_frame_foward do
|
||||||
|
old_update()
|
||||||
old_draw()
|
old_draw()
|
||||||
|
extcmd("screen")
|
||||||
end
|
end
|
||||||
--]]
|
|
||||||
|
-- Run bonus frames if we earned bonus frames
|
||||||
|
for i=1,hack_frame_foward_bonus do
|
||||||
|
old_update()
|
||||||
|
old_draw()
|
||||||
|
extcmd("screen")
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Reset counters
|
||||||
|
hack_frame_counter = 0
|
||||||
|
hack_frame_foward_bonus = 0
|
||||||
|
|
||||||
|
|
||||||
|
hack_has_sent_first_message = true
|
||||||
|
out_string = "dc:" .. tostr(deaths) .. ";"
|
||||||
|
|
||||||
|
if hack_can_dash then
|
||||||
|
out_string = out_string .. "ds:t;"
|
||||||
|
else
|
||||||
|
out_string = out_string .. "ds:f;"
|
||||||
|
end
|
||||||
|
|
||||||
|
for k, v in pairs(hack_player_state) do
|
||||||
|
out_string = out_string .. k ..":" .. v .. ";"
|
||||||
|
end
|
||||||
|
printh(out_string)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Called at the same rate as _update,
|
||||||
|
-- but not necessarily at the same time.
|
||||||
|
function _draw()
|
||||||
|
--old_draw()
|
||||||
end
|
end
|
||||||
|
|
||||||
function old_update()
|
function old_update()
|
||||||
|
|
Reference in New Issue