0 Members and 4 Guests are viewing this topic.
Holy crap that deserves an A+ Imho. Thanks for that. So now I can continue making the game and There is a lot I don't know about. I'll edit this when i reach another problem.. (probably soon knowing me )
:.SNAKEX::.<DATA>:.LOGO:[07C0000000000000000000001FE0000000000000000000001FF0000000780000000000003FF0000000FC0000000001F87FF7CF0000FC0000000787F87FF7DF87E0FC0000001F87F07BF7FF8FF0FC0000003F87E079E7FF8FF8FC0000003FC7C07F07FF9FFCFC1000001FEF807FE7FF8FFCFC7C00000FFF807FF7FF8FFCFDFE1E0007FF807FF7FF8FFEFDFE3FC003FF001FF7FF9FFEFFFC7FC001FE0001F7FF9FFEFFF8FFC001FF0039F7EF9FFEFFE0FFC000FF8079F7EFDFFEFFC1FBC001FFC0FFF7EFDFFEFFE1FFC003FFF0FFF7C30FFEFFE1FFC003FFFC7FE3C00FDFFFF1FF8007E7FC1F0000000EFDFFFDE00FC3FC00000000007CFEFBE01F83F80000000000187EFFE03F83F80000000000003E7FE03F8040000000000000003FC03F00000000000000000000000E]→Pic1::.MENU RAIN:[8080808000000000]→Pic2::.MENU ARROW:[0010181C18100000]→Pic3::.MENU ITEMS:"PLAY"→Str1:"HELP"→Str2:"SCORES"→Str3:"QUIT"→Str4:"SELECT GAME MODE"→Str5:"X MODE"→Str6:"TIMED MODE"→Str7:"CLASSIC MODE"→Str8:"MAIN MENU"→Str9:::.<INITIALIZING>:DiagnosticOff:ClrDraw:ClrDrawr::.STORE MENU TO BACK BUFFER:Fix 1:Fix 5:Text(30,28→M→N,Str1):Text(30,36,Str2):Text(30,44,Str3):Text(30,52,Str4):DrawInv :StorePic :ClrDraw::.INTRO EFFECT:For(A,0,63): Line(0,A,95,63-A): DispGraph:End:For(A,0,95): Line(A,0,95-A,63): DispGraph:End::1→A→Z:::.<MENU LOOP>:Repeat getKey→K=9 and (M=N) or (K=15):: .MOVE CURSOR: .Update the cursor destination and current position, although does not draw cursor: min(max(K=1-(K=4)*8+M,28),52)→M>N-(M<N)+N→N:: .ADD RAIN: .Add a new rain sprite every 5 iterations of the menu loop: DS<(A,5): Pt-Change(rand^96,1,Pic2): End:: .DRAW LOGO AND MENU: .Shift sandstorm: Z+1→Z: .Move rain down: Vertical +: .Backup rain image: conj(L6,L1,708): .Draw logo, sandstorm, menu, and cursor: sub(DM): .Update screen: DispGraph: .Restore rain image: conj(L1,L6,708)::End:::.<MENU HANDLER>:Fix 1:Fix 5:ClrHome::.If user did not quit:If K-15 and (M-52):: .If PLAY: !If M-28: .ADD RAIN::Repeat getKey→X=15 or (X=9): DS<(A,5): Pt-Change(rand^96,1,Pic2): End:: Vertical +: DispGraph:End:Text(30,18,Str5):Text(30,28→O→P,Str6):Text(30,36,Str7):Text(30,44,Str8):Text(30,52,Str9)::Repeat getKey→Y=9 and (O=P) or (K=15): min(max(Y=1-(Y=4)*8+O,28),52)→O>P-(O<P)+P→P:: For(B,168,353): .Menu image - End state: White text on black bg: .AND Rain image - If either is white (0 - menu text and rain droplets), result will be white (0) - End state: White menu items and rain on black bg: .→ Buffer: {B*2+L3}r∙{B*2+L6→C}r→{C}r: End: Pt-On(22,P,Pic3): Pt-Change(22,P,Pic3):<MENU HANDLER>: !if O-28: sub(X: End: !if O-36: sub(TM: End: !if O-44: sub(Cl: !f O-52: End:End: .If HELP: !If M-36: .<code>: End:: .If SCORES: !If M-44: .<code>: End::.If QUIT:Else: Disp Str4:End:Return:::.<SUBROUTINES>:.DRAW MENU:Lbl DM:: .DRAW LOGO AND SANDSTORM: .Loop through the logo, 2 bytes at a time: For(B,0,148): .Logo data - End state: Black logo image on white bg: .XOR 65535 - Inverts logo data - End state: White logo image on black bg: .AND Rain image - If either is white (0), output is white, so logo and rain remain white - End state: White logo image and white rain on black bg: .OR *Must wait for data in parentheses to be parsed* :: .Sandstorm garbage: .AND Logo data - This is the original, black on white logo. For the outside of the logo text, which is white (0), all ANDs will result in staying white (no change, so outside of logo text is unaffected) - The black text of the logo is all black (1), so the end state will be determined by the random data of the sandstorm - End state: Random black/white image on white bg: .OR ^ - The only areas of ^ which can be black are the logo text, so everything outside the logo text will be unaffected, while areas inside (previously white) will take on the random sandstorm image - End state: Sandstorm logo image and white rain on black bg: .→ Buffer: {B*2+Pic1}r→D□65535∙{B*2+L6→C}r┼({B*2+Z}r∙D)→{C}r: End:: .DRAW MENU ITEMS: .Loop through the menu image, 2 bytes at a time: For(B,168,353): .Menu image - End state: White text on black bg: .AND Rain image - If either is white (0 - menu text and rain droplets), result will be white (0) - End state: White menu items and rain on black bg: .→ Buffer: {B*2+L3}r∙{B*2+L6→C}r→{C}r: End:: .DRAW CURSOR: .Draw black cursor, turning any rain that might have been there black: Pt-On(22,N,Pic3): .Invert cursor, turning cursor white: Pt-Change(22,N,Pic3)::Return::LBL X:Return:LBL TM:Return:LBL CL:Return::.<VARIABLES>:.A=Counter to add rain:.B=Temp loop variable for Lbl DM:.C=Temp:.D=Temp:.K=getKey:.M=Menu cursor destination:.N=Menu cursor current display position:.Z=Sandstorm offset:.L1=Rain image backup:.L3=Menu items image:.L6=Rain image
:.SNAKEX::.<DATA>:.LOGO:[07C0000000000000000000001FE0000000000000000000001FF0000000780000000000003FF0000000FC0000000001F87FF7CF0000FC0000000787F87FF7DF87E0FC0000001F87F07BF7FF8FF0FC0000003F87E079E7FF8FF8FC0000003FC7C07F07FF9FFCFC1000001FEF807FE7FF8FFCFC7C00000FFF807FF7FF8FFCFDFE1E0007FF807FF7FF8FFEFDFE3FC003FF001FF7FF9FFEFFFC7FC001FE0001F7FF9FFEFFF8FFC001FF0039F7EF9FFEFFE0FFC000FF8079F7EFDFFEFFC1FBC001FFC0FFF7EFDFFEFFE1FFC003FFF0FFF7C30FFEFFE1FFC003FFFC7FE3C00FDFFFF1FF8007E7FC1F0000000EFDFFFDE00FC3FC00000000007CFEFBE01F83F80000000000187EFFE03F83F80000000000003E7FE03F8040000000000000003FC03F00000000000000000000000E]→Pic1::.MENU RAIN:[8080808000000000]→Pic2::.MENU ARROW:[0010181C18100000]→Pic3::.MENU ITEMS:"PLAY"→Str1:"HELP"→Str2:"SCORES"→Str3:"QUIT"→Str4:"SELECT GAME MODE"→Str5:"X MODE"→Str6:"TIMED MODE"→Str7:"CLASSIC MODE"→Str8:"MAIN MENU"→Str9:::.<INITIALIZING>:DiagnosticOff:ClrDraw:ClrDrawr::.STORE MENU TO BACK BUFFER:Fix 1:Fix 5:Text(30,28→M→N,Str1):Text(30,36,Str2):Text(30,44,Str3):Text(30,52,Str4):DrawInv :StorePic :ClrDraw::.INTRO EFFECT:For(A,0,63): Line(0,A,95,63-A): DispGraph:End:For(A,0,95): Line(A,0,95-A,63): DispGraph:End::1→A→Z:::.<MENU LOOP>:Repeat getKey→K=9 and (M=N) or (K=15):: .MOVE CURSOR: .Update the cursor destination and current position, although does not draw cursor: min(max(K=1-(K=4)*8+M,28),52)→M>N-(M<N)+N→N:: .ADD RAIN: .Add a new rain sprite every 5 iterations of the menu loop: DS<(A,5): Pt-Change(rand^96,1,Pic2): End:: .DRAW LOGO AND MENU: .Shift sandstorm: Z+1→Z: .Move rain down: Vertical +: .Backup rain image: conj(L6,L1,708): .Draw logo, sandstorm, menu, and cursor: sub(DM): .Update screen: DispGraph: .Restore rain image: conj(L1,L6,708)::End:::.<MENU HANDLER>:Fix 1:Fix 5:ClrHome::.If user did not quit:If K-15 and (M-52):: .If PLAY: !If M-28: .ADD RAIN::Repeat getKey→X=15 or (X=9): DS<(A,5): Pt-Change(rand^96,1,Pic2): End:: Vertical +: DispGraph:End:Text(30,18,Str5):Text(30,28→O→P,Str6):Text(30,36,Str7):Text(30,44,Str8):Text(30,52,Str9)::Repeat getKey→Y=9 and (O=P) or (K=15): min(max(Y=1-(Y=4)*8+O,28),52)→O>P-(O<P)+P→P:: For(B,168,353): .Menu image - End state: White text on black bg: .AND Rain image - If either is white (0 - menu text and rain droplets), result will be white (0) - End state: White menu items and rain on black bg: .→ Buffer: {B*2+L3}r∙{B*2+L6→C}r→{C}r: End: Pt-On(22,P,Pic3): Pt-Change(22,P,Pic3):End:.<MENU HANDLER>:!If O-28:sub(X:End:!If O-36:sub(TM:End:!If O-44:sub(CL:End:!If O-52:End:End: .If HELP: !If M-36: .<code>: End:: .If SCORES: !If M-44: .<code>: End::.If QUIT:Else: Disp Str4:End:Return:::.<SUBROUTINES>:.DRAW MENU:Lbl DM:: .DRAW LOGO AND SANDSTORM: .Loop through the logo, 2 bytes at a time: For(B,0,148): .Logo data - End state: Black logo image on white bg: .XOR 65535 - Inverts logo data - End state: White logo image on black bg: .AND Rain image - If either is white (0), output is white, so logo and rain remain white - End state: White logo image and white rain on black bg: .OR *Must wait for data in parentheses to be parsed* :: .Sandstorm garbage: .AND Logo data - This is the original, black on white logo. For the outside of the logo text, which is white (0), all ANDs will result in staying white (no change, so outside of logo text is unaffected) - The black text of the logo is all black (1), so the end state will be determined by the random data of the sandstorm - End state: Random black/white image on white bg: .OR ^ - The only areas of ^ which can be black are the logo text, so everything outside the logo text will be unaffected, while areas inside (previously white) will take on the random sandstorm image - End state: Sandstorm logo image and white rain on black bg: .→ Buffer: {B*2+Pic1}r→D□65535∙{B*2+L6→C}r┼({B*2+Z}r∙D)→{C}r: End:: .DRAW MENU ITEMS: .Loop through the menu image, 2 bytes at a time: For(B,168,353): .Menu image - End state: White text on black bg: .AND Rain image - If either is white (0 - menu text and rain droplets), result will be white (0) - End state: White menu items and rain on black bg: .→ Buffer: {B*2+L3}r∙{B*2+L6→C}r→{C}r: End:: .DRAW CURSOR: .Draw black cursor, turning any rain that might have been there black: Pt-On(22,N,Pic3): .Invert cursor, turning cursor white: Pt-Change(22,N,Pic3)::Return::Lbl X:Return:Lbl TM:Return:Lbl CL:Return::.<VARIABLES>:.A=Counter to add rain:.B=Temp loop variable for Lbl DM:.C=Temp:.D=Temp:.K=getKey:.M=Menu cursor destination:.N=Menu cursor current display position:.Z=Sandstorm offset:.L1=Rain image backup:.L3=Menu items image:.L6=Rain image
:.SNAKEX::.<DATA>:.LOGO:[07C0000000000000000000001FE0000000000000000000001FF0000000780000000000003FF0000000FC0000000001F87FF7CF0000FC0000000787F87FF7DF87E0FC0000001F87F07BF7FF8FF0FC0000003F87E079E7FF8FF8FC0000003FC7C07F07FF9FFCFC1000001FEF807FE7FF8FFCFC7C00000FFF807FF7FF8FFCFDFE1E0007FF807FF7FF8FFEFDFE3FC003FF001FF7FF9FFEFFFC7FC001FE0001F7FF9FFEFFF8FFC001FF0039F7EF9FFEFFE0FFC000FF8079F7EFDFFEFFC1FBC001FFC0FFF7EFDFFEFFE1FFC003FFF0FFF7C30FFEFFE1FFC003FFFC7FE3C00FDFFFF1FF8007E7FC1F0000000EFDFFFDE00FC3FC00000000007CFEFBE01F83F80000000000187EFFE03F83F80000000000003E7FE03F8040000000000000003FC03F00000000000000000000000E]→Pic1::.MENU RAIN:[8080808000000000]→Pic2::.MENU ARROW:[0010181C18100000]→Pic3::.MENU ITEMS:"PLAY"→Str1:"HELP"→Str2:"SCORES"→Str3:"QUIT"→Str4:"SELECT GAME MODE"→Str5:"X MODE"→Str6:"TIMED MODE"→Str7:"CLASSIC MODE"→Str8:"MAIN MENU"→Str9:::.<INITIALIZING>:DiagnosticOff:ClrDraw:ClrDraw{^r}::.STORE MENU TO BACK BUFFER:Fix 1:Fix 5:Text(30,28→M→N,Str1):Text(30,36,Str2):Text(30,44,Str3):Text(30,52,Str4):DrawInv :StorePic :ClrDraw::.INTRO EFFECT:For(A,0,63): Line(0,A,95,63-A): DispGraph:End:For(A,0,95): Line(A,0,95-A,63): DispGraph:End::1→A→Z:::.<MENU LOOP>:Repeat getKey→K=9 and (M=N) or (K=15):: .MOVE CURSOR: .Update the cursor destination and current position, although does not draw cursor: min(max(K=1-(K=4)*8+M,28),52)→M>N-(M<N)+N→N:: .ADD RAIN: .Add a new rain sprite every 5 iterations of the menu loop: DS<(A,5): Pt-Change(rand^96,1,Pic2): End:: .DRAW LOGO AND MENU: .Shift sandstorm: Z+1→Z: .Move rain down: Vertical +: .Backup rain image: conj({L6},{L1},708): .Draw logo, sandstorm, menu, and cursor: sub(DM): .Update screen: DispGraph: .Restore rain image: conj({L1},{L6},708)::End:::.<MENU HANDLER>:Fix 1:Fix 5:ClrHome::.If user did not quit:If K-15 and (M-52):: .If PLAY: !If M-28: .ADD RAIN::Repeat getKey→X=15 or (X=9): DS<(A,5): Pt-Change(rand^96,1,Pic2): End:: Vertical +: DispGraph:End:Text(30,18,Str5):Text(30,28→O→P,Str6):Text(30,36,Str7):Text(30,44,Str8):Text(30,52,Str9)::Repeat getKey→Y=9 and (O=P) or (K=15): min(max(Y=1-(Y=4)*8+O,28),52)→O>P-(O<P)+P→P:: For(B,168,353): .Menu image - End state: White text on black bg: .AND Rain image - If either is white (0 - menu text and rain droplets), result will be white (0) - End state: White menu items and rain on black bg: .→ Buffer: {B*2+{L3}}{^r}{dot}{B*2+{L6}→C}{^r}→{C}{^r}: End: Pt-On(22,P,Pic3): Pt-Change(22,P,Pic3):End:.<MENU HANDLER>:!If O-28:sub(X:End:!If O-36:sub(TM:End:!If O-44:sub(CL:End:!If O-52:End:End: .If HELP: !If M-36: .<code>: End:: .If SCORES: !If M-44: .<code>: End::.If QUIT:Else: Disp Str4:End:Return:::.<SUBROUTINES>:.DRAW MENU:Lbl DM:: .DRAW LOGO AND SANDSTORM: .Loop through the logo, 2 bytes at a time: For(B,0,148): .Logo data - End state: Black logo image on white bg: .XOR 65535 - Inverts logo data - End state: White logo image on black bg: .AND Rain image - If either is white (0), output is white, so logo and rain remain white - End state: White logo image and white rain on black bg: .OR *Must wait for data in parentheses to be parsed* :: .Sandstorm garbage: .AND Logo data - This is the original, black on white logo. For the outside of the logo text, which is white (0), all ANDs will result in staying white (no change, so outside of logo text is unaffected) - The black text of the logo is all black (1), so the end state will be determined by the random data of the sandstorm - End state: Random black/white image on white bg: .OR ^ - The only areas of ^ which can be black are the logo text, so everything outside the logo text will be unaffected, while areas inside (previously white) will take on the random sandstorm image - End state: Sandstorm logo image and white rain on black bg: .→ Buffer: {B*2+Pic1}{^r}→D{box}65535{dot}{B*2+{L6}→C}{^r}{cross}({B*2+Z}{^r}{dot}D)→{C}{^r}: End:: .DRAW MENU ITEMS: .Loop through the menu image, 2 bytes at a time: For(B,168,353): .Menu image - End state: White text on black bg: .AND Rain image - If either is white (0 - menu text and rain droplets), result will be white (0) - End state: White menu items and rain on black bg: .→ Buffer: {B*2+{L3}}{^r}{dot}{B*2+{L6}→C}{^r}→{C}{^r}: End:: .DRAW CURSOR: .Draw black cursor, turning any rain that might have been there black: Pt-On(22,N,Pic3): .Invert cursor, turning cursor white: Pt-Change(22,N,Pic3)::Return::Lbl X:Return:Lbl TM:Return:Lbl CL:Return::.<VARIABLES>:.A=Counter to add rain:.B=Temp loop variable for Lbl DM:.C=Temp:.D=Temp:.K=getKey:.M=Menu cursor destination:.N=Menu cursor current display position:.Z=Sandstorm offset:.L1=Rain image backup:.L3=Menu items image:.L6=Rain image
:.SNAKEX::.<DATA>:.LOGO:[07C0000000000000000000001FE0000000000000000000001FF0000000780000000000003FF0000000FC0000000001F87FF7CF0000FC0000000787F87FF7DF87E0FC0000001F87F07BF7FF8FF0FC0000003F87E079E7FF8FF8FC0000003FC7C07F07FF9FFCFC1000001FEF807FE7FF8FFCFC7C00000FFF807FF7FF8FFCFDFE1E0007FF807FF7FF8FFEFDFE3FC003FF001FF7FF9FFEFFFC7FC001FE0001F7FF9FFEFFF8FFC001FF0039F7EF9FFEFFE0FFC000FF8079F7EFDFFEFFC1FBC001FFC0FFF7EFDFFEFFE1FFC003FFF0FFF7C30FFEFFE1FFC003FFFC7FE3C00FDFFFF1FF8007E7FC1F0000000EFDFFFDE00FC3FC00000000007CFEFBE01F83F80000000000187EFFE03F83F80000000000003E7FE03F8040000000000000003FC03F00000000000000000000000E]→Pic1::.MENU RAIN:[8080808000000000]→Pic2::.MENU ARROW:[0010181C18100000]→Pic3::.MENU ITEMS:"PLAY"→Str1:"HELP"→Str2:"SCORES"→Str3:"QUIT"→Str4:"SELECT GAME MODE"→Str5:"X MODE"→Str6:"TIMED MODE"→Str7:"CLASSIC MODE"→Str8:"MAIN MENU"→Str9:::.<INITIALIZING>:DiagnosticOff:ClrDraw:ClrDraw{^r}::.STORE MENU TO BACK BUFFER:Fix 1:Fix 5:Text(30,28→M→N,Str1):Text(30,36,Str2):Text(30,44,Str3):Text(30,52,Str4):DrawInv :StorePic :ClrDraw::.INTRO EFFECT:For(A,0,63): Line(0,A,95,63-A): DispGraph:End:For(A,0,95): Line(A,0,95-A,63): DispGraph:End::1→A→Z:::.<MENU LOOP>:Repeat getKey→K=9 and (M=N) or (K=15):: .MOVE CURSOR: .Update the cursor destination and current position, although does not draw cursor: min(max(K=1-(K=4)*8+M,28),52)→M>N-(M<N)+N→N:: .ADD RAIN: .Add a new rain sprite every 5 iterations of the menu loop: DS<(A,5): Pt-Change(rand^96,1,Pic2): End:: .DRAW LOGO AND MENU: .Shift sandstorm: Z+1→Z: .Move rain down: Vertical +: .Backup rain image: conj({L6},{L1},708): .Draw logo, sandstorm, menu, and cursor: sub(DM): .Update screen: DispGraph: .Restore rain image: conj({L1},{L6},708)::End:::.<MENU HANDLER>:Fix 1:Fix 5:ClrHome::.If user did not quit:If K-15 and (M-52):: .If PLAY: !If M-28: .ADD RAIN::Repeat getKey→X=15 or (X=9): DS<(A,5): Pt-Change(rand^96,1,Pic2): End:: Vertical +: DispGraph:End:Text(30,18,Str5):Text(30,28→O→P,Str6):Text(30,36,Str7):Text(30,44,Str8):Text(30,52,Str9)::Repeat getKey→Y=9 and (O=P) or (K=15): min(max(Y=1-(Y=4)*8+O,28),52)→O>P-(O<P)+P→P::sub(DSM): .Update screen: DispGraph: .Restore rain image: conj({L1},{L6},708):: Pt-On(22,P,Pic3): Pt-Change(22,P,Pic3):DispGraph:End:.<MENU HANDLER>:!If O-28:sub(X:End:!If O-36:sub(TM:End:!If O-44:sub(CL:End:!If O-52:End:End: .If HELP: !If M-36: .<code>: End:: .If SCORES: !If M-44: .<code>: End::.If QUIT:Else: Disp Str4:End:Return:::.<SUBROUTINES>:.DRAW MENU:Lbl DM:: .DRAW LOGO AND SANDSTORM: .Loop through the logo, 2 bytes at a time: For(B,0,148): .Logo data - End state: Black logo image on white bg: .XOR 65535 - Inverts logo data - End state: White logo image on black bg: .AND Rain image - If either is white (0), output is white, so logo and rain remain white - End state: White logo image and white rain on black bg: .OR *Must wait for data in parentheses to be parsed* :: .Sandstorm garbage: .AND Logo data - This is the original, black on white logo. For the outside of the logo text, which is white (0), all ANDs will result in staying white (no change, so outside of logo text is unaffected) - The black text of the logo is all black (1), so the end state will be determined by the random data of the sandstorm - End state: Random black/white image on white bg: .OR ^ - The only areas of ^ which can be black are the logo text, so everything outside the logo text will be unaffected, while areas inside (previously white) will take on the random sandstorm image - End state: Sandstorm logo image and white rain on black bg: .→ Buffer: {B*2+Pic1}{^r}→D{box}65535{dot}{B*2+{L6}→C}{^r}{cross}({B*2+Z}{^r}{dot}D)→{C}{^r}: End:: .DRAW MENU ITEMS: .Loop through the menu image, 2 bytes at a time: For(B,168,353): .Menu image - End state: White text on black bg: .AND Rain image - If either is white (0 - menu text and rain droplets), result will be white (0) - End state: White menu items and rain on black bg: .→ Buffer: {B*2+{L3}}{^r}{dot}{B*2+{L6}→C}{^r}→{C}{^r}: End:: .DRAW CURSOR: .Draw black cursor, turning any rain that might have been there black: Pt-On(22,N,Pic3): .Invert cursor, turning cursor white: Pt-Change(22,N,Pic3):Return::Lbl DSM:.DRAW MENU ITEMS: .Loop through the menu image, 2 bytes at a time: For(B,168,353): .Menu image - End state: White text on black bg: .AND Rain image - If either is white (0 - menu text and rain droplets), result will be white (0) - End state: White menu items and rain on black bg: .→ Buffer: {B*2+{L3}}{^r}{dot}{B*2+{L6}→E}{^r}→{E}{^r}: End:: .DRAW CURSOR: .Draw black cursor, turning any rain that might have been there black: Pt-On(22,P,Pic3): .Invert cursor, turning cursor white: Pt-Change(22,P,Pic3):Return::Lbl X:Return:Lbl TM:Return:Lbl CL:Return::.<VARIABLES>:.A=Counter to add rain:.B=Temp loop variable for Lbl DM:.C=Temp:.D=Temp:.E=Temp:.K=getKey:.M=Menu cursor destination:.N=Menu cursor current display position:.Z=Sandstorm offset:.L1=Rain image backup:.L3=Menu items image:.L6=Rain image
{B*2+{L3}}{^r}{dot}{B*2+{L6}→C}{^r}→{C}{^r}