Files
TempleOS-Rijn/TempleOS/Apps/AfterEgypt/Battle.CPP
T
2018-09-08 21:45:37 +02:00

136 lines
3.2 KiB
C++

$BG,14$
$SP,"<1>",1$
$SP,"<2>",2$
$SP,"<3>",3$
$SP,"<4>",4$
$BG$
F64 t0,xx,t_last;
Bool held_up;
#define HACK_PERIOD 0.25
#define SPACING 45
U0 DrawBattle(CTask *task,CDC *dc)
{
I64 cx=task->win_pixel_width>>1,
cy=task->win_pixel_height>>1;
U8 *inter;
F64 tt;
if (held_up)
tt=0;
else {
tt=(tT-t0)/2;
tt*=tt;
tt*=tt;
if (tt>1.0) tt=1.0;
}
inter=SpriteInterpolate($IB,"<3>",3$,$IB,"<4>",4$,tt);
SpritePlot3(dc,cx,cy+SPACING,0,inter);
Free(inter);
if (t_last) {
if (tt<0.5)
xx-=50.0*(tT-t_last);
else
xx+=50.0*(tT-t_last);
}
tt=Saw(tT+0.0*HACK_PERIOD,HACK_PERIOD);
tt*=2; if (tt>1.0) tt=2.0-tt;
inter=SpriteInterpolate($IB,"<1>",1$,$IB,"<2>",2$,tt);
SpritePlot3(dc,xx+cx+SPACING,cy-SPACING,0,inter);
Free(inter);
tt=Saw(tT+0.333*HACK_PERIOD,HACK_PERIOD);
tt*=2; if (tt>1.0) tt=2.0-tt;
inter=SpriteInterpolate($IB,"<1>",1$,$IB,"<2>",2$,tt);
SpritePlot3(dc,xx+cx+2*SPACING,cy-SPACING,0,inter);
Free(inter);
tt=Saw(tT+0.666*HACK_PERIOD,HACK_PERIOD);
tt*=2; if (tt>1.0) tt=2.0-tt;
inter=SpriteInterpolate($IB,"<1>",1$,$IB,"<2>",2$,tt);
SpritePlot3(dc,xx+cx+SPACING,cy-2*SPACING,0,inter);
Free(inter);
t_last=tT;
}
U0 Battle()
{
I64 msg_code,ch,sc;
SettingsPush(Fs,TSF_SAME_SONG); //See $LK,"SettingsPush","MN:SettingsPush"$
try {
DocClear;
"$$BG,YELLOW$$";
PutBibleVerse("Exodus,17:11",8);
"\n$$BK,1$$Hold <SPACE BAR>$$BK,0$$\n";
held_up=FALSE;
t0=tT;
t_last=0;
xx=0;
Fs->draw_it=&DrawBattle;
do {
msg_code=GetMsg(&ch,&sc,1<<MSG_KEY_DOWN|1<<MSG_KEY_UP);
if (ch==CH_SPACE) {
if (msg_code==MSG_KEY_DOWN)
held_up=TRUE;
else if (msg_code==MSG_KEY_UP) {
held_up=FALSE;
t0=tT;
}
}
} while (msg_code!=MSG_KEY_DOWN || ch!=CH_SHIFT_ESC && ch!=CH_ESC);
} catch
CatchAll;
"$$BG$$\n";
SettingsPop(Fs,TSF_SAME_SONG);
}
çýÿÿÿÿÿÿÿ ÿÿÿÿ üÿÿÿúÿÿÿðÿÿÿÿÿÿÿþÿÿÿüÿÿÿïÿÿÿêÿÿÿãÿÿÿðÿÿÿéÿÿÿèÿÿÿÙÿÿÿûÿÿÿîÿÿÿóÿÿÿèÿÿÿòÿÿÿçÿÿÿíÿÿÿÚÿÿÿÈÿÿÿ&øÿÿÿçýÿÿÿÿÿÿÿ ÿÿÿÿ üÿÿÿúÿÿÿðÿÿÿÿÿÿÿþÿÿÿüÿÿÿïÿÿÿêÿÿÿãÿÿÿðÿÿÿ ûÿÿÿ
ûÿÿÿúÿÿÿûÿÿÿîÿÿÿóÿÿÿýÿÿÿóÿÿÿüÿÿÿïÿÿÿ÷ÿÿÿÝÿÿÿ µ-#3!3!002ÿÿÿÿ2ÿÿÿÿ.äÿÿÿ1üÿÿÿ9åÿÿÿ3Þÿÿÿ1Õÿÿÿ8çÿÿÿ:ôÿÿÿ3üÿÿÿ559"-äÿÿÿ(òÿÿÿ(òÿÿÿ ãÿÿÿ9ôÿÿÿ,ôÿÿÿ,ëÿÿÿ6ìÿÿÿ6ìÿÿÿ:øÿÿÿ:øÿÿÿ77--)õÿÿÿ)õÿÿÿ-ìÿÿÿ*öÿÿÿ6÷ÿÿÿ3ïÿÿÿ.ïÿÿÿ,úÿÿÿ6úÿÿÿ0þÿÿÿ4þÿÿÿ/4ãÿÿÿãÿÿÿãÿÿÿ)Òÿÿÿµ'#. -*)20'àÿÿÿ1üÿÿÿ4ãÿÿÿ.Þÿÿÿ+Õÿÿÿ6åÿÿÿ5öÿÿÿ3üÿÿÿ99B(âÿÿÿ%ðÿÿÿ%ôÿÿÿöÿÿÿ3ôÿÿÿ'ùÿÿÿ+æÿÿÿ2äÿÿÿ2æÿÿÿ6ôÿÿÿ6õÿÿÿ21''%õÿÿÿ)õÿÿÿ(æÿÿÿ*öÿÿÿ3øÿÿÿ3ïÿÿÿ)îÿÿÿ&ûÿÿÿ3øÿÿÿ&ýÿÿÿ4þÿÿÿ'3÷ÿÿÿ÷ÿÿÿ÷ÿÿÿýÿÿÿãÿÿÿ