diff --git a/vacation.p8 b/vacation.p8 index d48186c..3b0ba63 100644 --- a/vacation.p8 +++ b/vacation.p8 @@ -76,6 +76,21 @@ function event_list:push_back(x) self.tail = x end +function event_list:strip(f) + local p, n = self, self.next + while n do + if f(n) then + p.next = n.next + else + p = n + end + n = n.next + end + self.tail = p + return p +end + + function event_list:update() local p, n = self, self.next while n do @@ -393,20 +408,26 @@ phinstate_jump_full = { yo=-8, } phinstate_jump_wane = { - s={1}, + s={69}, ws=3, hs=3, xo=-12, yo=-8, } phinstate_crest = { - s={4}, + s={72}, ws=3, hs=2, xo=-12, yo=-8, } -phinstate_fall_wax = phinstate_jump_wane +phinstate_fall_wax = { + s={1}, + ws=3, + hs=3, + xo=-12, + yo=-16, +} phinstate_fall_full = { s={7}, ws=2, @@ -423,14 +444,14 @@ phinstate_dive_wane = { yo=-16, } phinstate_return = { - s={4}, + s={104}, ws=3, hs=2, xo=-12, yo=-8, } -phinstate_rise_wax = phinstate_dive_wane -phinstate_rise_full = phinstate_dive_full +phinstate_rise_wax = phinstate_jump_wane +phinstate_rise_full = phinstate_jump_full phinstate_error = { s={0}, @@ -528,14 +549,14 @@ function toyphin:update() y=new_y local wet, st = y > 64, phinstate_error - if dy < -2.5 then + if dy < -2.15 then st = wet and phinstate_rise_full or phinstate_jump_full - elseif dy <= -1.5 then + elseif dy <= -1 then st = wet and phinstate_rise_wax or phinstate_jump_wane - elseif dy < 1.5 then + elseif dy < 1 then -- handle idle special case later st = wet and phinstate_return or phinstate_crest - elseif dy <= 2.5 then + elseif dy <= 2.15 then st = wet and phinstate_dive_wane or phinstate_fall_wax else st = wet and phinstate_dive_full or phinstate_fall_full @@ -858,30 +879,38 @@ __gfx__ 00000000000000000000000000000000000000002222ee7e22222000000000000000000027770000777722e2777770002eee0000eeee2272eeeee00000000000 0000000000000000000000000000000000000000000eeee7000000000000000000000000770000000002222e00000000ee000000000222270000000000000000 00000000000000000000000000000000000000000eee2200000000000000000000000000000000000222770000000000000000000222ee000000000000000000 -00000000000066000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000222600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000002222e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -0000000002712ee00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000627ceee00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -000000022277eee00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -000000222222ee000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -000066226622ee000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -0006222622226e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00022222222226000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00220022222222000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -0000002226ee26000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -0000002226ee22600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -000000222ee002200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000022eee002200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -0000022eee0000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -0000022ee00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -0000022e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -0006622e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -0022226e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -02222226000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -022e022e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -0200022e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000066000000000000000000000002200000000000000000000002200000000000000000000000000000000000000000000000000000000000000000 +00000000000222600000000000000000002226620000000000000000002226620000000000000000000000000000702200000000000000000000000000000000 +00000000002222e000000000000000006227222e00000000000000002227222e0000000000000000000000000222026200000000000000000000000000000000 +0000000002712ee00000000000050026227c1eee0000000000006622227c1eee0000000000220000000000000e22e26200000000000000000000000000000000 +00000000627ceee00000000000222222227ceee000000000006622266272eee000000000002620000000000000ee262200000000000000000000000000000000 +000000022277eee000000000022226222222eee000000000022222622222eee0000000000022620000000000000ee22600000000000000000000000000000000 +000000222222ee0000000000000062222222ee0000000000000022222222ee000000000000022622000000000000e22600000000000000000000000000000000 +000066226622ee000000000000006222222220000000000000002222222220000000000026222626622000000000eee220000200000000000000000000000000 +0006222622226e0000000000000622222226000000000000000222222226000002000002622222222222200000000ee222000200000000000000000000000000 +00022222222226000000000000022222e22600000000000000022222e226000026620222222222222777262000000ee222660220000000000000000000000000 +0022002222222200000000000062222ee000000000000000002222eee22e0000222622222eee222227c1226200000ee222262260000000000000000000000000 +0000002226ee2600000000000662eeee000000000000000002222eee022e00000e22222eeeeeee2222eee26200000ee222222260000000000000000000000000 +0000002226ee2260000000222222eee000000000000000662222ee0002e00000e2622e00000ee2222eeeeee2000022ee22222200000000000000000000000000 +000000222ee0022000000226622ee0000000000000000222622ee000000000002222e00000002262eeeeee000000222222222600000000000000000000000000 +00000022eee0022000000222222e00000000000000000222222e00000000000022ee000000022226000000000000222222222600000000000000000000000000 +0000022eee0000200000000e22e00000000000000000000e22e00000000000000e00000002222200000000000000006622222260000000000000000000000000 +0000022ee00000000000000222e00000000000000000000226e00000000000000000000000000000000000000000000222277220000000000000000000000000 +0000022e00000000000000002ee0000000000000000000002ee000000000000000000000000000000000000000000000eeec7200000000000000000000000000 +0006622e00000000000000000ee0000000000000000000000ee000000000000000000000000000000000000000000000eeee1200000000000000000000000000 +0022226e00000000000000000000000000000000000000000000000000000000000000000022000000000000000000000eee2600000000000000000000000000 +02222226000000000000000000000000000000000000000000000000000000000000000000262000000000000000000000ee2600000000000000000000000000 +022e022e0000000000000000000000000000000000000000000000000000000000200000002262000000000000000000000e6200000000000000000000000000 +0200022e000000000000000000000000000000000000000000000000000000000222000000022622000000000000000000002200000000000000000000000000 +00000020000000000000000000000000000000000000000000000000000000000262000000222626622000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000e26220002226222222220000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000002222262222666222277726200000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000222ee2662222222227c122620000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000ee00eeeee222222222eee2620000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000eeeeeee2222eeeeee00000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000eeee2262eeeee0000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000022226000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000000222ee00000000000000000000000000000000000000000000000000 __label__ cssscccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc s777sccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc @@ -940,25 +969,25 @@ cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc -cccc2227cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc -ccccc2227ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc -cccccc22227ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc -ccccc277222772cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc -ccc2772222222222cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc -772222222222777272cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc -2222222222227c022721111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 -2eee222222222eee2721111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 -eeeeeeee2222eeeeee11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 -111ttttiiititttt1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 -111111iiiti111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 -11111iiii11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +2ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +222ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +77272ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +c0227211111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +eee27211111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +eeeee111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +ttt11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 -11h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h1 h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1 h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111 1h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h11 @@ -970,7 +999,7 @@ h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111 h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1 h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111 1h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h11 -1hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh1 +11h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h1 111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1 h11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11h @@ -979,7 +1008,7 @@ h11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11h hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1 h11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11h 1hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh11hh1 -1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h1h +111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h111h 1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh h1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hh hh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1hhh1h