]> git.bts.cx Git - p8-playback.git/commitdiff
Added minimised version for in-game playback main
authorBen Sherratt <redacted>
Fri, 17 Feb 2023 15:47:51 +0000 (15:47 +0000)
committerBen Sherratt <redacted>
Fri, 17 Feb 2023 15:47:51 +0000 (15:47 +0000)
 * Parse passed string instead of loading file

playback-min.lua [new file with mode: 0644]

diff --git a/playback-min.lua b/playback-min.lua
new file mode 100644 (file)
index 0000000..13a9bef
--- /dev/null
@@ -0,0 +1,35 @@
+function playback(data,idx)
+       if(idx==nil)idx=1
+       data=split(data)
+
+       local _flip,_btn,_btnp=flip,btn,btnp
+       local _playback_frame,_btn_data,_btn_p_data=0,0,0
+
+       btn=function(b,pl)
+               if(b==nil and pl==nil)return _btn_data
+               if(pl==nil)pl=0
+               return (_btn_data&(1<<(b+pl*6)))>0
+       end
+
+       btnp=function(b,pl)
+               if(b==nil and pl==nil)return _btn_p_data
+               if(pl==nil)pl=0
+               return (_btn_p_data&(1<<(b+pl*6)))>0
+       end
+
+       flip=function()
+               _playback_next_frame,_playback_next_btn,_playback_next_btnp=unpack(data,idx,idx+2)
+
+               _flip()
+               _playback_frame+=1
+
+               if _playback_frame>=_playback_next_frame then
+                       idx+=3
+                       if idx>#data then
+                               btn,btnp,flip=_btn,_btnp,_flip
+                       end
+
+                       _btn_data,_btn_p_data=_playback_next_btn,_playback_next_btnp
+               end
+       end
+end
\ No newline at end of file