.AFLAPPY
L2+00->°BirdY
L2+10->°BirdV
L2+02->°GreyMode
.the second argument to fnInt()
L2+04->°GreyTimer
L2+06->°GreyTimerMax
L2+12->°Key4
[]->°BirdSprites
[1C72F6301BFC7C00].dark grey and black
[0000040C03000000].light grey and black
[1C7EFEFFFFFF7C00].mask (white, both grey and black)
.-------------
Lbl Code
LnReg
."frees" L2
Fix 5
ExprOn
FnOff
1->GreyMode
{+°Delays}->GreyTimerMax->GreyTimer
0->BirdV->X
Calibrate()
FnOff
FillEdge()
16*256->BirdY
Copy(°BG1,L6)
Copy(°BG2,L3)
TurnGreyOn()
While 1
X++Select(,Select(,-96??->X) and 7??FillEdge()) and 31
!If
rand and 15+1Asm(45).->b
L1-1Asm(EB).->de
L1+64
.->hl
Asm(AF).->a
.PipeBody
Asm(F5237EE681F67677EB237EE681F66E77EBF13C10EB)
Asm(0604)
.PipeHead (with b=4)
Asm(2336EFEB2336DFEB3C10F5)
.PipeTop
Asm(2336FFEB2336FFEB)
.Add24
Asm(011800)
Asm(09EB09EB)
.PipeTopAgain
Asm(2336FFEB2336FFEB)
Asm(C60E).add a,14
.PipeHeadAgain
Asm(0604)
Asm(2336EFEB2336DFEB3C10F5)
Asm(F5)
.PipeBodyAgain (with push af first)
Asm(237EE681F67677EB237EE681F66E77EBF13CF5EE3820E9)
Asm(F1)
End
L1+63-5Asm(EB)L6+767-60Shift()
L1+127-5Asm(EB)L3+767-60Shift()
Key4 xor (getKey(4)->Key4) and Key4?~220,BirdV+(<<256*2*2*2*2)
.->BirdV<<256??256,BirdV
.maybe use max() here
->BirdV*2+BirdY->BirdY
.DispGraph^^r^^r
EndIf getKey(15)
Lbl RET
LnReg
ClrHome
Return
Lbl FillEdge
L1-1->r1
L1+64-1->r2
X/8Select(,+°BG1-12->r3)+°BG2-12->r4
For(64)
{r3+12->r3}->{r1+1->r1}
{r4+12->r4}->{r2+1->r2}
End
Return
Lbl Shift
Asm(0640C5EBCB16EB1B060CCB162B10FBC110F0)
Return
Lbl EraseBird
BirdY/256+(*2)*2*2Select(,+L6+1-12->A)+L3+1-12->B
L1+128->C
For(7)
{C++}->{A+12->A}
{C++}->{B+12->B}
End
Return
Lbl DrawBird
BirdY/256+(*2)*2*2Select(,+L6+1-12->A)+L3+1-12->B
L1+128->C
For(7)
{A+12->A}->{C++}
{B+12->B}->{C++}
End
Pt-Change(8,BirdY/256,°BirdSprites+16)^^r
.now the area used by the bird is white
Pt-On(8,BirdY/256,°BirdSprites)
Pt-On(8,BirdY/256,°BirdSprites+8)^^r
Return
Lbl TurnGreyOn
fnInt(GreyOn,GreyMode*2)
Return
Lbl GreyOn
Asm(F5C5D5E5)
.push everything
.!If GreyTimer+1^GreyTimerMax->GreyTimer
!If GreyTimer--
GreyTimerMax->GreyTimer
sub(DrawBird)
DispGraph^^r^^r
sub(EraseBird)
End
Asm(E1D1C1F1)
.pop everything
Return
[]->°Nums
[FFE7D3D3D3C3E7FF]
[FFE7C7C7E7E7E7FF]
[FFE7D3F3E7CFC3FF]
[FFC3B9E3E3B9C3FF]
[0A040302]->°Delays
Lbl Calibrate
Fill(L6,6,255)
Fill(+1,6,0)
L3-1
For(2)
Fill(+1,3,255)
Fill(+1,3,0)
End
Copy(L6,+12,768-12)
Copy(L3,+12,768-12)
FnOff
Pt-Off(0,,GreyMode*8+°Nums)
TurnGreyOn()
While 1
If getKey(3)-getKey(2)
{+GreyMode^4->GreyMode+°Delays}->GreyTimerMax
->GreyTimer
WLP()
FnOff
Pt-Off(0,,GreyMode*8+°Nums)
TurnGreyOn()
End
EndIf getKey(54)
Return
Lbl WLP
While 1
Pause 20
End!If getKey(0)
Return
[]->°BG1
.take the hex code from the previous spoiler, I removed it because it caused a scroll bar to appear
[]->°BG2
.same here