local min, max, huge = math.min, math.max, math.huge return function(counters, ports) if counters["@set resolution"] > 0 then ports[1].hook(counters) return true elseif counters["@set pixel"] > 0 then ports[2].hook(counters) return true elseif counters["@draw line"] > 0 then ports[3].hook(counters) return true elseif counters["@display"] > 0 then ports[4].hook(counters) return true elseif counters["@poll inputs"] > 0 then ports[5].hook(counters) return true elseif counters["@mouse position"] > 0 then ports[6].hook(counters) return true elseif counters["@mouse is down"] > 0 then ports[7].hook(counters) return true elseif counters["@mouse relative position"] > 0 then ports[8].hook(counters) return true elseif counters["@mouse wheel"] > 0 then ports[9].hook(counters) return true elseif counters["@sleep:60"] > 0 then acc = counters["@sleep:60"] counters["@sleep:60"] = max(counters["@sleep:60"] - acc, 0) counters["@sleep"] = counters["@sleep"] + acc * 60 return true elseif counters["@line x1:10"] > 0 then acc = counters["@line x1:10"] counters["@line x1:10"] = max(counters["@line x1:10"] - acc, 0) counters["@line x1"] = counters["@line x1"] + acc * 10 return true elseif counters["@line y1:10"] > 0 then acc = counters["@line y1:10"] counters["@line y1:10"] = max(counters["@line y1:10"] - acc, 0) counters["@line y1"] = counters["@line y1"] + acc * 10 return true elseif counters["@line x2:30"] > 0 then acc = counters["@line x2:30"] counters["@line x2:30"] = max(counters["@line x2:30"] - acc, 0) counters["@line x2"] = counters["@line x2"] + acc * 30 return true elseif counters["@line y2:10"] > 0 then acc = counters["@line y2:10"] counters["@line y2:10"] = max(counters["@line y2:10"] - acc, 0) counters["@line y2"] = counters["@line y2"] + acc * 10 return true elseif counters["@pixel r:255"] > 0 then acc = counters["@pixel r:255"] counters["@pixel r:255"] = max(counters["@pixel r:255"] - acc, 0) counters["@pixel r"] = counters["@pixel r"] + acc * 255 return true elseif counters["@pixel g:255"] > 0 then acc = counters["@pixel g:255"] counters["@pixel g:255"] = max(counters["@pixel g:255"] - acc, 0) counters["@pixel g"] = counters["@pixel g"] + acc * 255 return true elseif counters["@pixel b:255"] > 0 then acc = counters["@pixel b:255"] counters["@pixel b:255"] = max(counters["@pixel b:255"] - acc, 0) counters["@pixel b"] = counters["@pixel b"] + acc * 255 return true elseif counters["@pixel r:87"] > 0 then acc = counters["@pixel r:87"] counters["@pixel r:87"] = max(counters["@pixel r:87"] - acc, 0) counters["@pixel r"] = counters["@pixel r"] + acc * 87 return true elseif counters["@pixel g:87"] > 0 then acc = counters["@pixel g:87"] counters["@pixel g:87"] = max(counters["@pixel g:87"] - acc, 0) counters["@pixel g"] = counters["@pixel g"] + acc * 87 return true elseif counters["@pixel b:87"] > 0 then acc = counters["@pixel b:87"] counters["@pixel b:87"] = max(counters["@pixel b:87"] - acc, 0) counters["@pixel b"] = counters["@pixel b"] + acc * 87 return true elseif counters["@pixel r:219"] > 0 then acc = counters["@pixel r:219"] counters["@pixel r:219"] = max(counters["@pixel r:219"] - acc, 0) counters["@pixel r"] = counters["@pixel r"] + acc * 219 return true elseif counters["@pixel b:12"] > 0 then acc = counters["@pixel b:12"] counters["@pixel b:12"] = max(counters["@pixel b:12"] - acc, 0) counters["@pixel b"] = counters["@pixel b"] + acc * 12 return true elseif counters["clear @pixel r:255"] > 0 then acc = counters["clear @pixel r:255"] counters["clear @pixel r:255"] = max(counters["clear @pixel r:255"] - acc, 0) counters["clear @pixel r"] = counters["clear @pixel r"] + acc * 255 return true elseif counters["clear @pixel g:255"] > 0 then acc = counters["clear @pixel g:255"] counters["clear @pixel g:255"] = max(counters["clear @pixel g:255"] - acc, 0) counters["clear @pixel g"] = counters["clear @pixel g"] + acc * 255 return true elseif counters["clear @pixel b:255"] > 0 then acc = counters["clear @pixel b:255"] counters["clear @pixel b:255"] = max(counters["clear @pixel b:255"] - acc, 0) counters["clear @pixel b"] = counters["clear @pixel b"] + acc * 255 return true elseif counters["clear old mouse x:1000000"] > 0 then acc = counters["clear old mouse x:1000000"] counters["clear old mouse x:1000000"] = max(counters["clear old mouse x:1000000"] - acc, 0) counters["clear old mouse x"] = counters["clear old mouse x"] + acc * 1000000 return true elseif counters["clear old mouse y:1000000"] > 0 then acc = counters["clear old mouse y:1000000"] counters["clear old mouse y:1000000"] = max(counters["clear old mouse y:1000000"] - acc, 0) counters["clear old mouse y"] = counters["clear old mouse y"] + acc * 1000000 return true elseif counters["current mouse x -> old mouse x:1000000"] > 0 then acc = counters["current mouse x -> old mouse x:1000000"] counters["current mouse x -> old mouse x:1000000"] = max(counters["current mouse x -> old mouse x:1000000"] - acc, 0) counters["current mouse x -> old mouse x"] = counters["current mouse x -> old mouse x"] + acc * 1000000 return true elseif counters["current mouse y -> old mouse y:1000000"] > 0 then acc = counters["current mouse y -> old mouse y:1000000"] counters["current mouse y -> old mouse y:1000000"] = max(counters["current mouse y -> old mouse y:1000000"] - acc, 0) counters["current mouse y -> old mouse y"] = counters["current mouse y -> old mouse y"] + acc * 1000000 return true elseif counters["@mouse x -> current mouse x:1000000"] > 0 then acc = counters["@mouse x -> current mouse x:1000000"] counters["@mouse x -> current mouse x:1000000"] = max(counters["@mouse x -> current mouse x:1000000"] - acc, 0) counters["@mouse x -> current mouse x"] = counters["@mouse x -> current mouse x"] + acc * 1000000 return true elseif counters["@mouse y -> current mouse y:1000000"] > 0 then acc = counters["@mouse y -> current mouse y:1000000"] counters["@mouse y -> current mouse y:1000000"] = max(counters["@mouse y -> current mouse y:1000000"] - acc, 0) counters["@mouse y -> current mouse y"] = counters["@mouse y -> current mouse y"] + acc * 1000000 return true elseif counters["copy old mouse x -> @line x1:1000000"] > 0 then acc = counters["copy old mouse x -> @line x1:1000000"] counters["copy old mouse x -> @line x1:1000000"] = max(counters["copy old mouse x -> @line x1:1000000"] - acc, 0) counters["copy old mouse x -> @line x1"] = counters["copy old mouse x -> @line x1"] + acc * 1000000 return true elseif counters["copy old mouse y -> @line y1:1000000"] > 0 then acc = counters["copy old mouse y -> @line y1:1000000"] counters["copy old mouse y -> @line y1:1000000"] = max(counters["copy old mouse y -> @line y1:1000000"] - acc, 0) counters["copy old mouse y -> @line y1"] = counters["copy old mouse y -> @line y1"] + acc * 1000000 return true elseif counters["copy current mouse x -> @line x2:1000000"] > 0 then acc = counters["copy current mouse x -> @line x2:1000000"] counters["copy current mouse x -> @line x2:1000000"] = max(counters["copy current mouse x -> @line x2:1000000"] - acc, 0) counters["copy current mouse x -> @line x2"] = counters["copy current mouse x -> @line x2"] + acc * 1000000 return true elseif counters["copy current mouse y -> @line y2:1000000"] > 0 then acc = counters["copy current mouse y -> @line y2:1000000"] counters["copy current mouse y -> @line y2:1000000"] = max(counters["copy current mouse y -> @line y2:1000000"] - acc, 0) counters["copy current mouse y -> @line y2"] = counters["copy current mouse y -> @line y2"] + acc * 1000000 return true elseif counters["clear pixel color"] > 0 then acc = counters["clear pixel color"] counters["clear pixel color"] = max(counters["clear pixel color"] - acc, 0) counters["clear @pixel g:255"] = counters["clear @pixel g:255"] + acc * 1 counters["clear @pixel b:255"] = counters["clear @pixel b:255"] + acc * 1 counters["clear @pixel r:255"] = counters["clear @pixel r:255"] + acc * 1 return true elseif counters["clear @pixel r"] > 0 and counters["@pixel r"] > 0 then local acc = huge acc = min(acc, counters["@pixel r"]) acc = min(acc, counters["clear @pixel r"]) counters["clear @pixel r"] = max(counters["clear @pixel r"] - acc, 0) counters["@pixel r"] = max(counters["@pixel r"] - acc, 0) return true elseif counters["clear @pixel g"] > 0 and counters["@pixel g"] > 0 then local acc = huge acc = min(acc, counters["clear @pixel g"]) acc = min(acc, counters["@pixel g"]) counters["clear @pixel g"] = max(counters["clear @pixel g"] - acc, 0) counters["@pixel g"] = max(counters["@pixel g"] - acc, 0) return true elseif counters["clear @pixel b"] > 0 and counters["@pixel b"] > 0 then local acc = huge acc = min(acc, counters["@pixel b"]) acc = min(acc, counters["clear @pixel b"]) counters["clear @pixel b"] = max(counters["clear @pixel b"] - acc, 0) counters["@pixel b"] = max(counters["@pixel b"] - acc, 0) return true elseif counters["clear @pixel r"] > 0 then acc = counters["clear @pixel r"] counters["clear @pixel r"] = max(counters["clear @pixel r"] - acc, 0) return true elseif counters["clear @pixel g"] > 0 then acc = counters["clear @pixel g"] counters["clear @pixel g"] = max(counters["clear @pixel g"] - acc, 0) return true elseif counters["clear @pixel b"] > 0 then acc = counters["clear @pixel b"] counters["clear @pixel b"] = max(counters["clear @pixel b"] - acc, 0) return true elseif counters["clear old mouse x"] > 0 and counters["old mouse x"] > 0 then local acc = huge acc = min(acc, counters["clear old mouse x"]) acc = min(acc, counters["old mouse x"]) counters["clear old mouse x"] = max(counters["clear old mouse x"] - acc, 0) counters["old mouse x"] = max(counters["old mouse x"] - acc, 0) return true elseif counters["clear old mouse x"] > 0 then acc = counters["clear old mouse x"] counters["clear old mouse x"] = max(counters["clear old mouse x"] - acc, 0) return true elseif counters["clear old mouse y"] > 0 and counters["old mouse y"] > 0 then local acc = huge acc = min(acc, counters["old mouse y"]) acc = min(acc, counters["clear old mouse y"]) counters["clear old mouse y"] = max(counters["clear old mouse y"] - acc, 0) counters["old mouse y"] = max(counters["old mouse y"] - acc, 0) return true elseif counters["clear old mouse y"] > 0 then acc = counters["clear old mouse y"] counters["clear old mouse y"] = max(counters["clear old mouse y"] - acc, 0) return true elseif counters["current mouse x -> old mouse x"] > 0 and counters["current mouse x"] > 0 then local acc = huge acc = min(acc, counters["current mouse x -> old mouse x"]) acc = min(acc, counters["current mouse x"]) counters["current mouse x -> old mouse x"] = max(counters["current mouse x -> old mouse x"] - acc, 0) counters["current mouse x"] = max(counters["current mouse x"] - acc, 0) counters["old mouse x"] = counters["old mouse x"] + acc * 1 return true elseif counters["current mouse y -> old mouse y"] > 0 and counters["current mouse y"] > 0 then local acc = huge acc = min(acc, counters["current mouse y"]) acc = min(acc, counters["current mouse y -> old mouse y"]) counters["current mouse y -> old mouse y"] = max(counters["current mouse y -> old mouse y"] - acc, 0) counters["current mouse y"] = max(counters["current mouse y"] - acc, 0) counters["old mouse y"] = counters["old mouse y"] + acc * 1 return true elseif counters["current mouse x -> old mouse x"] > 0 then acc = counters["current mouse x -> old mouse x"] counters["current mouse x -> old mouse x"] = max(counters["current mouse x -> old mouse x"] - acc, 0) return true elseif counters["current mouse y -> old mouse y"] > 0 then acc = counters["current mouse y -> old mouse y"] counters["current mouse y -> old mouse y"] = max(counters["current mouse y -> old mouse y"] - acc, 0) return true elseif counters["@mouse x -> current mouse x"] > 0 and counters["@mouse x"] > 0 then local acc = huge acc = min(acc, counters["@mouse x -> current mouse x"]) acc = min(acc, counters["@mouse x"]) counters["@mouse x -> current mouse x"] = max(counters["@mouse x -> current mouse x"] - acc, 0) counters["@mouse x"] = max(counters["@mouse x"] - acc, 0) counters["current mouse x"] = counters["current mouse x"] + acc * 1 return true elseif counters["@mouse y -> current mouse y"] > 0 and counters["@mouse y"] > 0 then local acc = huge acc = min(acc, counters["@mouse y"]) acc = min(acc, counters["@mouse y -> current mouse y"]) counters["@mouse y -> current mouse y"] = max(counters["@mouse y -> current mouse y"] - acc, 0) counters["@mouse y"] = max(counters["@mouse y"] - acc, 0) counters["current mouse y"] = counters["current mouse y"] + acc * 1 return true elseif counters["@mouse x -> current mouse x"] > 0 then acc = counters["@mouse x -> current mouse x"] counters["@mouse x -> current mouse x"] = max(counters["@mouse x -> current mouse x"] - acc, 0) return true elseif counters["@mouse y -> current mouse y"] > 0 then acc = counters["@mouse y -> current mouse y"] counters["@mouse y -> current mouse y"] = max(counters["@mouse y -> current mouse y"] - acc, 0) return true elseif counters["copy old mouse x -> @line x1"] > 0 and counters["old mouse x"] > 0 then local acc = huge acc = min(acc, counters["copy old mouse x -> @line x1"]) acc = min(acc, counters["old mouse x"]) counters["copy old mouse x -> @line x1"] = max(counters["copy old mouse x -> @line x1"] - acc, 0) counters["old mouse x"] = max(counters["old mouse x"] - acc, 0) counters["used old mouse x"] = counters["used old mouse x"] + acc * 1 counters["@line x1"] = counters["@line x1"] + acc * 1 return true elseif counters["copy old mouse y -> @line y1"] > 0 and counters["old mouse y"] > 0 then local acc = huge acc = min(acc, counters["old mouse y"]) acc = min(acc, counters["copy old mouse y -> @line y1"]) counters["copy old mouse y -> @line y1"] = max(counters["copy old mouse y -> @line y1"] - acc, 0) counters["old mouse y"] = max(counters["old mouse y"] - acc, 0) counters["@line y1"] = counters["@line y1"] + acc * 1 counters["used old mouse y"] = counters["used old mouse y"] + acc * 1 return true elseif counters["copy current mouse x -> @line x2"] > 0 and counters["current mouse x"] > 0 then local acc = huge acc = min(acc, counters["copy current mouse x -> @line x2"]) acc = min(acc, counters["current mouse x"]) counters["copy current mouse x -> @line x2"] = max(counters["copy current mouse x -> @line x2"] - acc, 0) counters["current mouse x"] = max(counters["current mouse x"] - acc, 0) counters["used current mouse x"] = counters["used current mouse x"] + acc * 1 counters["@line x2"] = counters["@line x2"] + acc * 1 return true elseif counters["copy current mouse y -> @line y2"] > 0 and counters["current mouse y"] > 0 then local acc = huge acc = min(acc, counters["current mouse y"]) acc = min(acc, counters["copy current mouse y -> @line y2"]) counters["copy current mouse y -> @line y2"] = max(counters["copy current mouse y -> @line y2"] - acc, 0) counters["current mouse y"] = max(counters["current mouse y"] - acc, 0) counters["@line y2"] = counters["@line y2"] + acc * 1 counters["used current mouse y"] = counters["used current mouse y"] + acc * 1 return true elseif counters["copy old mouse x -> @line x1"] > 0 then acc = counters["copy old mouse x -> @line x1"] counters["copy old mouse x -> @line x1"] = max(counters["copy old mouse x -> @line x1"] - acc, 0) return true elseif counters["copy old mouse y -> @line y1"] > 0 then acc = counters["copy old mouse y -> @line y1"] counters["copy old mouse y -> @line y1"] = max(counters["copy old mouse y -> @line y1"] - acc, 0) return true elseif counters["copy current mouse x -> @line x2"] > 0 then acc = counters["copy current mouse x -> @line x2"] counters["copy current mouse x -> @line x2"] = max(counters["copy current mouse x -> @line x2"] - acc, 0) return true elseif counters["copy current mouse y -> @line y2"] > 0 then acc = counters["copy current mouse y -> @line y2"] counters["copy current mouse y -> @line y2"] = max(counters["copy current mouse y -> @line y2"] - acc, 0) return true elseif counters["used old mouse x"] > 0 then acc = counters["used old mouse x"] counters["used old mouse x"] = max(counters["used old mouse x"] - acc, 0) counters["old mouse x"] = counters["old mouse x"] + acc * 1 return true elseif counters["used old mouse y"] > 0 then acc = counters["used old mouse y"] counters["used old mouse y"] = max(counters["used old mouse y"] - acc, 0) counters["old mouse y"] = counters["old mouse y"] + acc * 1 return true elseif counters["used current mouse x"] > 0 then acc = counters["used current mouse x"] counters["used current mouse x"] = max(counters["used current mouse x"] - acc, 0) counters["current mouse x"] = counters["current mouse x"] + acc * 1 return true elseif counters["used current mouse y"] > 0 then acc = counters["used current mouse y"] counters["used current mouse y"] = max(counters["used current mouse y"] - acc, 0) counters["current mouse y"] = counters["current mouse y"] + acc * 1 return true elseif counters["clear old mouse position"] > 0 then acc = counters["clear old mouse position"] counters["clear old mouse position"] = max(counters["clear old mouse position"] - acc, 0) counters["clear old mouse y:1000000"] = counters["clear old mouse y:1000000"] + acc * 1 counters["clear old mouse x:1000000"] = counters["clear old mouse x:1000000"] + acc * 1 return true elseif counters["move current mouse position to old mouse position"] > 0 then acc = counters["move current mouse position to old mouse position"] counters["move current mouse position to old mouse position"] = max(counters["move current mouse position to old mouse position"] - acc, 0) counters["current mouse x -> old mouse x:1000000"] = counters["current mouse x -> old mouse x:1000000"] + acc * 1 counters["current mouse y -> old mouse y:1000000"] = counters["current mouse y -> old mouse y:1000000"] + acc * 1 return true elseif counters["move @mouse position to current mouse position"] > 0 then acc = counters["move @mouse position to current mouse position"] counters["move @mouse position to current mouse position"] = max(counters["move @mouse position to current mouse position"] - acc, 0) counters["@mouse y -> current mouse y:1000000"] = counters["@mouse y -> current mouse y:1000000"] + acc * 1 counters["@mouse x -> current mouse x:1000000"] = counters["@mouse x -> current mouse x:1000000"] + acc * 1 return true elseif counters["update mouse position"] > 0 then acc = counters["update mouse position"] counters["update mouse position"] = max(counters["update mouse position"] - acc, 0) counters["@mouse position"] = counters["@mouse position"] + acc * 1 counters["move current mouse position to old mouse position"] = counters["move current mouse position to old mouse position"] + acc * 1 counters["clear old mouse position"] = counters["clear old mouse position"] + acc * 1 counters["move @mouse position to current mouse position"] = counters["move @mouse position to current mouse position"] + acc * 1 return true elseif counters["check if mouse button 1 is down"] > 0 and counters["find brush mode"] > 0 then local acc = huge acc = min(acc, counters["check if mouse button 1 is down"]) acc = min(acc, counters["find brush mode"]) counters["check if mouse button 1 is down"] = max(counters["check if mouse button 1 is down"] - acc, 0) counters["find brush mode"] = max(counters["find brush mode"] - acc, 0) counters["@mouse button"] = counters["@mouse button"] + acc * 1 counters["checking button 1"] = counters["checking button 1"] + acc * 1 counters["@mouse is down"] = counters["@mouse is down"] + acc * 1 return true elseif counters["check if mouse button 2 is down"] > 0 and counters["find brush mode"] > 0 then local acc = huge acc = min(acc, counters["find brush mode"]) acc = min(acc, counters["check if mouse button 2 is down"]) counters["check if mouse button 2 is down"] = max(counters["check if mouse button 2 is down"] - acc, 0) counters["find brush mode"] = max(counters["find brush mode"] - acc, 0) counters["checking button 2"] = counters["checking button 2"] + acc * 1 counters["@mouse button"] = counters["@mouse button"] + acc * 2 counters["@mouse is down"] = counters["@mouse is down"] + acc * 1 return true elseif counters["check if mouse button 3 is down"] > 0 and counters["find brush mode"] > 0 then local acc = huge acc = min(acc, counters["find brush mode"]) acc = min(acc, counters["check if mouse button 3 is down"]) counters["check if mouse button 3 is down"] = max(counters["check if mouse button 3 is down"] - acc, 0) counters["find brush mode"] = max(counters["find brush mode"] - acc, 0) counters["@mouse button"] = counters["@mouse button"] + acc * 3 counters["checking button 3"] = counters["checking button 3"] + acc * 1 counters["@mouse is down"] = counters["@mouse is down"] + acc * 1 return true elseif counters["checking button 1"] > 0 and counters["@mouse button is down"] > 0 then local acc = huge acc = min(acc, counters["checking button 1"]) acc = min(acc, counters["@mouse button is down"]) counters["checking button 1"] = max(counters["checking button 1"] - acc, 0) counters["@mouse button is down"] = max(counters["@mouse button is down"] - acc, 0) counters["brush is drawing"] = counters["brush is drawing"] + acc * 1 return true elseif counters["checking button 2"] > 0 and counters["@mouse button is down"] > 0 then local acc = huge acc = min(acc, counters["checking button 2"]) acc = min(acc, counters["@mouse button is down"]) counters["checking button 2"] = max(counters["checking button 2"] - acc, 0) counters["@mouse button is down"] = max(counters["@mouse button is down"] - acc, 0) counters["brush is erasing"] = counters["brush is erasing"] + acc * 1 return true elseif counters["checking button 3"] > 0 and counters["@mouse button is down"] > 0 then local acc = huge acc = min(acc, counters["checking button 3"]) acc = min(acc, counters["@mouse button is down"]) counters["checking button 3"] = max(counters["checking button 3"] - acc, 0) counters["@mouse button is down"] = max(counters["@mouse button is down"] - acc, 0) counters["brush is drawing red"] = counters["brush is drawing red"] + acc * 1 return true elseif counters["checking button 3"] > 0 then acc = counters["checking button 3"] counters["checking button 3"] = max(counters["checking button 3"] - acc, 0) counters["find brush mode"] = counters["find brush mode"] + acc * 1 return true elseif counters["checking button 2"] > 0 then acc = counters["checking button 2"] counters["checking button 2"] = max(counters["checking button 2"] - acc, 0) counters["find brush mode"] = counters["find brush mode"] + acc * 1 return true elseif counters["checking button 1"] > 0 then acc = counters["checking button 1"] counters["checking button 1"] = max(counters["checking button 1"] - acc, 0) counters["find brush mode"] = counters["find brush mode"] + acc * 1 return true elseif counters["find brush mode"] > 0 then acc = counters["find brush mode"] counters["find brush mode"] = max(counters["find brush mode"] - acc, 0) return true elseif counters["check if mouse button is down"] > 0 then acc = counters["check if mouse button is down"] counters["check if mouse button is down"] = max(counters["check if mouse button is down"] - acc, 0) counters["check if mouse button 1 is down"] = counters["check if mouse button 1 is down"] + acc * 1 counters["find brush mode"] = counters["find brush mode"] + acc * 1 counters["check if mouse button 3 is down"] = counters["check if mouse button 3 is down"] + acc * 1 counters["check if mouse button 2 is down"] = counters["check if mouse button 2 is down"] + acc * 1 return true elseif counters["set line color"] > 0 and counters["current color is 1"] > 0 then local acc = huge acc = min(acc, counters["current color is 1"]) acc = min(acc, counters["set line color"]) counters["set line color"] = max(counters["set line color"] - acc, 0) counters["current color is 1"] = max(counters["current color is 1"] - acc, 0) counters["current color is 1"] = counters["current color is 1"] + acc * 1 counters["@pixel r:255"] = counters["@pixel r:255"] + acc * 1 counters["@pixel g:255"] = counters["@pixel g:255"] + acc * 1 counters["@pixel b:255"] = counters["@pixel b:255"] + acc * 1 return true elseif counters["set line color"] > 0 and counters["current color is 2"] > 0 then local acc = huge acc = min(acc, counters["current color is 2"]) acc = min(acc, counters["set line color"]) counters["set line color"] = max(counters["set line color"] - acc, 0) counters["current color is 2"] = max(counters["current color is 2"] - acc, 0) counters["current color is 2"] = counters["current color is 2"] + acc * 1 counters["@pixel r:87"] = counters["@pixel r:87"] + acc * 1 counters["@pixel g:87"] = counters["@pixel g:87"] + acc * 1 counters["@pixel b:87"] = counters["@pixel b:87"] + acc * 1 return true elseif counters["set line color"] > 0 and counters["current color is 3"] > 0 then local acc = huge acc = min(acc, counters["current color is 3"]) acc = min(acc, counters["set line color"]) counters["set line color"] = max(counters["set line color"] - acc, 0) counters["current color is 3"] = max(counters["current color is 3"] - acc, 0) counters["current color is 3"] = counters["current color is 3"] + acc * 1 counters["@pixel r:219"] = counters["@pixel r:219"] + acc * 1 counters["@pixel b:12"] = counters["@pixel b:12"] + acc * 1 return true elseif counters["set line color"] > 0 and counters["current color is 4"] > 0 then local acc = huge acc = min(acc, counters["current color is 4"]) acc = min(acc, counters["set line color"]) counters["set line color"] = max(counters["set line color"] - acc, 0) counters["current color is 4"] = max(counters["current color is 4"] - acc, 0) counters["current color is 4"] = counters["current color is 4"] + acc * 1 return true elseif counters["set line position"] > 0 then acc = counters["set line position"] counters["set line position"] = max(counters["set line position"] - acc, 0) counters["copy current mouse y -> @line y2:1000000"] = counters["copy current mouse y -> @line y2:1000000"] + acc * 1 counters["copy old mouse x -> @line x1:1000000"] = counters["copy old mouse x -> @line x1:1000000"] + acc * 1 counters["copy old mouse y -> @line y1:1000000"] = counters["copy old mouse y -> @line y1:1000000"] + acc * 1 counters["copy current mouse x -> @line x2:1000000"] = counters["copy current mouse x -> @line x2:1000000"] + acc * 1 return true elseif counters["draw the line"] > 0 then acc = counters["draw the line"] counters["draw the line"] = max(counters["draw the line"] - acc, 0) counters["@draw line"] = counters["@draw line"] + acc * 1 return true elseif counters["plot line"] > 0 then acc = counters["plot line"] counters["plot line"] = max(counters["plot line"] - acc, 0) counters["set line position"] = counters["set line position"] + acc * 1 counters["draw the line"] = counters["draw the line"] + acc * 1 return true elseif counters["draw a line"] > 0 and counters["brush is drawing"] > 0 then local acc = huge acc = min(acc, counters["brush is drawing"]) acc = min(acc, counters["draw a line"]) counters["draw a line"] = max(counters["draw a line"] - acc, 0) counters["brush is drawing"] = max(counters["brush is drawing"] - acc, 0) counters["plot line"] = counters["plot line"] + acc * 1 counters["clear pixel color"] = counters["clear pixel color"] + acc * 1 counters["set line color"] = counters["set line color"] + acc * 1 return true elseif counters["draw a line"] > 0 and counters["brush is erasing"] > 0 then local acc = huge acc = min(acc, counters["brush is erasing"]) acc = min(acc, counters["draw a line"]) counters["draw a line"] = max(counters["draw a line"] - acc, 0) counters["brush is erasing"] = max(counters["brush is erasing"] - acc, 0) counters["clear pixel color"] = counters["clear pixel color"] + acc * 1 counters["plot line"] = counters["plot line"] + acc * 1 return true elseif counters["draw a line"] > 0 then acc = counters["draw a line"] counters["draw a line"] = max(counters["draw a line"] - acc, 0) return true elseif counters["check for color change"] > 0 then acc = counters["check for color change"] counters["check for color change"] = max(counters["check for color change"] - acc, 0) counters["@mouse wheel"] = counters["@mouse wheel"] + acc * 1 counters["update color"] = counters["update color"] + acc * 1 return true elseif counters["update color"] > 0 and counters["@mouse wheel +y"] > 0 then local acc = huge acc = min(acc, counters["@mouse wheel +y"]) acc = min(acc, counters["update color"]) counters["update color"] = max(counters["update color"] - acc, 0) counters["@mouse wheel +y"] = max(counters["@mouse wheel +y"] - acc, 0) counters["next color"] = counters["next color"] + acc * 1 return true elseif counters["update color"] > 0 and counters["@mouse wheel -y"] > 0 then local acc = huge acc = min(acc, counters["@mouse wheel -y"]) acc = min(acc, counters["update color"]) counters["update color"] = max(counters["update color"] - acc, 0) counters["@mouse wheel -y"] = max(counters["@mouse wheel -y"] - acc, 0) counters["previous color"] = counters["previous color"] + acc * 1 return true elseif counters["current color is 1"] > 0 and counters["next color"] > 0 then local acc = huge acc = min(acc, counters["current color is 1"]) acc = min(acc, counters["next color"]) counters["current color is 1"] = max(counters["current color is 1"] - acc, 0) counters["next color"] = max(counters["next color"] - acc, 0) counters["current color is 2"] = counters["current color is 2"] + acc * 1 return true elseif counters["current color is 2"] > 0 and counters["next color"] > 0 then local acc = huge acc = min(acc, counters["current color is 2"]) acc = min(acc, counters["next color"]) counters["current color is 2"] = max(counters["current color is 2"] - acc, 0) counters["next color"] = max(counters["next color"] - acc, 0) counters["current color is 3"] = counters["current color is 3"] + acc * 1 return true elseif counters["current color is 3"] > 0 and counters["next color"] > 0 then local acc = huge acc = min(acc, counters["current color is 3"]) acc = min(acc, counters["next color"]) counters["current color is 3"] = max(counters["current color is 3"] - acc, 0) counters["next color"] = max(counters["next color"] - acc, 0) counters["current color is 4"] = counters["current color is 4"] + acc * 1 return true elseif counters["current color is 4"] > 0 and counters["next color"] > 0 then local acc = huge acc = min(acc, counters["next color"]) acc = min(acc, counters["current color is 4"]) counters["current color is 4"] = max(counters["current color is 4"] - acc, 0) counters["next color"] = max(counters["next color"] - acc, 0) counters["current color is 1"] = counters["current color is 1"] + acc * 1 return true elseif counters["current color is 1"] > 0 and counters["previous color"] > 0 then local acc = huge acc = min(acc, counters["current color is 1"]) acc = min(acc, counters["previous color"]) counters["current color is 1"] = max(counters["current color is 1"] - acc, 0) counters["previous color"] = max(counters["previous color"] - acc, 0) counters["current color is 4"] = counters["current color is 4"] + acc * 1 return true elseif counters["current color is 2"] > 0 and counters["previous color"] > 0 then local acc = huge acc = min(acc, counters["current color is 2"]) acc = min(acc, counters["previous color"]) counters["current color is 2"] = max(counters["current color is 2"] - acc, 0) counters["previous color"] = max(counters["previous color"] - acc, 0) counters["current color is 1"] = counters["current color is 1"] + acc * 1 return true elseif counters["current color is 3"] > 0 and counters["previous color"] > 0 then local acc = huge acc = min(acc, counters["current color is 3"]) acc = min(acc, counters["previous color"]) counters["current color is 3"] = max(counters["current color is 3"] - acc, 0) counters["previous color"] = max(counters["previous color"] - acc, 0) counters["current color is 2"] = counters["current color is 2"] + acc * 1 return true elseif counters["current color is 4"] > 0 and counters["previous color"] > 0 then local acc = huge acc = min(acc, counters["previous color"]) acc = min(acc, counters["current color is 4"]) counters["current color is 4"] = max(counters["current color is 4"] - acc, 0) counters["previous color"] = max(counters["previous color"] - acc, 0) counters["current color is 3"] = counters["current color is 3"] + acc * 1 return true elseif counters["@mouse wheel +y"] > 0 then acc = counters["@mouse wheel +y"] counters["@mouse wheel +y"] = max(counters["@mouse wheel +y"] - acc, 0) return true elseif counters["@mouse wheel -y"] > 0 then acc = counters["@mouse wheel -y"] counters["@mouse wheel -y"] = max(counters["@mouse wheel -y"] - acc, 0) return true elseif counters["update"] > 0 then acc = counters["update"] counters["update"] = max(counters["update"] - acc, 0) counters["draw a line"] = counters["draw a line"] + acc * 1 counters["check if mouse button is down"] = counters["check if mouse button is down"] + acc * 1 counters["update mouse position"] = counters["update mouse position"] + acc * 1 return true elseif counters["poll inputs"] > 0 then acc = counters["poll inputs"] counters["poll inputs"] = max(counters["poll inputs"] - acc, 0) counters["@poll inputs"] = counters["@poll inputs"] + acc * 1 return true elseif counters["draw brush color"] > 0 then acc = counters["draw brush color"] counters["draw brush color"] = max(counters["draw brush color"] - acc, 0) counters["@line x2:30"] = counters["@line x2:30"] + acc * 1 counters["@line y1:10"] = counters["@line y1:10"] + acc * 1 counters["@line y2:10"] = counters["@line y2:10"] + acc * 1 counters["draw the line"] = counters["draw the line"] + acc * 1 counters["@line x1:10"] = counters["@line x1:10"] + acc * 1 counters["set line color"] = counters["set line color"] + acc * 1 return true elseif counters["display"] > 0 then acc = counters["display"] counters["display"] = max(counters["display"] - acc, 0) counters["@display"] = counters["@display"] + acc * 1 return true elseif counters["sleep"] > 0 then acc = counters["sleep"] counters["sleep"] = max(counters["sleep"] - acc, 0) counters["@sleep:16"] = counters["@sleep:16"] + acc * 1 return true elseif counters["main loop"] > 0 then acc = counters["main loop"] counters["main loop"] = max(counters["main loop"] - acc, 0) counters["sleep"] = counters["sleep"] + acc * 1 counters["display"] = counters["display"] + acc * 1 counters["main loop"] = counters["main loop"] + acc * 1 counters["check for color change"] = counters["check for color change"] + acc * 1 counters["poll inputs"] = counters["poll inputs"] + acc * 1 counters["draw brush color"] = counters["draw brush color"] + acc * 1 counters["update"] = counters["update"] + acc * 1 return true end return false end