diff --git a/vacation.p8 b/vacation.p8 index e034d61..33a01ba 100644 --- a/vacation.p8 +++ b/vacation.p8 @@ -481,7 +481,7 @@ function zonk_txt(s, x, y, p, md, amt, frms) frames=frms, v=v, } - itv.eff_w=t1:xmax() + itv.eff_w=t1:xmax()-1 return itv end @@ -566,16 +566,20 @@ fuzzy_stripey = { mknew(fuzzy_stripey, function(f) f.fuzz = fuzzy.new{ weight = f.weight or fuzzy_stripey.weight, - interval = f.interval or fuzzy.interval, - tries = f.tries or fuzzy.tries, + interval = f.interval, + tries = f.tries, } end) function fuzzy_stripey:update() + local fz = self.fuzz + fz.weight = self.weight + fz.interval = self.interval + fz.tries = self.tries self.y += self.dy if (self.y <= -self.gap) self.y += self.gap if (self.y >= self.gap) self.y -= self.gap - self.fuzz:update() + fz:update() end function fuzzy_stripey:draw() @@ -666,11 +670,11 @@ function breather:draw() end end -function breather:matches(x) - if (not x or not self.on) return true - if (x==1) return self:starting_reverse() - if (x==2) return self:starting_forward() - if (x==3) return self:starting_reverse() or self:starting_forward() +function breather:matches(x, alwaysmatched) + if (not self.on) return true + if (x==1) return not alwaysmatched and self:starting_reverse() + if (x==2) return not alwaysmatched and self:starting_forward() + if (x==3) return not alwaysmatched and self:starting_reverse() or self:starting_forward() return true end @@ -698,7 +702,6 @@ zonk_mode = { files={}, lnh = 9, --space width - spc_w = 0, spc_full=6, --text mode txmd=0x81, @@ -736,6 +739,7 @@ mknew(zonk_mode, function(self) sep=self.br_sep, speed=self.br_spd, } + self.alwaysmatched=true end) function zonk_mode:set(_, field,value) @@ -746,10 +750,8 @@ function zonk_mode:g(_, fn, ...) return _ENV[fn](...) end function zonk_mode:at(_, x, y) - --i don't know why i need the - --spc_full offset but i do self.txt_frame=scootbox.new{ - x=x-self.spc_full, + x=x, from=y-5, to=y-5-self.exmg, frames=self.exf, @@ -791,6 +793,8 @@ function zonk_mode:next_file() if #self.files > 0 then self.file=split(deli(self.files,1), "\n") self.expect_cfg_line=true + self.cy=5 + self.cx=0 end end @@ -829,7 +833,7 @@ function zonk_mode:next_item() return self:next_item() end -- parse token - local token = tostr(del(self.line, 1)) + local token = tostr(deli(self.line, 1)) while #token == 0 and #self.line > 0 do -- emit extra spaces self.cx += self.spc_full @@ -842,7 +846,7 @@ function zonk_mode:next_item() if (token[1]=="!") token,pp=sub(token,2),sfd_txt_pal if (token[1]=="#") token,pp=sub(token,2),hlt_txt_pal local ret = zonk_txt(token,self.cx,self.cy,pp,self.txmd,self.txf,self.txd*cmult) - self.cx = ret.eff_w+self.spc_w + self.cx = ret.eff_w+self.spc_full return #token,ret end @@ -856,6 +860,7 @@ function fadetbl(col, tbl, frac) end function zonk_mode:update() + if (not self.brth:matches(self.bwt)) self.alwaysmatched=false if self.playing_text then self.twt -= 1 if self.twt <= 0 then @@ -882,10 +887,11 @@ function zonk_mode:update() end if self.twt <= 0 then if (btnp(1)) self.confirmed=true - if not self.nextpage and self.confirmed and self.brth:matches(self.bwt) then + if not self.nextpage and self.confirmed and self.brth:matches(self.bwt, self.alwaysmatched) then self.nextpage = true self.txt_frame.go = true self.fpfrm = self.exf + self.alwaysmatched=true end else self.twt -= 1 @@ -976,19 +982,19 @@ FULLY ALERT AT THE set:exf:10 set:txf:30 set:txd:45 set:confirmed:1 bgdy:0.1 bspd:225 center:1:1 1 ----- -set:confirmed:1 bspd:210 bgdy:0.15 center:1:1 +set:confirmed:1 bspd:210 bgdy:0.15 bgwt:10 center:1:1 2 ----- -set:confirmed:1 bspd:180 bgdy:0.2 center:1:1 +set:confirmed:1 bspd:180 bgdy:0.2 bgwt:12 center:1:1 3 ----- -set:confirmed:1 bgdy:0.25 bpal:2 center:1:1 +set:confirmed:1 bgdy:0.25 bpal:2 bgwt:14 center:1:1 4 ----- -set:confirmed:1 bgdy:0.4 center:1:1 +set:confirmed:1 bgdy:0.4 bgwt:16 center:1:1 5 ----- -set:hide_breath:1 set:hide_stripes:1 boff set:txf:1 set:txd:0 set:exd:0 set:exf:1 set:lnh:6 set:spc_w:4 set:txmd:128 set:bwt:0 center:1:12 +set:hide_breath:1 set:hide_stripes:1 boff set:txf:1 set:txd:0 set:exd:0 set:exf:1 set:bwt:0 center:1:12 wide awake! ]]