]> git.bts.cx Git - p8-playback.git/blob - playback-min.lua
Added minimised version for in-game playback
[p8-playback.git] / playback-min.lua
1 function playback(data,idx)
2         if(idx==nil)idx=1
3         data=split(data)
4
5         local _flip,_btn,_btnp=flip,btn,btnp
6         local _playback_frame,_btn_data,_btn_p_data=0,0,0
7
8         btn=function(b,pl)
9                 if(b==nil and pl==nil)return _btn_data
10                 if(pl==nil)pl=0
11                 return (_btn_data&(1<<(b+pl*6)))>0
12         end
13
14         btnp=function(b,pl)
15                 if(b==nil and pl==nil)return _btn_p_data
16                 if(pl==nil)pl=0
17                 return (_btn_p_data&(1<<(b+pl*6)))>0
18         end
19
20         flip=function()
21                 _playback_next_frame,_playback_next_btn,_playback_next_btnp=unpack(data,idx,idx+2)
22
23                 _flip()
24                 _playback_frame+=1
25
26                 if _playback_frame>=_playback_next_frame then
27                         idx+=3
28                         if idx>#data then
29                                 btn,btnp,flip=_btn,_btnp,_flip
30                         end
31
32                         _btn_data,_btn_p_data=_playback_next_btn,_playback_next_btnp
33                 end
34         end
35 end