Home » Archimedes archive » Acorn User » AU 1997-11 A.adf » Osmosis » !Osmosis/!RunImage
!Osmosis/!RunImage
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
Tape/disk: | Home » Archimedes archive » Acorn User » AU 1997-11 A.adf » Osmosis |
Filename: | !Osmosis/!RunImage |
Read OK: | ✔ |
File size: | AF9F bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
10REM !Osmosis - A Desktop Patience Game by John Pettigrew. 20version$="0.99":game%=1:osmodim%=FALSE:pyrdim%=FALSE:played%=FALSE:iconnumber%=0:pyrgames%=0:score%=0 30 40REM Initialise the application with the WIMP, install the 50REM iconbar icon and load template file. 60PROCwimp_init 70 80REM Open startup banner, set up menus and build cards. 81DIM p% 256 90SYS"WimpExt_OpenWindowTop",banner% 100SYS"Wimp_Poll",,p% 110PROCmakemenu 120PROCbuildcards 121!p%=banner% 140SYS"Wimp_CloseWindow",,p% 150 160REM Now perform a wimp poll loop : 170REPEAT 180 PROCwimp_poll 190UNTIL quit%=TRUE 200SYS "XWimpExt_CloseDown",task% 210SYS "XWimp_CloseDown" 220END 230 240DEFPROCwimp_init 250REM This procedure will register the programme with the WIMP 260REM and set up the icon bar icon etc. 270LOCAL window%,template%,indir% 280SYS "OS_File",17,"<Osmosis$Dir>.Sprites" TO type%,,,,length% 290IF type%<>1 OR length%<>40324 THEN ERROR(0,"Incorrect or missing Sprites file.") 300DIM q% 256,sprite% 285000,window% 8,template% 1024,indir% 256 310!sprite%=285000 320SYS "OS_SpriteOp",&10A,sprite%,"<Osmosis$Dir>.Sprites" 330SYS "Wimp_Initialise",310,&4B534154,0,"Osmosis" TO ,task% 340SYS "WimpExt_Initialise",16,task%,%1111010011,sprite% 350SYS "WimpExt_IconBarSprite",,,-1,"!osmosis",,3 360window%!4=%101:window%!8=%101 370SYS "WimpExt_LoadTemplates",window%,template%,indir%,indir%+256,-1,"<Osmosis$Dir>.Templates",sprite% 380info%=!window%:main%=window%!4:banner%=window%!8 390quit%=0:menu%=0 400ENDPROC 410 420DEFPROCmakemenu 430REM Creates the menus. 440DIM imenu% 96,gmenu% 152 450$imenu%="Osmosis" 460imenu%!12=&70207 470imenu%!16=16*8:REM This sets the width of the menu. 480imenu%!20=44 490imenu%!24=0 500imenu%!28=0 510imenu%!32=info% 520imenu%!36=&7000021 530$(imenu%+40)="Info" 540imenu%!52=2 550imenu%!56=0 560imenu%!60=&7000021 570$(imenu%+64)="Osmosis" 580imenu%!76=128 590imenu%!80=0 600imenu%!84=&7000021 610$(imenu%+88)="Quit" 620$gmenu%="Game Menu" 630gmenu%!12=&70207 640gmenu%!16=16*10:REM This sets the width of the menu. 650gmenu%!20=44 660gmenu%!24=0 670gmenu%!28=0 680gmenu%!32=0 690gmenu%!36=&7000021 700$(gmenu%+40)="Undo" 710gmenu%!52=2 720gmenu%!56=0 730gmenu%!60=&7000021 740$(gmenu%+64)="Resign" 750gmenu%!76=0 760gmenu%!80=0 770gmenu%!84=&7000021 780$(gmenu%+88)="Osmosis" 790gmenu%!100=2 800gmenu%!104=0 810gmenu%!108=&7000021 820$(gmenu%+112)="Pyramid" 830gmenu%!124=128 840gmenu%!128=0 850gmenu%!132=&7000021 860$(gmenu%+136)="Quit" 870SYS"WimpExt_ShadeEntry",,gmenu%,0,1 880ENDPROC 890 900DEFPROCbuildcards 910LOCAL tempsprite$,tempsprite2$,I,tempval%,tempsuit$ 920REM This procedure (and its subprocedures) makes the full 52 card 930REM sprites out of the elements in the Sprites file. 940REM First, copy the halfcard sprite into 4 temporary sprites and 950REM make the the template suit halfcards. 960SYS"OS_SpriteOp",256+27,sprite%,"halfcard","hearts" 970SYS"OS_SpriteOp",256+27,sprite%,"halfcard","spades" 980SYS"OS_SpriteOp",256+27,sprite%,"halfcard","clubs" 990SYS"OS_SpriteOp",256+27,sprite%,"halfcard","diamonds" 1000PROCdrawsprite("hearts","sm_heart",18,46) 1010PROCdrawsprite("spades","sm_spade",18,46) 1020PROCdrawsprite("clubs","sm_club",18,46) 1030PROCdrawsprite("diamonds","sm_diam",18,46) 1040REM Now make the number cards (whole, not half). 1050FOR I=1 TO 52 1060 IF I<14 THEN PROCaddsprite("hearts",STR$I,"red_"+STR$I,18,70) 1070 IF I>13 AND I<27 THEN PROCaddsprite("diamonds",STR$I,"red_"+STR$(I-13),18,70) 1080 IF I>26 AND I<40 THEN PROCaddsprite("clubs",STR$I,"black_"+STR$(I-26),18,70) 1090 IF I>39 THEN PROCaddsprite("spades",STR$I,"black_"+STR$(I-39),18,70) 1100 SYS"OS_SpriteOp",256+27,sprite%,STR$I,tempsprite$ 1110 SYS"OS_SpriteOp",256+33,sprite%,tempsprite$ 1120 SYS"OS_SpriteOp",256+47,sprite%,tempsprite$ 1130 SYS"OS_SpriteOp",256+35,sprite%,STR$I,tempsprite$,1 1140NEXT I 1150REM Now to finish off the cards by adding the decoration. 1160FOR I=1 TO 52 1170 tempval%=FNcardval(I) 1180 IF I<14 THEN 1190 IF tempval%<11 THEN 1200 tempsuit$="heart":tempsprite$="m_heart" 1210 SYS"OS_SpriteOp",256+27,sprite%,"m_heart",tempsprite2$ 1220 SYS"OS_SpriteOp",256+33,sprite%,tempsprite2$ 1230 ELSE 1240 CASE tempval% OF 1250 WHEN 11: tempsprite$="jack_hearts" 1260 WHEN 12: tempsprite$="queen_hearts" 1270 WHEN 13: tempsprite$="king_hearts" 1280 ENDCASE 1290 SYS"OS_SpriteOp",256+27,sprite%,tempsprite$,tempsprite2$ 1300 SYS"OS_SpriteOp",256+33,sprite%,tempsprite2$ 1310 SYS"OS_SpriteOp",256+47,sprite%,tempsprite2$ 1320 SYS"OS_SpriteOp",256+35,sprite%,tempsprite$,tempsprite2$,1 1330 ENDIF 1340 ENDIF 1350 IF I>13 AND I<27 THEN 1360 IF tempval%<11 THEN 1370 tempsuit$="diam":tempsprite$="m_diam" 1380 SYS"OS_SpriteOp",256+27,sprite%,"m_diam",tempsprite2$ 1390 SYS"OS_SpriteOp",256+33,sprite%,tempsprite2$ 1400 ELSE 1410 CASE tempval% OF 1420 WHEN 11: tempsprite$="jack_diam" 1430 WHEN 12: tempsprite$="queen_diam" 1440 WHEN 13: tempsprite$="king_diam" 1450 ENDCASE 1460 SYS"OS_SpriteOp",256+27,sprite%,tempsprite$,tempsprite2$ 1470 SYS"OS_SpriteOp",256+33,sprite%,tempsprite2$ 1480 SYS"OS_SpriteOp",256+47,sprite%,tempsprite2$ 1490 SYS"OS_SpriteOp",256+35,sprite%,tempsprite$,tempsprite2$,1 1500 ENDIF 1510 ENDIF 1520 IF I>26 AND I<40 THEN 1530 IF tempval%<11 THEN 1540 tempsuit$="club":tempsprite$="m_club" 1550 SYS"OS_SpriteOp",256+27,sprite%,"m_club",tempsprite2$ 1560 SYS"OS_SpriteOp",256+33,sprite%,tempsprite2$ 1570 ELSE 1580 CASE tempval% OF 1590 WHEN 11: tempsprite$="jack_clubs" 1600 WHEN 12: tempsprite$="queen_clubs" 1610 WHEN 13: tempsprite$="king_clubs" 1620 ENDCASE 1630 SYS"OS_SpriteOp",256+27,sprite%,tempsprite$,tempsprite2$ 1640 SYS"OS_SpriteOp",256+33,sprite%,tempsprite2$ 1650 SYS"OS_SpriteOp",256+47,sprite%,tempsprite2$ 1660 SYS"OS_SpriteOp",256+35,sprite%,tempsprite$,tempsprite2$,1 1670 ENDIF 1680 ENDIF 1690 IF I>39 THEN 1700 IF tempval%<11 THEN 1710 tempsuit$="spade":tempsprite$="m_spade" 1720 SYS"OS_SpriteOp",256+27,sprite%,"m_spade",tempsprite2$ 1730 SYS"OS_SpriteOp",256+33,sprite%,tempsprite2$ 1740 ELSE 1750 CASE tempval% OF 1760 WHEN 11: tempsprite$="jack_spades" 1770 WHEN 12: tempsprite$="queen_spades" 1780 WHEN 13: tempsprite$="king_spades" 1790 ENDCASE 1800 SYS"OS_SpriteOp",256+27,sprite%,tempsprite$,tempsprite2$ 1810 SYS"OS_SpriteOp",256+33,sprite%,tempsprite2$ 1820 SYS"OS_SpriteOp",256+47,sprite%,tempsprite2$ 1830 SYS"OS_SpriteOp",256+35,sprite%,tempsprite$,tempsprite2$,1 1840 ENDIF 1850 ENDIF 1860 CASE tempval% OF 1870 WHEN 1: 1880 PROCdrawsprite(STR$I,"lg_"+tempsuit$,28,55) 1890 WHEN 2: 1900 PROCdrawsprite(STR$I,tempsprite$,68,136) 1910 PROCdrawsprite(STR$I,tempsprite2$,68,52) 1920 WHEN 3: 1930 PROCdrawsprite(STR$I,tempsprite$,68,146) 1940 PROCdrawsprite(STR$I,tempsprite$,68,94) 1950 PROCdrawsprite(STR$I,tempsprite2$,68,42) 1960 WHEN 4: 1970 PROCdrawsprite(STR$I,tempsprite$,43,136) 1980 PROCdrawsprite(STR$I,tempsprite$,93,136) 1990 PROCdrawsprite(STR$I,tempsprite2$,43,52) 2000 PROCdrawsprite(STR$I,tempsprite2$,93,52) 2010 WHEN 5: 2020 PROCdrawsprite(STR$I,tempsprite$,68,94) 2030 PROCdrawsprite(STR$I,tempsprite$,43,136) 2040 PROCdrawsprite(STR$I,tempsprite$,93,136) 2050 PROCdrawsprite(STR$I,tempsprite2$,43,52) 2060 PROCdrawsprite(STR$I,tempsprite2$,93,52) 2070 WHEN 6: 2080 PROCdrawsprite(STR$I,tempsprite$,43,136) 2090 PROCdrawsprite(STR$I,tempsprite$,93,136) 2100 PROCdrawsprite(STR$I,tempsprite$,43,94) 2110 PROCdrawsprite(STR$I,tempsprite$,93,94) 2120 PROCdrawsprite(STR$I,tempsprite2$,43,52) 2130 PROCdrawsprite(STR$I,tempsprite2$,93,52) 2140 WHEN 7: 2150 PROCdrawsprite(STR$I,tempsprite$,43,136) 2160 PROCdrawsprite(STR$I,tempsprite$,93,136) 2170 PROCdrawsprite(STR$I,tempsprite$,68,116) 2180 PROCdrawsprite(STR$I,tempsprite$,43,94) 2190 PROCdrawsprite(STR$I,tempsprite$,93,94) 2200 PROCdrawsprite(STR$I,tempsprite2$,43,52) 2210 PROCdrawsprite(STR$I,tempsprite2$,93,52) 2220 WHEN 8: 2230 PROCdrawsprite(STR$I,tempsprite$,43,148) 2240 PROCdrawsprite(STR$I,tempsprite$,93,148) 2250 PROCdrawsprite(STR$I,tempsprite$,43,112) 2260 PROCdrawsprite(STR$I,tempsprite$,93,112) 2270 PROCdrawsprite(STR$I,tempsprite2$,43,76) 2280 PROCdrawsprite(STR$I,tempsprite2$,93,76) 2290 PROCdrawsprite(STR$I,tempsprite2$,43,40) 2300 PROCdrawsprite(STR$I,tempsprite2$,93,40) 2310 WHEN 9: 2320 PROCdrawsprite(STR$I,tempsprite$,43,148) 2330 PROCdrawsprite(STR$I,tempsprite$,93,148) 2340 PROCdrawsprite(STR$I,tempsprite$,43,112) 2350 PROCdrawsprite(STR$I,tempsprite$,93,112) 2360 PROCdrawsprite(STR$I,tempsprite$,68,94) 2370 PROCdrawsprite(STR$I,tempsprite2$,43,76) 2380 PROCdrawsprite(STR$I,tempsprite2$,93,76) 2390 PROCdrawsprite(STR$I,tempsprite2$,43,40) 2400 PROCdrawsprite(STR$I,tempsprite2$,93,40) 2410 WHEN 10: 2420 PROCdrawsprite(STR$I,tempsprite$,43,148) 2430 PROCdrawsprite(STR$I,tempsprite$,93,148) 2440 PROCdrawsprite(STR$I,tempsprite$,68,130) 2450 PROCdrawsprite(STR$I,tempsprite$,43,112) 2460 PROCdrawsprite(STR$I,tempsprite$,93,112) 2470 PROCdrawsprite(STR$I,tempsprite2$,43,76) 2480 PROCdrawsprite(STR$I,tempsprite2$,93,76) 2490 PROCdrawsprite(STR$I,tempsprite2$,68,58) 2500 PROCdrawsprite(STR$I,tempsprite2$,43,40) 2510 PROCdrawsprite(STR$I,tempsprite2$,93,40) 2520 WHEN 11,12,13: 2530 PROCdrawsprite(STR$I,tempsprite$,38,36) 2540 ENDCASE 2550 IF tempval%<11 THEN SYS"OS_SpriteOp",256+25,sprite%,tempsprite2$ 2560NEXT I 2570ENDPROC 2580 2590DEFPROCdrawsprite(template$,add$,xpos%,ypos%) 2600REM This procedure will add the sprite add$ to the sprite 2610REM spritename$ at the position xpos%,ypos%. 2620SYS"OS_SpriteOp",256+60,sprite%,template$,0 2630SYS"OS_SpriteOp",256+34,sprite%,add$,xpos%,ypos%,8 2640SYS"OS_SpriteOp",256+60,0 2650ENDPROC 2660 2670DEFPROCaddsprite(template$,temp$,add$,xpos%,ypos%) 2680REM This procedure will add the sprite add$ to the sprite 2690REM spritename$ at the position xpos%,ypos%, creating a new sprite 2700REM called temp$ in the process. 2710SYS"OS_SpriteOp",256+27,sprite%,template$,temp$ 2720SYS"OS_SpriteOp",256+60,sprite%,temp$,0 2730SYS"OS_SpriteOp",256+34,sprite%,add$,xpos%,ypos%,0 2740SYS"OS_SpriteOp",256+60,0 2750ENDPROC 2760 2770DEFPROCwimp_poll 2780REM This is the heart of the programme. Polls the WIMP and 2790REM performs actions dependent on the events that occur. 2800LOCAL outline%,A%,B%,X%,Y% 2810WHILE NOT quit% 2820 DIM outline% 20 2830 !outline%=main% 2840 SYS "WimpExt_PrePoll" 2850 SYS "Wimp_Poll",%11100000110001,q% TO reason% 2860 SYS "WimpExt_Action",task%,q%,reason% TO reason% 2870 CASE reason% OF 2880 WHEN 1 : SYS "WimpExt_AutoRedraw",,q% 2890 WHEN 2 : SYS "WimpExt_OpenLinked",,q% 2900 WHEN 3 : SYS "WimpExt_CloseLinked",,q% 2910 WHEN 6 : 2920 IF q%!12=-2 THEN 2930 IF q%!8=2 THEN 2940 SYS "WimpExt_CreateMenu",,imenu%,!q%-64,250 2950 menu%=imenu% 2960 ENDIF 2970 IF q%!8=4 THEN PROCnewgame 2980 ENDIF 2990 IF q%!12=main% AND q%!8=2 THEN 3000 SYS "WimpExt_CreateMenu",,gmenu%,!q%,q%!4 3010 menu%=gmenu% 3020 ENDIF 3030 IF q%!12=main% AND (q%!8=4 OR q%!8=1) THEN 3040 CASE game% OF 3050 WHEN 1 : PROCosmosis_mouseclick(q%!16) 3060 WHEN 2 : IF deal%=4 THEN PROCnewgame ELSE PROCpyramid_mouseclick(q%!16) 3070 ENDCASE 3080 ENDIF 3090 WHEN 9 : 3100 CASE menu% OF 3110 WHEN imenu%: 3120 CASE !q% OF 3130 WHEN 0 : SYS"WimpExt_OpenDialogue",,,info%,!q%-64,184 3140 WHEN 1 : game%=1:PROCnewgame 3150 WHEN 2 : quit%=TRUE 3160 ENDCASE 3170 WHEN gmenu%: 3180 CASE !q% OF 3190 WHEN 0 : 3200 CASE game% OF 3210 WHEN 1 : PROCosmosis_undo 3220 WHEN 2 : PROCpyramid_undo 3230 ENDCASE 3240 WHEN 1 : 3250 CASE game% OF 3260 WHEN 1 : PROCnewgame 3270 WHEN 2 : 3280 deal%=4 3290 PROCpyramid_score 3300 PROCnewgame 3310 ENDCASE 3320 WHEN 2 : 3330 game%=1 3340 PROCnewgame 3350 WHEN 3 : 3360 game%=2 3370 PROCnewgame 3380 WHEN 4 : quit%=TRUE 3390 ENDCASE 3400 ENDCASE 3410 WHEN 17,18 : 3420 CASE q%!16 OF 3430 WHEN 0 : quit%=TRUE 3440 ENDCASE 3450 ENDCASE 3460ENDWHILE 3470ENDPROC 3480 3490DEFPROCnewgame 3500REM Calls the relevant game routine. 3510SYS"Wimp_ForceRedraw",main%,0,-1100,1480,0 3520CASE game% OF 3530 WHEN 1 : PROCosmosis 3540 WHEN 2 : PROCpyramid 3550ENDCASE 3560played%=TRUE 3570ENDPROC 3580 3590DEFPROCcleanupwindow(window%) 3600REM Deletes all icons from the specified window. 3610LOCAL delete%,I 3620IF iconnumber%>1 THEN 3630 DIM delete% 8 3640 !delete%=window% 3650 FOR I=1 TO iconnumber% 3660 delete%!4=I 3670 SYS"Wimp_DeleteIcon",,delete% 3680 NEXT I 3690ENDIF 3700ENDPROC 3710 3720DEFPROCshuffle 3730REM This procedure will set up the pack of 52 cards and ensure a 3740REM random distribution. 3750PROCdim 3760LOCAL shuffle1%,shuffle2%,I,seed% 3770seed%=RND(-TIME) 3780FOR I=1 TO 52 3790 pack%(I)=I 3800NEXT I 3810FOR I=1 TO 100 3820 REPEAT 3830 shuffle1%=RND(52) 3840 shuffle2%=RND(52) 3850 UNTIL shuffle1%<>shuffle2% 3860 SWAP pack%(shuffle1%),pack%(shuffle2%) 3870NEXT I 3880ENDPROC 3890 3900DEFPROCdim 3910REM Sets up game arrays. 3920IF played%=FALSE THEN DIM pack%(52) 3930CASE game% OF 3940 WHEN 1 : 3950 IF osmodim%=FALSE THEN 3960 DIM osmopack%(35),osmowaste%(35),osmopile1%(4),osmopile2%(4),osmopile3%(4),osmopile4%(4),osmopile1han%(4),osmopile2han%(4),osmopile3han%(4),osmopile4han%(4),osmofound1%(13),osmofound2%(13),osmofound3%(13),osmofound4%(13) 3970 DIM osmofound1han%(13),osmofound2han%(13),osmofound3han%(13),osmofound4han%(13),osmofound1val%(13),osmofound2val%(13),osmofound3val%(13),osmofound4val%(13) 3980 osmodim%=TRUE 3990 ENDIF 4000 WHEN 2 : 4010 IF pyrdim%=FALSE THEN 4020 DIM pyrlay%(28),pyrlayhan%(28),pyrpack%(24),pyrwaste%(24),pyrfound%(52),pyrdeleted%(28) 4030 pyrdim%=TRUE 4040 ENDIF 4050ENDCASE 4060ENDPROC 4070 4080DEFFNcreateicon(win%,name$,text$,xmin%,ymin%,xmax%,ymax%,flag%) 4090LOCAL iconhandle%,name%,slength%,tlength%,icon%,text% 4100text$+=CHR$(0) 4110tlength%=(LEN(text$)+4) AND (NOT 3) 4120slength%=(LEN(name$)+4) AND (NOT 3) 4130DIM icon% 36+tlength%+slength% 4140text%=icon%+36+slength% 4150$text%=text$ 4160name%=icon%+36 4170IF name$="" THEN $name%="r5" ELSE $name%="s"+name$ 4180icon%!0=win% 4190icon%!4=xmin% 4200icon%!8=ymin% 4210icon%!12=xmax% 4220icon%!16=ymax% 4230icon%!20=flag% 4240icon%!24=text% 4250icon%!28=name% 4260icon%!32=tlength% 4270SYS"Wimp_CreateIcon",,icon% TO iconhandle% 4280iconnumber%=iconnumber%+1 4290=iconhandle% 4300 4310DEFPROCseticonsprite(window%,RETURN icon%,sprite$) 4320REM Sets the sprite of the given indirected text+sprite icon 4330REM to sprite$. 4340LOCAL block%,block2%,block3%,test$,I,xmin%,ymin%,xmax%,ymax% 4350DIM block% 40,block2% 40,block3% 8 4360!block%=window% 4370block%!4=icon% 4380!block2%=window% 4390block2%!4=icon% 4400SYS"Wimp_GetIconState",,block% TO ,block% 4410SYS"Wimp_DeleteIcon",,block2% 4420$block3%="s"+sprite$ 4430DIM block2% 36 4440!block2%=window% 4450FOR I=4 TO 32 STEP 4 4460 block2%!I=block%!(I+4) 4470NEXT I 4480block2%!28=block3% 4490SYS"Wimp_CreateIcon",,block2% TO icon% 4500xmin%=block2%!4 4510ymin%=block2%!8 4520xmax%=block2%!12 4530ymax%=block2%!16 4540SYS"Wimp_ForceRedraw",window%,xmin%,ymin%,xmax%,ymax% 4550ENDPROC 4560 4570DEFFNcardval(name%) 4580REM This function will return the value of the card (i.e. the 4590REM number shown on it) 4600LOCAL val% 4610SYS"WimpExt_Divide",,,name%,13 TO ,,val% 4620IF val%=0 THEN val%=13 4630=val% 4640 4650DEFPROCblankicon(window%,icon%) 4660REM This procedure will remove the icon from the screen. 4670LOCAL block% 4680DIM block% 8 4690!block%=window% 4700block%!4=icon% 4710PROCseticonsprite(window%,icon%,"") 4720ENDPROC 4730 4740DEFPROCosmosis 4750SYS"WimpExt_SetWindowTitle",,,main%,"Osmosis" 4760IF played%=TRUE AND iconnumber%<>0 THEN PROCcleanupwindow(main%) 4770PROCshuffle 4780PROCosmosis_deal 4790PROCosmosis_layout 4800ENDPROC 4810 4820DEFPROCosmosis_deal 4830REM This procedure will deal out the cards into the relevant 4840REM arrays and lay out the cards in the window. 4850LOCAL I 4860FOR I=1 TO 4 4870 osmopile1%(I)=pack%(I) 4880 osmopile2%(I)=pack%(I+4) 4890 osmopile3%(I)=pack%(I+8) 4900 osmopile4%(I)=pack%(I+12) 4910NEXT I 4920FOR I=1 TO 13 4930 osmofound1%(I)=0 4940 osmofound2%(I)=0 4950 osmofound3%(I)=0 4960 osmofound4%(I)=0 4970NEXT I 4980osmofound1%(1)=pack%(17) 4990FOR I=1 TO 35 5000 osmopack%(I)=pack%(I+17) 5010NEXT I 5020FOR I=1 TO 35 5030 osmowaste%(I)=0 5040NEXT I 5050SYS"WimpExt_Divide",,,osmofound1%(1),13 TO suit1%,,osmofound1val%(1) 5060suit1%=suit1%+1 5070IF osmofound1val%(1)=0 THEN 5080 suit1%=suit1%-1 5090 osmofound1val%(1)=13 5100ENDIF 5110suit2%=0 5120suit3%=0 5130suit4%=0 5140ENDPROC 5150 5160DEFPROCosmosis_layout 5170REM Sets out the cards for the game. 5180LOCAL I,left% 5190SYS "WimpExt_OpenWindowTop",main% 5200top%=-10:left%=10 5210FOR I=4 TO 2 STEP -1 5220 osmopile1han%(I)=FNcreateicon(main%,"back","",left%,top%-208,left%+158,top%,%11000100011011) 5230 osmopile2han%(I)=FNcreateicon(main%,"back","",left%,top%-426,left%+158,top%-218,%11000100011011) 5240 osmopile3han%(I)=FNcreateicon(main%,"back","",left%,top%-644,left%+158,top%-436,%11000100011011) 5250 osmopile4han%(I)=FNcreateicon(main%,"back","",left%,top%-862,left%+158,top%-654,%11000100011011) 5260 left%=left%+30 5270NEXT I 5280osmopile1han%(1)=FNcreateicon(main%,STR$osmopile1%(1),"",left%,top%-208,left%+158,top%,%11000100011011) 5290osmopile2han%(1)=FNcreateicon(main%,STR$osmopile2%(1),"",left%,top%-426,left%+158,top%-218,%11000100011011) 5300osmopile3han%(1)=FNcreateicon(main%,STR$osmopile3%(1),"",left%,top%-644,left%+158,top%-436,%11000100011011) 5310osmopile4han%(1)=FNcreateicon(main%,STR$osmopile4%(1),"",left%,top%-862,left%+158,top%-654,%11000100011011) 5320osmopackhan%=FNcreateicon(main%,"back","",572,top%-1080,730,top%-872,%11000100011011) 5330osmowastehan%=FNcreateicon(main%,"nocard","",750,top%-1080,908,top%-872,%11000100011011) 5340left1%=308 5350osmofound1han%(1)=FNcreateicon(main%,STR$osmofound1%(1),"",left1%,top%-208,left1%+158,top%,%100011011) 5360found1%=1:found2%=0:found3%=0:found4%=0 5370left1%=left1%+70 5380left2%=308:left3%=308:left4%=308 5390top1%=top% 5400top2%=top1%-218:top3%=top2%-218:top4%=top3%-218 5410turn1%=FALSE:turn2%=FALSE:turn3%=FALSE:turn4%=FALSE 5420turned1%=FALSE:turned2%=FALSE:turned3%=FALSE:turned4%=FALSE 5430ENDPROC 5440 5450DEFPROCosmosis_mouseclick(icon%) 5460REM Processes mouse clicks in the osmosis main window. 5470REM First set up the nexessary variables. 5480LOCAL click%,name$,name%,iconsuit%,I,J,cardvalue%,tag%,hole$,lay%,empty%,iconhandle%,empty%,cardmoved%,shaded% 5490tag%=FALSE:lay%=FALSE:cardmoved%=FALSE:turn1%=FALSE:turn2%=FALSE:turn3%=FALSE:turn4%=FALSE 5500DIM click% 40 5510!click%=main% 5520click%!4=icon% 5530SYS"Wimp_GetIconState",,click% TO ,click% 5540name$=$click%!32 5550name$=MID$(name$,2) 5560name%=VALname$ 5570IF icon%=0 THEN iconsuit%=0 ELSE SYS"WimpExt_Divide",,,name%,13 TO iconsuit%,,cardvalue% 5580iconsuit%=iconsuit%+1 5590IF cardvalue%=0 THEN 5600 iconsuit%=iconsuit%-1 5610 cardvalue%=13 5620ENDIF 5630REM Now process the event. 5640IF name%<>0 AND (icon%=osmopile1han%(1) OR icon%=osmopile2han%(1) OR icon%=osmopile3han%(1) OR icon%=osmopile4han%(1) OR icon%=osmowastehan%) THEN 5650 CASE iconsuit% OF 5660 WHEN suit1% : 5670 found1%=found1%+1 5680 osmofound1han%(found1%)=FNcreateicon(main%,name$,"",left1%,top1%-208,left1%+158,top1%,%100011011) 5690 left1%=left1%+70 5700 osmofound1%(found1%)=name% 5710 osmofound1val%(found1%)=cardvalue% 5720 PROCosmosis_movecard(icon%,osmofound1han%(found1%),name$) 5730 cardmoved%=TRUE 5740 IF osmofound1%(13)<>0 THEN turn1%=TRUE 5750 WHEN suit2% : 5760 FOR I=1 TO found1% 5770 IF cardvalue%=osmofound1val%(I) THEN tag%=TRUE 5780 NEXT I 5790 IF tag%=TRUE THEN 5800 found2%=found2%+1 5810 osmofound2han%(found2%)=FNcreateicon(main%,name$,"",left2%,top2%-208,left2%+158,top2%,%100011011) 5820 left2%=left2%+70 5830 osmofound2%(found2%)=name% 5840 osmofound2val%(found2%)=cardvalue% 5850 PROCosmosis_movecard(icon%,osmofound2han%(found2%),name$) 5860 cardmoved%=TRUE 5870 ENDIF 5880 IF osmofound2%(13)<>0 THEN turn2%=TRUE 5890 WHEN suit3% : 5900 FOR I=1 TO found2% 5910 IF cardvalue%=osmofound2val%(I) THEN tag%=TRUE 5920 NEXT I 5930 IF tag%=TRUE THEN 5940 found3%=found3%+1 5950 osmofound3han%(found3%)=FNcreateicon(main%,name$,"",left3%,top3%-208,left3%+158,top3%,%100011011) 5960 left3%=left3%+70 5970 osmofound3%(found3%)=name% 5980 osmofound3val%(found3%)=cardvalue% 5990 PROCosmosis_movecard(icon%,osmofound3han%(found3%),name$) 6000 cardmoved%=TRUE 6010 ENDIF 6020 IF osmofound3%(13)<>0 THEN turn3%=TRUE 6030 WHEN suit4% : 6040 FOR I=1 TO found3% 6050 IF cardvalue%=osmofound3val%(I) THEN tag%=TRUE 6060 NEXT I 6070 IF tag%=TRUE THEN 6080 found4%=found4%+1 6090 osmofound4han%(found4%)=FNcreateicon(main%,name$,"",left4%,top4%-208,left4%+158,top4%,%100011011) 6100 left4%=left4%+70 6110 osmofound4%(found4%)=name% 6120 osmofound4val%(found4%)=cardvalue% 6130 PROCosmosis_movecard(icon%,osmofound4han%(found4%),name$) 6140 cardmoved%=TRUE 6150 ENDIF 6160 IF osmofound4%(13)<>0 THEN turn4%=TRUE 6170 ENDCASE 6180 IF iconsuit%<>suit1% THEN 6190 IF osmofound2%(1)=0 THEN 6200 IF cardvalue%=osmofound1val%(1) THEN 6210 osmofound2%(1)=name% 6220 osmofound2han%(1)=FNcreateicon(main%,name$,"",left2%,top2%-208,left2%+158,top2%,%100011011) 6230 left2%=left2%+70 6240 suit2%=iconsuit% 6250 PROCosmosis_movecard(icon%,osmofound2han%(1),name$) 6260 found2%=1 6270 cardmoved%=TRUE 6280 ENDIF 6290 ELSE 6300 IF osmofound3%(1)=0 THEN 6310 IF cardvalue%=osmofound1val%(1) THEN 6320 osmofound3%(1)=name% 6330 osmofound3han%(1)=FNcreateicon(main%,name$,"",left3%,top3%-208,left3%+158,top3%,%100011011) 6340 left3%=left3%+70 6350 suit3%=iconsuit% 6360 PROCosmosis_movecard(icon%,osmofound3han%(1),name$) 6370 cardmoved%=TRUE 6380 found3%=1 6390 ENDIF 6400 ELSE 6410 IF osmofound4%(1)=0 THEN 6420 IF cardvalue%=osmofound1val%(1) THEN 6430 osmofound4%(1)=name% 6440 osmofound4han%(1)=FNcreateicon(main%,name$,"",left4%,top4%-208,left4%+158,top4%,%100011011) 6450 left4%=left4%+70 6460 suit4%=iconsuit% 6470 PROCosmosis_movecard(icon%,osmofound4han%(1),name$) 6480 cardmoved%=TRUE 6490 found4%=1 6500 ENDIF 6510 ENDIF 6520 ENDIF 6530 ENDIF 6540 ENDIF 6550 IF cardmoved%=FALSE THEN 6560 empty%=FNosmosis_emptypile 6570 IF empty%<>0 THEN 6580 cardmoved%=TRUE 6590 PROCosmosis_movecard(icon%,empty%,name$) 6600 CASE empty% OF 6610 WHEN osmopile1han%(1) : osmopile1%(1)=name% 6620 WHEN osmopile2han%(1) : osmopile2%(1)=name% 6630 WHEN osmopile3han%(1) : osmopile3%(1)=name% 6640 WHEN osmopile4han%(1) : osmopile4%(1)=name% 6650 ENDCASE 6660 ENDIF 6670 ENDIF 6680ENDIF 6690IF icon%=osmopackhan% THEN 6700 lastfrom%=osmopackhan% 6710 IF osmopack%(1)=0 THEN 6720 lastturn%=0 6730 FOR I=1 TO 35 6740 osmopack%(I)=osmowaste%(36-I) 6750 NEXT I 6760 FOR I=1 TO 35 6770 osmowaste%(I)=0 6780 NEXT I 6790 WHILE osmopack%(1)=0 6800 FOR I=1 TO 34 6810 osmopack%(I)=osmopack%(I+1) 6820 NEXT I 6830 osmopack%(35)=0 6840 ENDWHILE 6850 PROCseticonsprite(main%,osmopackhan%,"back") 6860 PROCseticonsprite(main%,osmowastehan%,"nocard") 6870 ELSE 6880 IF osmopack%(3)=0 THEN 6890 IF osmopack%(2)=0 THEN 6900 FOR I=34 TO 1 STEP -1 6910 osmowaste%(I+1)=osmowaste%(I) 6920 NEXT I 6930 osmowaste%(1)=osmopack%(1) 6940 osmopack%(1)=0 6950 lastturn%=1 6960 ELSE 6970 FOR I=33 TO 1 STEP -1 6980 osmowaste%(I+2)=osmowaste%(I) 6990 NEXT I 7000 osmowaste%(2)=osmopack%(1) 7010 osmowaste%(1)=osmopack%(2) 7020 osmopack%(1)=0:osmopack%(2)=0 7030 lastturn%=2 7040 ENDIF 7050 ELSE 7060 FOR I=32 TO 1 STEP -1 7070 osmowaste%(I+3)=osmowaste%(I) 7080 NEXT I 7090 osmowaste%(3)=osmopack%(1) 7100 osmowaste%(2)=osmopack%(2) 7110 osmowaste%(1)=osmopack%(3) 7120 FOR I=1 TO 32 7130 osmopack%(I)=osmopack%(I+3) 7140 NEXT I 7150 FOR I=33 TO 35 7160 osmopack%(I)=0 7170 NEXT I 7180 lastturn%=3 7190 ENDIF 7200 IF osmowaste%(1)=0 THEN 7210 PROCseticonsprite(main%,osmowastehan%,"nocard") 7220 ELSE 7230 PROCseticonsprite(main%,osmowastehan%,STR$osmowaste%(1)) 7240 ENDIF 7250 IF osmopack%(1)=0 THEN PROCseticonsprite(main%,osmopackhan%,"nocard") 7260 ENDIF 7270cardmoved%=TRUE 7280ENDIF 7290IF turn1%=TRUE THEN 7300 FOR I=1 TO 13 7310 PROCseticonsprite(main%,osmofound1han%(I),"back") 7320 NEXT I 7330 turn1%=FALSE:turned1%=TRUE 7340ENDIF 7350IF turn2%=TRUE THEN 7360 FOR I=1 TO 13 7370 PROCseticonsprite(main%,osmofound2han%(I),"back") 7380 NEXT I 7390 turn2%=FALSE:turned2%=TRUE 7400ENDIF 7410IF turn3%=TRUE THEN 7420 FOR I=1 TO 13 7430 PROCseticonsprite(main%,osmofound3han%(I),"back") 7440 NEXT I 7450 turn3%=FALSE:turned3%=TRUE 7460ENDIF 7470IF turn4%=TRUE THEN 7480 FOR I=1 TO 13 7490 PROCseticonsprite(main%,osmofound4han%(I),"back") 7500 NEXT I 7510 turn4%=FALSE:turned4%=TRUE 7520ENDIF 7530IF cardmoved%=TRUE THEN 7540 SYS"WimpExt_ShadeEntry",,gmenu%,0,0 TO shaded% 7550 IF shaded%=0 THEN SYS"WimpExt_ShadeEntry",,gmenu%,0,0 7560ENDIF 7570IF icon%=0 THEN PROCnewgame 7580ENDPROC 7590 7600DEFPROCosmosis_movecard(startloc%,endloc%,name$) 7610REM This procedure performs movement of a card, knowing its 7620REM initial location, including moving cards up in the pile. 7630lastfrom%=startloc%:lastto%=endloc%:lastcard%=VALname$ 7640CASE startloc% OF 7650 WHEN osmopile1han%(1) : 7660 FOR I=1 TO 3 7670 osmopile1%(I)=osmopile1%(I+1) 7680 NEXT I 7690 osmopile1%(4)=0 7700 PROCseticonsprite(main%,osmopile1han%(1),STR$osmopile1%(1)) 7710 PROCseticonsprite(main%,endloc%,name$) 7720 FOR I=2 TO 4 7730 IF osmopile1%(I)=0 THEN PROCseticonsprite(main%,osmopile1han%(I),"0") 7740 NEXT I 7750 WHEN osmopile2han%(1) : 7760 FOR I=1 TO 3 7770 osmopile2%(I)=osmopile2%(I+1) 7780 NEXT I 7790 osmopile2%(4)=0 7800 PROCseticonsprite(main%,osmopile2han%(1),STR$osmopile2%(1)) 7810 PROCseticonsprite(main%,endloc%,name$) 7820 FOR I=2 TO 4 7830 IF osmopile2%(I)=0 THEN PROCseticonsprite(main%,osmopile2han%(I),"0") 7840 NEXT I 7850 WHEN osmopile3han%(1) : 7860 FOR I=1 TO 3 7870 osmopile3%(I)=osmopile3%(I+1) 7880 NEXT I 7890 osmopile3%(4)=0 7900 PROCseticonsprite(main%,osmopile3han%(1),STR$osmopile3%(1)) 7910 PROCseticonsprite(main%,endloc%,name$) 7920 FOR I=2 TO 4 7930 IF osmopile3%(I)=0 THEN PROCseticonsprite(main%,osmopile3han%(I),"0") 7940 NEXT I 7950 WHEN osmopile4han%(1) : 7960 FOR I=1 TO 3 7970 osmopile4%(I)=osmopile4%(I+1) 7980 NEXT I 7990 osmopile4%(4)=0 8000 PROCseticonsprite(main%,osmopile4han%(1),STR$osmopile4%(1)) 8010 PROCseticonsprite(main%,endloc%,name$) 8020 FOR I=2 TO 4 8030 IF osmopile4%(I)=0 THEN PROCseticonsprite(main%,osmopile4han%(I),"0") 8040 NEXT I 8050 WHEN osmowastehan% : 8060 FOR I=1 TO 34 8070 osmowaste%(I)=osmowaste%(I+1) 8080 NEXT I 8090 osmowaste%(35)=0 8100 IF osmowaste%(1)=0 THEN hole$="nocard" ELSE hole$=STR$osmowaste%(1) 8110 PROCseticonsprite(main%,osmowastehan%,hole$) 8120 PROCseticonsprite(main%,endloc%,name$) 8130ENDCASE 8140ENDPROC 8150 8160DEFFNosmosis_emptypile 8170REM Checks to see if there are any empty piles, returns the handle 8180REM of the first empty pile it encounters, else returns 0. 8190IF osmopile1%(1)=0 THEN =osmopile1han%(1) 8200IF osmopile2%(1)=0 THEN =osmopile2han%(1) 8210IF osmopile3%(1)=0 THEN =osmopile3han%(1) 8220IF osmopile4%(1)=0 THEN =osmopile4han%(1) 8230=0 8240 8250DEFPROCosmosis_undo 8260REM This procedure will undo the last move in Osmosis 8270LOCAL from%,I 8280from%=0 8290IF lastfrom%=osmopile1han%(1) THEN from%=osmopile1han%(1) 8300IF lastfrom%=osmopile2han%(1) THEN from%=osmopile2han%(1) 8310IF lastfrom%=osmopile3han%(1) THEN from%=osmopile3han%(1) 8320IF lastfrom%=osmopile4han%(1) THEN from%=osmopile4han%(1) 8330IF lastfrom%=osmowastehan% THEN from%=osmowastehan% 8340SYS"WimpExt_ShadeEntry",,gmenu%,0,1 8350CASE lastfrom% OF 8360 WHEN osmopackhan% : 8370 CASE lastturn% OF 8380 WHEN 0 : 8390 FOR I=1 TO 35 8400 osmowaste%(I)=osmopack%(36-I) 8410 NEXT I 8420 FOR I=1 TO 35 8430 osmopack%(I)=0 8440 NEXT I 8450 WHILE osmowaste%(1)=0 8460 FOR I=1 TO 34 8470 osmowaste%(I)=osmowaste%(I+1) 8480 NEXT I 8490 osmowaste%(35)=0 8500 ENDWHILE 8510 PROCseticonsprite(main%,osmopackhan%,"nocard") 8520 PROCseticonsprite(main%,osmowastehan%,STR$osmowaste%(1)) 8530 WHEN 1 : 8540 FOR I=34 TO 1 STEP -1 8550 osmopack%(I+1)=osmopack%(I) 8560 NEXT I 8570 osmopack%(1)=osmowaste%(1) 8580 FOR I=1 TO 34 8590 osmowaste%(I)=osmowaste%(I+1) 8600 NEXT I 8610 PROCseticonsprite(main%,osmowastehan%,STR$osmowaste%(1)) 8620 PROCseticonsprite(main%,osmopackhan%,"back") 8630 WHEN 2 : 8640 FOR I=33 TO 1 STEP -1 8650 osmopack%(I+2)=osmopack%(I) 8660 NEXT I 8670 osmopack%(2)=osmowaste%(1) 8680 osmopack%(1)=osmowaste%(2) 8690 FOR I=1 TO 33 8700 osmowaste%(I)=osmowaste%(I+2) 8710 NEXT I 8720 osmowaste%(34)=0:osmowaste%(35)=0 8730 PROCseticonsprite(main%,osmowastehan%,STR$osmowaste%(1)) 8740 PROCseticonsprite(main%,osmopackhan%,"back") 8750 WHEN 3 : 8760 FOR I=32 TO 1 STEP -1 8770 osmopack%(I+3)=osmopack%(I) 8780 NEXT I 8790 osmopack%(3)=osmowaste%(1) 8800 osmopack%(2)=osmowaste%(2) 8810 osmopack%(1)=osmowaste%(3) 8820 FOR I=1 TO 32 8830 osmowaste%(I)=osmowaste%(I+3) 8840 NEXT I 8850 FOR I=33 TO 35 8860 osmowaste%(I)=0 8870 NEXT I 8880 IF osmowaste%(1)=0 THEN 8890 PROCseticonsprite(main%,osmowastehan%,"nocard") 8900 ELSE 8910 PROCseticonsprite(main%,osmowastehan%,STR$osmowaste%(1)) 8920 ENDIF 8930 ENDCASE 8940 WHEN from% : 8950 IF lastto%=osmofound1han%(found1%) OR lastto%=osmofound2han%(found2%) OR lastto%=osmofound3han%(found3%) OR lastto%=osmofound4han%(found4%) THEN PROCblankicon(main%,lastto%) 8960 CASE from% OF 8970 WHEN osmopile1han%(1) : 8980 FOR I=4 TO 2 STEP -1 8990 osmopile1%(I)=osmopile1%(I-1) 9000 IF osmopile1%(I)<>0 THEN PROCseticonsprite(main%,osmopile1han%(I),"back") 9010 NEXT I 9020 osmopile1%(1)=lastcard% 9030 WHEN osmopile2han%(1) : 9040 FOR I=4 TO 2 STEP -1 9050 osmopile2%(I)=osmopile2%(I-1) 9060 IF osmopile2%(I)<>0 THEN PROCseticonsprite(main%,osmopile2han%(I),"back") 9070 NEXT I 9080 osmopile2%(1)=lastcard% 9090 WHEN osmopile3han%(1) : 9100 FOR I=4 TO 2 STEP -1 9110 osmopile3%(I)=osmopile3%(I-1) 9120 IF osmopile3%(I)<>0 THEN PROCseticonsprite(main%,osmopile3han%(I),"back") 9130 NEXT I 9140 osmopile3%(1)=lastcard% 9150 WHEN osmopile4han%(1) : 9160 FOR I=4 TO 2 STEP -1 9170 osmopile4%(I)=osmopile4%(I-1) 9180 IF osmopile4%(I)<>0 THEN PROCseticonsprite(main%,osmopile4han%(I),"back") 9190 NEXT I 9200 osmopile4%(1)=lastcard% 9210 WHEN osmowastehan% : 9220 FOR I=35 TO 2 STEP -1 9230 osmowaste%(I)=osmowaste%(I-1) 9240 NEXT I 9250 osmowaste%(1)=lastcard% 9260 ENDCASE 9270 CASE lastto% OF 9280 WHEN osmofound1han%(found1%) : 9290 found1%=found1%-1:left1%=left1%-70 9300 IF turned1%=TRUE THEN 9310 FOR I=1 TO 12 9320 PROCseticonsprite(main%,osmofound1han%(I),STR$osmofound1%(I)) 9330 NEXT I 9340 ENDIF 9350 WHEN osmofound2han%(found2%) : 9360 found2%=found2%-1:left2%=left2%-70 9370 IF turned2%=TRUE THEN 9380 FOR I=1 TO 12 9390 PROCseticonsprite(main%,osmofound2han%(I),STR$osmofound2%(I)) 9400 NEXT I 9410 ENDIF 9420 WHEN osmofound3han%(found3%) : 9430 found3%=found3%-1:left3%=left3%-70 9440 IF turned3%=TRUE THEN 9450 FOR I=1 TO 12 9460 PROCseticonsprite(main%,osmofound3han%(I),STR$osmofound3%(I)) 9470 NEXT I 9480 ENDIF 9490 WHEN osmofound4han%(found4%) : 9500 found4%=found4%-1:left4%=left4%-70 9510 IF turned4%=TRUE THEN 9520 FOR I=1 TO 12 9530 PROCseticonsprite(main%,osmofound4han%(I),STR$osmofound4%(I)) 9540 NEXT I 9550 ENDIF 9560 WHEN osmopile1han%(1) : 9570 osmopile1%(1)=0 9580 PROCseticonsprite(main%,osmopile1han%(1),"0") 9590 WHEN osmopile2han%(1) : 9600 osmopile2%(1)=0 9610 PROCseticonsprite(main%,osmopile2han%(1),"0") 9620 WHEN osmopile3han%(1) : 9630 osmopile3%(1)=0 9640 PROCseticonsprite(main%,osmopile3han%(1),"0") 9650 WHEN osmopile4han%(1) : 9660 osmopile4%(1)=0 9670 PROCseticonsprite(main%,osmopile4han%(1),"0") 9680 ENDCASE 9690 PROCseticonsprite(main%,from%,STR$lastcard%) 9700ENDCASE 9710ENDPROC 9720 9730DEFPROCpyramid 9740REM Sets up the game for pyramid. 9750SYS"WimpExt_SetWindowTitle",,,main%,"Pyramid" 9760SYS"WimpExt_ShadeEntry",,gmenu%,0,0 TO shaded% 9770IF shaded%=1 THEN SYS"WimpExt_ShadeEntry",,gmenu%,0,1 9780IF played%=TRUE AND iconnumber%<>0 THEN PROCcleanupwindow(main%) 9790PROCshuffle 9800PROCpyramid_deal 9810PROCpyramid_layout 9820ENDPROC 9830 9840DEFPROCpyramid_deal 9850REM Sets up the game arrays. 9860LOCAL I 9870FOR I=1 TO 28 9880 pyrlay%(I)=pack%(I) 9890NEXT I 9900FOR I=1 TO 24 9910 pyrpack%(I)=pack%(I+28) 9920 pyrwaste%(I)=0 9930NEXT I 9940FOR I=1 TO 52 9950 pyrfound%(I)=0 9960NEXT I 9970ENDPROC 9980 9990DEFPROCpyramid_layout 10000REM Sets up the screen with the cards. 10010LOCAL left%,top%,I 10020SYS "WimpExt_OpenWindowTop",main% 10030left%=661:top%=-10 10040pyrlayhan%(1)=FNcreateicon(main%,STR$pyrlay%(1),"",left%,top%-208,left%+158,top%,12571) 10050left%=left%-100 10060top%=top%-125 10070FOR I=2 TO 3 10080 pyrlayhan%(I)=FNcreateicon(main%,STR$pyrlay%(I),"",left%,top%-208,left%+158,top%,12571) 10090 left%=left%+200 10100NEXT I 10110left%=left%-500:top%=top%-125 10120FOR I=4 TO 6 10130 pyrlayhan%(I)=FNcreateicon(main%,STR$pyrlay%(I),"",left%,top%-208,left%+158,top%,12571) 10140 left%=left%+200 10150NEXT I 10160left%=left%-700:top%=top%-125 10170FOR I=7 TO 10 10180 pyrlayhan%(I)=FNcreateicon(main%,STR$pyrlay%(I),"",left%,top%-208,left%+158,top%,12571) 10190 left%=left%+200 10200NEXT I 10210left%=left%-900:top%=top%-125 10220FOR I=11 TO 15 10230 pyrlayhan%(I)=FNcreateicon(main%,STR$pyrlay%(I),"",left%,top%-208,left%+158,top%,12571) 10240 left%=left%+200 10250NEXT I 10260left%=left%-1100:top%=top%-125 10270FOR I=16 TO 21 10280 pyrlayhan%(I)=FNcreateicon(main%,STR$pyrlay%(I),"",left%,top%-208,left%+158,top%,12571) 10290 left%=left%+200 10300NEXT I 10310left%=left%-1300:top%=top%-125 10320FOR I=22 TO 28 10330 pyrlayhan%(I)=FNcreateicon(main%,STR$pyrlay%(I),"",left%,top%-208,left%+158,top%,12571) 10340 left%=left%+200 10350NEXT I 10360pyrpackhan%=FNcreateicon(main%,"back","",50,-258,208,-50,12571) 10370pyrwastehan%=FNcreateicon(main%,"nocard","",220,-258,378,-50,12571) 10380pyrfoundhan%=FNcreateicon(main%,"nocard","",1200,-258,1358,-50,12571) 10390FOR I=1 TO 28 10400 pyrdeleted%(I)=FALSE 10410NEXT I 10420deal%=1:selected%=FALSE:firstcard%=0:firsticon%=0:cardsleft%=24 10430scorehan%=FNcreateicon(main%,"","Score : "+STR$score%+" in "+STR$pyrgames%,50,-350,300,-290,%00010111000000000000000100111101) 10440dealhan%=FNcreateicon(main%,"","Deal : "+STR$deal%,50,-420,300,-360,%00010111000000000000000100111101) 10450cardslefthan%=FNcreateicon(main%,"","Cards left : "+STR$cardsleft%,50,-490,300,-430,%00010111000000000000000100111101) 10460lasticon1%=-1:lasticon2%=-1:lastval1%=-1:lastval2%=-1 10470ENDPROC 10480 10490DEFPROCpyramid_mouseclick(icon%) 10500REM This procedure processes mouseclicks in a game of Pyramid. 10510REM Now process the event. 10520LOCAL click%,I,J,play%,tempcard%,shaded%,cardmoved% 10530cardmoved%=FALSE 10540play%=FNpyramid_uncovered(icon%) 10550IF icon%=pyrwastehan% OR icon%=pyrfoundhan% THEN play%=TRUE 10560DIM click% 40 10570!click%=main% 10580click%!4=icon% 10590SYS"Wimp_GetIconState",,click% TO ,click% 10600name$=$click%!32 10610name$=MID$(name$,2) 10620name%=VALname$ 10630IF name%<>0 THEN 10640 cardvalue%=FNcardval(name%) 10650ELSE 10660 cardvalue%=-1 10670ENDIF 10680IF icon%=pyrpackhan% THEN cardvalue%=FNcardval(pyrpack%(1)) 10690IF icon%<>0 THEN 10700 IF selected%=FALSE THEN 10710 lasticon1%=icon%:lastval1%=cardvalue%:lasticon2%=-1:lastval2%=-1 10720 ENDIF 10730 IF selected%=TRUE AND cardvalue%+lastval1%=13 THEN 10740 lasticon2%=icon%:lastval2%=cardvalue% 10750 ENDIF 10760ENDIF 10770REM Now process the click. 10780CASE icon% OF 10790 WHEN 0 : 10800 score%=0:pyrgames%=0 10810 PROCnewgame 10820 WHEN pyrpackhan% : 10830 cardmoved%=TRUE 10840 IF pyrpack%(1)=0 THEN 10850 FOR I=1 TO 24 10860 pyrpack%(I)=pyrwaste%(25-I) 10870 NEXT I 10880 FOR I=1 TO 24 10890 pyrwaste%(I)=0 10900 NEXT I 10910 IF pyrpack%(1)=0 THEN 10920 REPEAT 10930 FOR I=1 TO 23 10940 pyrpack%(I)=pyrpack%(I+1) 10950 NEXT I 10960 pyrpack%(24)=0 10970 UNTIL pyrpack%(1)<>0 10980 ENDIF 10990 deal%=deal%+1 11000 IF deal%<4 THEN SYS"WimpExt_SetIconString",,,main%,dealhan%,"Deal : "+STR$deal% 11010 PROCseticonsprite(main%,pyrpackhan%,"back") 11020 PROCseticonsprite(main%,pyrwastehan%,"nocard") 11030 ELSE 11040 IF firsticon%=pyrwastehan% THEN 11050 SYS"WimpExt_SetIcon",,,main%,pyrwastehan%,0 11060 selected%=FALSE:firsticon%=0:firstcard%=0 11070 ENDIF 11080 FOR I=24 TO 2 STEP -1 11090 pyrwaste%(I)=pyrwaste%(I-1) 11100 NEXT I 11110 pyrwaste%(1)=pyrpack%(1) 11120 FOR I=1 TO 23 11130 pyrpack%(I)=pyrpack%(I+1) 11140 NEXT I 11150 pyrpack%(24)=0 11160 IF pyrpack%(1)=0 THEN 11170 PROCseticonsprite(main%,pyrpackhan%,"nocard") 11180 ENDIF 11190 PROCseticonsprite(main%,pyrwastehan%,STR$pyrwaste%(1)) 11200 ENDIF 11210ENDCASE 11220IF play%=TRUE AND name%<>0 THEN 11230 IF selected%=FALSE THEN 11240 SYS"WimpExt_SetIcon",,,main%,icon%,2 11250 IF cardvalue%=13 AND icon%<>pyrfoundhan% THEN 11260 SYS"WimpExt_SetIcon",,,main%,icon%,0 11270 PROCpyramid_movecard(icon%,name$) 11280 FOR I=52 TO 2 STEP -1 11290 pyrfound%(I)=pyrfound%(I-1) 11300 NEXT I 11310 pyrfound%(1)=name% 11320 selected%=FALSE 11330 ELSE 11340 IF cardvalue%<>13 THEN 11350 selected%=TRUE:firstcard%=cardvalue%:firsticon%=icon%:firstname%=name% 11360 ENDIF 11370 ENDIF 11380 ELSE 11390 IF icon%=firsticon% THEN 11400 SYS"WimpExt_SetIcon",,,main%,icon%,2 11410 selected%=FALSE:firstcard%=0:firsticon%=0:lasticon1%=-1:lastval1%=-1 11420 ELSE 11430 IF cardvalue%+firstcard%=13 THEN 11440 IF firsticon%=pyrfoundhan% THEN 11450 PROCpyramid_movecard(icon%,name$) 11460 FOR I=52 TO 2 STEP -1 11470 pyrfound%(I)=pyrfound%(I-1) 11480 NEXT I 11490 pyrfound%(1)=name% 11500 SYS"WimpExt_SetIcon",,,main%,pyrfoundhan%,0 11510 selected%=FALSE:firsticon%=0:firstcard%=0 11520 ELSE 11530 SYS"WimpExt_SetIcon",,,main%,firsticon%,0 11540 SYS"WimpExt_SetIcon",,,main%,pyrfoundhan%,0 11550 IF icon%=pyrfoundhan% THEN 11560 PROCpyramid_movecard(firsticon%,name$) 11570 tempcard%=name% 11580 pyrfound%(1)=firstcard% 11590 FOR I=52 TO 2 STEP -1 11600 pyrfound%(I)=pyrfound%(I-1) 11610 NEXT I 11620 pyrfound%(1)=tempcard% 11630 PROCseticonsprite(main%,pyrfoundhan%,STR$tempcard%) 11640 SYS"WimpExt_SetIcon",,,main%,pyrfoundhan%,0 11650 selected%=FALSE:firsticon%=0:firstcard%=0 11660 ELSE 11670 FOR I=52 TO 3 STEP -1 11680 pyrfound%(I)=pyrfound%(I-2) 11690 NEXT I 11700 pyrfound%(2)=firstname% 11710 pyrfound%(1)=name% 11720 PROCpyramid_movecard(firsticon%,name$) 11730 PROCpyramid_movecard(icon%,name$) 11740 selected%=FALSE:firstcard%=0:firsticon%=0 11750 ENDIF 11760 ENDIF 11770 ENDIF 11780 ENDIF 11790 ENDIF 11800ENDIF 11810IF deal%=4 OR pyrdeleted%(1)=TRUE THEN PROCpyramid_score 11820IF lasticon1%<>-1 THEN 11830 SYS"WimpExt_ShadeEntry",,gmenu%,0,0 TO shaded% 11840 IF shaded%=0 THEN SYS"WimpExt_ShadeEntry",,gmenu%,0,0 11850ENDIF 11860ENDPROC 11870 11880DEFFNpyramid_uncovered(icon%) 11890REM This function returns TRUE if the selected icon is in the 11900REM layout and is uncovered, and FALSE otherwise. 11910LOCAL I,temp% 11920I=0:temp%=FALSE 11930REPEAT 11940 I=I+1 11950 IF icon%=pyrlayhan%(I) THEN temp%=TRUE 11960UNTIL temp%=TRUE OR I=28 11970IF temp%=FALSE THEN I=0 11980IF I=0 THEN =FALSE 11990IF I=1 AND pyrdeleted%(2)=TRUE AND pyrdeleted%(3)=TRUE THEN =TRUE 12000IF I=2 AND pyrdeleted%(4)=TRUE AND pyrdeleted%(5)=TRUE THEN =TRUE 12010IF I=3 AND pyrdeleted%(5)=TRUE AND pyrdeleted%(6)=TRUE THEN =TRUE 12020IF I=4 AND pyrdeleted%(7)=TRUE AND pyrdeleted%(8)=TRUE THEN =TRUE 12030IF I=5 AND pyrdeleted%(8)=TRUE AND pyrdeleted%(9)=TRUE THEN =TRUE 12040IF I=6 AND pyrdeleted%(9)=TRUE AND pyrdeleted%(10)=TRUE THEN =TRUE 12050IF I=7 AND pyrdeleted%(11)=TRUE AND pyrdeleted%(12)=TRUE THEN =TRUE 12060IF I=8 AND pyrdeleted%(12)=TRUE AND pyrdeleted%(13)=TRUE THEN =TRUE 12070IF I=9 AND pyrdeleted%(13)=TRUE AND pyrdeleted%(14)=TRUE THEN =TRUE 12080IF I=10 AND pyrdeleted%(14)=TRUE AND pyrdeleted%(15)=TRUE THEN =TRUE 12090IF I=11 AND pyrdeleted%(16)=TRUE AND pyrdeleted%(17)=TRUE THEN =TRUE 12100IF I=12 AND pyrdeleted%(17)=TRUE AND pyrdeleted%(18)=TRUE THEN =TRUE 12110IF I=13 AND pyrdeleted%(18)=TRUE AND pyrdeleted%(19)=TRUE THEN =TRUE 12120IF I=14 AND pyrdeleted%(19)=TRUE AND pyrdeleted%(20)=TRUE THEN =TRUE 12130IF I=15 AND pyrdeleted%(20)=TRUE AND pyrdeleted%(21)=TRUE THEN =TRUE 12140IF I=16 AND pyrdeleted%(22)=TRUE AND pyrdeleted%(23)=TRUE THEN =TRUE 12150IF I=17 AND pyrdeleted%(23)=TRUE AND pyrdeleted%(24)=TRUE THEN =TRUE 12160IF I=18 AND pyrdeleted%(24)=TRUE AND pyrdeleted%(25)=TRUE THEN =TRUE 12170IF I=19 AND pyrdeleted%(25)=TRUE AND pyrdeleted%(26)=TRUE THEN =TRUE 12180IF I=20 AND pyrdeleted%(26)=TRUE AND pyrdeleted%(27)=TRUE THEN =TRUE 12190IF I=21 AND pyrdeleted%(27)=TRUE AND pyrdeleted%(28)=TRUE THEN =TRUE 12200IF I=22 THEN =TRUE 12210IF I=23 THEN =TRUE 12220IF I=24 THEN =TRUE 12230IF I=25 THEN =TRUE 12240IF I=26 THEN =TRUE 12250IF I=27 THEN =TRUE 12260IF I=28 THEN =TRUE 12270=FALSE 12280 12290DEFPROCpyramid_movecard(icon%,name$) 12300REM This procedure takes care of moving the card from the start 12310REM location to the foundation, including moving cards round in 12320REM piles and deleting the relevant icons. 12330LOCAL I 12340PROCseticonsprite(main%,pyrfoundhan%,name$) 12350cardmoved%=TRUE 12360IF icon%=pyrwastehan% THEN 12370 FOR I=1 TO 23 12380 pyrwaste%(I)=pyrwaste%(I+1) 12390 NEXT I 12400 pyrwaste%(24)=0 12410 IF pyrwaste%(1)=0 THEN 12420 PROCseticonsprite(main%,pyrwastehan%,"nocard") 12430 ELSE 12440 PROCseticonsprite(main%,pyrwastehan%,STR$pyrwaste%(1)) 12450 ENDIF 12460 cardsleft%=cardsleft%-1 12470 SYS"WimpExt_SetIconString",,,main%,cardslefthan%,"Cards left : "+STR$cardsleft% 12480ELSE 12490 PROCblankicon(main%,icon%) 12500 FOR I=1 TO 28 12510 IF pyrlayhan%(I)=icon% THEN 12520 pyrdeleted%(I)=TRUE 12530 pyrlay%(I)=0 12540 ENDIF 12550 NEXT I 12560ENDIF 12570ENDPROC 12580 12590DEFPROCpyramid_undo 12600REM This procedure will undo the last action in Pyramid. 12610LOCAL I,temp1%,temp2% 12620SYS"WimpExt_ShadeEntry",,gmenu%,0,1 12630IF lasticon2%=-1 AND lasticon1%=pyrpackhan% THEN 12640 IF pyrwaste%(1)=0 THEN 12650 FOR I=1 TO 24 12660 pyrwaste%(25-I)=pyrpack%(I) 12670 pyrpack%(I)=0 12680 NEXT I 12690 WHILE pyrwaste%(1)=0 12700 FOR I=1 TO 24 12710 pyrwaste%(I)=pyrwaste%(I+1) 12720 NEXT I 12730 ENDWHILE 12740 deal%=deal%-1 12750 SYS"WimpExt_SetIconString",,,main%,dealhan%,"Deal : "+STR$deal% 12760 PROCseticonsprite(main%,pyrwastehan%,STR$pyrwaste%(1)) 12770 PROCseticonsprite(main%,pyrpackhan%,"nocard") 12780 ELSE 12790 FOR I=24 TO 2 STEP -1 12800 pyrpack%(I)=pyrpack%(I-1) 12810 NEXT I 12820 pyrpack%(1)=pyrwaste%(1) 12830 FOR I=1 TO 23 12840 pyrwaste%(I)=pyrwaste%(I+1) 12850 NEXT I 12860 pyrwaste%(24)=0 12870 IF pyrwaste%(1)=0 THEN PROCseticonsprite(main%,pyrwastehan%,"nocard") ELSE PROCseticonsprite(main%,pyrwastehan%,STR$pyrwaste%(1)) 12880 PROCseticonsprite(main%,pyrpackhan%,"back") 12890 ENDIF 12900ENDIF 12910IF lasticon2%=-1 THEN 12920 IF lastval1%=13 THEN 12930 REM take the king off the foundation and put it back on the 12940 REM layout or waste pile. 12950 temp1%=pyrfound%(1) 12960 FOR I=1 TO 51 12970 pyrfound%(I)=pyrfound%(I+1) 12980 NEXT I 12990 pyrfound%(52)=0 13000 IF lasticon1%=pyrwastehan% THEN 13010 FOR I=24 TO 2 STEP -1 13020 pyrwaste%(I)=pyrwaste%(I-1) 13030 NEXT I 13040 pyrwaste%(1)=temp1% 13050 PROCseticonsprite(main%,pyrwastehan%,STR$pyrwaste%(1)) 13060 cardsleft%=cardsleft%+1:SYS"WimpExt_SetIconString",,,main%,cardslefthan%,"Cards left : "+STR$cardsleft% 13070 ELSE 13080 I=1 13090 REPEAT 13100 I=I+1 13110 UNTIL I=28 OR pyrlayhan%(I)=lasticon1% 13120 IF pyrlayhan%(I)=lasticon1% THEN 13130 pyrlay%(I)=temp1% 13140 PROCseticonsprite(main%,pyrlayhan%(I),STR$pyrlay%(I)) 13150 pyrdeleted%(I)=FALSE 13160 ENDIF 13170 ENDIF 13180 IF pyrfound%(1)=0 THEN 13190 PROCseticonsprite(main%,pyrfoundhan%,"nocard") 13200 ELSE 13210 PROCseticonsprite(main%,pyrfoundhan%,STR$pyrfound%(1)) 13220 ENDIF 13230 ELSE 13240 SYS"WimpExt_SetIcon",,,main%,lasticon1%,0 13250 ENDIF 13260ENDIF 13270IF lastval2%<>-1 THEN 13280REM Take the cards and put them into temp1% and temp2%. 13290 temp2%=pyrfound%(1):temp1%=pyrfound%(2) 13300REM Shift the foundation back up 2 cards. 13310 FOR I=1 TO 50 13320 pyrfound%(I)=pyrfound%(I+2) 13330 NEXT I 13340REM Put special cases in - if temp1% or temp2% are the foundation, 13350REM then put it back (single procedure), using PROCmovecard. 13360 IF lasticon1%=pyrfoundhan% THEN 13370 PROCseticonsprite(main%,pyrfoundhan%,STR$temp1%) 13380 FOR I=52 TO 2 STEP -1 13390 pyrfound%(I)=pyrfound%(I-1) 13400 NEXT I 13410 pyrfound%(1)=temp1% 13420 ENDIF 13430 IF lasticon2%=pyrfoundhan% THEN 13440 PROCseticonsprite(main%,pyrfoundhan%,STR$temp2%) 13450 FOR I=52 TO 2 STEP -1 13460 pyrfound%(I)=pyrfound%(I-1) 13470 NEXT I 13480 pyrfound%(1)=temp2% 13490 ENDIF 13500REM Need similar check for waste pile, to move cards down. 13510 IF lasticon1%=pyrwastehan% THEN 13520 PROCseticonsprite(main%,pyrwastehan%,STR$temp1%) 13530 FOR I=24 TO 2 STEP -1 13540 pyrwaste%(I)=pyrwaste%(I-1) 13550 NEXT I 13560 pyrwaste%(1)=temp1%:cardsleft%=cardsleft%+1:SYS"WimpExt_SetIconString",,,main%,cardslefthan%,"Cards left : "+STR$cardsleft% 13570 ENDIF 13580 IF lasticon2%=pyrwastehan% THEN 13590 PROCseticonsprite(main%,pyrwastehan%,STR$temp2%) 13600 FOR I=24 TO 2 STEP -1 13610 pyrwaste%(I)=pyrwaste%(I-1) 13620 NEXT I 13630 pyrwaste%(1)=temp2%:cardsleft%=cardsleft%+1:SYS"WimpExt_SetIconString",,,main%,cardslefthan%,"Cards left : "+STR$cardsleft% 13640 ENDIF 13650REM Put temp1% back on lasticon1% and reset the sprite. 13660 IF lasticon1%<>pyrfoundhan% AND lasticon1%<>pyrwastehan% THEN 13670 I=1 13680 REPEAT 13690 I=I+1 13700 UNTIL lasticon1%=pyrlayhan%(I) OR I=28 13710 PROCseticonsprite(main%,pyrlayhan%(I),STR$temp1%) 13720 pyrlay%(I)=temp1%:pyrdeleted%(I)=FALSE 13730 ENDIF 13740REM Put temp 2 back on lasticon2% and reset the sprite. 13750 IF lasticon2%<>pyrfoundhan% AND lasticon2%<>pyrwastehan% THEN 13760 I=1 13770 REPEAT 13780 I=I+1 13790 UNTIL lasticon2%=pyrlayhan%(I) OR I=28 13800 PROCseticonsprite(main%,pyrlayhan%(I),STR$temp2%) 13810 pyrlay%(I)=temp2%:pyrdeleted%(I)=FALSE 13820 ENDIF 13830 IF pyrfound%(1)=0 THEN 13840 PROCseticonsprite(main%,pyrfoundhan%,"nocard") 13850 ELSE 13860 PROCseticonsprite(main%,pyrfoundhan%,STR$pyrfound%(1)) 13870 ENDIF 13880ENDIF 13890lasticon1%=-1:lasticon2%=-1:lastval1%=-1:lastval2%=-1 13900ENDPROC 13910 13920DEFPROCpyramid_score 13930REM This procedure will work out the score for this match. 13940LOCAL layoutleft%,buttons% 13950layoutleft%=0:pyrgames%=pyrgames%+1 13960FOR I=1 TO 28 13970 IF pyrlay%(I)<>0 THEN layoutleft%=layoutleft%+1 13980NEXT I 13990CASE deal% OF 14000 WHEN 1 : score%=score%+50 14010 WHEN 2 : score%=score%+35 14020 WHEN 3 : score%=score%+20 14030 WHEN 4 : score%=score%-layoutleft% 14040ENDCASE 14050score%=score%-cardsleft%:deal%=4 14060SYS"WimpExt_SetIconString",,,main%,scorehan%,"Score : "+STR$score%+" in "+STR$pyrgames% 14070IF pyrgames%=6 THEN 14080 DIM buttons% 4 14090 $(buttons%+0)="Begin" 14100 IF score%>=0 THEN 14110 SYS"WimpExt_ControlImmediate",,2,"Pyramid","Congratulations! Your score of "+STR$score%+" was above par. Click 'Begin' for a new match.",buttons%,0 14120 ELSE 14130 SYS"WimpExt_ControlImmediate",,2,"Pyramid","Commiserations! Your score of "+STR$score%+" was below par. Click 'Begin' for a new match.",buttons%,0 14140 ENDIF 14150pyrgames%=0:score%=0 14160ENDIF 14170PROCnewgame 14180ENDPROC 14190
=� !Osmosis - A Desktop Patience Game by John Pettigrew. ]version$="0.99":game%=1:osmodim%=�:pyrdim%=�:played%=�:iconnumber%=0:pyrgames%=0:score%=0 (;� Initialise the application with the WIMP, install the 2*� iconbar icon and load template file. <�wimp_init F P8� Open startup banner, set up menus and build cards. Q� p% 256 Z%ș"WimpExt_OpenWindowTop",banner% dș"Wimp_Poll",,p% n �makemenu x�buildcards y!p%=banner% �ș"Wimp_CloseWindow",,p% � �$� Now perform a wimp poll loop : �� � �wimp_poll � � quit%=� �!ș "XWimpExt_CloseDown",task% �ș "XWimp_CloseDown" �� � ���wimp_init �>� This procedure will register the programme with the WIMP '� and set up the icon bar icon etc. � window%,template%,indir% >ș "OS_File",17,"<Osmosis$Dir>.Sprites" � type%,,,,length% "K� type%<>1 � length%<>40324 � �(0,"Incorrect or missing Sprites file.") ,?� q% 256,sprite% 285000,window% 8,template% 1024,indir% 256 6!sprite%=285000 @9ș "OS_SpriteOp",&10A,sprite%,"<Osmosis$Dir>.Sprites" J;ș "Wimp_Initialise",310,&4B534154,0,"Osmosis" � ,task% T8ș "WimpExt_Initialise",16,task%,%1111010011,sprite% ^1ș "WimpExt_IconBarSprite",,,-1,"!osmosis",,3 h!window%!4=%101:window%!8=%101 rgș "WimpExt_LoadTemplates",window%,template%,indir%,indir%+256,-1,"<Osmosis$Dir>.Templates",sprite% |4info%=!window%:main%=window%!4:banner%=window%!8 �quit%=0:menu%=0 �� � ���makemenu �� Creates the menus. �� imenu% 96,gmenu% 152 �$imenu%="Osmosis" �imenu%!12=&70207 �5imenu%!16=16*8:� This sets the width of the menu. �imenu%!20=44 �imenu%!24=0 �imenu%!28=0 �imenu%!32=info% imenu%!36=&7000021 $(imenu%+40)="Info" imenu%!52=2 &imenu%!56=0 0imenu%!60=&7000021 :$(imenu%+64)="Osmosis" Dimenu%!76=128 Nimenu%!80=0 Ximenu%!84=&7000021 b$(imenu%+88)="Quit" l$gmenu%="Game Menu" vgmenu%!12=&70207 �6gmenu%!16=16*10:� This sets the width of the menu. �gmenu%!20=44 �gmenu%!24=0 �gmenu%!28=0 �gmenu%!32=0 �gmenu%!36=&7000021 �$(gmenu%+40)="Undo" �gmenu%!52=2 �gmenu%!56=0 �gmenu%!60=&7000021 �$(gmenu%+64)="Resign" �gmenu%!76=0 �gmenu%!80=0 gmenu%!84=&7000021 $(gmenu%+88)="Osmosis" gmenu%!100=2 gmenu%!104=0 *gmenu%!108=&7000021 4$(gmenu%+112)="Pyramid" >gmenu%!124=128 Hgmenu%!128=0 Rgmenu%!132=&7000021 \$(gmenu%+136)="Quit" f&ș"WimpExt_ShadeEntry",,gmenu%,0,1 p� z ���buildcards �3� tempsprite$,tempsprite2$,I,tempval%,tempsuit$ �C� This procedure (and its subprocedures) makes the full 52 card �6� sprites out of the elements in the Sprites file. �B� First, copy the halfcard sprite into 4 temporary sprites and �+� make the the template suit halfcards. �6ș"OS_SpriteOp",256+27,sprite%,"halfcard","hearts" �6ș"OS_SpriteOp",256+27,sprite%,"halfcard","spades" �5ș"OS_SpriteOp",256+27,sprite%,"halfcard","clubs" �8ș"OS_SpriteOp",256+27,sprite%,"halfcard","diamonds" �*�drawsprite("hearts","sm_heart",18,46) �*�drawsprite("spades","sm_spade",18,46) �(�drawsprite("clubs","sm_club",18,46) +�drawsprite("diamonds","sm_diam",18,46) 2� Now make the number cards (whole, not half). � I=1 � 52 $6 � I<14 � �addsprite("hearts",�I,"red_"+�I,18,70) .D � I>13 � I<27 � �addsprite("diamonds",�I,"red_"+�(I-13),18,70) 8C � I>26 � I<40 � �addsprite("clubs",�I,"black_"+�(I-26),18,70) B= � I>39 � �addsprite("spades",�I,"black_"+�(I-39),18,70) L3 ș"OS_SpriteOp",256+27,sprite%,�I,tempsprite$ V0 ș"OS_SpriteOp",256+33,sprite%,tempsprite$ `0 ș"OS_SpriteOp",256+47,sprite%,tempsprite$ j5 ș"OS_SpriteOp",256+35,sprite%,�I,tempsprite$,1 t� I ~;� Now to finish off the cards by adding the decoration. �� I=1 � 52 � tempval%=�cardval(I) � � I<14 � � � tempval%<11 � �1 tempsuit$="heart":tempsprite$="m_heart" �? ș"OS_SpriteOp",256+27,sprite%,"m_heart",tempsprite2$ �5 ș"OS_SpriteOp",256+33,sprite%,tempsprite2$ � � � Ȏ tempval% � �+ � 11: tempsprite$="jack_hearts" �, � 12: tempsprite$="queen_hearts" �+ � 13: tempsprite$="king_hearts" � A ș"OS_SpriteOp",256+27,sprite%,tempsprite$,tempsprite2$ 5 ș"OS_SpriteOp",256+33,sprite%,tempsprite2$ 5 ș"OS_SpriteOp",256+47,sprite%,tempsprite2$ (C ș"OS_SpriteOp",256+35,sprite%,tempsprite$,tempsprite2$,1 2 � < � F � I>13 � I<27 � P � tempval%<11 � Z/ tempsuit$="diam":tempsprite$="m_diam" d> ș"OS_SpriteOp",256+27,sprite%,"m_diam",tempsprite2$ n5 ș"OS_SpriteOp",256+33,sprite%,tempsprite2$ x � � Ȏ tempval% � �) � 11: tempsprite$="jack_diam" �* � 12: tempsprite$="queen_diam" �) � 13: tempsprite$="king_diam" � � �A ș"OS_SpriteOp",256+27,sprite%,tempsprite$,tempsprite2$ �5 ș"OS_SpriteOp",256+33,sprite%,tempsprite2$ �5 ș"OS_SpriteOp",256+47,sprite%,tempsprite2$ �C ș"OS_SpriteOp",256+35,sprite%,tempsprite$,tempsprite2$,1 � � � � � � I>26 � I<40 � � � tempval%<11 � / tempsuit$="club":tempsprite$="m_club" > ș"OS_SpriteOp",256+27,sprite%,"m_club",tempsprite2$ 5 ș"OS_SpriteOp",256+33,sprite%,tempsprite2$ " � , Ȏ tempval% � 6* � 11: tempsprite$="jack_clubs" @+ � 12: tempsprite$="queen_clubs" J* � 13: tempsprite$="king_clubs" T � ^A ș"OS_SpriteOp",256+27,sprite%,tempsprite$,tempsprite2$ h5 ș"OS_SpriteOp",256+33,sprite%,tempsprite2$ r5 ș"OS_SpriteOp",256+47,sprite%,tempsprite2$ |C ș"OS_SpriteOp",256+35,sprite%,tempsprite$,tempsprite2$,1 � � � � � � I>39 � � � tempval%<11 � �1 tempsuit$="spade":tempsprite$="m_spade" �? ș"OS_SpriteOp",256+27,sprite%,"m_spade",tempsprite2$ �5 ș"OS_SpriteOp",256+33,sprite%,tempsprite2$ � � � Ȏ tempval% � �+ � 11: tempsprite$="jack_spades" �, � 12: tempsprite$="queen_spades" �+ � 13: tempsprite$="king_spades" � � A ș"OS_SpriteOp",256+27,sprite%,tempsprite$,tempsprite2$ 5 ș"OS_SpriteOp",256+33,sprite%,tempsprite2$ 5 ș"OS_SpriteOp",256+47,sprite%,tempsprite2$ &C ș"OS_SpriteOp",256+35,sprite%,tempsprite$,tempsprite2$,1 0 � : � D Ȏ tempval% � N � 1: X/ �drawsprite(�I,"lg_"+tempsuit$,28,55) b � 2: l, �drawsprite(�I,tempsprite$,68,136) v, �drawsprite(�I,tempsprite2$,68,52) � � 3: �, �drawsprite(�I,tempsprite$,68,146) �+ �drawsprite(�I,tempsprite$,68,94) �, �drawsprite(�I,tempsprite2$,68,42) � � 4: �, �drawsprite(�I,tempsprite$,43,136) �, �drawsprite(�I,tempsprite$,93,136) �, �drawsprite(�I,tempsprite2$,43,52) �, �drawsprite(�I,tempsprite2$,93,52) � � 5: �+ �drawsprite(�I,tempsprite$,68,94) �, �drawsprite(�I,tempsprite$,43,136) �, �drawsprite(�I,tempsprite$,93,136) , �drawsprite(�I,tempsprite2$,43,52) , �drawsprite(�I,tempsprite2$,93,52) � 6: , �drawsprite(�I,tempsprite$,43,136) *, �drawsprite(�I,tempsprite$,93,136) 4+ �drawsprite(�I,tempsprite$,43,94) >+ �drawsprite(�I,tempsprite$,93,94) H, �drawsprite(�I,tempsprite2$,43,52) R, �drawsprite(�I,tempsprite2$,93,52) \ � 7: f, �drawsprite(�I,tempsprite$,43,136) p, �drawsprite(�I,tempsprite$,93,136) z, �drawsprite(�I,tempsprite$,68,116) �+ �drawsprite(�I,tempsprite$,43,94) �+ �drawsprite(�I,tempsprite$,93,94) �, �drawsprite(�I,tempsprite2$,43,52) �, �drawsprite(�I,tempsprite2$,93,52) � � 8: �, �drawsprite(�I,tempsprite$,43,148) �, �drawsprite(�I,tempsprite$,93,148) �, �drawsprite(�I,tempsprite$,43,112) �, �drawsprite(�I,tempsprite$,93,112) �, �drawsprite(�I,tempsprite2$,43,76) �, �drawsprite(�I,tempsprite2$,93,76) �, �drawsprite(�I,tempsprite2$,43,40) �, �drawsprite(�I,tempsprite2$,93,40) � 9: , �drawsprite(�I,tempsprite$,43,148) , �drawsprite(�I,tempsprite$,93,148) $, �drawsprite(�I,tempsprite$,43,112) ., �drawsprite(�I,tempsprite$,93,112) 8+ �drawsprite(�I,tempsprite$,68,94) B, �drawsprite(�I,tempsprite2$,43,76) L, �drawsprite(�I,tempsprite2$,93,76) V, �drawsprite(�I,tempsprite2$,43,40) `, �drawsprite(�I,tempsprite2$,93,40) j � 10: t, �drawsprite(�I,tempsprite$,43,148) ~, �drawsprite(�I,tempsprite$,93,148) �, �drawsprite(�I,tempsprite$,68,130) �, �drawsprite(�I,tempsprite$,43,112) �, �drawsprite(�I,tempsprite$,93,112) �, �drawsprite(�I,tempsprite2$,43,76) �, �drawsprite(�I,tempsprite2$,93,76) �, �drawsprite(�I,tempsprite2$,68,58) �, �drawsprite(�I,tempsprite2$,43,40) �, �drawsprite(�I,tempsprite2$,93,40) � � 11,12,13: �+ �drawsprite(�I,tempsprite$,38,36) � � �A � tempval%<11 � ș"OS_SpriteOp",256+25,sprite%,tempsprite2$ � I � ,��drawsprite(template$,add$,xpos%,ypos%) (;� This procedure will add the sprite add$ to the sprite 2.� spritename$ at the position xpos%,ypos%. <.ș"OS_SpriteOp",256+60,sprite%,template$,0 F5ș"OS_SpriteOp",256+34,sprite%,add$,xpos%,ypos%,8 Pș"OS_SpriteOp",256+60,0 Z� d n1��addsprite(template$,temp$,add$,xpos%,ypos%) x;� This procedure will add the sprite add$ to the sprite �D� spritename$ at the position xpos%,ypos%, creating a new sprite �"� called temp$ in the process. �2ș"OS_SpriteOp",256+27,sprite%,template$,temp$ �*ș"OS_SpriteOp",256+60,sprite%,temp$,0 �5ș"OS_SpriteOp",256+34,sprite%,add$,xpos%,ypos%,0 �ș"OS_SpriteOp",256+60,0 �� � ���wimp_poll �<� This is the heart of the programme. Polls the WIMP and �:� performs actions dependent on the events that occur. �� outline%,A%,B%,X%,Y% �ȕ � quit% � outline% 20 !outline%=main% ș "WimpExt_PrePoll" "1 ș "Wimp_Poll",%11100000110001,q% � reason% ,4 ș "WimpExt_Action",task%,q%,reason% � reason% 6 Ȏ reason% � @) � 1 : ș "WimpExt_AutoRedraw",,q% J) � 2 : ș "WimpExt_OpenLinked",,q% T* � 3 : ș "WimpExt_CloseLinked",,q% ^ � 6 : h � q%!12=-2 � r � q%!8=2 � |8 ș "WimpExt_CreateMenu",,imenu%,!q%-64,250 � menu%=imenu% � � � � q%!8=4 � �newgame � � �" � q%!12=main% � q%!8=2 � �4 ș "WimpExt_CreateMenu",,gmenu%,!q%,q%!4 � menu%=gmenu% � � �- � q%!12=main% � (q%!8=4 � q%!8=1) � � Ȏ game% � �. � 1 : �osmosis_mouseclick(q%!16) �E � 2 : � deal%=4 � �newgame � �pyramid_mouseclick(q%!16) � � � � 9 : Ȏ menu% � & � imenu%: 0 Ȏ !q% � :A � 0 : ș"WimpExt_OpenDialogue",,,info%,!q%-64,184 D& � 1 : game%=1:�newgame N � 2 : quit%=� X � b � gmenu%: l Ȏ !q% � v � 0 : � Ȏ game% � �' � 1 : �osmosis_undo �' � 2 : �pyramid_undo � � � � 1 : � Ȏ game% � �" � 1 : �newgame � � 2 : � deal%=4 �$ �pyramid_score � �newgame � � � � 2 : game%=1 �newgame � 3 : game%=2 * �newgame 4 � 4 : quit%=� > � H � R � 17,18 : \ Ȏ q%!16 � f � 0 : quit%=� p � z � �� �� � � ��newgame �&� Calls the relevant game routine. �-ș"Wimp_ForceRedraw",main%,0,-1100,1480,0 �Ȏ game% � � � 1 : �osmosis � � 2 : �pyramid �� � played%=� �� � ��cleanupwindow(window%) 2� Deletes all icons from the specified window. � delete%,I $� iconnumber%>1 � . � delete% 8 8 !delete%=window% B � I=1 � iconnumber% L delete%!4=I V$ ș"Wimp_DeleteIcon",,delete% ` � I j� t� ~ � ��shuffle �B� This procedure will set up the pack of 52 cards and ensure a �� random distribution. ��dim �!� shuffle1%,shuffle2%,I,seed% �seed%=�(-�) �� I=1 � 52 � pack%(I)=I �� I �� I=1 � 100 � � � shuffle1%=�(52) shuffle2%=�(52) � shuffle1%<>shuffle2% * Ȕ pack%(shuffle1%),pack%(shuffle2%) � I (� 2 < ��dim F� Sets up game arrays. P� played%=� � � pack%(52) ZȎ game% � d � 1 : n � osmodim%=� � x� � osmopack%(35),osmowaste%(35),osmopile1%(4),osmopile2%(4),osmopile3%(4),osmopile4%(4),osmopile1han%(4),osmopile2han%(4),osmopile3han%(4),osmopile4han%(4),osmofound1%(13),osmofound2%(13),osmofound3%(13),osmofound4%(13) �� � osmofound1han%(13),osmofound2han%(13),osmofound3han%(13),osmofound4han%(13),osmofound1val%(13),osmofound2val%(13),osmofound3val%(13),osmofound4val%(13) � osmodim%=� � � � � 2 : � � pyrdim%=� � �_ � pyrlay%(28),pyrlayhan%(28),pyrpack%(24),pyrwaste%(24),pyrfound%(52),pyrdeleted%(28) � pyrdim%=� � � �� �� � �@ݤcreateicon(win%,name$,text$,xmin%,ymin%,xmax%,ymax%,flag%) �5� iconhandle%,name%,slength%,tlength%,icon%,text% text$+=�(0) !tlength%=(�(text$)+4) � (� 3) !slength%=(�(name$)+4) � (� 3) " � icon% 36+tlength%+slength% ,text%=icon%+36+slength% 6$text%=text$ @name%=icon%+36 J/� name$="" � $name%="r5" � $name%="s"+name$ Ticon%!0=win% ^icon%!4=xmin% hicon%!8=ymin% ricon%!12=xmax% |icon%!16=ymax% �icon%!20=flag% �icon%!24=text% �icon%!28=name% �icon%!32=tlength% �,ș"Wimp_CreateIcon",,icon% � iconhandle% �iconnumber%=iconnumber%+1 �=iconhandle% � �,��seticonsprite(window%,� icon%,sprite$) �>� Sets the sprite of the given indirected text+sprite icon �� to sprite$. �<� block%,block2%,block3%,test$,I,xmin%,ymin%,xmax%,ymax% �$� block% 40,block2% 40,block3% 8 !block%=window% block%!4=icon% !block2%=window% &block2%!4=icon% 0+ș"Wimp_GetIconState",,block% � ,block% : ș"Wimp_DeleteIcon",,block2% D$block3%="s"+sprite$ N� block2% 36 X!block2%=window% b� I=4 � 32 � 4 l block2%!I=block%!(I+4) v� I �block2%!28=block3% �(ș"Wimp_CreateIcon",,block2% � icon% �xmin%=block2%!4 �ymin%=block2%!8 �xmax%=block2%!12 �ymax%=block2%!16 �8ș"Wimp_ForceRedraw",window%,xmin%,ymin%,xmax%,ymax% �� � �ݤcardval(name%) �?� This function will return the value of the card (i.e. the �� number shown on it) � � val% *ș"WimpExt_Divide",,,name%,13 � ,,val% � val%=0 � val%=13 =val% *��blankicon(window%,icon%) 4:� This procedure will remove the icon from the screen. >� block% H� block% 8 R!block%=window% \block%!4=icon% f$�seticonsprite(window%,icon%,"") p� z � ��osmosis �0ș"WimpExt_SetWindowTitle",,,main%,"Osmosis" �8� played%=� � iconnumber%<>0 � �cleanupwindow(main%) ��shuffle ��osmosis_deal ��osmosis_layout �� � ���osmosis_deal �>� This procedure will deal out the cards into the relevant �1� arrays and lay out the cards in the window. �� I � � I=1 � 4 osmopile1%(I)=pack%(I) osmopile2%(I)=pack%(I+4) osmopile3%(I)=pack%(I+8) $ osmopile4%(I)=pack%(I+12) .� I 8� I=1 � 13 B osmofound1%(I)=0 L osmofound2%(I)=0 V osmofound3%(I)=0 ` osmofound4%(I)=0 j� I tosmofound1%(1)=pack%(17) ~� I=1 � 35 � osmopack%(I)=pack%(I+17) �� I �� I=1 � 35 � osmowaste%(I)=0 �� I �Fș"WimpExt_Divide",,,osmofound1%(1),13 � suit1%,,osmofound1val%(1) �suit1%=suit1%+1 �� osmofound1val%(1)=0 � � suit1%=suit1%-1 � osmofound1val%(1)=13 �� �suit2%=0 suit3%=0 suit4%=0 � (��osmosis_layout 2&� Sets out the cards for the game. < � I,left% F$ș "WimpExt_OpenWindowTop",main% Ptop%=-10:left%=10 Z� I=4 � 2 � -1 db osmopile1han%(I)=�createicon(main%,"back","",left%,top%-208,left%+158,top%,%11000100011011) nf osmopile2han%(I)=�createicon(main%,"back","",left%,top%-426,left%+158,top%-218,%11000100011011) xf osmopile3han%(I)=�createicon(main%,"back","",left%,top%-644,left%+158,top%-436,%11000100011011) �f osmopile4han%(I)=�createicon(main%,"back","",left%,top%-862,left%+158,top%-654,%11000100011011) � left%=left%+30 �� I �gosmopile1han%(1)=�createicon(main%,�osmopile1%(1),"",left%,top%-208,left%+158,top%,%11000100011011) �kosmopile2han%(1)=�createicon(main%,�osmopile2%(1),"",left%,top%-426,left%+158,top%-218,%11000100011011) �kosmopile3han%(1)=�createicon(main%,�osmopile3%(1),"",left%,top%-644,left%+158,top%-436,%11000100011011) �kosmopile4han%(1)=�createicon(main%,�osmopile4%(1),"",left%,top%-862,left%+158,top%-654,%11000100011011) �Xosmopackhan%=�createicon(main%,"back","",572,top%-1080,730,top%-872,%11000100011011) �[osmowastehan%=�createicon(main%,"nocard","",750,top%-1080,908,top%-872,%11000100011011) �left1%=308 �fosmofound1han%(1)=�createicon(main%,�osmofound1%(1),"",left1%,top%-208,left1%+158,top%,%100011011) �+found1%=1:found2%=0:found3%=0:found4%=0 �left1%=left1%+70 $left2%=308:left3%=308:left4%=308 top1%=top% 3top2%=top1%-218:top3%=top2%-218:top4%=top3%-218 "'turn1%=�:turn2%=�:turn3%=�:turn4%=� ,/turned1%=�:turned2%=�:turned3%=�:turned4%=� 6� @ J��osmosis_mouseclick(icon%) T8� Processes mouse clicks in the osmosis main window. ^+� First set up the nexessary variables. hn� click%,name$,name%,iconsuit%,I,J,cardvalue%,tag%,hole$,lay%,empty%,iconhandle%,empty%,cardmoved%,shaded% rBtag%=�:lay%=�:cardmoved%=�:turn1%=�:turn2%=�:turn3%=�:turn4%=� |� click% 40 �!click%=main% �click%!4=icon% �+ș"Wimp_GetIconState",,click% � ,click% �name$=$click%!32 �name$=�name$,2) �name%=�name$ �S� icon%=0 � iconsuit%=0 � ș"WimpExt_Divide",,,name%,13 � iconsuit%,,cardvalue% �iconsuit%=iconsuit%+1 �� cardvalue%=0 � � iconsuit%=iconsuit%-1 � cardvalue%=13 �� �� Now process the event. �� name%<>0 � (icon%=osmopile1han%(1) � icon%=osmopile2han%(1) � icon%=osmopile3han%(1) � icon%=osmopile4han%(1) � icon%=osmowastehan%) � Ȏ iconsuit% � � suit1% : & found1%=found1%+1 0j osmofound1han%(found1%)=�createicon(main%,name$,"",left1%,top1%-208,left1%+158,top1%,%100011011) : left1%=left1%+70 D$ osmofound1%(found1%)=name% N, osmofound1val%(found1%)=cardvalue% X@ �osmosis_movecard(icon%,osmofound1han%(found1%),name$) b cardmoved%=� l) � osmofound1%(13)<>0 � turn1%=� v � suit2% : � � I=1 � found1% �3 � cardvalue%=osmofound1val%(I) � tag%=� � � I � � tag%=� � � found2%=found2%+1 �l osmofound2han%(found2%)=�createicon(main%,name$,"",left2%,top2%-208,left2%+158,top2%,%100011011) � left2%=left2%+70 �& osmofound2%(found2%)=name% �. osmofound2val%(found2%)=cardvalue% �B �osmosis_movecard(icon%,osmofound2han%(found2%),name$) � cardmoved%=� � � �) � osmofound2%(13)<>0 � turn2%=� � suit3% : � I=1 � found2% 3 � cardvalue%=osmofound2val%(I) � tag%=� � I * � tag%=� � 4 found3%=found3%+1 >l osmofound3han%(found3%)=�createicon(main%,name$,"",left3%,top3%-208,left3%+158,top3%,%100011011) H left3%=left3%+70 R& osmofound3%(found3%)=name% \. osmofound3val%(found3%)=cardvalue% fB �osmosis_movecard(icon%,osmofound3han%(found3%),name$) p cardmoved%=� z � �) � osmofound3%(13)<>0 � turn3%=� � � suit4% : � � I=1 � found3% �3 � cardvalue%=osmofound3val%(I) � tag%=� � � I � � tag%=� � � found4%=found4%+1 �l osmofound4han%(found4%)=�createicon(main%,name$,"",left4%,top4%-208,left4%+158,top4%,%100011011) � left4%=left4%+70 �& osmofound4%(found4%)=name% �. osmofound4val%(found4%)=cardvalue% �B �osmosis_movecard(icon%,osmofound4han%(found4%),name$) � cardmoved%=� � ) � osmofound4%(13)<>0 � turn4%=� � $ � iconsuit%<>suit1% � . � osmofound2%(1)=0 � 8* � cardvalue%=osmofound1val%(1) � B osmofound2%(1)=name% Lf osmofound2han%(1)=�createicon(main%,name$,"",left2%,top2%-208,left2%+158,top2%,%100011011) V left2%=left2%+70 ` suit2%=iconsuit% j< �osmosis_movecard(icon%,osmofound2han%(1),name$) t found2%=1 ~ cardmoved%=� � � � � � � osmofound3%(1)=0 � �, � cardvalue%=osmofound1val%(1) � �" osmofound3%(1)=name% �h osmofound3han%(1)=�createicon(main%,name$,"",left3%,top3%-208,left3%+158,top3%,%100011011) � left3%=left3%+70 � suit3%=iconsuit% �> �osmosis_movecard(icon%,osmofound3han%(1),name$) � cardmoved%=� � found3%=1 � � � � osmofound4%(1)=0 � . � cardvalue%=osmofound1val%(1) � $ osmofound4%(1)=name% (j osmofound4han%(1)=�createicon(main%,name$,"",left4%,top4%-208,left4%+158,top4%,%100011011) 2 left4%=left4%+70 < suit4%=iconsuit% F@ �osmosis_movecard(icon%,osmofound4han%(1),name$) P cardmoved%=� Z found4%=1 d � n � x � � � � � � � cardmoved%=� � �! empty%=�osmosis_emptypile � � empty%<>0 � � cardmoved%=� �/ �osmosis_movecard(icon%,empty%,name$) � Ȏ empty% � �4 � osmopile1han%(1) : osmopile1%(1)=name% �4 � osmopile2han%(1) : osmopile2%(1)=name% �4 � osmopile3han%(1) : osmopile3%(1)=name% �4 � osmopile4han%(1) : osmopile4%(1)=name% � � � � � "� icon%=osmopackhan% � , lastfrom%=osmopackhan% 6 � osmopack%(1)=0 � @ lastturn%=0 J � I=1 � 35 T' osmopack%(I)=osmowaste%(36-I) ^ � I h � I=1 � 35 r osmowaste%(I)=0 | � I � ȕ osmopack%(1)=0 � � I=1 � 34 �' osmopack%(I)=osmopack%(I+1) � � I � osmopack%(35)=0 � � �1 �seticonsprite(main%,osmopackhan%,"back") �4 �seticonsprite(main%,osmowastehan%,"nocard") � � � � osmopack%(3)=0 � � � osmopack%(2)=0 � � � I=34 � 1 � -1 �+ osmowaste%(I+1)=osmowaste%(I) � I & osmowaste%(1)=osmopack%(1) osmopack%(1)=0 & lastturn%=1 0 � : � I=33 � 1 � -1 D+ osmowaste%(I+2)=osmowaste%(I) N � I X& osmowaste%(2)=osmopack%(1) b& osmowaste%(1)=osmopack%(2) l) osmopack%(1)=0:osmopack%(2)=0 v lastturn%=2 � � � � � � I=32 � 1 � -1 �) osmowaste%(I+3)=osmowaste%(I) � � I �$ osmowaste%(3)=osmopack%(1) �$ osmowaste%(2)=osmopack%(2) �$ osmowaste%(1)=osmopack%(3) � � I=1 � 32 �' osmopack%(I)=osmopack%(I+3) � � I � � I=33 � 35 � osmopack%(I)=0 � I lastturn%=3 � � osmowaste%(1)=0 � *6 �seticonsprite(main%,osmowastehan%,"nocard") 4 � >< �seticonsprite(main%,osmowastehan%,�osmowaste%(1)) H � RF � osmopack%(1)=0 � �seticonsprite(main%,osmopackhan%,"nocard") \ � fcardmoved%=� p� z� turn1%=� � � � I=1 � 13 �6 �seticonsprite(main%,osmofound1han%(I),"back") � � I � turn1%=�:turned1%=� �� �� turn2%=� � � � I=1 � 13 �6 �seticonsprite(main%,osmofound2han%(I),"back") � � I � turn2%=�:turned2%=� �� �� turn3%=� � � � I=1 � 13 6 �seticonsprite(main%,osmofound3han%(I),"back") � I turn3%=�:turned3%=� $� .� turn4%=� � 8 � I=1 � 13 B6 �seticonsprite(main%,osmofound4han%(I),"back") L � I V turn4%=�:turned4%=� `� j� cardmoved%=� � t2 ș"WimpExt_ShadeEntry",,gmenu%,0,0 � shaded% ~6 � shaded%=0 � ș"WimpExt_ShadeEntry",,gmenu%,0,0 �� �� icon%=0 � �newgame �� � �/��osmosis_movecard(startloc%,endloc%,name$) �=� This procedure performs movement of a card, knowing its �>� initial location, including moving cards up in the pile. �8lastfrom%=startloc%:lastto%=endloc%:lastcard%=�name$ �Ȏ startloc% � � � osmopile1han%(1) : � � I=1 � 3 �' osmopile1%(I)=osmopile1%(I+1) � I osmopile1%(4)=0 = �seticonsprite(main%,osmopile1han%(1),�osmopile1%(1)) + �seticonsprite(main%,endloc%,name$) ( � I=2 � 4 2H � osmopile1%(I)=0 � �seticonsprite(main%,osmopile1han%(I),"0") < � I F � osmopile2han%(1) : P � I=1 � 3 Z' osmopile2%(I)=osmopile2%(I+1) d � I n osmopile2%(4)=0 x= �seticonsprite(main%,osmopile2han%(1),�osmopile2%(1)) �+ �seticonsprite(main%,endloc%,name$) � � I=2 � 4 �H � osmopile2%(I)=0 � �seticonsprite(main%,osmopile2han%(I),"0") � � I � � osmopile3han%(1) : � � I=1 � 3 �' osmopile3%(I)=osmopile3%(I+1) � � I � osmopile3%(4)=0 �= �seticonsprite(main%,osmopile3han%(1),�osmopile3%(1)) �+ �seticonsprite(main%,endloc%,name$) � � I=2 � 4 �H � osmopile3%(I)=0 � �seticonsprite(main%,osmopile3han%(I),"0") � I � osmopile4han%(1) : � I=1 � 3 "' osmopile4%(I)=osmopile4%(I+1) , � I 6 osmopile4%(4)=0 @= �seticonsprite(main%,osmopile4han%(1),�osmopile4%(1)) J+ �seticonsprite(main%,endloc%,name$) T � I=2 � 4 ^H � osmopile4%(I)=0 � �seticonsprite(main%,osmopile4han%(I),"0") h � I r � osmowastehan% : | � I=1 � 34 �' osmowaste%(I)=osmowaste%(I+1) � � I � osmowaste%(35)=0 �A � osmowaste%(1)=0 � hole$="nocard" � hole$=�osmowaste%(1) �1 �seticonsprite(main%,osmowastehan%,hole$) �+ �seticonsprite(main%,endloc%,name$) �� �� � �ݤosmosis_emptypile �D� Checks to see if there are any empty piles, returns the handle �<� of the first empty pile it encounters, else returns 0. �)� osmopile1%(1)=0 � =osmopile1han%(1) )� osmopile2%(1)=0 � =osmopile2han%(1) )� osmopile3%(1)=0 � =osmopile3han%(1) )� osmopile4%(1)=0 � =osmopile4han%(1) &=0 0 :��osmosis_undo D7� This procedure will undo the last move in Osmosis N � from%,I Xfrom%=0 b9� lastfrom%=osmopile1han%(1) � from%=osmopile1han%(1) l9� lastfrom%=osmopile2han%(1) � from%=osmopile2han%(1) v9� lastfrom%=osmopile3han%(1) � from%=osmopile3han%(1) �9� lastfrom%=osmopile4han%(1) � from%=osmopile4han%(1) �3� lastfrom%=osmowastehan% � from%=osmowastehan% �&ș"WimpExt_ShadeEntry",,gmenu%,0,1 �Ȏ lastfrom% � � � osmopackhan% : � Ȏ lastturn% � � � 0 : � � I=1 � 35 �+ osmowaste%(I)=osmopack%(36-I) � � I � � I=1 � 35 � osmopack%(I)=0 � � I ! ȕ osmowaste%(1)=0 ! � I=1 � 34 !- osmowaste%(I)=osmowaste%(I+1) ! � I !* osmowaste%(35)=0 !4 � !>7 �seticonsprite(main%,osmopackhan%,"nocard") !H> �seticonsprite(main%,osmowastehan%,�osmowaste%(1)) !R � 1 : !\ � I=34 � 1 � -1 !f) osmopack%(I+1)=osmopack%(I) !p � I !z& osmopack%(1)=osmowaste%(1) !� � I=1 � 34 !�+ osmowaste%(I)=osmowaste%(I+1) !� � I !�> �seticonsprite(main%,osmowastehan%,�osmowaste%(1)) !�5 �seticonsprite(main%,osmopackhan%,"back") !� � 2 : !� � I=33 � 1 � -1 !�) osmopack%(I+2)=osmopack%(I) !� � I !�& osmopack%(2)=osmowaste%(1) !�& osmopack%(1)=osmowaste%(2) !� � I=1 � 33 !�+ osmowaste%(I)=osmowaste%(I+2) " � I "- osmowaste%(34)=0:osmowaste%(35)=0 "> �seticonsprite(main%,osmowastehan%,�osmowaste%(1)) "$5 �seticonsprite(main%,osmopackhan%,"back") ". � 3 : "8 � I=32 � 1 � -1 "B) osmopack%(I+3)=osmopack%(I) "L � I "V& osmopack%(3)=osmowaste%(1) "`& osmopack%(2)=osmowaste%(2) "j& osmopack%(1)=osmowaste%(3) "t � I=1 � 32 "~+ osmowaste%(I)=osmowaste%(I+3) "� � I "� � I=33 � 35 "� osmowaste%(I)=0 "� � I "� � osmowaste%(1)=0 � "�: �seticonsprite(main%,osmowastehan%,"nocard") "� � "�@ �seticonsprite(main%,osmowastehan%,�osmowaste%(1)) "� � "� � "� � from% : "�� � lastto%=osmofound1han%(found1%) � lastto%=osmofound2han%(found2%) � lastto%=osmofound3han%(found3%) � lastto%=osmofound4han%(found4%) � �blankicon(main%,lastto%) # Ȏ from% � # � osmopile1han%(1) : # � I=4 � 2 � -1 #+ osmopile1%(I)=osmopile1%(I-1) #(P � osmopile1%(I)<>0 � �seticonsprite(main%,osmopile1han%(I),"back") #2 � I #<# osmopile1%(1)=lastcard% #F � osmopile2han%(1) : #P � I=4 � 2 � -1 #Z+ osmopile2%(I)=osmopile2%(I-1) #dP � osmopile2%(I)<>0 � �seticonsprite(main%,osmopile2han%(I),"back") #n � I #x# osmopile2%(1)=lastcard% #� � osmopile3han%(1) : #� � I=4 � 2 � -1 #�+ osmopile3%(I)=osmopile3%(I-1) #�P � osmopile3%(I)<>0 � �seticonsprite(main%,osmopile3han%(I),"back") #� � I #�# osmopile3%(1)=lastcard% #� � osmopile4han%(1) : #� � I=4 � 2 � -1 #�+ osmopile4%(I)=osmopile4%(I-1) #�P � osmopile4%(I)<>0 � �seticonsprite(main%,osmopile4han%(I),"back") #� � I #�# osmopile4%(1)=lastcard% #� � osmowastehan% : $ � I=35 � 2 � -1 $+ osmowaste%(I)=osmowaste%(I-1) $ � I $"# osmowaste%(1)=lastcard% $, � $6 Ȏ lastto% � $@% � osmofound1han%(found1%) : $J. found1%=found1%-1:left1%=left1%-70 $T � turned1%=� � $^ � I=1 � 12 $hG �seticonsprite(main%,osmofound1han%(I),�osmofound1%(I)) $r � I $| � $�% � osmofound2han%(found2%) : $�. found2%=found2%-1:left2%=left2%-70 $� � turned2%=� � $� � I=1 � 12 $�G �seticonsprite(main%,osmofound2han%(I),�osmofound2%(I)) $� � I $� � $�% � osmofound3han%(found3%) : $�. found3%=found3%-1:left3%=left3%-70 $� � turned3%=� � $� � I=1 � 12 $�G �seticonsprite(main%,osmofound3han%(I),�osmofound3%(I)) $� � I % � %% � osmofound4han%(found4%) : %. found4%=found4%-1:left4%=left4%-70 %& � turned4%=� � %0 � I=1 � 12 %:G �seticonsprite(main%,osmofound4han%(I),�osmofound4%(I)) %D � I %N � %X � osmopile1han%(1) : %b osmopile1%(1)=0 %l6 �seticonsprite(main%,osmopile1han%(1),"0") %v � osmopile2han%(1) : %� osmopile2%(1)=0 %�6 �seticonsprite(main%,osmopile2han%(1),"0") %� � osmopile3han%(1) : %� osmopile3%(1)=0 %�6 �seticonsprite(main%,osmopile3han%(1),"0") %� � osmopile4han%(1) : %� osmopile4%(1)=0 %�6 �seticonsprite(main%,osmopile4han%(1),"0") %� � %�. �seticonsprite(main%,from%,�lastcard%) %�� %�� %� & ��pyramid &#� Sets up the game for pyramid. &0ș"WimpExt_SetWindowTitle",,,main%,"Pyramid" & 0ș"WimpExt_ShadeEntry",,gmenu%,0,0 � shaded% &*4� shaded%=1 � ș"WimpExt_ShadeEntry",,gmenu%,0,1 &48� played%=� � iconnumber%<>0 � �cleanupwindow(main%) &>�shuffle &H�pyramid_deal &R�pyramid_layout &\� &f &p��pyramid_deal &z� Sets up the game arrays. &�� I &�� I=1 � 28 &� pyrlay%(I)=pack%(I) &�� I &�� I=1 � 24 &� pyrpack%(I)=pack%(I+28) &� pyrwaste%(I)=0 &�� I &�� I=1 � 52 &� pyrfound%(I)=0 &�� I &�� &� '��pyramid_layout '(� Sets up the screen with the cards. '� left%,top%,I '$$ș "WimpExt_OpenWindowTop",main% '.left%=661:top%=-10 '8Wpyrlayhan%(1)=�createicon(main%,�pyrlay%(1),"",left%,top%-208,left%+158,top%,12571) 'Bleft%=left%-100 'Ltop%=top%-125 'V � I=2 � 3 '`Y pyrlayhan%(I)=�createicon(main%,�pyrlay%(I),"",left%,top%-208,left%+158,top%,12571) 'j left%=left%+200 't� I '~!left%=left%-500:top%=top%-125 '� � I=4 � 6 '�Y pyrlayhan%(I)=�createicon(main%,�pyrlay%(I),"",left%,top%-208,left%+158,top%,12571) '� left%=left%+200 '�� I '�!left%=left%-700:top%=top%-125 '�� I=7 � 10 '�Y pyrlayhan%(I)=�createicon(main%,�pyrlay%(I),"",left%,top%-208,left%+158,top%,12571) '� left%=left%+200 '�� I '�!left%=left%-900:top%=top%-125 '�� I=11 � 15 '�Y pyrlayhan%(I)=�createicon(main%,�pyrlay%(I),"",left%,top%-208,left%+158,top%,12571) ( left%=left%+200 ( � I ("left%=left%-1100:top%=top%-125 (� I=16 � 21 ((Y pyrlayhan%(I)=�createicon(main%,�pyrlay%(I),"",left%,top%-208,left%+158,top%,12571) (2 left%=left%+200 (<� I (F"left%=left%-1300:top%=top%-125 (P� I=22 � 28 (ZY pyrlayhan%(I)=�createicon(main%,�pyrlay%(I),"",left%,top%-208,left%+158,top%,12571) (d left%=left%+200 (n� I (xBpyrpackhan%=�createicon(main%,"back","",50,-258,208,-50,12571) (�Fpyrwastehan%=�createicon(main%,"nocard","",220,-258,378,-50,12571) (�Hpyrfoundhan%=�createicon(main%,"nocard","",1200,-258,1358,-50,12571) (�� I=1 � 28 (� pyrdeleted%(I)=� (�� I (�?deal%=1:selected%=�:firstcard%=0:firsticon%=0:cardsleft%=24 (�{scorehan%=�createicon(main%,"","Score : "+�score%+" in "+�pyrgames%,50,-350,300,-290,%00010111000000000000000100111101) (�fdealhan%=�createicon(main%,"","Deal : "+�deal%,50,-420,300,-360,%00010111000000000000000100111101) (�vcardslefthan%=�createicon(main%,"","Cards left : "+�cardsleft%,50,-490,300,-430,%00010111000000000000000100111101) (�9lasticon1%=-1:lasticon2%=-1:lastval1%=-1:lastval2%=-1 (�� (� (���pyramid_mouseclick(icon%) )@� This procedure processes mouseclicks in a game of Pyramid. )� Now process the event. )3� click%,I,J,play%,tempcard%,shaded%,cardmoved% )"cardmoved%=� ),#play%=�pyramid_uncovered(icon%) )67� icon%=pyrwastehan% � icon%=pyrfoundhan% � play%=� )@� click% 40 )J!click%=main% )Tclick%!4=icon% )^+ș"Wimp_GetIconState",,click% � ,click% )hname$=$click%!32 )rname$=�name$,2) )|name%=�name$ )�� name%<>0 � )� cardvalue%=�cardval(name%) )�� )� cardvalue%=-1 )�� )�:� icon%=pyrpackhan% � cardvalue%=�cardval(pyrpack%(1)) )�� icon%<>0 � )� � selected%=� � )�H lasticon1%=icon%:lastval1%=cardvalue%:lasticon2%=-1:lastval2%=-1 )� � )�/ � selected%=� � cardvalue%+lastval1%=13 � )�- lasticon2%=icon%:lastval2%=cardvalue% )� � *� *� Now process the click. *Ȏ icon% � *& � 0 : *0 score%=0:pyrgames%=0 *: �newgame *D � pyrpackhan% : *N cardmoved%=� *X � pyrpack%(1)=0 � *b � I=1 � 24 *l' pyrpack%(I)=pyrwaste%(25-I) *v � I *� � I=1 � 24 *� pyrwaste%(I)=0 *� � I *� � pyrpack%(1)=0 � *� � *� � I=1 � 23 *�) pyrpack%(I)=pyrpack%(I+1) *� � I *� pyrpack%(24)=0 *� � pyrpack%(1)<>0 *� � *� deal%=deal%+1 *�Q � deal%<4 � ș"WimpExt_SetIconString",,,main%,dealhan%,"Deal : "+�deal% +2 �seticonsprite(main%,pyrpackhan%,"back") +5 �seticonsprite(main%,pyrwastehan%,"nocard") + � + % � firsticon%=pyrwastehan% � +*6 ș"WimpExt_SetIcon",,,main%,pyrwastehan%,0 +41 selected%=�:firsticon%=0:firstcard%=0 +> � +H � I=24 � 2 � -1 +R' pyrwaste%(I)=pyrwaste%(I-1) +\ � I +f" pyrwaste%(1)=pyrpack%(1) +p � I=1 � 23 +z% pyrpack%(I)=pyrpack%(I+1) +� � I +� pyrpack%(24)=0 +� � pyrpack%(1)=0 � +�6 �seticonsprite(main%,pyrpackhan%,"nocard") +� � +�< �seticonsprite(main%,pyrwastehan%,�pyrwaste%(1)) +� � +�� +�� play%=� � name%<>0 � +� � selected%=� � +�+ ș"WimpExt_SetIcon",,,main%,icon%,2 +�/ � cardvalue%=13 � icon%<>pyrfoundhan% � +�- ș"WimpExt_SetIcon",,,main%,icon%,0 ,( �pyramid_movecard(icon%,name$) , � I=52 � 2 � -1 ,' pyrfound%(I)=pyrfound%(I-1) ,$ � I ,. pyrfound%(1)=name% ,8 selected%=� ,B � ,L � cardvalue%<>13 � ,VO selected%=�:firstcard%=cardvalue%:firsticon%=icon%:firstname%=name% ,` � ,j � ,t � ,~ � icon%=firsticon% � ,�- ș"WimpExt_SetIcon",,,main%,icon%,2 ,�J selected%=�:firstcard%=0:firsticon%=0:lasticon1%=-1:lastval1%=-1 ,� � ,�& � cardvalue%+firstcard%=13 � ,�' � firsticon%=pyrfoundhan% � ,�, �pyramid_movecard(icon%,name$) ,� � I=52 � 2 � -1 ,�+ pyrfound%(I)=pyrfound%(I-1) ,� � I ,� pyrfound%(1)=name% ,�8 ș"WimpExt_SetIcon",,,main%,pyrfoundhan%,0 ,�3 selected%=�:firsticon%=0:firstcard%=0 - � - 6 ș"WimpExt_SetIcon",,,main%,firsticon%,0 -8 ș"WimpExt_SetIcon",,,main%,pyrfoundhan%,0 -$ � icon%=pyrfoundhan% � -(3 �pyramid_movecard(firsticon%,name$) -2 tempcard%=name% -<' pyrfound%(1)=firstcard% -F � I=52 � 2 � -1 -P- pyrfound%(I)=pyrfound%(I-1) -Z � I -d& pyrfound%(1)=tempcard% -n= �seticonsprite(main%,pyrfoundhan%,�tempcard%) -x: ș"WimpExt_SetIcon",,,main%,pyrfoundhan%,0 -�5 selected%=�:firsticon%=0:firstcard%=0 -� � -� � I=52 � 3 � -1 -�- pyrfound%(I)=pyrfound%(I-2) -� � I -�' pyrfound%(2)=firstname% -�" pyrfound%(1)=name% -�3 �pyramid_movecard(firsticon%,name$) -�. �pyramid_movecard(icon%,name$) -�5 selected%=�:firstcard%=0:firsticon%=0 -� � -� � -� � . � . � .� ."1� deal%=4 � pyrdeleted%(1)=� � �pyramid_score .,� lasticon1%<>-1 � .62 ș"WimpExt_ShadeEntry",,gmenu%,0,0 � shaded% .@6 � shaded%=0 � ș"WimpExt_ShadeEntry",,gmenu%,0,0 .J� .T� .^ .hݤpyramid_uncovered(icon%) .r?� This function returns TRUE if the selected icon is in the .|3� layout and is uncovered, and FALSE otherwise. .� � I,temp% .�I=0:temp%=� .�� .� I=I+1 .�% � icon%=pyrlayhan%(I) � temp%=� .�� temp%=� � I=28 .�� temp%=� � I=0 .�� I=0 � =� .�4� I=1 � pyrdeleted%(2)=� � pyrdeleted%(3)=� � =� .�4� I=2 � pyrdeleted%(4)=� � pyrdeleted%(5)=� � =� .�4� I=3 � pyrdeleted%(5)=� � pyrdeleted%(6)=� � =� .�4� I=4 � pyrdeleted%(7)=� � pyrdeleted%(8)=� � =� .�4� I=5 � pyrdeleted%(8)=� � pyrdeleted%(9)=� � =� /5� I=6 � pyrdeleted%(9)=� � pyrdeleted%(10)=� � =� /6� I=7 � pyrdeleted%(11)=� � pyrdeleted%(12)=� � =� /6� I=8 � pyrdeleted%(12)=� � pyrdeleted%(13)=� � =� /&6� I=9 � pyrdeleted%(13)=� � pyrdeleted%(14)=� � =� /07� I=10 � pyrdeleted%(14)=� � pyrdeleted%(15)=� � =� /:7� I=11 � pyrdeleted%(16)=� � pyrdeleted%(17)=� � =� /D7� I=12 � pyrdeleted%(17)=� � pyrdeleted%(18)=� � =� /N7� I=13 � pyrdeleted%(18)=� � pyrdeleted%(19)=� � =� /X7� I=14 � pyrdeleted%(19)=� � pyrdeleted%(20)=� � =� /b7� I=15 � pyrdeleted%(20)=� � pyrdeleted%(21)=� � =� /l7� I=16 � pyrdeleted%(22)=� � pyrdeleted%(23)=� � =� /v7� I=17 � pyrdeleted%(23)=� � pyrdeleted%(24)=� � =� /�7� I=18 � pyrdeleted%(24)=� � pyrdeleted%(25)=� � =� /�7� I=19 � pyrdeleted%(25)=� � pyrdeleted%(26)=� � =� /�7� I=20 � pyrdeleted%(26)=� � pyrdeleted%(27)=� � =� /�7� I=21 � pyrdeleted%(27)=� � pyrdeleted%(28)=� � =� /�� I=22 � =� /�� I=23 � =� /�� I=24 � =� /�� I=25 � =� /�� I=26 � =� /�� I=27 � =� /�� I=28 � =� /�=� /� 0#��pyramid_movecard(icon%,name$) 0A� This procedure takes care of moving the card from the start 0A� location to the foundation, including moving cards round in 0 ,� piles and deleting the relevant icons. 0*� I 04,�seticonsprite(main%,pyrfoundhan%,name$) 0>cardmoved%=� 0H� icon%=pyrwastehan% � 0R � I=1 � 23 0\# pyrwaste%(I)=pyrwaste%(I+1) 0f � I 0p pyrwaste%(24)=0 0z � pyrwaste%(1)=0 � 0�3 �seticonsprite(main%,pyrwastehan%,"nocard") 0� � 0�8 �seticonsprite(main%,pyrwastehan%,�pyrwaste%(1)) 0� � 0� cardsleft%=cardsleft%-1 0�Q ș"WimpExt_SetIconString",,,main%,cardslefthan%,"Cards left : "+�cardsleft% 0�� 0� �blankicon(main%,icon%) 0� � I=1 � 28 0� � pyrlayhan%(I)=icon% � 0� pyrdeleted%(I)=� 0� pyrlay%(I)=0 0� � 1 � I 1� 1� 1$ 1.��pyramid_undo 18:� This procedure will undo the last action in Pyramid. 1B� I,temp1%,temp2% 1L&ș"WimpExt_ShadeEntry",,gmenu%,0,1 1V.� lasticon2%=-1 � lasticon1%=pyrpackhan% � 1` � pyrwaste%(1)=0 � 1j � I=1 � 24 1t% pyrwaste%(25-I)=pyrpack%(I) 1~ pyrpack%(I)=0 1� � I 1� ȕ pyrwaste%(1)=0 1� � I=1 � 24 1�' pyrwaste%(I)=pyrwaste%(I+1) 1� � I 1� � 1� deal%=deal%-1 1�C ș"WimpExt_SetIconString",,,main%,dealhan%,"Deal : "+�deal% 1�8 �seticonsprite(main%,pyrwastehan%,�pyrwaste%(1)) 1�2 �seticonsprite(main%,pyrpackhan%,"nocard") 1� � 1� � I=24 � 2 � -1 2 # pyrpack%(I)=pyrpack%(I-1) 2 � I 2 pyrpack%(1)=pyrwaste%(1) 2 � I=1 � 23 2(% pyrwaste%(I)=pyrwaste%(I+1) 22 � I 2< pyrwaste%(24)=0 2Fy � pyrwaste%(1)=0 � �seticonsprite(main%,pyrwastehan%,"nocard") � �seticonsprite(main%,pyrwastehan%,�pyrwaste%(1)) 2P0 �seticonsprite(main%,pyrpackhan%,"back") 2Z � 2d� 2n� lasticon2%=-1 � 2x � lastval1%=13 � 2�A � take the king off the foundation and put it back on the 2� � layout or waste pile. 2� temp1%=pyrfound%(1) 2� � I=1 � 51 2�% pyrfound%(I)=pyrfound%(I+1) 2� � I 2� pyrfound%(52)=0 2�# � lasticon1%=pyrwastehan% � 2� � I=24 � 2 � -1 2�' pyrwaste%(I)=pyrwaste%(I-1) 2� � I 2� pyrwaste%(1)=temp1% 2�: �seticonsprite(main%,pyrwastehan%,�pyrwaste%(1)) 3m cardsleft%=cardsleft%+1:ș"WimpExt_SetIconString",,,main%,cardslefthan%,"Cards left : "+�cardsleft% 3 � 3 I=1 3" � 3, I=I+1 36+ � I=28 � pyrlayhan%(I)=lasticon1% 3@& � pyrlayhan%(I)=lasticon1% � 3J pyrlay%(I)=temp1% 3T; �seticonsprite(main%,pyrlayhan%(I),�pyrlay%(I)) 3^ pyrdeleted%(I)=� 3h � 3r � 3| � pyrfound%(1)=0 � 3�5 �seticonsprite(main%,pyrfoundhan%,"nocard") 3� � 3�: �seticonsprite(main%,pyrfoundhan%,�pyrfound%(1)) 3� � 3� � 3�0 ș"WimpExt_SetIcon",,,main%,lasticon1%,0 3� � 3�� 3�� lastval2%<>-1 � 3�9� Take the cards and put them into temp1% and temp2%. 3�- temp2%=pyrfound%(1):temp1%=pyrfound%(2) 3�+� Shift the foundation back up 2 cards. 3� � I=1 � 50 4# pyrfound%(I)=pyrfound%(I+2) 4 � I 4D� Put special cases in - if temp1% or temp2% are the foundation, 4&>� then put it back (single procedure), using PROCmovecard. 40! � lasticon1%=pyrfoundhan% � 4:2 �seticonsprite(main%,pyrfoundhan%,�temp1%) 4D � I=52 � 2 � -1 4N% pyrfound%(I)=pyrfound%(I-1) 4X � I 4b pyrfound%(1)=temp1% 4l � 4v! � lasticon2%=pyrfoundhan% � 4�2 �seticonsprite(main%,pyrfoundhan%,�temp2%) 4� � I=52 � 2 � -1 4�% pyrfound%(I)=pyrfound%(I-1) 4� � I 4� pyrfound%(1)=temp2% 4� � 4�<� Need similar check for waste pile, to move cards down. 4�! � lasticon1%=pyrwastehan% � 4�2 �seticonsprite(main%,pyrwastehan%,�temp1%) 4� � I=24 � 2 � -1 4�% pyrwaste%(I)=pyrwaste%(I-1) 4� � I 4� pyrwaste%(1)=temp1%:cardsleft%=cardsleft%+1:ș"WimpExt_SetIconString",,,main%,cardslefthan%,"Cards left : "+�cardsleft% 5 � 5! � lasticon2%=pyrwastehan% � 52 �seticonsprite(main%,pyrwastehan%,�temp2%) 5 � I=24 � 2 � -1 5*% pyrwaste%(I)=pyrwaste%(I-1) 54 � I 5> pyrwaste%(1)=temp2%:cardsleft%=cardsleft%+1:ș"WimpExt_SetIconString",,,main%,cardslefthan%,"Cards left : "+�cardsleft% 5H � 5R9� Put temp1% back on lasticon1% and reset the sprite. 5\= � lasticon1%<>pyrfoundhan% � lasticon1%<>pyrwastehan% � 5f I=1 5p � 5z I=I+1 5�) � lasticon1%=pyrlayhan%(I) � I=28 5�3 �seticonsprite(main%,pyrlayhan%(I),�temp1%) 5�* pyrlay%(I)=temp1%:pyrdeleted%(I)=� 5� � 5�9� Put temp 2 back on lasticon2% and reset the sprite. 5�= � lasticon2%<>pyrfoundhan% � lasticon2%<>pyrwastehan% � 5� I=1 5� � 5� I=I+1 5�) � lasticon2%=pyrlayhan%(I) � I=28 5�3 �seticonsprite(main%,pyrlayhan%(I),�temp2%) 5�* pyrlay%(I)=temp2%:pyrdeleted%(I)=� 5� � 6 � pyrfound%(1)=0 � 63 �seticonsprite(main%,pyrfoundhan%,"nocard") 6 � 6$8 �seticonsprite(main%,pyrfoundhan%,�pyrfound%(1)) 6. � 68� 6B9lasticon1%=-1:lasticon2%=-1:lastval1%=-1:lastval2%=-1 6L� 6V 6`��pyramid_score 6j<� This procedure will work out the score for this match. 6t� layoutleft%,buttons% 6~'layoutleft%=0:pyrgames%=pyrgames%+1 6�� I=1 � 28 6�1 � pyrlay%(I)<>0 � layoutleft%=layoutleft%+1 6�� I 6�Ȏ deal% � 6� � 1 : score%=score%+50 6� � 2 : score%=score%+35 6� � 3 : score%=score%+20 6�% � 4 : score%=score%-layoutleft% 6�� 6�$score%=score%-cardsleft%:deal%=4 6�Tș"WimpExt_SetIconString",,,main%,scorehan%,"Score : "+�score%+" in "+�pyrgames% 6�� pyrgames%=6 � 7 � buttons% 4 7 $(buttons%+0)="Begin" 7 � score%>=0 � 7� ș"WimpExt_ControlImmediate",,2,"Pyramid","Congratulations! Your score of "+�score%+" was above par. Click 'Begin' for a new match.",buttons%,0 7( � 72� ș"WimpExt_ControlImmediate",,2,"Pyramid","Commiserations! Your score of "+�score%+" was below par. Click 'Begin' for a new match.",buttons%,0 7< � 7Fpyrgames%=0:score%=0 7P� 7Z�newgame 7d� 7n �
00000000 0d 00 0a 3d f4 20 21 4f 73 6d 6f 73 69 73 20 20 |...=. !Osmosis | 00000010 2d 20 20 41 20 44 65 73 6b 74 6f 70 20 50 61 74 |- A Desktop Pat| 00000020 69 65 6e 63 65 20 47 61 6d 65 20 62 79 20 4a 6f |ience Game by Jo| 00000030 68 6e 20 50 65 74 74 69 67 72 65 77 2e 0d 00 14 |hn Pettigrew....| 00000040 5d 76 65 72 73 69 6f 6e 24 3d 22 30 2e 39 39 22 |]version$="0.99"| 00000050 3a 67 61 6d 65 25 3d 31 3a 6f 73 6d 6f 64 69 6d |:game%=1:osmodim| 00000060 25 3d a3 3a 70 79 72 64 69 6d 25 3d a3 3a 70 6c |%=.:pyrdim%=.:pl| 00000070 61 79 65 64 25 3d a3 3a 69 63 6f 6e 6e 75 6d 62 |ayed%=.:iconnumb| 00000080 65 72 25 3d 30 3a 70 79 72 67 61 6d 65 73 25 3d |er%=0:pyrgames%=| 00000090 30 3a 73 63 6f 72 65 25 3d 30 0d 00 1e 04 0d 00 |0:score%=0......| 000000a0 28 3b f4 20 49 6e 69 74 69 61 6c 69 73 65 20 74 |(;. Initialise t| 000000b0 68 65 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 77 |he application w| 000000c0 69 74 68 20 74 68 65 20 57 49 4d 50 2c 20 69 6e |ith the WIMP, in| 000000d0 73 74 61 6c 6c 20 74 68 65 0d 00 32 2a f4 20 69 |stall the..2*. i| 000000e0 63 6f 6e 62 61 72 20 69 63 6f 6e 20 61 6e 64 20 |conbar icon and | 000000f0 6c 6f 61 64 20 74 65 6d 70 6c 61 74 65 20 66 69 |load template fi| 00000100 6c 65 2e 0d 00 3c 0e f2 77 69 6d 70 5f 69 6e 69 |le...<..wimp_ini| 00000110 74 0d 00 46 04 0d 00 50 38 f4 20 4f 70 65 6e 20 |t..F...P8. Open | 00000120 73 74 61 72 74 75 70 20 62 61 6e 6e 65 72 2c 20 |startup banner, | 00000130 73 65 74 20 75 70 20 6d 65 6e 75 73 20 61 6e 64 |set up menus and| 00000140 20 62 75 69 6c 64 20 63 61 72 64 73 2e 0d 00 51 | build cards...Q| 00000150 0c de 20 70 25 20 32 35 36 0d 00 5a 25 c8 99 22 |.. p% 256..Z%.."| 00000160 57 69 6d 70 45 78 74 5f 4f 70 65 6e 57 69 6e 64 |WimpExt_OpenWind| 00000170 6f 77 54 6f 70 22 2c 62 61 6e 6e 65 72 25 0d 00 |owTop",banner%..| 00000180 64 15 c8 99 22 57 69 6d 70 5f 50 6f 6c 6c 22 2c |d..."Wimp_Poll",| 00000190 2c 70 25 0d 00 6e 0d f2 6d 61 6b 65 6d 65 6e 75 |,p%..n..makemenu| 000001a0 0d 00 78 0f f2 62 75 69 6c 64 63 61 72 64 73 0d |..x..buildcards.| 000001b0 00 79 0f 21 70 25 3d 62 61 6e 6e 65 72 25 0d 00 |.y.!p%=banner%..| 000001c0 8c 1c c8 99 22 57 69 6d 70 5f 43 6c 6f 73 65 57 |...."Wimp_CloseW| 000001d0 69 6e 64 6f 77 22 2c 2c 70 25 0d 00 96 04 0d 00 |indow",,p%......| 000001e0 a0 24 f4 20 4e 6f 77 20 70 65 72 66 6f 72 6d 20 |.$. Now perform | 000001f0 61 20 77 69 6d 70 20 70 6f 6c 6c 20 6c 6f 6f 70 |a wimp poll loop| 00000200 20 3a 0d 00 aa 05 f5 0d 00 b4 10 20 20 f2 77 69 | :......... .wi| 00000210 6d 70 5f 70 6f 6c 6c 0d 00 be 0d fd 20 71 75 69 |mp_poll..... qui| 00000220 74 25 3d b9 0d 00 c8 21 c8 99 20 22 58 57 69 6d |t%=....!.. "XWim| 00000230 70 45 78 74 5f 43 6c 6f 73 65 44 6f 77 6e 22 2c |pExt_CloseDown",| 00000240 74 61 73 6b 25 0d 00 d2 18 c8 99 20 22 58 57 69 |task%...... "XWi| 00000250 6d 70 5f 43 6c 6f 73 65 44 6f 77 6e 22 0d 00 dc |mp_CloseDown"...| 00000260 05 e0 0d 00 e6 04 0d 00 f0 0f dd f2 77 69 6d 70 |............wimp| 00000270 5f 69 6e 69 74 0d 00 fa 3e f4 20 54 68 69 73 20 |_init...>. This | 00000280 70 72 6f 63 65 64 75 72 65 20 77 69 6c 6c 20 72 |procedure will r| 00000290 65 67 69 73 74 65 72 20 74 68 65 20 70 72 6f 67 |egister the prog| 000002a0 72 61 6d 6d 65 20 77 69 74 68 20 74 68 65 20 57 |ramme with the W| 000002b0 49 4d 50 0d 01 04 27 f4 20 61 6e 64 20 73 65 74 |IMP...'. and set| 000002c0 20 75 70 20 74 68 65 20 69 63 6f 6e 20 62 61 72 | up the icon bar| 000002d0 20 69 63 6f 6e 20 65 74 63 2e 0d 01 0e 1e ea 20 | icon etc...... | 000002e0 77 69 6e 64 6f 77 25 2c 74 65 6d 70 6c 61 74 65 |window%,template| 000002f0 25 2c 69 6e 64 69 72 25 0d 01 18 3e c8 99 20 22 |%,indir%...>.. "| 00000300 4f 53 5f 46 69 6c 65 22 2c 31 37 2c 22 3c 4f 73 |OS_File",17,"<Os| 00000310 6d 6f 73 69 73 24 44 69 72 3e 2e 53 70 72 69 74 |mosis$Dir>.Sprit| 00000320 65 73 22 20 b8 20 74 79 70 65 25 2c 2c 2c 2c 6c |es" . type%,,,,l| 00000330 65 6e 67 74 68 25 0d 01 22 4b e7 20 74 79 70 65 |ength%.."K. type| 00000340 25 3c 3e 31 20 84 20 6c 65 6e 67 74 68 25 3c 3e |%<>1 . length%<>| 00000350 34 30 33 32 34 20 8c 20 85 28 30 2c 22 49 6e 63 |40324 . .(0,"Inc| 00000360 6f 72 72 65 63 74 20 6f 72 20 6d 69 73 73 69 6e |orrect or missin| 00000370 67 20 53 70 72 69 74 65 73 20 66 69 6c 65 2e 22 |g Sprites file."| 00000380 29 0d 01 2c 3f de 20 71 25 20 32 35 36 2c 73 70 |)..,?. q% 256,sp| 00000390 72 69 74 65 25 20 32 38 35 30 30 30 2c 77 69 6e |rite% 285000,win| 000003a0 64 6f 77 25 20 38 2c 74 65 6d 70 6c 61 74 65 25 |dow% 8,template%| 000003b0 20 31 30 32 34 2c 69 6e 64 69 72 25 20 32 35 36 | 1024,indir% 256| 000003c0 0d 01 36 13 21 73 70 72 69 74 65 25 3d 32 38 35 |..6.!sprite%=285| 000003d0 30 30 30 0d 01 40 39 c8 99 20 22 4f 53 5f 53 70 |000..@9.. "OS_Sp| 000003e0 72 69 74 65 4f 70 22 2c 26 31 30 41 2c 73 70 72 |riteOp",&10A,spr| 000003f0 69 74 65 25 2c 22 3c 4f 73 6d 6f 73 69 73 24 44 |ite%,"<Osmosis$D| 00000400 69 72 3e 2e 53 70 72 69 74 65 73 22 0d 01 4a 3b |ir>.Sprites"..J;| 00000410 c8 99 20 22 57 69 6d 70 5f 49 6e 69 74 69 61 6c |.. "Wimp_Initial| 00000420 69 73 65 22 2c 33 31 30 2c 26 34 42 35 33 34 31 |ise",310,&4B5341| 00000430 35 34 2c 30 2c 22 4f 73 6d 6f 73 69 73 22 20 b8 |54,0,"Osmosis" .| 00000440 20 2c 74 61 73 6b 25 0d 01 54 38 c8 99 20 22 57 | ,task%..T8.. "W| 00000450 69 6d 70 45 78 74 5f 49 6e 69 74 69 61 6c 69 73 |impExt_Initialis| 00000460 65 22 2c 31 36 2c 74 61 73 6b 25 2c 25 31 31 31 |e",16,task%,%111| 00000470 31 30 31 30 30 31 31 2c 73 70 72 69 74 65 25 0d |1010011,sprite%.| 00000480 01 5e 31 c8 99 20 22 57 69 6d 70 45 78 74 5f 49 |.^1.. "WimpExt_I| 00000490 63 6f 6e 42 61 72 53 70 72 69 74 65 22 2c 2c 2c |conBarSprite",,,| 000004a0 2d 31 2c 22 21 6f 73 6d 6f 73 69 73 22 2c 2c 33 |-1,"!osmosis",,3| 000004b0 0d 01 68 21 77 69 6e 64 6f 77 25 21 34 3d 25 31 |..h!window%!4=%1| 000004c0 30 31 3a 77 69 6e 64 6f 77 25 21 38 3d 25 31 30 |01:window%!8=%10| 000004d0 31 0d 01 72 67 c8 99 20 22 57 69 6d 70 45 78 74 |1..rg.. "WimpExt| 000004e0 5f 4c 6f 61 64 54 65 6d 70 6c 61 74 65 73 22 2c |_LoadTemplates",| 000004f0 77 69 6e 64 6f 77 25 2c 74 65 6d 70 6c 61 74 65 |window%,template| 00000500 25 2c 69 6e 64 69 72 25 2c 69 6e 64 69 72 25 2b |%,indir%,indir%+| 00000510 32 35 36 2c 2d 31 2c 22 3c 4f 73 6d 6f 73 69 73 |256,-1,"<Osmosis| 00000520 24 44 69 72 3e 2e 54 65 6d 70 6c 61 74 65 73 22 |$Dir>.Templates"| 00000530 2c 73 70 72 69 74 65 25 0d 01 7c 34 69 6e 66 6f |,sprite%..|4info| 00000540 25 3d 21 77 69 6e 64 6f 77 25 3a 6d 61 69 6e 25 |%=!window%:main%| 00000550 3d 77 69 6e 64 6f 77 25 21 34 3a 62 61 6e 6e 65 |=window%!4:banne| 00000560 72 25 3d 77 69 6e 64 6f 77 25 21 38 0d 01 86 13 |r%=window%!8....| 00000570 71 75 69 74 25 3d 30 3a 6d 65 6e 75 25 3d 30 0d |quit%=0:menu%=0.| 00000580 01 90 05 e1 0d 01 9a 04 0d 01 a4 0e dd f2 6d 61 |..............ma| 00000590 6b 65 6d 65 6e 75 0d 01 ae 18 f4 20 43 72 65 61 |kemenu..... Crea| 000005a0 74 65 73 20 74 68 65 20 6d 65 6e 75 73 2e 0d 01 |tes the menus...| 000005b0 b8 1a de 20 69 6d 65 6e 75 25 20 39 36 2c 67 6d |... imenu% 96,gm| 000005c0 65 6e 75 25 20 31 35 32 0d 01 c2 15 24 69 6d 65 |enu% 152....$ime| 000005d0 6e 75 25 3d 22 4f 73 6d 6f 73 69 73 22 0d 01 cc |nu%="Osmosis"...| 000005e0 14 69 6d 65 6e 75 25 21 31 32 3d 26 37 30 32 30 |.imenu%!12=&7020| 000005f0 37 0d 01 d6 35 69 6d 65 6e 75 25 21 31 36 3d 31 |7...5imenu%!16=1| 00000600 36 2a 38 3a f4 20 54 68 69 73 20 73 65 74 73 20 |6*8:. This sets | 00000610 74 68 65 20 77 69 64 74 68 20 6f 66 20 74 68 65 |the width of the| 00000620 20 6d 65 6e 75 2e 0d 01 e0 10 69 6d 65 6e 75 25 | menu.....imenu%| 00000630 21 32 30 3d 34 34 0d 01 ea 0f 69 6d 65 6e 75 25 |!20=44....imenu%| 00000640 21 32 34 3d 30 0d 01 f4 0f 69 6d 65 6e 75 25 21 |!24=0....imenu%!| 00000650 32 38 3d 30 0d 01 fe 13 69 6d 65 6e 75 25 21 33 |28=0....imenu%!3| 00000660 32 3d 69 6e 66 6f 25 0d 02 08 16 69 6d 65 6e 75 |2=info%....imenu| 00000670 25 21 33 36 3d 26 37 30 30 30 30 32 31 0d 02 12 |%!36=&7000021...| 00000680 17 24 28 69 6d 65 6e 75 25 2b 34 30 29 3d 22 49 |.$(imenu%+40)="I| 00000690 6e 66 6f 22 0d 02 1c 0f 69 6d 65 6e 75 25 21 35 |nfo"....imenu%!5| 000006a0 32 3d 32 0d 02 26 0f 69 6d 65 6e 75 25 21 35 36 |2=2..&.imenu%!56| 000006b0 3d 30 0d 02 30 16 69 6d 65 6e 75 25 21 36 30 3d |=0..0.imenu%!60=| 000006c0 26 37 30 30 30 30 32 31 0d 02 3a 1a 24 28 69 6d |&7000021..:.$(im| 000006d0 65 6e 75 25 2b 36 34 29 3d 22 4f 73 6d 6f 73 69 |enu%+64)="Osmosi| 000006e0 73 22 0d 02 44 11 69 6d 65 6e 75 25 21 37 36 3d |s"..D.imenu%!76=| 000006f0 31 32 38 0d 02 4e 0f 69 6d 65 6e 75 25 21 38 30 |128..N.imenu%!80| 00000700 3d 30 0d 02 58 16 69 6d 65 6e 75 25 21 38 34 3d |=0..X.imenu%!84=| 00000710 26 37 30 30 30 30 32 31 0d 02 62 17 24 28 69 6d |&7000021..b.$(im| 00000720 65 6e 75 25 2b 38 38 29 3d 22 51 75 69 74 22 0d |enu%+88)="Quit".| 00000730 02 6c 17 24 67 6d 65 6e 75 25 3d 22 47 61 6d 65 |.l.$gmenu%="Game| 00000740 20 4d 65 6e 75 22 0d 02 76 14 67 6d 65 6e 75 25 | Menu"..v.gmenu%| 00000750 21 31 32 3d 26 37 30 32 30 37 0d 02 80 36 67 6d |!12=&70207...6gm| 00000760 65 6e 75 25 21 31 36 3d 31 36 2a 31 30 3a f4 20 |enu%!16=16*10:. | 00000770 54 68 69 73 20 73 65 74 73 20 74 68 65 20 77 69 |This sets the wi| 00000780 64 74 68 20 6f 66 20 74 68 65 20 6d 65 6e 75 2e |dth of the menu.| 00000790 0d 02 8a 10 67 6d 65 6e 75 25 21 32 30 3d 34 34 |....gmenu%!20=44| 000007a0 0d 02 94 0f 67 6d 65 6e 75 25 21 32 34 3d 30 0d |....gmenu%!24=0.| 000007b0 02 9e 0f 67 6d 65 6e 75 25 21 32 38 3d 30 0d 02 |...gmenu%!28=0..| 000007c0 a8 0f 67 6d 65 6e 75 25 21 33 32 3d 30 0d 02 b2 |..gmenu%!32=0...| 000007d0 16 67 6d 65 6e 75 25 21 33 36 3d 26 37 30 30 30 |.gmenu%!36=&7000| 000007e0 30 32 31 0d 02 bc 17 24 28 67 6d 65 6e 75 25 2b |021....$(gmenu%+| 000007f0 34 30 29 3d 22 55 6e 64 6f 22 0d 02 c6 0f 67 6d |40)="Undo"....gm| 00000800 65 6e 75 25 21 35 32 3d 32 0d 02 d0 0f 67 6d 65 |enu%!52=2....gme| 00000810 6e 75 25 21 35 36 3d 30 0d 02 da 16 67 6d 65 6e |nu%!56=0....gmen| 00000820 75 25 21 36 30 3d 26 37 30 30 30 30 32 31 0d 02 |u%!60=&7000021..| 00000830 e4 19 24 28 67 6d 65 6e 75 25 2b 36 34 29 3d 22 |..$(gmenu%+64)="| 00000840 52 65 73 69 67 6e 22 0d 02 ee 0f 67 6d 65 6e 75 |Resign"....gmenu| 00000850 25 21 37 36 3d 30 0d 02 f8 0f 67 6d 65 6e 75 25 |%!76=0....gmenu%| 00000860 21 38 30 3d 30 0d 03 02 16 67 6d 65 6e 75 25 21 |!80=0....gmenu%!| 00000870 38 34 3d 26 37 30 30 30 30 32 31 0d 03 0c 1a 24 |84=&7000021....$| 00000880 28 67 6d 65 6e 75 25 2b 38 38 29 3d 22 4f 73 6d |(gmenu%+88)="Osm| 00000890 6f 73 69 73 22 0d 03 16 10 67 6d 65 6e 75 25 21 |osis"....gmenu%!| 000008a0 31 30 30 3d 32 0d 03 20 10 67 6d 65 6e 75 25 21 |100=2.. .gmenu%!| 000008b0 31 30 34 3d 30 0d 03 2a 17 67 6d 65 6e 75 25 21 |104=0..*.gmenu%!| 000008c0 31 30 38 3d 26 37 30 30 30 30 32 31 0d 03 34 1b |108=&7000021..4.| 000008d0 24 28 67 6d 65 6e 75 25 2b 31 31 32 29 3d 22 50 |$(gmenu%+112)="P| 000008e0 79 72 61 6d 69 64 22 0d 03 3e 12 67 6d 65 6e 75 |yramid"..>.gmenu| 000008f0 25 21 31 32 34 3d 31 32 38 0d 03 48 10 67 6d 65 |%!124=128..H.gme| 00000900 6e 75 25 21 31 32 38 3d 30 0d 03 52 17 67 6d 65 |nu%!128=0..R.gme| 00000910 6e 75 25 21 31 33 32 3d 26 37 30 30 30 30 32 31 |nu%!132=&7000021| 00000920 0d 03 5c 18 24 28 67 6d 65 6e 75 25 2b 31 33 36 |..\.$(gmenu%+136| 00000930 29 3d 22 51 75 69 74 22 0d 03 66 26 c8 99 22 57 |)="Quit"..f&.."W| 00000940 69 6d 70 45 78 74 5f 53 68 61 64 65 45 6e 74 72 |impExt_ShadeEntr| 00000950 79 22 2c 2c 67 6d 65 6e 75 25 2c 30 2c 31 0d 03 |y",,gmenu%,0,1..| 00000960 70 05 e1 0d 03 7a 04 0d 03 84 10 dd f2 62 75 69 |p....z.......bui| 00000970 6c 64 63 61 72 64 73 0d 03 8e 33 ea 20 74 65 6d |ldcards...3. tem| 00000980 70 73 70 72 69 74 65 24 2c 74 65 6d 70 73 70 72 |psprite$,tempspr| 00000990 69 74 65 32 24 2c 49 2c 74 65 6d 70 76 61 6c 25 |ite2$,I,tempval%| 000009a0 2c 74 65 6d 70 73 75 69 74 24 0d 03 98 43 f4 20 |,tempsuit$...C. | 000009b0 54 68 69 73 20 70 72 6f 63 65 64 75 72 65 20 28 |This procedure (| 000009c0 61 6e 64 20 69 74 73 20 73 75 62 70 72 6f 63 65 |and its subproce| 000009d0 64 75 72 65 73 29 20 6d 61 6b 65 73 20 74 68 65 |dures) makes the| 000009e0 20 66 75 6c 6c 20 35 32 20 63 61 72 64 0d 03 a2 | full 52 card...| 000009f0 36 f4 20 73 70 72 69 74 65 73 20 6f 75 74 20 6f |6. sprites out o| 00000a00 66 20 74 68 65 20 65 6c 65 6d 65 6e 74 73 20 69 |f the elements i| 00000a10 6e 20 74 68 65 20 53 70 72 69 74 65 73 20 66 69 |n the Sprites fi| 00000a20 6c 65 2e 0d 03 ac 42 f4 20 46 69 72 73 74 2c 20 |le....B. First, | 00000a30 63 6f 70 79 20 74 68 65 20 68 61 6c 66 63 61 72 |copy the halfcar| 00000a40 64 20 73 70 72 69 74 65 20 69 6e 74 6f 20 34 20 |d sprite into 4 | 00000a50 74 65 6d 70 6f 72 61 72 79 20 73 70 72 69 74 65 |temporary sprite| 00000a60 73 20 61 6e 64 0d 03 b6 2b f4 20 6d 61 6b 65 20 |s and...+. make | 00000a70 74 68 65 20 74 68 65 20 74 65 6d 70 6c 61 74 65 |the the template| 00000a80 20 73 75 69 74 20 68 61 6c 66 63 61 72 64 73 2e | suit halfcards.| 00000a90 0d 03 c0 36 c8 99 22 4f 53 5f 53 70 72 69 74 65 |...6.."OS_Sprite| 00000aa0 4f 70 22 2c 32 35 36 2b 32 37 2c 73 70 72 69 74 |Op",256+27,sprit| 00000ab0 65 25 2c 22 68 61 6c 66 63 61 72 64 22 2c 22 68 |e%,"halfcard","h| 00000ac0 65 61 72 74 73 22 0d 03 ca 36 c8 99 22 4f 53 5f |earts"...6.."OS_| 00000ad0 53 70 72 69 74 65 4f 70 22 2c 32 35 36 2b 32 37 |SpriteOp",256+27| 00000ae0 2c 73 70 72 69 74 65 25 2c 22 68 61 6c 66 63 61 |,sprite%,"halfca| 00000af0 72 64 22 2c 22 73 70 61 64 65 73 22 0d 03 d4 35 |rd","spades"...5| 00000b00 c8 99 22 4f 53 5f 53 70 72 69 74 65 4f 70 22 2c |.."OS_SpriteOp",| 00000b10 32 35 36 2b 32 37 2c 73 70 72 69 74 65 25 2c 22 |256+27,sprite%,"| 00000b20 68 61 6c 66 63 61 72 64 22 2c 22 63 6c 75 62 73 |halfcard","clubs| 00000b30 22 0d 03 de 38 c8 99 22 4f 53 5f 53 70 72 69 74 |"...8.."OS_Sprit| 00000b40 65 4f 70 22 2c 32 35 36 2b 32 37 2c 73 70 72 69 |eOp",256+27,spri| 00000b50 74 65 25 2c 22 68 61 6c 66 63 61 72 64 22 2c 22 |te%,"halfcard","| 00000b60 64 69 61 6d 6f 6e 64 73 22 0d 03 e8 2a f2 64 72 |diamonds"...*.dr| 00000b70 61 77 73 70 72 69 74 65 28 22 68 65 61 72 74 73 |awsprite("hearts| 00000b80 22 2c 22 73 6d 5f 68 65 61 72 74 22 2c 31 38 2c |","sm_heart",18,| 00000b90 34 36 29 0d 03 f2 2a f2 64 72 61 77 73 70 72 69 |46)...*.drawspri| 00000ba0 74 65 28 22 73 70 61 64 65 73 22 2c 22 73 6d 5f |te("spades","sm_| 00000bb0 73 70 61 64 65 22 2c 31 38 2c 34 36 29 0d 03 fc |spade",18,46)...| 00000bc0 28 f2 64 72 61 77 73 70 72 69 74 65 28 22 63 6c |(.drawsprite("cl| 00000bd0 75 62 73 22 2c 22 73 6d 5f 63 6c 75 62 22 2c 31 |ubs","sm_club",1| 00000be0 38 2c 34 36 29 0d 04 06 2b f2 64 72 61 77 73 70 |8,46)...+.drawsp| 00000bf0 72 69 74 65 28 22 64 69 61 6d 6f 6e 64 73 22 2c |rite("diamonds",| 00000c00 22 73 6d 5f 64 69 61 6d 22 2c 31 38 2c 34 36 29 |"sm_diam",18,46)| 00000c10 0d 04 10 32 f4 20 4e 6f 77 20 6d 61 6b 65 20 74 |...2. Now make t| 00000c20 68 65 20 6e 75 6d 62 65 72 20 63 61 72 64 73 20 |he number cards | 00000c30 28 77 68 6f 6c 65 2c 20 6e 6f 74 20 68 61 6c 66 |(whole, not half| 00000c40 29 2e 0d 04 1a 0e e3 20 49 3d 31 20 b8 20 35 32 |)...... I=1 . 52| 00000c50 0d 04 24 36 20 20 e7 20 49 3c 31 34 20 8c 20 f2 |..$6 . I<14 . .| 00000c60 61 64 64 73 70 72 69 74 65 28 22 68 65 61 72 74 |addsprite("heart| 00000c70 73 22 2c c3 49 2c 22 72 65 64 5f 22 2b c3 49 2c |s",.I,"red_"+.I,| 00000c80 31 38 2c 37 30 29 0d 04 2e 44 20 20 e7 20 49 3e |18,70)...D . I>| 00000c90 31 33 20 80 20 49 3c 32 37 20 8c 20 f2 61 64 64 |13 . I<27 . .add| 00000ca0 73 70 72 69 74 65 28 22 64 69 61 6d 6f 6e 64 73 |sprite("diamonds| 00000cb0 22 2c c3 49 2c 22 72 65 64 5f 22 2b c3 28 49 2d |",.I,"red_"+.(I-| 00000cc0 31 33 29 2c 31 38 2c 37 30 29 0d 04 38 43 20 20 |13),18,70)..8C | 00000cd0 e7 20 49 3e 32 36 20 80 20 49 3c 34 30 20 8c 20 |. I>26 . I<40 . | 00000ce0 f2 61 64 64 73 70 72 69 74 65 28 22 63 6c 75 62 |.addsprite("club| 00000cf0 73 22 2c c3 49 2c 22 62 6c 61 63 6b 5f 22 2b c3 |s",.I,"black_"+.| 00000d00 28 49 2d 32 36 29 2c 31 38 2c 37 30 29 0d 04 42 |(I-26),18,70)..B| 00000d10 3d 20 20 e7 20 49 3e 33 39 20 8c 20 f2 61 64 64 |= . I>39 . .add| 00000d20 73 70 72 69 74 65 28 22 73 70 61 64 65 73 22 2c |sprite("spades",| 00000d30 c3 49 2c 22 62 6c 61 63 6b 5f 22 2b c3 28 49 2d |.I,"black_"+.(I-| 00000d40 33 39 29 2c 31 38 2c 37 30 29 0d 04 4c 33 20 20 |39),18,70)..L3 | 00000d50 c8 99 22 4f 53 5f 53 70 72 69 74 65 4f 70 22 2c |.."OS_SpriteOp",| 00000d60 32 35 36 2b 32 37 2c 73 70 72 69 74 65 25 2c c3 |256+27,sprite%,.| 00000d70 49 2c 74 65 6d 70 73 70 72 69 74 65 24 0d 04 56 |I,tempsprite$..V| 00000d80 30 20 20 c8 99 22 4f 53 5f 53 70 72 69 74 65 4f |0 .."OS_SpriteO| 00000d90 70 22 2c 32 35 36 2b 33 33 2c 73 70 72 69 74 65 |p",256+33,sprite| 00000da0 25 2c 74 65 6d 70 73 70 72 69 74 65 24 0d 04 60 |%,tempsprite$..`| 00000db0 30 20 20 c8 99 22 4f 53 5f 53 70 72 69 74 65 4f |0 .."OS_SpriteO| 00000dc0 70 22 2c 32 35 36 2b 34 37 2c 73 70 72 69 74 65 |p",256+47,sprite| 00000dd0 25 2c 74 65 6d 70 73 70 72 69 74 65 24 0d 04 6a |%,tempsprite$..j| 00000de0 35 20 20 c8 99 22 4f 53 5f 53 70 72 69 74 65 4f |5 .."OS_SpriteO| 00000df0 70 22 2c 32 35 36 2b 33 35 2c 73 70 72 69 74 65 |p",256+35,sprite| 00000e00 25 2c c3 49 2c 74 65 6d 70 73 70 72 69 74 65 24 |%,.I,tempsprite$| 00000e10 2c 31 0d 04 74 07 ed 20 49 0d 04 7e 3b f4 20 4e |,1..t.. I..~;. N| 00000e20 6f 77 20 74 6f 20 66 69 6e 69 73 68 20 6f 66 66 |ow to finish off| 00000e30 20 74 68 65 20 63 61 72 64 73 20 62 79 20 61 64 | the cards by ad| 00000e40 64 69 6e 67 20 74 68 65 20 64 65 63 6f 72 61 74 |ding the decorat| 00000e50 69 6f 6e 2e 0d 04 88 0e e3 20 49 3d 31 20 b8 20 |ion...... I=1 . | 00000e60 35 32 0d 04 92 1a 20 20 74 65 6d 70 76 61 6c 25 |52.... tempval%| 00000e70 3d a4 63 61 72 64 76 61 6c 28 49 29 0d 04 9c 0e |=.cardval(I)....| 00000e80 20 20 e7 20 49 3c 31 34 20 8c 0d 04 a6 17 20 20 | . I<14 ..... | 00000e90 20 20 e7 20 74 65 6d 70 76 61 6c 25 3c 31 31 20 | . tempval%<11 | 00000ea0 8c 0d 04 b0 31 20 20 20 20 20 20 74 65 6d 70 73 |....1 temps| 00000eb0 75 69 74 24 3d 22 68 65 61 72 74 22 3a 74 65 6d |uit$="heart":tem| 00000ec0 70 73 70 72 69 74 65 24 3d 22 6d 5f 68 65 61 72 |psprite$="m_hear| 00000ed0 74 22 0d 04 ba 3f 20 20 20 20 20 20 c8 99 22 4f |t"...? .."O| 00000ee0 53 5f 53 70 72 69 74 65 4f 70 22 2c 32 35 36 2b |S_SpriteOp",256+| 00000ef0 32 37 2c 73 70 72 69 74 65 25 2c 22 6d 5f 68 65 |27,sprite%,"m_he| 00000f00 61 72 74 22 2c 74 65 6d 70 73 70 72 69 74 65 32 |art",tempsprite2| 00000f10 24 0d 04 c4 35 20 20 20 20 20 20 c8 99 22 4f 53 |$...5 .."OS| 00000f20 5f 53 70 72 69 74 65 4f 70 22 2c 32 35 36 2b 33 |_SpriteOp",256+3| 00000f30 33 2c 73 70 72 69 74 65 25 2c 74 65 6d 70 73 70 |3,sprite%,tempsp| 00000f40 72 69 74 65 32 24 0d 04 ce 09 20 20 20 20 cc 0d |rite2$.... ..| 00000f50 04 d8 17 20 20 20 20 20 20 c8 8e 20 74 65 6d 70 |... .. temp| 00000f60 76 61 6c 25 20 ca 0d 04 e2 2b 20 20 20 20 20 20 |val% ....+ | 00000f70 20 20 c9 20 31 31 3a 20 74 65 6d 70 73 70 72 69 | . 11: tempspri| 00000f80 74 65 24 3d 22 6a 61 63 6b 5f 68 65 61 72 74 73 |te$="jack_hearts| 00000f90 22 0d 04 ec 2c 20 20 20 20 20 20 20 20 c9 20 31 |"..., . 1| 00000fa0 32 3a 20 74 65 6d 70 73 70 72 69 74 65 24 3d 22 |2: tempsprite$="| 00000fb0 71 75 65 65 6e 5f 68 65 61 72 74 73 22 0d 04 f6 |queen_hearts"...| 00000fc0 2b 20 20 20 20 20 20 20 20 c9 20 31 33 3a 20 74 |+ . 13: t| 00000fd0 65 6d 70 73 70 72 69 74 65 24 3d 22 6b 69 6e 67 |empsprite$="king| 00000fe0 5f 68 65 61 72 74 73 22 0d 05 00 0b 20 20 20 20 |_hearts".... | 00000ff0 20 20 cb 0d 05 0a 41 20 20 20 20 20 20 c8 99 22 | ....A .."| 00001000 4f 53 5f 53 70 72 69 74 65 4f 70 22 2c 32 35 36 |OS_SpriteOp",256| 00001010 2b 32 37 2c 73 70 72 69 74 65 25 2c 74 65 6d 70 |+27,sprite%,temp| 00001020 73 70 72 69 74 65 24 2c 74 65 6d 70 73 70 72 69 |sprite$,tempspri| 00001030 74 65 32 24 0d 05 14 35 20 20 20 20 20 20 c8 99 |te2$...5 ..| 00001040 22 4f 53 5f 53 70 72 69 74 65 4f 70 22 2c 32 35 |"OS_SpriteOp",25| 00001050 36 2b 33 33 2c 73 70 72 69 74 65 25 2c 74 65 6d |6+33,sprite%,tem| 00001060 70 73 70 72 69 74 65 32 24 0d 05 1e 35 20 20 20 |psprite2$...5 | 00001070 20 20 20 c8 99 22 4f 53 5f 53 70 72 69 74 65 4f | .."OS_SpriteO| 00001080 70 22 2c 32 35 36 2b 34 37 2c 73 70 72 69 74 65 |p",256+47,sprite| 00001090 25 2c 74 65 6d 70 73 70 72 69 74 65 32 24 0d 05 |%,tempsprite2$..| 000010a0 28 43 20 20 20 20 20 20 c8 99 22 4f 53 5f 53 70 |(C .."OS_Sp| 000010b0 72 69 74 65 4f 70 22 2c 32 35 36 2b 33 35 2c 73 |riteOp",256+35,s| 000010c0 70 72 69 74 65 25 2c 74 65 6d 70 73 70 72 69 74 |prite%,tempsprit| 000010d0 65 24 2c 74 65 6d 70 73 70 72 69 74 65 32 24 2c |e$,tempsprite2$,| 000010e0 31 0d 05 32 09 20 20 20 20 cd 0d 05 3c 07 20 20 |1..2. ...<. | 000010f0 cd 0d 05 46 15 20 20 e7 20 49 3e 31 33 20 80 20 |...F. . I>13 . | 00001100 49 3c 32 37 20 8c 0d 05 50 17 20 20 20 20 e7 20 |I<27 ...P. . | 00001110 74 65 6d 70 76 61 6c 25 3c 31 31 20 8c 0d 05 5a |tempval%<11 ...Z| 00001120 2f 20 20 20 20 20 20 74 65 6d 70 73 75 69 74 24 |/ tempsuit$| 00001130 3d 22 64 69 61 6d 22 3a 74 65 6d 70 73 70 72 69 |="diam":tempspri| 00001140 74 65 24 3d 22 6d 5f 64 69 61 6d 22 0d 05 64 3e |te$="m_diam"..d>| 00001150 20 20 20 20 20 20 c8 99 22 4f 53 5f 53 70 72 69 | .."OS_Spri| 00001160 74 65 4f 70 22 2c 32 35 36 2b 32 37 2c 73 70 72 |teOp",256+27,spr| 00001170 69 74 65 25 2c 22 6d 5f 64 69 61 6d 22 2c 74 65 |ite%,"m_diam",te| 00001180 6d 70 73 70 72 69 74 65 32 24 0d 05 6e 35 20 20 |mpsprite2$..n5 | 00001190 20 20 20 20 c8 99 22 4f 53 5f 53 70 72 69 74 65 | .."OS_Sprite| 000011a0 4f 70 22 2c 32 35 36 2b 33 33 2c 73 70 72 69 74 |Op",256+33,sprit| 000011b0 65 25 2c 74 65 6d 70 73 70 72 69 74 65 32 24 0d |e%,tempsprite2$.| 000011c0 05 78 09 20 20 20 20 cc 0d 05 82 17 20 20 20 20 |.x. ..... | 000011d0 20 20 c8 8e 20 74 65 6d 70 76 61 6c 25 20 ca 0d | .. tempval% ..| 000011e0 05 8c 29 20 20 20 20 20 20 20 20 c9 20 31 31 3a |..) . 11:| 000011f0 20 74 65 6d 70 73 70 72 69 74 65 24 3d 22 6a 61 | tempsprite$="ja| 00001200 63 6b 5f 64 69 61 6d 22 0d 05 96 2a 20 20 20 20 |ck_diam"...* | 00001210 20 20 20 20 c9 20 31 32 3a 20 74 65 6d 70 73 70 | . 12: tempsp| 00001220 72 69 74 65 24 3d 22 71 75 65 65 6e 5f 64 69 61 |rite$="queen_dia| 00001230 6d 22 0d 05 a0 29 20 20 20 20 20 20 20 20 c9 20 |m"...) . | 00001240 31 33 3a 20 74 65 6d 70 73 70 72 69 74 65 24 3d |13: tempsprite$=| 00001250 22 6b 69 6e 67 5f 64 69 61 6d 22 0d 05 aa 0b 20 |"king_diam".... | 00001260 20 20 20 20 20 cb 0d 05 b4 41 20 20 20 20 20 20 | ....A | 00001270 c8 99 22 4f 53 5f 53 70 72 69 74 65 4f 70 22 2c |.."OS_SpriteOp",| 00001280 32 35 36 2b 32 37 2c 73 70 72 69 74 65 25 2c 74 |256+27,sprite%,t| 00001290 65 6d 70 73 70 72 69 74 65 24 2c 74 65 6d 70 73 |empsprite$,temps| 000012a0 70 72 69 74 65 32 24 0d 05 be 35 20 20 20 20 20 |prite2$...5 | 000012b0 20 c8 99 22 4f 53 5f 53 70 72 69 74 65 4f 70 22 | .."OS_SpriteOp"| 000012c0 2c 32 35 36 2b 33 33 2c 73 70 72 69 74 65 25 2c |,256+33,sprite%,| 000012d0 74 65 6d 70 73 70 72 69 74 65 32 24 0d 05 c8 35 |tempsprite2$...5| 000012e0 20 20 20 20 20 20 c8 99 22 4f 53 5f 53 70 72 69 | .."OS_Spri| 000012f0 74 65 4f 70 22 2c 32 35 36 2b 34 37 2c 73 70 72 |teOp",256+47,spr| 00001300 69 74 65 25 2c 74 65 6d 70 73 70 72 69 74 65 32 |ite%,tempsprite2| 00001310 24 0d 05 d2 43 20 20 20 20 20 20 c8 99 22 4f 53 |$...C .."OS| 00001320 5f 53 70 72 69 74 65 4f 70 22 2c 32 35 36 2b 33 |_SpriteOp",256+3| 00001330 35 2c 73 70 72 69 74 65 25 2c 74 65 6d 70 73 70 |5,sprite%,tempsp| 00001340 72 69 74 65 24 2c 74 65 6d 70 73 70 72 69 74 65 |rite$,tempsprite| 00001350 32 24 2c 31 0d 05 dc 09 20 20 20 20 cd 0d 05 e6 |2$,1.... ....| 00001360 07 20 20 cd 0d 05 f0 15 20 20 e7 20 49 3e 32 36 |. ..... . I>26| 00001370 20 80 20 49 3c 34 30 20 8c 0d 05 fa 17 20 20 20 | . I<40 ..... | 00001380 20 e7 20 74 65 6d 70 76 61 6c 25 3c 31 31 20 8c | . tempval%<11 .| 00001390 0d 06 04 2f 20 20 20 20 20 20 74 65 6d 70 73 75 |.../ tempsu| 000013a0 69 74 24 3d 22 63 6c 75 62 22 3a 74 65 6d 70 73 |it$="club":temps| 000013b0 70 72 69 74 65 24 3d 22 6d 5f 63 6c 75 62 22 0d |prite$="m_club".| 000013c0 06 0e 3e 20 20 20 20 20 20 c8 99 22 4f 53 5f 53 |..> .."OS_S| 000013d0 70 72 69 74 65 4f 70 22 2c 32 35 36 2b 32 37 2c |priteOp",256+27,| 000013e0 73 70 72 69 74 65 25 2c 22 6d 5f 63 6c 75 62 22 |sprite%,"m_club"| 000013f0 2c 74 65 6d 70 73 70 72 69 74 65 32 24 0d 06 18 |,tempsprite2$...| 00001400 35 20 20 20 20 20 20 c8 99 22 4f 53 5f 53 70 72 |5 .."OS_Spr| 00001410 69 74 65 4f 70 22 2c 32 35 36 2b 33 33 2c 73 70 |iteOp",256+33,sp| 00001420 72 69 74 65 25 2c 74 65 6d 70 73 70 72 69 74 65 |rite%,tempsprite| 00001430 32 24 0d 06 22 09 20 20 20 20 cc 0d 06 2c 17 20 |2$..". ...,. | 00001440 20 20 20 20 20 c8 8e 20 74 65 6d 70 76 61 6c 25 | .. tempval%| 00001450 20 ca 0d 06 36 2a 20 20 20 20 20 20 20 20 c9 20 | ...6* . | 00001460 31 31 3a 20 74 65 6d 70 73 70 72 69 74 65 24 3d |11: tempsprite$=| 00001470 22 6a 61 63 6b 5f 63 6c 75 62 73 22 0d 06 40 2b |"jack_clubs"..@+| 00001480 20 20 20 20 20 20 20 20 c9 20 31 32 3a 20 74 65 | . 12: te| 00001490 6d 70 73 70 72 69 74 65 24 3d 22 71 75 65 65 6e |mpsprite$="queen| 000014a0 5f 63 6c 75 62 73 22 0d 06 4a 2a 20 20 20 20 20 |_clubs"..J* | 000014b0 20 20 20 c9 20 31 33 3a 20 74 65 6d 70 73 70 72 | . 13: tempspr| 000014c0 69 74 65 24 3d 22 6b 69 6e 67 5f 63 6c 75 62 73 |ite$="king_clubs| 000014d0 22 0d 06 54 0b 20 20 20 20 20 20 cb 0d 06 5e 41 |"..T. ...^A| 000014e0 20 20 20 20 20 20 c8 99 22 4f 53 5f 53 70 72 69 | .."OS_Spri| 000014f0 74 65 4f 70 22 2c 32 35 36 2b 32 37 2c 73 70 72 |teOp",256+27,spr| 00001500 69 74 65 25 2c 74 65 6d 70 73 70 72 69 74 65 24 |ite%,tempsprite$| 00001510 2c 74 65 6d 70 73 70 72 69 74 65 32 24 0d 06 68 |,tempsprite2$..h| 00001520 35 20 20 20 20 20 20 c8 99 22 4f 53 5f 53 70 72 |5 .."OS_Spr| 00001530 69 74 65 4f 70 22 2c 32 35 36 2b 33 33 2c 73 70 |iteOp",256+33,sp| 00001540 72 69 74 65 25 2c 74 65 6d 70 73 70 72 69 74 65 |rite%,tempsprite| 00001550 32 24 0d 06 72 35 20 20 20 20 20 20 c8 99 22 4f |2$..r5 .."O| 00001560 53 5f 53 70 72 69 74 65 4f 70 22 2c 32 35 36 2b |S_SpriteOp",256+| 00001570 34 37 2c 73 70 72 69 74 65 25 2c 74 65 6d 70 73 |47,sprite%,temps| 00001580 70 72 69 74 65 32 24 0d 06 7c 43 20 20 20 20 20 |prite2$..|C | 00001590 20 c8 99 22 4f 53 5f 53 70 72 69 74 65 4f 70 22 | .."OS_SpriteOp"| 000015a0 2c 32 35 36 2b 33 35 2c 73 70 72 69 74 65 25 2c |,256+35,sprite%,| 000015b0 74 65 6d 70 73 70 72 69 74 65 24 2c 74 65 6d 70 |tempsprite$,temp| 000015c0 73 70 72 69 74 65 32 24 2c 31 0d 06 86 09 20 20 |sprite2$,1.... | 000015d0 20 20 cd 0d 06 90 07 20 20 cd 0d 06 9a 0e 20 20 | ..... ..... | 000015e0 e7 20 49 3e 33 39 20 8c 0d 06 a4 17 20 20 20 20 |. I>39 ..... | 000015f0 e7 20 74 65 6d 70 76 61 6c 25 3c 31 31 20 8c 0d |. tempval%<11 ..| 00001600 06 ae 31 20 20 20 20 20 20 74 65 6d 70 73 75 69 |..1 tempsui| 00001610 74 24 3d 22 73 70 61 64 65 22 3a 74 65 6d 70 73 |t$="spade":temps| 00001620 70 72 69 74 65 24 3d 22 6d 5f 73 70 61 64 65 22 |prite$="m_spade"| 00001630 0d 06 b8 3f 20 20 20 20 20 20 c8 99 22 4f 53 5f |...? .."OS_| 00001640 53 70 72 69 74 65 4f 70 22 2c 32 35 36 2b 32 37 |SpriteOp",256+27| 00001650 2c 73 70 72 69 74 65 25 2c 22 6d 5f 73 70 61 64 |,sprite%,"m_spad| 00001660 65 22 2c 74 65 6d 70 73 70 72 69 74 65 32 24 0d |e",tempsprite2$.| 00001670 06 c2 35 20 20 20 20 20 20 c8 99 22 4f 53 5f 53 |..5 .."OS_S| 00001680 70 72 69 74 65 4f 70 22 2c 32 35 36 2b 33 33 2c |priteOp",256+33,| 00001690 73 70 72 69 74 65 25 2c 74 65 6d 70 73 70 72 69 |sprite%,tempspri| 000016a0 74 65 32 24 0d 06 cc 09 20 20 20 20 cc 0d 06 d6 |te2$.... ....| 000016b0 17 20 20 20 20 20 20 c8 8e 20 74 65 6d 70 76 61 |. .. tempva| 000016c0 6c 25 20 ca 0d 06 e0 2b 20 20 20 20 20 20 20 20 |l% ....+ | 000016d0 c9 20 31 31 3a 20 74 65 6d 70 73 70 72 69 74 65 |. 11: tempsprite| 000016e0 24 3d 22 6a 61 63 6b 5f 73 70 61 64 65 73 22 0d |$="jack_spades".| 000016f0 06 ea 2c 20 20 20 20 20 20 20 20 c9 20 31 32 3a |.., . 12:| 00001700 20 74 65 6d 70 73 70 72 69 74 65 24 3d 22 71 75 | tempsprite$="qu| 00001710 65 65 6e 5f 73 70 61 64 65 73 22 0d 06 f4 2b 20 |een_spades"...+ | 00001720 20 20 20 20 20 20 20 c9 20 31 33 3a 20 74 65 6d | . 13: tem| 00001730 70 73 70 72 69 74 65 24 3d 22 6b 69 6e 67 5f 73 |psprite$="king_s| 00001740 70 61 64 65 73 22 0d 06 fe 0b 20 20 20 20 20 20 |pades".... | 00001750 cb 0d 07 08 41 20 20 20 20 20 20 c8 99 22 4f 53 |....A .."OS| 00001760 5f 53 70 72 69 74 65 4f 70 22 2c 32 35 36 2b 32 |_SpriteOp",256+2| 00001770 37 2c 73 70 72 69 74 65 25 2c 74 65 6d 70 73 70 |7,sprite%,tempsp| 00001780 72 69 74 65 24 2c 74 65 6d 70 73 70 72 69 74 65 |rite$,tempsprite| 00001790 32 24 0d 07 12 35 20 20 20 20 20 20 c8 99 22 4f |2$...5 .."O| 000017a0 53 5f 53 70 72 69 74 65 4f 70 22 2c 32 35 36 2b |S_SpriteOp",256+| 000017b0 33 33 2c 73 70 72 69 74 65 25 2c 74 65 6d 70 73 |33,sprite%,temps| 000017c0 70 72 69 74 65 32 24 0d 07 1c 35 20 20 20 20 20 |prite2$...5 | 000017d0 20 c8 99 22 4f 53 5f 53 70 72 69 74 65 4f 70 22 | .."OS_SpriteOp"| 000017e0 2c 32 35 36 2b 34 37 2c 73 70 72 69 74 65 25 2c |,256+47,sprite%,| 000017f0 74 65 6d 70 73 70 72 69 74 65 32 24 0d 07 26 43 |tempsprite2$..&C| 00001800 20 20 20 20 20 20 c8 99 22 4f 53 5f 53 70 72 69 | .."OS_Spri| 00001810 74 65 4f 70 22 2c 32 35 36 2b 33 35 2c 73 70 72 |teOp",256+35,spr| 00001820 69 74 65 25 2c 74 65 6d 70 73 70 72 69 74 65 24 |ite%,tempsprite$| 00001830 2c 74 65 6d 70 73 70 72 69 74 65 32 24 2c 31 0d |,tempsprite2$,1.| 00001840 07 30 09 20 20 20 20 cd 0d 07 3a 07 20 20 cd 0d |.0. ...:. ..| 00001850 07 44 13 20 20 c8 8e 20 74 65 6d 70 76 61 6c 25 |.D. .. tempval%| 00001860 20 ca 0d 07 4e 0c 20 20 20 20 c9 20 31 3a 0d 07 | ...N. . 1:..| 00001870 58 2f 20 20 20 20 20 20 f2 64 72 61 77 73 70 72 |X/ .drawspr| 00001880 69 74 65 28 c3 49 2c 22 6c 67 5f 22 2b 74 65 6d |ite(.I,"lg_"+tem| 00001890 70 73 75 69 74 24 2c 32 38 2c 35 35 29 0d 07 62 |psuit$,28,55)..b| 000018a0 0c 20 20 20 20 c9 20 32 3a 0d 07 6c 2c 20 20 20 |. . 2:..l, | 000018b0 20 20 20 f2 64 72 61 77 73 70 72 69 74 65 28 c3 | .drawsprite(.| 000018c0 49 2c 74 65 6d 70 73 70 72 69 74 65 24 2c 36 38 |I,tempsprite$,68| 000018d0 2c 31 33 36 29 0d 07 76 2c 20 20 20 20 20 20 f2 |,136)..v, .| 000018e0 64 72 61 77 73 70 72 69 74 65 28 c3 49 2c 74 65 |drawsprite(.I,te| 000018f0 6d 70 73 70 72 69 74 65 32 24 2c 36 38 2c 35 32 |mpsprite2$,68,52| 00001900 29 0d 07 80 0c 20 20 20 20 c9 20 33 3a 0d 07 8a |).... . 3:...| 00001910 2c 20 20 20 20 20 20 f2 64 72 61 77 73 70 72 69 |, .drawspri| 00001920 74 65 28 c3 49 2c 74 65 6d 70 73 70 72 69 74 65 |te(.I,tempsprite| 00001930 24 2c 36 38 2c 31 34 36 29 0d 07 94 2b 20 20 20 |$,68,146)...+ | 00001940 20 20 20 f2 64 72 61 77 73 70 72 69 74 65 28 c3 | .drawsprite(.| 00001950 49 2c 74 65 6d 70 73 70 72 69 74 65 24 2c 36 38 |I,tempsprite$,68| 00001960 2c 39 34 29 0d 07 9e 2c 20 20 20 20 20 20 f2 64 |,94)..., .d| 00001970 72 61 77 73 70 72 69 74 65 28 c3 49 2c 74 65 6d |rawsprite(.I,tem| 00001980 70 73 70 72 69 74 65 32 24 2c 36 38 2c 34 32 29 |psprite2$,68,42)| 00001990 0d 07 a8 0c 20 20 20 20 c9 20 34 3a 0d 07 b2 2c |.... . 4:...,| 000019a0 20 20 20 20 20 20 f2 64 72 61 77 73 70 72 69 74 | .drawsprit| 000019b0 65 28 c3 49 2c 74 65 6d 70 73 70 72 69 74 65 24 |e(.I,tempsprite$| 000019c0 2c 34 33 2c 31 33 36 29 0d 07 bc 2c 20 20 20 20 |,43,136)..., | 000019d0 20 20 f2 64 72 61 77 73 70 72 69 74 65 28 c3 49 | .drawsprite(.I| 000019e0 2c 74 65 6d 70 73 70 72 69 74 65 24 2c 39 33 2c |,tempsprite$,93,| 000019f0 31 33 36 29 0d 07 c6 2c 20 20 20 20 20 20 f2 64 |136)..., .d| 00001a00 72 61 77 73 70 72 69 74 65 28 c3 49 2c 74 65 6d |rawsprite(.I,tem| 00001a10 70 73 70 72 69 74 65 32 24 2c 34 33 2c 35 32 29 |psprite2$,43,52)| 00001a20 0d 07 d0 2c 20 20 20 20 20 20 f2 64 72 61 77 73 |..., .draws| 00001a30 70 72 69 74 65 28 c3 49 2c 74 65 6d 70 73 70 72 |prite(.I,tempspr| 00001a40 69 74 65 32 24 2c 39 33 2c 35 32 29 0d 07 da 0c |ite2$,93,52)....| 00001a50 20 20 20 20 c9 20 35 3a 0d 07 e4 2b 20 20 20 20 | . 5:...+ | 00001a60 20 20 f2 64 72 61 77 73 70 72 69 74 65 28 c3 49 | .drawsprite(.I| 00001a70 2c 74 65 6d 70 73 70 72 69 74 65 24 2c 36 38 2c |,tempsprite$,68,| 00001a80 39 34 29 0d 07 ee 2c 20 20 20 20 20 20 f2 64 72 |94)..., .dr| 00001a90 61 77 73 70 72 69 74 65 28 c3 49 2c 74 65 6d 70 |awsprite(.I,temp| 00001aa0 73 70 72 69 74 65 24 2c 34 33 2c 31 33 36 29 0d |sprite$,43,136).| 00001ab0 07 f8 2c 20 20 20 20 20 20 f2 64 72 61 77 73 70 |.., .drawsp| 00001ac0 72 69 74 65 28 c3 49 2c 74 65 6d 70 73 70 72 69 |rite(.I,tempspri| 00001ad0 74 65 24 2c 39 33 2c 31 33 36 29 0d 08 02 2c 20 |te$,93,136)..., | 00001ae0 20 20 20 20 20 f2 64 72 61 77 73 70 72 69 74 65 | .drawsprite| 00001af0 28 c3 49 2c 74 65 6d 70 73 70 72 69 74 65 32 24 |(.I,tempsprite2$| 00001b00 2c 34 33 2c 35 32 29 0d 08 0c 2c 20 20 20 20 20 |,43,52)..., | 00001b10 20 f2 64 72 61 77 73 70 72 69 74 65 28 c3 49 2c | .drawsprite(.I,| 00001b20 74 65 6d 70 73 70 72 69 74 65 32 24 2c 39 33 2c |tempsprite2$,93,| 00001b30 35 32 29 0d 08 16 0c 20 20 20 20 c9 20 36 3a 0d |52).... . 6:.| 00001b40 08 20 2c 20 20 20 20 20 20 f2 64 72 61 77 73 70 |. , .drawsp| 00001b50 72 69 74 65 28 c3 49 2c 74 65 6d 70 73 70 72 69 |rite(.I,tempspri| 00001b60 74 65 24 2c 34 33 2c 31 33 36 29 0d 08 2a 2c 20 |te$,43,136)..*, | 00001b70 20 20 20 20 20 f2 64 72 61 77 73 70 72 69 74 65 | .drawsprite| 00001b80 28 c3 49 2c 74 65 6d 70 73 70 72 69 74 65 24 2c |(.I,tempsprite$,| 00001b90 39 33 2c 31 33 36 29 0d 08 34 2b 20 20 20 20 20 |93,136)..4+ | 00001ba0 20 f2 64 72 61 77 73 70 72 69 74 65 28 c3 49 2c | .drawsprite(.I,| 00001bb0 74 65 6d 70 73 70 72 69 74 65 24 2c 34 33 2c 39 |tempsprite$,43,9| 00001bc0 34 29 0d 08 3e 2b 20 20 20 20 20 20 f2 64 72 61 |4)..>+ .dra| 00001bd0 77 73 70 72 69 74 65 28 c3 49 2c 74 65 6d 70 73 |wsprite(.I,temps| 00001be0 70 72 69 74 65 24 2c 39 33 2c 39 34 29 0d 08 48 |prite$,93,94)..H| 00001bf0 2c 20 20 20 20 20 20 f2 64 72 61 77 73 70 72 69 |, .drawspri| 00001c00 74 65 28 c3 49 2c 74 65 6d 70 73 70 72 69 74 65 |te(.I,tempsprite| 00001c10 32 24 2c 34 33 2c 35 32 29 0d 08 52 2c 20 20 20 |2$,43,52)..R, | 00001c20 20 20 20 f2 64 72 61 77 73 70 72 69 74 65 28 c3 | .drawsprite(.| 00001c30 49 2c 74 65 6d 70 73 70 72 69 74 65 32 24 2c 39 |I,tempsprite2$,9| 00001c40 33 2c 35 32 29 0d 08 5c 0c 20 20 20 20 c9 20 37 |3,52)..\. . 7| 00001c50 3a 0d 08 66 2c 20 20 20 20 20 20 f2 64 72 61 77 |:..f, .draw| 00001c60 73 70 72 69 74 65 28 c3 49 2c 74 65 6d 70 73 70 |sprite(.I,tempsp| 00001c70 72 69 74 65 24 2c 34 33 2c 31 33 36 29 0d 08 70 |rite$,43,136)..p| 00001c80 2c 20 20 20 20 20 20 f2 64 72 61 77 73 70 72 69 |, .drawspri| 00001c90 74 65 28 c3 49 2c 74 65 6d 70 73 70 72 69 74 65 |te(.I,tempsprite| 00001ca0 24 2c 39 33 2c 31 33 36 29 0d 08 7a 2c 20 20 20 |$,93,136)..z, | 00001cb0 20 20 20 f2 64 72 61 77 73 70 72 69 74 65 28 c3 | .drawsprite(.| 00001cc0 49 2c 74 65 6d 70 73 70 72 69 74 65 24 2c 36 38 |I,tempsprite$,68| 00001cd0 2c 31 31 36 29 0d 08 84 2b 20 20 20 20 20 20 f2 |,116)...+ .| 00001ce0 64 72 61 77 73 70 72 69 74 65 28 c3 49 2c 74 65 |drawsprite(.I,te| 00001cf0 6d 70 73 70 72 69 74 65 24 2c 34 33 2c 39 34 29 |mpsprite$,43,94)| 00001d00 0d 08 8e 2b 20 20 20 20 20 20 f2 64 72 61 77 73 |...+ .draws| 00001d10 70 72 69 74 65 28 c3 49 2c 74 65 6d 70 73 70 72 |prite(.I,tempspr| 00001d20 69 74 65 24 2c 39 33 2c 39 34 29 0d 08 98 2c 20 |ite$,93,94)..., | 00001d30 20 20 20 20 20 f2 64 72 61 77 73 70 72 69 74 65 | .drawsprite| 00001d40 28 c3 49 2c 74 65 6d 70 73 70 72 69 74 65 32 24 |(.I,tempsprite2$| 00001d50 2c 34 33 2c 35 32 29 0d 08 a2 2c 20 20 20 20 20 |,43,52)..., | 00001d60 20 f2 64 72 61 77 73 70 72 69 74 65 28 c3 49 2c | .drawsprite(.I,| 00001d70 74 65 6d 70 73 70 72 69 74 65 32 24 2c 39 33 2c |tempsprite2$,93,| 00001d80 35 32 29 0d 08 ac 0c 20 20 20 20 c9 20 38 3a 0d |52).... . 8:.| 00001d90 08 b6 2c 20 20 20 20 20 20 f2 64 72 61 77 73 70 |.., .drawsp| 00001da0 72 69 74 65 28 c3 49 2c 74 65 6d 70 73 70 72 69 |rite(.I,tempspri| 00001db0 74 65 24 2c 34 33 2c 31 34 38 29 0d 08 c0 2c 20 |te$,43,148)..., | 00001dc0 20 20 20 20 20 f2 64 72 61 77 73 70 72 69 74 65 | .drawsprite| 00001dd0 28 c3 49 2c 74 65 6d 70 73 70 72 69 74 65 24 2c |(.I,tempsprite$,| 00001de0 39 33 2c 31 34 38 29 0d 08 ca 2c 20 20 20 20 20 |93,148)..., | 00001df0 20 f2 64 72 61 77 73 70 72 69 74 65 28 c3 49 2c | .drawsprite(.I,| 00001e00 74 65 6d 70 73 70 72 69 74 65 24 2c 34 33 2c 31 |tempsprite$,43,1| 00001e10 31 32 29 0d 08 d4 2c 20 20 20 20 20 20 f2 64 72 |12)..., .dr| 00001e20 61 77 73 70 72 69 74 65 28 c3 49 2c 74 65 6d 70 |awsprite(.I,temp| 00001e30 73 70 72 69 74 65 24 2c 39 33 2c 31 31 32 29 0d |sprite$,93,112).| 00001e40 08 de 2c 20 20 20 20 20 20 f2 64 72 61 77 73 70 |.., .drawsp| 00001e50 72 69 74 65 28 c3 49 2c 74 65 6d 70 73 70 72 69 |rite(.I,tempspri| 00001e60 74 65 32 24 2c 34 33 2c 37 36 29 0d 08 e8 2c 20 |te2$,43,76)..., | 00001e70 20 20 20 20 20 f2 64 72 61 77 73 70 72 69 74 65 | .drawsprite| 00001e80 28 c3 49 2c 74 65 6d 70 73 70 72 69 74 65 32 24 |(.I,tempsprite2$| 00001e90 2c 39 33 2c 37 36 29 0d 08 f2 2c 20 20 20 20 20 |,93,76)..., | 00001ea0 20 f2 64 72 61 77 73 70 72 69 74 65 28 c3 49 2c | .drawsprite(.I,| 00001eb0 74 65 6d 70 73 70 72 69 74 65 32 24 2c 34 33 2c |tempsprite2$,43,| 00001ec0 34 30 29 0d 08 fc 2c 20 20 20 20 20 20 f2 64 72 |40)..., .dr| 00001ed0 61 77 73 70 72 69 74 65 28 c3 49 2c 74 65 6d 70 |awsprite(.I,temp| 00001ee0 73 70 72 69 74 65 32 24 2c 39 33 2c 34 30 29 0d |sprite2$,93,40).| 00001ef0 09 06 0c 20 20 20 20 c9 20 39 3a 0d 09 10 2c 20 |... . 9:..., | 00001f00 20 20 20 20 20 f2 64 72 61 77 73 70 72 69 74 65 | .drawsprite| 00001f10 28 c3 49 2c 74 65 6d 70 73 70 72 69 74 65 24 2c |(.I,tempsprite$,| 00001f20 34 33 2c 31 34 38 29 0d 09 1a 2c 20 20 20 20 20 |43,148)..., | 00001f30 20 f2 64 72 61 77 73 70 72 69 74 65 28 c3 49 2c | .drawsprite(.I,| 00001f40 74 65 6d 70 73 70 72 69 74 65 24 2c 39 33 2c 31 |tempsprite$,93,1| 00001f50 34 38 29 0d 09 24 2c 20 20 20 20 20 20 f2 64 72 |48)..$, .dr| 00001f60 61 77 73 70 72 69 74 65 28 c3 49 2c 74 65 6d 70 |awsprite(.I,temp| 00001f70 73 70 72 69 74 65 24 2c 34 33 2c 31 31 32 29 0d |sprite$,43,112).| 00001f80 09 2e 2c 20 20 20 20 20 20 f2 64 72 61 77 73 70 |.., .drawsp| 00001f90 72 69 74 65 28 c3 49 2c 74 65 6d 70 73 70 72 69 |rite(.I,tempspri| 00001fa0 74 65 24 2c 39 33 2c 31 31 32 29 0d 09 38 2b 20 |te$,93,112)..8+ | 00001fb0 20 20 20 20 20 f2 64 72 61 77 73 70 72 69 74 65 | .drawsprite| 00001fc0 28 c3 49 2c 74 65 6d 70 73 70 72 69 74 65 24 2c |(.I,tempsprite$,| 00001fd0 36 38 2c 39 34 29 0d 09 42 2c 20 20 20 20 20 20 |68,94)..B, | 00001fe0 f2 64 72 61 77 73 70 72 69 74 65 28 c3 49 2c 74 |.drawsprite(.I,t| 00001ff0 65 6d 70 73 70 72 69 74 65 32 24 2c 34 33 2c 37 |empsprite2$,43,7| 00002000 36 29 0d 09 4c 2c 20 20 20 20 20 20 f2 64 72 61 |6)..L, .dra| 00002010 77 73 70 72 69 74 65 28 c3 49 2c 74 65 6d 70 73 |wsprite(.I,temps| 00002020 70 72 69 74 65 32 24 2c 39 33 2c 37 36 29 0d 09 |prite2$,93,76)..| 00002030 56 2c 20 20 20 20 20 20 f2 64 72 61 77 73 70 72 |V, .drawspr| 00002040 69 74 65 28 c3 49 2c 74 65 6d 70 73 70 72 69 74 |ite(.I,tempsprit| 00002050 65 32 24 2c 34 33 2c 34 30 29 0d 09 60 2c 20 20 |e2$,43,40)..`, | 00002060 20 20 20 20 f2 64 72 61 77 73 70 72 69 74 65 28 | .drawsprite(| 00002070 c3 49 2c 74 65 6d 70 73 70 72 69 74 65 32 24 2c |.I,tempsprite2$,| 00002080 39 33 2c 34 30 29 0d 09 6a 0d 20 20 20 20 c9 20 |93,40)..j. . | 00002090 31 30 3a 0d 09 74 2c 20 20 20 20 20 20 f2 64 72 |10:..t, .dr| 000020a0 61 77 73 70 72 69 74 65 28 c3 49 2c 74 65 6d 70 |awsprite(.I,temp| 000020b0 73 70 72 69 74 65 24 2c 34 33 2c 31 34 38 29 0d |sprite$,43,148).| 000020c0 09 7e 2c 20 20 20 20 20 20 f2 64 72 61 77 73 70 |.~, .drawsp| 000020d0 72 69 74 65 28 c3 49 2c 74 65 6d 70 73 70 72 69 |rite(.I,tempspri| 000020e0 74 65 24 2c 39 33 2c 31 34 38 29 0d 09 88 2c 20 |te$,93,148)..., | 000020f0 20 20 20 20 20 f2 64 72 61 77 73 70 72 69 74 65 | .drawsprite| 00002100 28 c3 49 2c 74 65 6d 70 73 70 72 69 74 65 24 2c |(.I,tempsprite$,| 00002110 36 38 2c 31 33 30 29 0d 09 92 2c 20 20 20 20 20 |68,130)..., | 00002120 20 f2 64 72 61 77 73 70 72 69 74 65 28 c3 49 2c | .drawsprite(.I,| 00002130 74 65 6d 70 73 70 72 69 74 65 24 2c 34 33 2c 31 |tempsprite$,43,1| 00002140 31 32 29 0d 09 9c 2c 20 20 20 20 20 20 f2 64 72 |12)..., .dr| 00002150 61 77 73 70 72 69 74 65 28 c3 49 2c 74 65 6d 70 |awsprite(.I,temp| 00002160 73 70 72 69 74 65 24 2c 39 33 2c 31 31 32 29 0d |sprite$,93,112).| 00002170 09 a6 2c 20 20 20 20 20 20 f2 64 72 61 77 73 70 |.., .drawsp| 00002180 72 69 74 65 28 c3 49 2c 74 65 6d 70 73 70 72 69 |rite(.I,tempspri| 00002190 74 65 32 24 2c 34 33 2c 37 36 29 0d 09 b0 2c 20 |te2$,43,76)..., | 000021a0 20 20 20 20 20 f2 64 72 61 77 73 70 72 69 74 65 | .drawsprite| 000021b0 28 c3 49 2c 74 65 6d 70 73 70 72 69 74 65 32 24 |(.I,tempsprite2$| 000021c0 2c 39 33 2c 37 36 29 0d 09 ba 2c 20 20 20 20 20 |,93,76)..., | 000021d0 20 f2 64 72 61 77 73 70 72 69 74 65 28 c3 49 2c | .drawsprite(.I,| 000021e0 74 65 6d 70 73 70 72 69 74 65 32 24 2c 36 38 2c |tempsprite2$,68,| 000021f0 35 38 29 0d 09 c4 2c 20 20 20 20 20 20 f2 64 72 |58)..., .dr| 00002200 61 77 73 70 72 69 74 65 28 c3 49 2c 74 65 6d 70 |awsprite(.I,temp| 00002210 73 70 72 69 74 65 32 24 2c 34 33 2c 34 30 29 0d |sprite2$,43,40).| 00002220 09 ce 2c 20 20 20 20 20 20 f2 64 72 61 77 73 70 |.., .drawsp| 00002230 72 69 74 65 28 c3 49 2c 74 65 6d 70 73 70 72 69 |rite(.I,tempspri| 00002240 74 65 32 24 2c 39 33 2c 34 30 29 0d 09 d8 13 20 |te2$,93,40).... | 00002250 20 20 20 c9 20 31 31 2c 31 32 2c 31 33 3a 0d 09 | . 11,12,13:..| 00002260 e2 2b 20 20 20 20 20 20 f2 64 72 61 77 73 70 72 |.+ .drawspr| 00002270 69 74 65 28 c3 49 2c 74 65 6d 70 73 70 72 69 74 |ite(.I,tempsprit| 00002280 65 24 2c 33 38 2c 33 36 29 0d 09 ec 07 20 20 cb |e$,38,36).... .| 00002290 0d 09 f6 41 20 20 e7 20 74 65 6d 70 76 61 6c 25 |...A . tempval%| 000022a0 3c 31 31 20 8c 20 c8 99 22 4f 53 5f 53 70 72 69 |<11 . .."OS_Spri| 000022b0 74 65 4f 70 22 2c 32 35 36 2b 32 35 2c 73 70 72 |teOp",256+25,spr| 000022c0 69 74 65 25 2c 74 65 6d 70 73 70 72 69 74 65 32 |ite%,tempsprite2| 000022d0 24 0d 0a 00 07 ed 20 49 0d 0a 0a 05 e1 0d 0a 14 |$..... I........| 000022e0 04 0d 0a 1e 2c dd f2 64 72 61 77 73 70 72 69 74 |....,..drawsprit| 000022f0 65 28 74 65 6d 70 6c 61 74 65 24 2c 61 64 64 24 |e(template$,add$| 00002300 2c 78 70 6f 73 25 2c 79 70 6f 73 25 29 0d 0a 28 |,xpos%,ypos%)..(| 00002310 3b f4 20 54 68 69 73 20 70 72 6f 63 65 64 75 72 |;. This procedur| 00002320 65 20 77 69 6c 6c 20 61 64 64 20 74 68 65 20 73 |e will add the s| 00002330 70 72 69 74 65 20 61 64 64 24 20 74 6f 20 74 68 |prite add$ to th| 00002340 65 20 73 70 72 69 74 65 0d 0a 32 2e f4 20 73 70 |e sprite..2.. sp| 00002350 72 69 74 65 6e 61 6d 65 24 20 61 74 20 74 68 65 |ritename$ at the| 00002360 20 70 6f 73 69 74 69 6f 6e 20 78 70 6f 73 25 2c | position xpos%,| 00002370 79 70 6f 73 25 2e 0d 0a 3c 2e c8 99 22 4f 53 5f |ypos%...<..."OS_| 00002380 53 70 72 69 74 65 4f 70 22 2c 32 35 36 2b 36 30 |SpriteOp",256+60| 00002390 2c 73 70 72 69 74 65 25 2c 74 65 6d 70 6c 61 74 |,sprite%,templat| 000023a0 65 24 2c 30 0d 0a 46 35 c8 99 22 4f 53 5f 53 70 |e$,0..F5.."OS_Sp| 000023b0 72 69 74 65 4f 70 22 2c 32 35 36 2b 33 34 2c 73 |riteOp",256+34,s| 000023c0 70 72 69 74 65 25 2c 61 64 64 24 2c 78 70 6f 73 |prite%,add$,xpos| 000023d0 25 2c 79 70 6f 73 25 2c 38 0d 0a 50 1c c8 99 22 |%,ypos%,8..P..."| 000023e0 4f 53 5f 53 70 72 69 74 65 4f 70 22 2c 32 35 36 |OS_SpriteOp",256| 000023f0 2b 36 30 2c 30 0d 0a 5a 05 e1 0d 0a 64 04 0d 0a |+60,0..Z....d...| 00002400 6e 31 dd f2 61 64 64 73 70 72 69 74 65 28 74 65 |n1..addsprite(te| 00002410 6d 70 6c 61 74 65 24 2c 74 65 6d 70 24 2c 61 64 |mplate$,temp$,ad| 00002420 64 24 2c 78 70 6f 73 25 2c 79 70 6f 73 25 29 0d |d$,xpos%,ypos%).| 00002430 0a 78 3b f4 20 54 68 69 73 20 70 72 6f 63 65 64 |.x;. This proced| 00002440 75 72 65 20 77 69 6c 6c 20 61 64 64 20 74 68 65 |ure will add the| 00002450 20 73 70 72 69 74 65 20 61 64 64 24 20 74 6f 20 | sprite add$ to | 00002460 74 68 65 20 73 70 72 69 74 65 0d 0a 82 44 f4 20 |the sprite...D. | 00002470 73 70 72 69 74 65 6e 61 6d 65 24 20 61 74 20 74 |spritename$ at t| 00002480 68 65 20 70 6f 73 69 74 69 6f 6e 20 78 70 6f 73 |he position xpos| 00002490 25 2c 79 70 6f 73 25 2c 20 63 72 65 61 74 69 6e |%,ypos%, creatin| 000024a0 67 20 61 20 6e 65 77 20 73 70 72 69 74 65 0d 0a |g a new sprite..| 000024b0 8c 22 f4 20 63 61 6c 6c 65 64 20 74 65 6d 70 24 |.". called temp$| 000024c0 20 69 6e 20 74 68 65 20 70 72 6f 63 65 73 73 2e | in the process.| 000024d0 0d 0a 96 32 c8 99 22 4f 53 5f 53 70 72 69 74 65 |...2.."OS_Sprite| 000024e0 4f 70 22 2c 32 35 36 2b 32 37 2c 73 70 72 69 74 |Op",256+27,sprit| 000024f0 65 25 2c 74 65 6d 70 6c 61 74 65 24 2c 74 65 6d |e%,template$,tem| 00002500 70 24 0d 0a a0 2a c8 99 22 4f 53 5f 53 70 72 69 |p$...*.."OS_Spri| 00002510 74 65 4f 70 22 2c 32 35 36 2b 36 30 2c 73 70 72 |teOp",256+60,spr| 00002520 69 74 65 25 2c 74 65 6d 70 24 2c 30 0d 0a aa 35 |ite%,temp$,0...5| 00002530 c8 99 22 4f 53 5f 53 70 72 69 74 65 4f 70 22 2c |.."OS_SpriteOp",| 00002540 32 35 36 2b 33 34 2c 73 70 72 69 74 65 25 2c 61 |256+34,sprite%,a| 00002550 64 64 24 2c 78 70 6f 73 25 2c 79 70 6f 73 25 2c |dd$,xpos%,ypos%,| 00002560 30 0d 0a b4 1c c8 99 22 4f 53 5f 53 70 72 69 74 |0......"OS_Sprit| 00002570 65 4f 70 22 2c 32 35 36 2b 36 30 2c 30 0d 0a be |eOp",256+60,0...| 00002580 05 e1 0d 0a c8 04 0d 0a d2 0f dd f2 77 69 6d 70 |............wimp| 00002590 5f 70 6f 6c 6c 0d 0a dc 3c f4 20 54 68 69 73 20 |_poll...<. This | 000025a0 69 73 20 74 68 65 20 68 65 61 72 74 20 6f 66 20 |is the heart of | 000025b0 74 68 65 20 70 72 6f 67 72 61 6d 6d 65 2e 20 50 |the programme. P| 000025c0 6f 6c 6c 73 20 74 68 65 20 57 49 4d 50 20 61 6e |olls the WIMP an| 000025d0 64 0d 0a e6 3a f4 20 70 65 72 66 6f 72 6d 73 20 |d...:. performs | 000025e0 61 63 74 69 6f 6e 73 20 64 65 70 65 6e 64 65 6e |actions dependen| 000025f0 74 20 6f 6e 20 74 68 65 20 65 76 65 6e 74 73 20 |t on the events | 00002600 74 68 61 74 20 6f 63 63 75 72 2e 0d 0a f0 1a ea |that occur......| 00002610 20 6f 75 74 6c 69 6e 65 25 2c 41 25 2c 42 25 2c | outline%,A%,B%,| 00002620 58 25 2c 59 25 0d 0a fa 0e c8 95 20 ac 20 71 75 |X%,Y%...... . qu| 00002630 69 74 25 0d 0b 04 13 20 20 de 20 6f 75 74 6c 69 |it%.... . outli| 00002640 6e 65 25 20 32 30 0d 0b 0e 15 20 20 21 6f 75 74 |ne% 20.... !out| 00002650 6c 69 6e 65 25 3d 6d 61 69 6e 25 0d 0b 18 1a 20 |line%=main%.... | 00002660 20 c8 99 20 22 57 69 6d 70 45 78 74 5f 50 72 65 | .. "WimpExt_Pre| 00002670 50 6f 6c 6c 22 0d 0b 22 31 20 20 c8 99 20 22 57 |Poll".."1 .. "W| 00002680 69 6d 70 5f 50 6f 6c 6c 22 2c 25 31 31 31 30 30 |imp_Poll",%11100| 00002690 30 30 30 31 31 30 30 30 31 2c 71 25 20 b8 20 72 |000110001,q% . r| 000026a0 65 61 73 6f 6e 25 0d 0b 2c 34 20 20 c8 99 20 22 |eason%..,4 .. "| 000026b0 57 69 6d 70 45 78 74 5f 41 63 74 69 6f 6e 22 2c |WimpExt_Action",| 000026c0 74 61 73 6b 25 2c 71 25 2c 72 65 61 73 6f 6e 25 |task%,q%,reason%| 000026d0 20 b8 20 72 65 61 73 6f 6e 25 0d 0b 36 12 20 20 | . reason%..6. | 000026e0 c8 8e 20 72 65 61 73 6f 6e 25 20 ca 0d 0b 40 29 |.. reason% ...@)| 000026f0 20 20 20 20 c9 20 31 20 3a 20 c8 99 20 22 57 69 | . 1 : .. "Wi| 00002700 6d 70 45 78 74 5f 41 75 74 6f 52 65 64 72 61 77 |mpExt_AutoRedraw| 00002710 22 2c 2c 71 25 0d 0b 4a 29 20 20 20 20 c9 20 32 |",,q%..J) . 2| 00002720 20 3a 20 c8 99 20 22 57 69 6d 70 45 78 74 5f 4f | : .. "WimpExt_O| 00002730 70 65 6e 4c 69 6e 6b 65 64 22 2c 2c 71 25 0d 0b |penLinked",,q%..| 00002740 54 2a 20 20 20 20 c9 20 33 20 3a 20 c8 99 20 22 |T* . 3 : .. "| 00002750 57 69 6d 70 45 78 74 5f 43 6c 6f 73 65 4c 69 6e |WimpExt_CloseLin| 00002760 6b 65 64 22 2c 2c 71 25 0d 0b 5e 0d 20 20 20 20 |ked",,q%..^. | 00002770 c9 20 36 20 3a 0d 0b 68 16 20 20 20 20 20 20 e7 |. 6 :..h. .| 00002780 20 71 25 21 31 32 3d 2d 32 20 8c 0d 0b 72 16 20 | q%!12=-2 ...r. | 00002790 20 20 20 20 20 20 20 e7 20 71 25 21 38 3d 32 20 | . q%!8=2 | 000027a0 8c 0d 0b 7c 38 20 20 20 20 20 20 20 20 20 20 c8 |...|8 .| 000027b0 99 20 22 57 69 6d 70 45 78 74 5f 43 72 65 61 74 |. "WimpExt_Creat| 000027c0 65 4d 65 6e 75 22 2c 2c 69 6d 65 6e 75 25 2c 21 |eMenu",,imenu%,!| 000027d0 71 25 2d 36 34 2c 32 35 30 0d 0b 86 1a 20 20 20 |q%-64,250.... | 000027e0 20 20 20 20 20 20 20 6d 65 6e 75 25 3d 69 6d 65 | menu%=ime| 000027f0 6e 75 25 0d 0b 90 0d 20 20 20 20 20 20 20 20 cd |nu%.... .| 00002800 0d 0b 9a 1f 20 20 20 20 20 20 20 20 e7 20 71 25 |.... . q%| 00002810 21 38 3d 34 20 8c 20 f2 6e 65 77 67 61 6d 65 0d |!8=4 . .newgame.| 00002820 0b a4 0b 20 20 20 20 20 20 cd 0d 0b ae 22 20 20 |... ...." | 00002830 20 20 20 20 e7 20 71 25 21 31 32 3d 6d 61 69 6e | . q%!12=main| 00002840 25 20 80 20 71 25 21 38 3d 32 20 8c 0d 0b b8 34 |% . q%!8=2 ....4| 00002850 20 20 20 20 20 20 20 20 c8 99 20 22 57 69 6d 70 | .. "Wimp| 00002860 45 78 74 5f 43 72 65 61 74 65 4d 65 6e 75 22 2c |Ext_CreateMenu",| 00002870 2c 67 6d 65 6e 75 25 2c 21 71 25 2c 71 25 21 34 |,gmenu%,!q%,q%!4| 00002880 0d 0b c2 18 20 20 20 20 20 20 20 20 6d 65 6e 75 |.... menu| 00002890 25 3d 67 6d 65 6e 75 25 0d 0b cc 0b 20 20 20 20 |%=gmenu%.... | 000028a0 20 20 cd 0d 0b d6 2d 20 20 20 20 20 20 e7 20 71 | ....- . q| 000028b0 25 21 31 32 3d 6d 61 69 6e 25 20 80 20 28 71 25 |%!12=main% . (q%| 000028c0 21 38 3d 34 20 84 20 71 25 21 38 3d 31 29 20 8c |!8=4 . q%!8=1) .| 000028d0 0d 0b e0 16 20 20 20 20 20 20 20 20 c8 8e 20 67 |.... .. g| 000028e0 61 6d 65 25 20 ca 0d 0b ea 2e 20 20 20 20 20 20 |ame% ..... | 000028f0 20 20 20 20 c9 20 31 20 3a 20 f2 6f 73 6d 6f 73 | . 1 : .osmos| 00002900 69 73 5f 6d 6f 75 73 65 63 6c 69 63 6b 28 71 25 |is_mouseclick(q%| 00002910 21 31 36 29 0d 0b f4 45 20 20 20 20 20 20 20 20 |!16)...E | 00002920 20 20 c9 20 32 20 3a 20 e7 20 64 65 61 6c 25 3d | . 2 : . deal%=| 00002930 34 20 8c 20 f2 6e 65 77 67 61 6d 65 20 8b 20 f2 |4 . .newgame . .| 00002940 70 79 72 61 6d 69 64 5f 6d 6f 75 73 65 63 6c 69 |pyramid_mousecli| 00002950 63 6b 28 71 25 21 31 36 29 0d 0b fe 0d 20 20 20 |ck(q%!16).... | 00002960 20 20 20 20 20 cb 0d 0c 08 0b 20 20 20 20 20 20 | ..... | 00002970 cd 0d 0c 12 0d 20 20 20 20 c9 20 39 20 3a 0d 0c |..... . 9 :..| 00002980 1c 14 20 20 20 20 20 20 c8 8e 20 6d 65 6e 75 25 |.. .. menu%| 00002990 20 ca 0d 0c 26 15 20 20 20 20 20 20 20 20 c9 20 | ...&. . | 000029a0 69 6d 65 6e 75 25 3a 0d 0c 30 16 20 20 20 20 20 |imenu%:..0. | 000029b0 20 20 20 20 20 c8 8e 20 21 71 25 20 ca 0d 0c 3a | .. !q% ...:| 000029c0 41 20 20 20 20 20 20 20 20 20 20 20 20 c9 20 30 |A . 0| 000029d0 20 3a 20 c8 99 22 57 69 6d 70 45 78 74 5f 4f 70 | : .."WimpExt_Op| 000029e0 65 6e 44 69 61 6c 6f 67 75 65 22 2c 2c 2c 69 6e |enDialogue",,,in| 000029f0 66 6f 25 2c 21 71 25 2d 36 34 2c 31 38 34 0d 0c |fo%,!q%-64,184..| 00002a00 44 26 20 20 20 20 20 20 20 20 20 20 20 20 c9 20 |D& . | 00002a10 31 20 3a 20 67 61 6d 65 25 3d 31 3a f2 6e 65 77 |1 : game%=1:.new| 00002a20 67 61 6d 65 0d 0c 4e 1d 20 20 20 20 20 20 20 20 |game..N. | 00002a30 20 20 20 20 c9 20 32 20 3a 20 71 75 69 74 25 3d | . 2 : quit%=| 00002a40 b9 0d 0c 58 0f 20 20 20 20 20 20 20 20 20 20 cb |...X. .| 00002a50 0d 0c 62 15 20 20 20 20 20 20 20 20 c9 20 67 6d |..b. . gm| 00002a60 65 6e 75 25 3a 0d 0c 6c 16 20 20 20 20 20 20 20 |enu%:..l. | 00002a70 20 20 20 c8 8e 20 21 71 25 20 ca 0d 0c 76 15 20 | .. !q% ...v. | 00002a80 20 20 20 20 20 20 20 20 20 20 20 c9 20 30 20 3a | . 0 :| 00002a90 0d 0c 80 1c 20 20 20 20 20 20 20 20 20 20 20 20 |.... | 00002aa0 20 20 c8 8e 20 67 61 6d 65 25 20 ca 0d 0c 8a 27 | .. game% ....'| 00002ab0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00002ac0 c9 20 31 20 3a 20 f2 6f 73 6d 6f 73 69 73 5f 75 |. 1 : .osmosis_u| 00002ad0 6e 64 6f 0d 0c 94 27 20 20 20 20 20 20 20 20 20 |ndo...' | 00002ae0 20 20 20 20 20 20 20 c9 20 32 20 3a 20 f2 70 79 | . 2 : .py| 00002af0 72 61 6d 69 64 5f 75 6e 64 6f 0d 0c 9e 13 20 20 |ramid_undo.... | 00002b00 20 20 20 20 20 20 20 20 20 20 20 20 cb 0d 0c a8 | ....| 00002b10 15 20 20 20 20 20 20 20 20 20 20 20 20 c9 20 31 |. . 1| 00002b20 20 3a 0d 0c b2 1c 20 20 20 20 20 20 20 20 20 20 | :.... | 00002b30 20 20 20 20 c8 8e 20 67 61 6d 65 25 20 ca 0d 0c | .. game% ...| 00002b40 bc 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |." | 00002b50 20 20 c9 20 31 20 3a 20 f2 6e 65 77 67 61 6d 65 | . 1 : .newgame| 00002b60 0d 0c c6 19 20 20 20 20 20 20 20 20 20 20 20 20 |.... | 00002b70 20 20 20 20 c9 20 32 20 3a 0d 0c d0 1d 20 20 20 | . 2 :.... | 00002b80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 | d| 00002b90 65 61 6c 25 3d 34 0d 0c da 24 20 20 20 20 20 20 |eal%=4...$ | 00002ba0 20 20 20 20 20 20 20 20 20 20 20 20 f2 70 79 72 | .pyr| 00002bb0 61 6d 69 64 5f 73 63 6f 72 65 0d 0c e4 1e 20 20 |amid_score.... | 00002bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00002bd0 f2 6e 65 77 67 61 6d 65 0d 0c ee 13 20 20 20 20 |.newgame.... | 00002be0 20 20 20 20 20 20 20 20 20 20 cb 0d 0c f8 15 20 | ..... | 00002bf0 20 20 20 20 20 20 20 20 20 20 20 c9 20 32 20 3a | . 2 :| 00002c00 0d 0d 02 19 20 20 20 20 20 20 20 20 20 20 20 20 |.... | 00002c10 20 20 67 61 6d 65 25 3d 31 0d 0d 0c 1a 20 20 20 | game%=1.... | 00002c20 20 20 20 20 20 20 20 20 20 20 20 f2 6e 65 77 67 | .newg| 00002c30 61 6d 65 0d 0d 16 15 20 20 20 20 20 20 20 20 20 |ame.... | 00002c40 20 20 20 c9 20 33 20 3a 0d 0d 20 19 20 20 20 20 | . 3 :.. . | 00002c50 20 20 20 20 20 20 20 20 20 20 67 61 6d 65 25 3d | game%=| 00002c60 32 0d 0d 2a 1a 20 20 20 20 20 20 20 20 20 20 20 |2..*. | 00002c70 20 20 20 f2 6e 65 77 67 61 6d 65 0d 0d 34 1d 20 | .newgame..4. | 00002c80 20 20 20 20 20 20 20 20 20 20 20 c9 20 34 20 3a | . 4 :| 00002c90 20 71 75 69 74 25 3d b9 0d 0d 3e 0f 20 20 20 20 | quit%=...>. | 00002ca0 20 20 20 20 20 20 cb 0d 0d 48 0b 20 20 20 20 20 | ...H. | 00002cb0 20 cb 0d 0d 52 11 20 20 20 20 c9 20 31 37 2c 31 | ...R. . 17,1| 00002cc0 38 20 3a 0d 0d 5c 14 20 20 20 20 20 20 c8 8e 20 |8 :..\. .. | 00002cd0 71 25 21 31 36 20 ca 0d 0d 66 19 20 20 20 20 20 |q%!16 ...f. | 00002ce0 20 20 20 c9 20 30 20 3a 20 71 75 69 74 25 3d b9 | . 0 : quit%=.| 00002cf0 0d 0d 70 0b 20 20 20 20 20 20 cb 0d 0d 7a 07 20 |..p. ...z. | 00002d00 20 cb 0d 0d 84 05 ce 0d 0d 8e 05 e1 0d 0d 98 04 | ...............| 00002d10 0d 0d a2 0d dd f2 6e 65 77 67 61 6d 65 0d 0d ac |......newgame...| 00002d20 26 f4 20 43 61 6c 6c 73 20 74 68 65 20 72 65 6c |&. Calls the rel| 00002d30 65 76 61 6e 74 20 67 61 6d 65 20 72 6f 75 74 69 |evant game routi| 00002d40 6e 65 2e 0d 0d b6 2d c8 99 22 57 69 6d 70 5f 46 |ne....-.."Wimp_F| 00002d50 6f 72 63 65 52 65 64 72 61 77 22 2c 6d 61 69 6e |orceRedraw",main| 00002d60 25 2c 30 2c 2d 31 31 30 30 2c 31 34 38 30 2c 30 |%,0,-1100,1480,0| 00002d70 0d 0d c0 0e c8 8e 20 67 61 6d 65 25 20 ca 0d 0d |...... game% ...| 00002d80 ca 14 20 20 c9 20 31 20 3a 20 f2 6f 73 6d 6f 73 |.. . 1 : .osmos| 00002d90 69 73 0d 0d d4 14 20 20 c9 20 32 20 3a 20 f2 70 |is.... . 2 : .p| 00002da0 79 72 61 6d 69 64 0d 0d de 05 cb 0d 0d e8 0d 70 |yramid.........p| 00002db0 6c 61 79 65 64 25 3d b9 0d 0d f2 05 e1 0d 0d fc |layed%=.........| 00002dc0 04 0d 0e 06 1c dd f2 63 6c 65 61 6e 75 70 77 69 |.......cleanupwi| 00002dd0 6e 64 6f 77 28 77 69 6e 64 6f 77 25 29 0d 0e 10 |ndow(window%)...| 00002de0 32 f4 20 44 65 6c 65 74 65 73 20 61 6c 6c 20 69 |2. Deletes all i| 00002df0 63 6f 6e 73 20 66 72 6f 6d 20 74 68 65 20 73 70 |cons from the sp| 00002e00 65 63 69 66 69 65 64 20 77 69 6e 64 6f 77 2e 0d |ecified window..| 00002e10 0e 1a 0f ea 20 64 65 6c 65 74 65 25 2c 49 0d 0e |.... delete%,I..| 00002e20 24 15 e7 20 69 63 6f 6e 6e 75 6d 62 65 72 25 3e |$.. iconnumber%>| 00002e30 31 20 8c 0d 0e 2e 11 20 20 de 20 64 65 6c 65 74 |1 ..... . delet| 00002e40 65 25 20 38 0d 0e 38 16 20 20 21 64 65 6c 65 74 |e% 8..8. !delet| 00002e50 65 25 3d 77 69 6e 64 6f 77 25 0d 0e 42 19 20 20 |e%=window%..B. | 00002e60 e3 20 49 3d 31 20 b8 20 69 63 6f 6e 6e 75 6d 62 |. I=1 . iconnumb| 00002e70 65 72 25 0d 0e 4c 13 20 20 20 20 64 65 6c 65 74 |er%..L. delet| 00002e80 65 25 21 34 3d 49 0d 0e 56 24 20 20 20 20 c8 99 |e%!4=I..V$ ..| 00002e90 22 57 69 6d 70 5f 44 65 6c 65 74 65 49 63 6f 6e |"Wimp_DeleteIcon| 00002ea0 22 2c 2c 64 65 6c 65 74 65 25 0d 0e 60 09 20 20 |",,delete%..`. | 00002eb0 ed 20 49 0d 0e 6a 05 cd 0d 0e 74 05 e1 0d 0e 7e |. I..j....t....~| 00002ec0 04 0d 0e 88 0d dd f2 73 68 75 66 66 6c 65 0d 0e |.......shuffle..| 00002ed0 92 42 f4 20 54 68 69 73 20 70 72 6f 63 65 64 75 |.B. This procedu| 00002ee0 72 65 20 77 69 6c 6c 20 73 65 74 20 75 70 20 74 |re will set up t| 00002ef0 68 65 20 70 61 63 6b 20 6f 66 20 35 32 20 63 61 |he pack of 52 ca| 00002f00 72 64 73 20 61 6e 64 20 65 6e 73 75 72 65 20 61 |rds and ensure a| 00002f10 0d 0e 9c 1a f4 20 72 61 6e 64 6f 6d 20 64 69 73 |..... random dis| 00002f20 74 72 69 62 75 74 69 6f 6e 2e 0d 0e a6 08 f2 64 |tribution......d| 00002f30 69 6d 0d 0e b0 21 ea 20 73 68 75 66 66 6c 65 31 |im...!. shuffle1| 00002f40 25 2c 73 68 75 66 66 6c 65 32 25 2c 49 2c 73 65 |%,shuffle2%,I,se| 00002f50 65 64 25 0d 0e ba 0f 73 65 65 64 25 3d b3 28 2d |ed%....seed%=.(-| 00002f60 91 29 0d 0e c4 0e e3 20 49 3d 31 20 b8 20 35 32 |.)..... I=1 . 52| 00002f70 0d 0e ce 10 20 20 70 61 63 6b 25 28 49 29 3d 49 |.... pack%(I)=I| 00002f80 0d 0e d8 07 ed 20 49 0d 0e e2 0f e3 20 49 3d 31 |..... I..... I=1| 00002f90 20 b8 20 31 30 30 0d 0e ec 07 20 20 f5 0d 0e f6 | . 100.... ....| 00002fa0 17 20 20 20 20 73 68 75 66 66 6c 65 31 25 3d b3 |. shuffle1%=.| 00002fb0 28 35 32 29 0d 0f 00 17 20 20 20 20 73 68 75 66 |(52).... shuf| 00002fc0 66 6c 65 32 25 3d b3 28 35 32 29 0d 0f 0a 1c 20 |fle2%=.(52).... | 00002fd0 20 fd 20 73 68 75 66 66 6c 65 31 25 3c 3e 73 68 | . shuffle1%<>sh| 00002fe0 75 66 66 6c 65 32 25 0d 0f 14 2a 20 20 c8 94 20 |uffle2%...* .. | 00002ff0 70 61 63 6b 25 28 73 68 75 66 66 6c 65 31 25 29 |pack%(shuffle1%)| 00003000 2c 70 61 63 6b 25 28 73 68 75 66 66 6c 65 32 25 |,pack%(shuffle2%| 00003010 29 0d 0f 1e 07 ed 20 49 0d 0f 28 05 e1 0d 0f 32 |)..... I..(....2| 00003020 04 0d 0f 3c 09 dd f2 64 69 6d 0d 0f 46 1a f4 20 |...<...dim..F.. | 00003030 53 65 74 73 20 75 70 20 67 61 6d 65 20 61 72 72 |Sets up game arr| 00003040 61 79 73 2e 0d 0f 50 1d e7 20 70 6c 61 79 65 64 |ays...P.. played| 00003050 25 3d a3 20 8c 20 de 20 70 61 63 6b 25 28 35 32 |%=. . . pack%(52| 00003060 29 0d 0f 5a 0e c8 8e 20 67 61 6d 65 25 20 ca 0d |)..Z... game% ..| 00003070 0f 64 0b 20 20 c9 20 31 20 3a 0d 0f 6e 16 20 20 |.d. . 1 :..n. | 00003080 20 20 e7 20 6f 73 6d 6f 64 69 6d 25 3d a3 20 8c | . osmodim%=. .| 00003090 0d 0f 78 e4 20 20 20 20 20 20 de 20 6f 73 6d 6f |..x. . osmo| 000030a0 70 61 63 6b 25 28 33 35 29 2c 6f 73 6d 6f 77 61 |pack%(35),osmowa| 000030b0 73 74 65 25 28 33 35 29 2c 6f 73 6d 6f 70 69 6c |ste%(35),osmopil| 000030c0 65 31 25 28 34 29 2c 6f 73 6d 6f 70 69 6c 65 32 |e1%(4),osmopile2| 000030d0 25 28 34 29 2c 6f 73 6d 6f 70 69 6c 65 33 25 28 |%(4),osmopile3%(| 000030e0 34 29 2c 6f 73 6d 6f 70 69 6c 65 34 25 28 34 29 |4),osmopile4%(4)| 000030f0 2c 6f 73 6d 6f 70 69 6c 65 31 68 61 6e 25 28 34 |,osmopile1han%(4| 00003100 29 2c 6f 73 6d 6f 70 69 6c 65 32 68 61 6e 25 28 |),osmopile2han%(| 00003110 34 29 2c 6f 73 6d 6f 70 69 6c 65 33 68 61 6e 25 |4),osmopile3han%| 00003120 28 34 29 2c 6f 73 6d 6f 70 69 6c 65 34 68 61 6e |(4),osmopile4han| 00003130 25 28 34 29 2c 6f 73 6d 6f 66 6f 75 6e 64 31 25 |%(4),osmofound1%| 00003140 28 31 33 29 2c 6f 73 6d 6f 66 6f 75 6e 64 32 25 |(13),osmofound2%| 00003150 28 31 33 29 2c 6f 73 6d 6f 66 6f 75 6e 64 33 25 |(13),osmofound3%| 00003160 28 31 33 29 2c 6f 73 6d 6f 66 6f 75 6e 64 34 25 |(13),osmofound4%| 00003170 28 31 33 29 0d 0f 82 a3 20 20 20 20 20 20 de 20 |(13).... . | 00003180 6f 73 6d 6f 66 6f 75 6e 64 31 68 61 6e 25 28 31 |osmofound1han%(1| 00003190 33 29 2c 6f 73 6d 6f 66 6f 75 6e 64 32 68 61 6e |3),osmofound2han| 000031a0 25 28 31 33 29 2c 6f 73 6d 6f 66 6f 75 6e 64 33 |%(13),osmofound3| 000031b0 68 61 6e 25 28 31 33 29 2c 6f 73 6d 6f 66 6f 75 |han%(13),osmofou| 000031c0 6e 64 34 68 61 6e 25 28 31 33 29 2c 6f 73 6d 6f |nd4han%(13),osmo| 000031d0 66 6f 75 6e 64 31 76 61 6c 25 28 31 33 29 2c 6f |found1val%(13),o| 000031e0 73 6d 6f 66 6f 75 6e 64 32 76 61 6c 25 28 31 33 |smofound2val%(13| 000031f0 29 2c 6f 73 6d 6f 66 6f 75 6e 64 33 76 61 6c 25 |),osmofound3val%| 00003200 28 31 33 29 2c 6f 73 6d 6f 66 6f 75 6e 64 34 76 |(13),osmofound4v| 00003210 61 6c 25 28 31 33 29 0d 0f 8c 14 20 20 20 20 20 |al%(13).... | 00003220 20 6f 73 6d 6f 64 69 6d 25 3d b9 0d 0f 96 09 20 | osmodim%=..... | 00003230 20 20 20 cd 0d 0f a0 0b 20 20 c9 20 32 20 3a 0d | ..... . 2 :.| 00003240 0f aa 15 20 20 20 20 e7 20 70 79 72 64 69 6d 25 |... . pyrdim%| 00003250 3d a3 20 8c 0d 0f b4 5f 20 20 20 20 20 20 de 20 |=. ...._ . | 00003260 70 79 72 6c 61 79 25 28 32 38 29 2c 70 79 72 6c |pyrlay%(28),pyrl| 00003270 61 79 68 61 6e 25 28 32 38 29 2c 70 79 72 70 61 |ayhan%(28),pyrpa| 00003280 63 6b 25 28 32 34 29 2c 70 79 72 77 61 73 74 65 |ck%(24),pyrwaste| 00003290 25 28 32 34 29 2c 70 79 72 66 6f 75 6e 64 25 28 |%(24),pyrfound%(| 000032a0 35 32 29 2c 70 79 72 64 65 6c 65 74 65 64 25 28 |52),pyrdeleted%(| 000032b0 32 38 29 0d 0f be 13 20 20 20 20 20 20 70 79 72 |28).... pyr| 000032c0 64 69 6d 25 3d b9 0d 0f c8 09 20 20 20 20 cd 0d |dim%=..... ..| 000032d0 0f d2 05 cb 0d 0f dc 05 e1 0d 0f e6 04 0d 0f f0 |................| 000032e0 40 dd a4 63 72 65 61 74 65 69 63 6f 6e 28 77 69 |@..createicon(wi| 000032f0 6e 25 2c 6e 61 6d 65 24 2c 74 65 78 74 24 2c 78 |n%,name$,text$,x| 00003300 6d 69 6e 25 2c 79 6d 69 6e 25 2c 78 6d 61 78 25 |min%,ymin%,xmax%| 00003310 2c 79 6d 61 78 25 2c 66 6c 61 67 25 29 0d 0f fa |,ymax%,flag%)...| 00003320 35 ea 20 69 63 6f 6e 68 61 6e 64 6c 65 25 2c 6e |5. iconhandle%,n| 00003330 61 6d 65 25 2c 73 6c 65 6e 67 74 68 25 2c 74 6c |ame%,slength%,tl| 00003340 65 6e 67 74 68 25 2c 69 63 6f 6e 25 2c 74 65 78 |ength%,icon%,tex| 00003350 74 25 0d 10 04 0f 74 65 78 74 24 2b 3d bd 28 30 |t%....text$+=.(0| 00003360 29 0d 10 0e 21 74 6c 65 6e 67 74 68 25 3d 28 a9 |)...!tlength%=(.| 00003370 28 74 65 78 74 24 29 2b 34 29 20 80 20 28 ac 20 |(text$)+4) . (. | 00003380 33 29 0d 10 18 21 73 6c 65 6e 67 74 68 25 3d 28 |3)...!slength%=(| 00003390 a9 28 6e 61 6d 65 24 29 2b 34 29 20 80 20 28 ac |.(name$)+4) . (.| 000033a0 20 33 29 0d 10 22 20 de 20 69 63 6f 6e 25 20 33 | 3).." . icon% 3| 000033b0 36 2b 74 6c 65 6e 67 74 68 25 2b 73 6c 65 6e 67 |6+tlength%+sleng| 000033c0 74 68 25 0d 10 2c 1b 74 65 78 74 25 3d 69 63 6f |th%..,.text%=ico| 000033d0 6e 25 2b 33 36 2b 73 6c 65 6e 67 74 68 25 0d 10 |n%+36+slength%..| 000033e0 36 10 24 74 65 78 74 25 3d 74 65 78 74 24 0d 10 |6.$text%=text$..| 000033f0 40 12 6e 61 6d 65 25 3d 69 63 6f 6e 25 2b 33 36 |@.name%=icon%+36| 00003400 0d 10 4a 2f e7 20 6e 61 6d 65 24 3d 22 22 20 8c |..J/. name$="" .| 00003410 20 24 6e 61 6d 65 25 3d 22 72 35 22 20 8b 20 24 | $name%="r5" . $| 00003420 6e 61 6d 65 25 3d 22 73 22 2b 6e 61 6d 65 24 0d |name%="s"+name$.| 00003430 10 54 10 69 63 6f 6e 25 21 30 3d 77 69 6e 25 0d |.T.icon%!0=win%.| 00003440 10 5e 11 69 63 6f 6e 25 21 34 3d 78 6d 69 6e 25 |.^.icon%!4=xmin%| 00003450 0d 10 68 11 69 63 6f 6e 25 21 38 3d 79 6d 69 6e |..h.icon%!8=ymin| 00003460 25 0d 10 72 12 69 63 6f 6e 25 21 31 32 3d 78 6d |%..r.icon%!12=xm| 00003470 61 78 25 0d 10 7c 12 69 63 6f 6e 25 21 31 36 3d |ax%..|.icon%!16=| 00003480 79 6d 61 78 25 0d 10 86 12 69 63 6f 6e 25 21 32 |ymax%....icon%!2| 00003490 30 3d 66 6c 61 67 25 0d 10 90 12 69 63 6f 6e 25 |0=flag%....icon%| 000034a0 21 32 34 3d 74 65 78 74 25 0d 10 9a 12 69 63 6f |!24=text%....ico| 000034b0 6e 25 21 32 38 3d 6e 61 6d 65 25 0d 10 a4 15 69 |n%!28=name%....i| 000034c0 63 6f 6e 25 21 33 32 3d 74 6c 65 6e 67 74 68 25 |con%!32=tlength%| 000034d0 0d 10 ae 2c c8 99 22 57 69 6d 70 5f 43 72 65 61 |...,.."Wimp_Crea| 000034e0 74 65 49 63 6f 6e 22 2c 2c 69 63 6f 6e 25 20 b8 |teIcon",,icon% .| 000034f0 20 69 63 6f 6e 68 61 6e 64 6c 65 25 0d 10 b8 1d | iconhandle%....| 00003500 69 63 6f 6e 6e 75 6d 62 65 72 25 3d 69 63 6f 6e |iconnumber%=icon| 00003510 6e 75 6d 62 65 72 25 2b 31 0d 10 c2 10 3d 69 63 |number%+1....=ic| 00003520 6f 6e 68 61 6e 64 6c 65 25 0d 10 cc 04 0d 10 d6 |onhandle%.......| 00003530 2c dd f2 73 65 74 69 63 6f 6e 73 70 72 69 74 65 |,..seticonsprite| 00003540 28 77 69 6e 64 6f 77 25 2c f8 20 69 63 6f 6e 25 |(window%,. icon%| 00003550 2c 73 70 72 69 74 65 24 29 0d 10 e0 3e f4 20 53 |,sprite$)...>. S| 00003560 65 74 73 20 74 68 65 20 73 70 72 69 74 65 20 6f |ets the sprite o| 00003570 66 20 74 68 65 20 67 69 76 65 6e 20 69 6e 64 69 |f the given indi| 00003580 72 65 63 74 65 64 20 74 65 78 74 2b 73 70 72 69 |rected text+spri| 00003590 74 65 20 69 63 6f 6e 0d 10 ea 11 f4 20 74 6f 20 |te icon..... to | 000035a0 73 70 72 69 74 65 24 2e 0d 10 f4 3c ea 20 62 6c |sprite$....<. bl| 000035b0 6f 63 6b 25 2c 62 6c 6f 63 6b 32 25 2c 62 6c 6f |ock%,block2%,blo| 000035c0 63 6b 33 25 2c 74 65 73 74 24 2c 49 2c 78 6d 69 |ck3%,test$,I,xmi| 000035d0 6e 25 2c 79 6d 69 6e 25 2c 78 6d 61 78 25 2c 79 |n%,ymin%,xmax%,y| 000035e0 6d 61 78 25 0d 10 fe 24 de 20 62 6c 6f 63 6b 25 |max%...$. block%| 000035f0 20 34 30 2c 62 6c 6f 63 6b 32 25 20 34 30 2c 62 | 40,block2% 40,b| 00003600 6c 6f 63 6b 33 25 20 38 0d 11 08 13 21 62 6c 6f |lock3% 8....!blo| 00003610 63 6b 25 3d 77 69 6e 64 6f 77 25 0d 11 12 12 62 |ck%=window%....b| 00003620 6c 6f 63 6b 25 21 34 3d 69 63 6f 6e 25 0d 11 1c |lock%!4=icon%...| 00003630 14 21 62 6c 6f 63 6b 32 25 3d 77 69 6e 64 6f 77 |.!block2%=window| 00003640 25 0d 11 26 13 62 6c 6f 63 6b 32 25 21 34 3d 69 |%..&.block2%!4=i| 00003650 63 6f 6e 25 0d 11 30 2b c8 99 22 57 69 6d 70 5f |con%..0+.."Wimp_| 00003660 47 65 74 49 63 6f 6e 53 74 61 74 65 22 2c 2c 62 |GetIconState",,b| 00003670 6c 6f 63 6b 25 20 b8 20 2c 62 6c 6f 63 6b 25 0d |lock% . ,block%.| 00003680 11 3a 20 c8 99 22 57 69 6d 70 5f 44 65 6c 65 74 |.: .."Wimp_Delet| 00003690 65 49 63 6f 6e 22 2c 2c 62 6c 6f 63 6b 32 25 0d |eIcon",,block2%.| 000036a0 11 44 18 24 62 6c 6f 63 6b 33 25 3d 22 73 22 2b |.D.$block3%="s"+| 000036b0 73 70 72 69 74 65 24 0d 11 4e 10 de 20 62 6c 6f |sprite$..N.. blo| 000036c0 63 6b 32 25 20 33 36 0d 11 58 14 21 62 6c 6f 63 |ck2% 36..X.!bloc| 000036d0 6b 32 25 3d 77 69 6e 64 6f 77 25 0d 11 62 12 e3 |k2%=window%..b..| 000036e0 20 49 3d 34 20 b8 20 33 32 20 88 20 34 0d 11 6c | I=4 . 32 . 4..l| 000036f0 1c 20 20 62 6c 6f 63 6b 32 25 21 49 3d 62 6c 6f |. block2%!I=blo| 00003700 63 6b 25 21 28 49 2b 34 29 0d 11 76 07 ed 20 49 |ck%!(I+4)..v.. I| 00003710 0d 11 80 16 62 6c 6f 63 6b 32 25 21 32 38 3d 62 |....block2%!28=b| 00003720 6c 6f 63 6b 33 25 0d 11 8a 28 c8 99 22 57 69 6d |lock3%...(.."Wim| 00003730 70 5f 43 72 65 61 74 65 49 63 6f 6e 22 2c 2c 62 |p_CreateIcon",,b| 00003740 6c 6f 63 6b 32 25 20 b8 20 69 63 6f 6e 25 0d 11 |lock2% . icon%..| 00003750 94 13 78 6d 69 6e 25 3d 62 6c 6f 63 6b 32 25 21 |..xmin%=block2%!| 00003760 34 0d 11 9e 13 79 6d 69 6e 25 3d 62 6c 6f 63 6b |4....ymin%=block| 00003770 32 25 21 38 0d 11 a8 14 78 6d 61 78 25 3d 62 6c |2%!8....xmax%=bl| 00003780 6f 63 6b 32 25 21 31 32 0d 11 b2 14 79 6d 61 78 |ock2%!12....ymax| 00003790 25 3d 62 6c 6f 63 6b 32 25 21 31 36 0d 11 bc 38 |%=block2%!16...8| 000037a0 c8 99 22 57 69 6d 70 5f 46 6f 72 63 65 52 65 64 |.."Wimp_ForceRed| 000037b0 72 61 77 22 2c 77 69 6e 64 6f 77 25 2c 78 6d 69 |raw",window%,xmi| 000037c0 6e 25 2c 79 6d 69 6e 25 2c 78 6d 61 78 25 2c 79 |n%,ymin%,xmax%,y| 000037d0 6d 61 78 25 0d 11 c6 05 e1 0d 11 d0 04 0d 11 da |max%............| 000037e0 14 dd a4 63 61 72 64 76 61 6c 28 6e 61 6d 65 25 |...cardval(name%| 000037f0 29 0d 11 e4 3f f4 20 54 68 69 73 20 66 75 6e 63 |)...?. This func| 00003800 74 69 6f 6e 20 77 69 6c 6c 20 72 65 74 75 72 6e |tion will return| 00003810 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 74 68 | the value of th| 00003820 65 20 63 61 72 64 20 28 69 2e 65 2e 20 74 68 65 |e card (i.e. the| 00003830 0d 11 ee 19 f4 20 6e 75 6d 62 65 72 20 73 68 6f |..... number sho| 00003840 77 6e 20 6f 6e 20 69 74 29 0d 11 f8 0a ea 20 76 |wn on it)..... v| 00003850 61 6c 25 0d 12 02 2a c8 99 22 57 69 6d 70 45 78 |al%...*.."WimpEx| 00003860 74 5f 44 69 76 69 64 65 22 2c 2c 2c 6e 61 6d 65 |t_Divide",,,name| 00003870 25 2c 31 33 20 b8 20 2c 2c 76 61 6c 25 0d 12 0c |%,13 . ,,val%...| 00003880 16 e7 20 76 61 6c 25 3d 30 20 8c 20 76 61 6c 25 |.. val%=0 . val%| 00003890 3d 31 33 0d 12 16 09 3d 76 61 6c 25 0d 12 20 04 |=13....=val%.. .| 000038a0 0d 12 2a 1e dd f2 62 6c 61 6e 6b 69 63 6f 6e 28 |..*...blankicon(| 000038b0 77 69 6e 64 6f 77 25 2c 69 63 6f 6e 25 29 0d 12 |window%,icon%)..| 000038c0 34 3a f4 20 54 68 69 73 20 70 72 6f 63 65 64 75 |4:. This procedu| 000038d0 72 65 20 77 69 6c 6c 20 72 65 6d 6f 76 65 20 74 |re will remove t| 000038e0 68 65 20 69 63 6f 6e 20 66 72 6f 6d 20 74 68 65 |he icon from the| 000038f0 20 73 63 72 65 65 6e 2e 0d 12 3e 0c ea 20 62 6c | screen...>.. bl| 00003900 6f 63 6b 25 0d 12 48 0e de 20 62 6c 6f 63 6b 25 |ock%..H.. block%| 00003910 20 38 0d 12 52 13 21 62 6c 6f 63 6b 25 3d 77 69 | 8..R.!block%=wi| 00003920 6e 64 6f 77 25 0d 12 5c 12 62 6c 6f 63 6b 25 21 |ndow%..\.block%!| 00003930 34 3d 69 63 6f 6e 25 0d 12 66 24 f2 73 65 74 69 |4=icon%..f$.seti| 00003940 63 6f 6e 73 70 72 69 74 65 28 77 69 6e 64 6f 77 |consprite(window| 00003950 25 2c 69 63 6f 6e 25 2c 22 22 29 0d 12 70 05 e1 |%,icon%,"")..p..| 00003960 0d 12 7a 04 0d 12 84 0d dd f2 6f 73 6d 6f 73 69 |..z.......osmosi| 00003970 73 0d 12 8e 30 c8 99 22 57 69 6d 70 45 78 74 5f |s...0.."WimpExt_| 00003980 53 65 74 57 69 6e 64 6f 77 54 69 74 6c 65 22 2c |SetWindowTitle",| 00003990 2c 2c 6d 61 69 6e 25 2c 22 4f 73 6d 6f 73 69 73 |,,main%,"Osmosis| 000039a0 22 0d 12 98 38 e7 20 70 6c 61 79 65 64 25 3d b9 |"...8. played%=.| 000039b0 20 80 20 69 63 6f 6e 6e 75 6d 62 65 72 25 3c 3e | . iconnumber%<>| 000039c0 30 20 8c 20 f2 63 6c 65 61 6e 75 70 77 69 6e 64 |0 . .cleanupwind| 000039d0 6f 77 28 6d 61 69 6e 25 29 0d 12 a2 0c f2 73 68 |ow(main%).....sh| 000039e0 75 66 66 6c 65 0d 12 ac 11 f2 6f 73 6d 6f 73 69 |uffle.....osmosi| 000039f0 73 5f 64 65 61 6c 0d 12 b6 13 f2 6f 73 6d 6f 73 |s_deal.....osmos| 00003a00 69 73 5f 6c 61 79 6f 75 74 0d 12 c0 05 e1 0d 12 |is_layout.......| 00003a10 ca 04 0d 12 d4 12 dd f2 6f 73 6d 6f 73 69 73 5f |........osmosis_| 00003a20 64 65 61 6c 0d 12 de 3e f4 20 54 68 69 73 20 70 |deal...>. This p| 00003a30 72 6f 63 65 64 75 72 65 20 77 69 6c 6c 20 64 65 |rocedure will de| 00003a40 61 6c 20 6f 75 74 20 74 68 65 20 63 61 72 64 73 |al out the cards| 00003a50 20 69 6e 74 6f 20 74 68 65 20 72 65 6c 65 76 61 | into the releva| 00003a60 6e 74 0d 12 e8 31 f4 20 61 72 72 61 79 73 20 61 |nt...1. arrays a| 00003a70 6e 64 20 6c 61 79 20 6f 75 74 20 74 68 65 20 63 |nd lay out the c| 00003a80 61 72 64 73 20 69 6e 20 74 68 65 20 77 69 6e 64 |ards in the wind| 00003a90 6f 77 2e 0d 12 f2 07 ea 20 49 0d 12 fc 0d e3 20 |ow...... I..... | 00003aa0 49 3d 31 20 b8 20 34 0d 13 06 1c 20 20 6f 73 6d |I=1 . 4.... osm| 00003ab0 6f 70 69 6c 65 31 25 28 49 29 3d 70 61 63 6b 25 |opile1%(I)=pack%| 00003ac0 28 49 29 0d 13 10 1e 20 20 6f 73 6d 6f 70 69 6c |(I).... osmopil| 00003ad0 65 32 25 28 49 29 3d 70 61 63 6b 25 28 49 2b 34 |e2%(I)=pack%(I+4| 00003ae0 29 0d 13 1a 1e 20 20 6f 73 6d 6f 70 69 6c 65 33 |).... osmopile3| 00003af0 25 28 49 29 3d 70 61 63 6b 25 28 49 2b 38 29 0d |%(I)=pack%(I+8).| 00003b00 13 24 1f 20 20 6f 73 6d 6f 70 69 6c 65 34 25 28 |.$. osmopile4%(| 00003b10 49 29 3d 70 61 63 6b 25 28 49 2b 31 32 29 0d 13 |I)=pack%(I+12)..| 00003b20 2e 07 ed 20 49 0d 13 38 0e e3 20 49 3d 31 20 b8 |... I..8.. I=1 .| 00003b30 20 31 33 0d 13 42 16 20 20 6f 73 6d 6f 66 6f 75 | 13..B. osmofou| 00003b40 6e 64 31 25 28 49 29 3d 30 0d 13 4c 16 20 20 6f |nd1%(I)=0..L. o| 00003b50 73 6d 6f 66 6f 75 6e 64 32 25 28 49 29 3d 30 0d |smofound2%(I)=0.| 00003b60 13 56 16 20 20 6f 73 6d 6f 66 6f 75 6e 64 33 25 |.V. osmofound3%| 00003b70 28 49 29 3d 30 0d 13 60 16 20 20 6f 73 6d 6f 66 |(I)=0..`. osmof| 00003b80 6f 75 6e 64 34 25 28 49 29 3d 30 0d 13 6a 07 ed |ound4%(I)=0..j..| 00003b90 20 49 0d 13 74 1c 6f 73 6d 6f 66 6f 75 6e 64 31 | I..t.osmofound1| 00003ba0 25 28 31 29 3d 70 61 63 6b 25 28 31 37 29 0d 13 |%(1)=pack%(17)..| 00003bb0 7e 0e e3 20 49 3d 31 20 b8 20 33 35 0d 13 88 1e |~.. I=1 . 35....| 00003bc0 20 20 6f 73 6d 6f 70 61 63 6b 25 28 49 29 3d 70 | osmopack%(I)=p| 00003bd0 61 63 6b 25 28 49 2b 31 37 29 0d 13 92 07 ed 20 |ack%(I+17)..... | 00003be0 49 0d 13 9c 0e e3 20 49 3d 31 20 b8 20 33 35 0d |I..... I=1 . 35.| 00003bf0 13 a6 15 20 20 6f 73 6d 6f 77 61 73 74 65 25 28 |... osmowaste%(| 00003c00 49 29 3d 30 0d 13 b0 07 ed 20 49 0d 13 ba 46 c8 |I)=0..... I...F.| 00003c10 99 22 57 69 6d 70 45 78 74 5f 44 69 76 69 64 65 |."WimpExt_Divide| 00003c20 22 2c 2c 2c 6f 73 6d 6f 66 6f 75 6e 64 31 25 28 |",,,osmofound1%(| 00003c30 31 29 2c 31 33 20 b8 20 73 75 69 74 31 25 2c 2c |1),13 . suit1%,,| 00003c40 6f 73 6d 6f 66 6f 75 6e 64 31 76 61 6c 25 28 31 |osmofound1val%(1| 00003c50 29 0d 13 c4 13 73 75 69 74 31 25 3d 73 75 69 74 |)....suit1%=suit| 00003c60 31 25 2b 31 0d 13 ce 1b e7 20 6f 73 6d 6f 66 6f |1%+1..... osmofo| 00003c70 75 6e 64 31 76 61 6c 25 28 31 29 3d 30 20 8c 0d |und1val%(1)=0 ..| 00003c80 13 d8 15 20 20 73 75 69 74 31 25 3d 73 75 69 74 |... suit1%=suit| 00003c90 31 25 2d 31 0d 13 e2 1a 20 20 6f 73 6d 6f 66 6f |1%-1.... osmofo| 00003ca0 75 6e 64 31 76 61 6c 25 28 31 29 3d 31 33 0d 13 |und1val%(1)=13..| 00003cb0 ec 05 cd 0d 13 f6 0c 73 75 69 74 32 25 3d 30 0d |.......suit2%=0.| 00003cc0 14 00 0c 73 75 69 74 33 25 3d 30 0d 14 0a 0c 73 |...suit3%=0....s| 00003cd0 75 69 74 34 25 3d 30 0d 14 14 05 e1 0d 14 1e 04 |uit4%=0.........| 00003ce0 0d 14 28 14 dd f2 6f 73 6d 6f 73 69 73 5f 6c 61 |..(...osmosis_la| 00003cf0 79 6f 75 74 0d 14 32 26 f4 20 53 65 74 73 20 6f |yout..2&. Sets o| 00003d00 75 74 20 74 68 65 20 63 61 72 64 73 20 66 6f 72 |ut the cards for| 00003d10 20 74 68 65 20 67 61 6d 65 2e 0d 14 3c 0d ea 20 | the game...<.. | 00003d20 49 2c 6c 65 66 74 25 0d 14 46 24 c8 99 20 22 57 |I,left%..F$.. "W| 00003d30 69 6d 70 45 78 74 5f 4f 70 65 6e 57 69 6e 64 6f |impExt_OpenWindo| 00003d40 77 54 6f 70 22 2c 6d 61 69 6e 25 0d 14 50 15 74 |wTop",main%..P.t| 00003d50 6f 70 25 3d 2d 31 30 3a 6c 65 66 74 25 3d 31 30 |op%=-10:left%=10| 00003d60 0d 14 5a 12 e3 20 49 3d 34 20 b8 20 32 20 88 20 |..Z.. I=4 . 2 . | 00003d70 2d 31 0d 14 64 62 20 20 20 6f 73 6d 6f 70 69 6c |-1..db osmopil| 00003d80 65 31 68 61 6e 25 28 49 29 3d a4 63 72 65 61 74 |e1han%(I)=.creat| 00003d90 65 69 63 6f 6e 28 6d 61 69 6e 25 2c 22 62 61 63 |eicon(main%,"bac| 00003da0 6b 22 2c 22 22 2c 6c 65 66 74 25 2c 74 6f 70 25 |k","",left%,top%| 00003db0 2d 32 30 38 2c 6c 65 66 74 25 2b 31 35 38 2c 74 |-208,left%+158,t| 00003dc0 6f 70 25 2c 25 31 31 30 30 30 31 30 30 30 31 31 |op%,%11000100011| 00003dd0 30 31 31 29 0d 14 6e 66 20 20 20 6f 73 6d 6f 70 |011)..nf osmop| 00003de0 69 6c 65 32 68 61 6e 25 28 49 29 3d a4 63 72 65 |ile2han%(I)=.cre| 00003df0 61 74 65 69 63 6f 6e 28 6d 61 69 6e 25 2c 22 62 |ateicon(main%,"b| 00003e00 61 63 6b 22 2c 22 22 2c 6c 65 66 74 25 2c 74 6f |ack","",left%,to| 00003e10 70 25 2d 34 32 36 2c 6c 65 66 74 25 2b 31 35 38 |p%-426,left%+158| 00003e20 2c 74 6f 70 25 2d 32 31 38 2c 25 31 31 30 30 30 |,top%-218,%11000| 00003e30 31 30 30 30 31 31 30 31 31 29 0d 14 78 66 20 20 |100011011)..xf | 00003e40 20 6f 73 6d 6f 70 69 6c 65 33 68 61 6e 25 28 49 | osmopile3han%(I| 00003e50 29 3d a4 63 72 65 61 74 65 69 63 6f 6e 28 6d 61 |)=.createicon(ma| 00003e60 69 6e 25 2c 22 62 61 63 6b 22 2c 22 22 2c 6c 65 |in%,"back","",le| 00003e70 66 74 25 2c 74 6f 70 25 2d 36 34 34 2c 6c 65 66 |ft%,top%-644,lef| 00003e80 74 25 2b 31 35 38 2c 74 6f 70 25 2d 34 33 36 2c |t%+158,top%-436,| 00003e90 25 31 31 30 30 30 31 30 30 30 31 31 30 31 31 29 |%11000100011011)| 00003ea0 0d 14 82 66 20 20 20 6f 73 6d 6f 70 69 6c 65 34 |...f osmopile4| 00003eb0 68 61 6e 25 28 49 29 3d a4 63 72 65 61 74 65 69 |han%(I)=.createi| 00003ec0 63 6f 6e 28 6d 61 69 6e 25 2c 22 62 61 63 6b 22 |con(main%,"back"| 00003ed0 2c 22 22 2c 6c 65 66 74 25 2c 74 6f 70 25 2d 38 |,"",left%,top%-8| 00003ee0 36 32 2c 6c 65 66 74 25 2b 31 35 38 2c 74 6f 70 |62,left%+158,top| 00003ef0 25 2d 36 35 34 2c 25 31 31 30 30 30 31 30 30 30 |%-654,%110001000| 00003f00 31 31 30 31 31 29 0d 14 8c 15 20 20 20 6c 65 66 |11011).... lef| 00003f10 74 25 3d 6c 65 66 74 25 2b 33 30 0d 14 96 07 ed |t%=left%+30.....| 00003f20 20 49 0d 14 a0 67 6f 73 6d 6f 70 69 6c 65 31 68 | I...gosmopile1h| 00003f30 61 6e 25 28 31 29 3d a4 63 72 65 61 74 65 69 63 |an%(1)=.createic| 00003f40 6f 6e 28 6d 61 69 6e 25 2c c3 6f 73 6d 6f 70 69 |on(main%,.osmopi| 00003f50 6c 65 31 25 28 31 29 2c 22 22 2c 6c 65 66 74 25 |le1%(1),"",left%| 00003f60 2c 74 6f 70 25 2d 32 30 38 2c 6c 65 66 74 25 2b |,top%-208,left%+| 00003f70 31 35 38 2c 74 6f 70 25 2c 25 31 31 30 30 30 31 |158,top%,%110001| 00003f80 30 30 30 31 31 30 31 31 29 0d 14 aa 6b 6f 73 6d |00011011)...kosm| 00003f90 6f 70 69 6c 65 32 68 61 6e 25 28 31 29 3d a4 63 |opile2han%(1)=.c| 00003fa0 72 65 61 74 65 69 63 6f 6e 28 6d 61 69 6e 25 2c |reateicon(main%,| 00003fb0 c3 6f 73 6d 6f 70 69 6c 65 32 25 28 31 29 2c 22 |.osmopile2%(1),"| 00003fc0 22 2c 6c 65 66 74 25 2c 74 6f 70 25 2d 34 32 36 |",left%,top%-426| 00003fd0 2c 6c 65 66 74 25 2b 31 35 38 2c 74 6f 70 25 2d |,left%+158,top%-| 00003fe0 32 31 38 2c 25 31 31 30 30 30 31 30 30 30 31 31 |218,%11000100011| 00003ff0 30 31 31 29 0d 14 b4 6b 6f 73 6d 6f 70 69 6c 65 |011)...kosmopile| 00004000 33 68 61 6e 25 28 31 29 3d a4 63 72 65 61 74 65 |3han%(1)=.create| 00004010 69 63 6f 6e 28 6d 61 69 6e 25 2c c3 6f 73 6d 6f |icon(main%,.osmo| 00004020 70 69 6c 65 33 25 28 31 29 2c 22 22 2c 6c 65 66 |pile3%(1),"",lef| 00004030 74 25 2c 74 6f 70 25 2d 36 34 34 2c 6c 65 66 74 |t%,top%-644,left| 00004040 25 2b 31 35 38 2c 74 6f 70 25 2d 34 33 36 2c 25 |%+158,top%-436,%| 00004050 31 31 30 30 30 31 30 30 30 31 31 30 31 31 29 0d |11000100011011).| 00004060 14 be 6b 6f 73 6d 6f 70 69 6c 65 34 68 61 6e 25 |..kosmopile4han%| 00004070 28 31 29 3d a4 63 72 65 61 74 65 69 63 6f 6e 28 |(1)=.createicon(| 00004080 6d 61 69 6e 25 2c c3 6f 73 6d 6f 70 69 6c 65 34 |main%,.osmopile4| 00004090 25 28 31 29 2c 22 22 2c 6c 65 66 74 25 2c 74 6f |%(1),"",left%,to| 000040a0 70 25 2d 38 36 32 2c 6c 65 66 74 25 2b 31 35 38 |p%-862,left%+158| 000040b0 2c 74 6f 70 25 2d 36 35 34 2c 25 31 31 30 30 30 |,top%-654,%11000| 000040c0 31 30 30 30 31 31 30 31 31 29 0d 14 c8 58 6f 73 |100011011)...Xos| 000040d0 6d 6f 70 61 63 6b 68 61 6e 25 3d a4 63 72 65 61 |mopackhan%=.crea| 000040e0 74 65 69 63 6f 6e 28 6d 61 69 6e 25 2c 22 62 61 |teicon(main%,"ba| 000040f0 63 6b 22 2c 22 22 2c 35 37 32 2c 74 6f 70 25 2d |ck","",572,top%-| 00004100 31 30 38 30 2c 37 33 30 2c 74 6f 70 25 2d 38 37 |1080,730,top%-87| 00004110 32 2c 25 31 31 30 30 30 31 30 30 30 31 31 30 31 |2,%1100010001101| 00004120 31 29 0d 14 d2 5b 6f 73 6d 6f 77 61 73 74 65 68 |1)...[osmowasteh| 00004130 61 6e 25 3d a4 63 72 65 61 74 65 69 63 6f 6e 28 |an%=.createicon(| 00004140 6d 61 69 6e 25 2c 22 6e 6f 63 61 72 64 22 2c 22 |main%,"nocard","| 00004150 22 2c 37 35 30 2c 74 6f 70 25 2d 31 30 38 30 2c |",750,top%-1080,| 00004160 39 30 38 2c 74 6f 70 25 2d 38 37 32 2c 25 31 31 |908,top%-872,%11| 00004170 30 30 30 31 30 30 30 31 31 30 31 31 29 0d 14 dc |000100011011)...| 00004180 0e 6c 65 66 74 31 25 3d 33 30 38 0d 14 e6 66 6f |.left1%=308...fo| 00004190 73 6d 6f 66 6f 75 6e 64 31 68 61 6e 25 28 31 29 |smofound1han%(1)| 000041a0 3d a4 63 72 65 61 74 65 69 63 6f 6e 28 6d 61 69 |=.createicon(mai| 000041b0 6e 25 2c c3 6f 73 6d 6f 66 6f 75 6e 64 31 25 28 |n%,.osmofound1%(| 000041c0 31 29 2c 22 22 2c 6c 65 66 74 31 25 2c 74 6f 70 |1),"",left1%,top| 000041d0 25 2d 32 30 38 2c 6c 65 66 74 31 25 2b 31 35 38 |%-208,left1%+158| 000041e0 2c 74 6f 70 25 2c 25 31 30 30 30 31 31 30 31 31 |,top%,%100011011| 000041f0 29 0d 14 f0 2b 66 6f 75 6e 64 31 25 3d 31 3a 66 |)...+found1%=1:f| 00004200 6f 75 6e 64 32 25 3d 30 3a 66 6f 75 6e 64 33 25 |ound2%=0:found3%| 00004210 3d 30 3a 66 6f 75 6e 64 34 25 3d 30 0d 14 fa 14 |=0:found4%=0....| 00004220 6c 65 66 74 31 25 3d 6c 65 66 74 31 25 2b 37 30 |left1%=left1%+70| 00004230 0d 15 04 24 6c 65 66 74 32 25 3d 33 30 38 3a 6c |...$left2%=308:l| 00004240 65 66 74 33 25 3d 33 30 38 3a 6c 65 66 74 34 25 |eft3%=308:left4%| 00004250 3d 33 30 38 0d 15 0e 0e 74 6f 70 31 25 3d 74 6f |=308....top1%=to| 00004260 70 25 0d 15 18 33 74 6f 70 32 25 3d 74 6f 70 31 |p%...3top2%=top1| 00004270 25 2d 32 31 38 3a 74 6f 70 33 25 3d 74 6f 70 32 |%-218:top3%=top2| 00004280 25 2d 32 31 38 3a 74 6f 70 34 25 3d 74 6f 70 33 |%-218:top4%=top3| 00004290 25 2d 32 31 38 0d 15 22 27 74 75 72 6e 31 25 3d |%-218.."'turn1%=| 000042a0 a3 3a 74 75 72 6e 32 25 3d a3 3a 74 75 72 6e 33 |.:turn2%=.:turn3| 000042b0 25 3d a3 3a 74 75 72 6e 34 25 3d a3 0d 15 2c 2f |%=.:turn4%=...,/| 000042c0 74 75 72 6e 65 64 31 25 3d a3 3a 74 75 72 6e 65 |turned1%=.:turne| 000042d0 64 32 25 3d a3 3a 74 75 72 6e 65 64 33 25 3d a3 |d2%=.:turned3%=.| 000042e0 3a 74 75 72 6e 65 64 34 25 3d a3 0d 15 36 05 e1 |:turned4%=...6..| 000042f0 0d 15 40 04 0d 15 4a 1f dd f2 6f 73 6d 6f 73 69 |..@...J...osmosi| 00004300 73 5f 6d 6f 75 73 65 63 6c 69 63 6b 28 69 63 6f |s_mouseclick(ico| 00004310 6e 25 29 0d 15 54 38 f4 20 50 72 6f 63 65 73 73 |n%)..T8. Process| 00004320 65 73 20 6d 6f 75 73 65 20 63 6c 69 63 6b 73 20 |es mouse clicks | 00004330 69 6e 20 74 68 65 20 6f 73 6d 6f 73 69 73 20 6d |in the osmosis m| 00004340 61 69 6e 20 77 69 6e 64 6f 77 2e 0d 15 5e 2b f4 |ain window...^+.| 00004350 20 46 69 72 73 74 20 73 65 74 20 75 70 20 74 68 | First set up th| 00004360 65 20 6e 65 78 65 73 73 61 72 79 20 76 61 72 69 |e nexessary vari| 00004370 61 62 6c 65 73 2e 0d 15 68 6e ea 20 63 6c 69 63 |ables...hn. clic| 00004380 6b 25 2c 6e 61 6d 65 24 2c 6e 61 6d 65 25 2c 69 |k%,name$,name%,i| 00004390 63 6f 6e 73 75 69 74 25 2c 49 2c 4a 2c 63 61 72 |consuit%,I,J,car| 000043a0 64 76 61 6c 75 65 25 2c 74 61 67 25 2c 68 6f 6c |dvalue%,tag%,hol| 000043b0 65 24 2c 6c 61 79 25 2c 65 6d 70 74 79 25 2c 69 |e$,lay%,empty%,i| 000043c0 63 6f 6e 68 61 6e 64 6c 65 25 2c 65 6d 70 74 79 |conhandle%,empty| 000043d0 25 2c 63 61 72 64 6d 6f 76 65 64 25 2c 73 68 61 |%,cardmoved%,sha| 000043e0 64 65 64 25 0d 15 72 42 74 61 67 25 3d a3 3a 6c |ded%..rBtag%=.:l| 000043f0 61 79 25 3d a3 3a 63 61 72 64 6d 6f 76 65 64 25 |ay%=.:cardmoved%| 00004400 3d a3 3a 74 75 72 6e 31 25 3d a3 3a 74 75 72 6e |=.:turn1%=.:turn| 00004410 32 25 3d a3 3a 74 75 72 6e 33 25 3d a3 3a 74 75 |2%=.:turn3%=.:tu| 00004420 72 6e 34 25 3d a3 0d 15 7c 0f de 20 63 6c 69 63 |rn4%=...|.. clic| 00004430 6b 25 20 34 30 0d 15 86 11 21 63 6c 69 63 6b 25 |k% 40....!click%| 00004440 3d 6d 61 69 6e 25 0d 15 90 12 63 6c 69 63 6b 25 |=main%....click%| 00004450 21 34 3d 69 63 6f 6e 25 0d 15 9a 2b c8 99 22 57 |!4=icon%...+.."W| 00004460 69 6d 70 5f 47 65 74 49 63 6f 6e 53 74 61 74 65 |imp_GetIconState| 00004470 22 2c 2c 63 6c 69 63 6b 25 20 b8 20 2c 63 6c 69 |",,click% . ,cli| 00004480 63 6b 25 0d 15 a4 14 6e 61 6d 65 24 3d 24 63 6c |ck%....name$=$cl| 00004490 69 63 6b 25 21 33 32 0d 15 ae 13 6e 61 6d 65 24 |ick%!32....name$| 000044a0 3d c1 6e 61 6d 65 24 2c 32 29 0d 15 b8 10 6e 61 |=.name$,2)....na| 000044b0 6d 65 25 3d bb 6e 61 6d 65 24 0d 15 c2 53 e7 20 |me%=.name$...S. | 000044c0 69 63 6f 6e 25 3d 30 20 8c 20 69 63 6f 6e 73 75 |icon%=0 . iconsu| 000044d0 69 74 25 3d 30 20 8b 20 c8 99 22 57 69 6d 70 45 |it%=0 . .."WimpE| 000044e0 78 74 5f 44 69 76 69 64 65 22 2c 2c 2c 6e 61 6d |xt_Divide",,,nam| 000044f0 65 25 2c 31 33 20 b8 20 69 63 6f 6e 73 75 69 74 |e%,13 . iconsuit| 00004500 25 2c 2c 63 61 72 64 76 61 6c 75 65 25 0d 15 cc |%,,cardvalue%...| 00004510 19 69 63 6f 6e 73 75 69 74 25 3d 69 63 6f 6e 73 |.iconsuit%=icons| 00004520 75 69 74 25 2b 31 0d 15 d6 14 e7 20 63 61 72 64 |uit%+1..... card| 00004530 76 61 6c 75 65 25 3d 30 20 8c 0d 15 e0 1b 20 20 |value%=0 ..... | 00004540 69 63 6f 6e 73 75 69 74 25 3d 69 63 6f 6e 73 75 |iconsuit%=iconsu| 00004550 69 74 25 2d 31 0d 15 ea 13 20 20 63 61 72 64 76 |it%-1.... cardv| 00004560 61 6c 75 65 25 3d 31 33 0d 15 f4 05 cd 0d 15 fe |alue%=13........| 00004570 1c f4 20 4e 6f 77 20 70 72 6f 63 65 73 73 20 74 |.. Now process t| 00004580 68 65 20 65 76 65 6e 74 2e 0d 16 08 8c e7 20 6e |he event...... n| 00004590 61 6d 65 25 3c 3e 30 20 80 20 28 69 63 6f 6e 25 |ame%<>0 . (icon%| 000045a0 3d 6f 73 6d 6f 70 69 6c 65 31 68 61 6e 25 28 31 |=osmopile1han%(1| 000045b0 29 20 84 20 69 63 6f 6e 25 3d 6f 73 6d 6f 70 69 |) . icon%=osmopi| 000045c0 6c 65 32 68 61 6e 25 28 31 29 20 84 20 69 63 6f |le2han%(1) . ico| 000045d0 6e 25 3d 6f 73 6d 6f 70 69 6c 65 33 68 61 6e 25 |n%=osmopile3han%| 000045e0 28 31 29 20 84 20 69 63 6f 6e 25 3d 6f 73 6d 6f |(1) . icon%=osmo| 000045f0 70 69 6c 65 34 68 61 6e 25 28 31 29 20 84 20 69 |pile4han%(1) . i| 00004600 63 6f 6e 25 3d 6f 73 6d 6f 77 61 73 74 65 68 61 |con%=osmowasteha| 00004610 6e 25 29 20 8c 0d 16 12 14 20 20 c8 8e 20 69 63 |n%) ..... .. ic| 00004620 6f 6e 73 75 69 74 25 20 ca 0d 16 1c 12 20 20 20 |onsuit% ..... | 00004630 20 c9 20 73 75 69 74 31 25 20 3a 0d 16 26 1b 20 | . suit1% :..&. | 00004640 20 20 20 20 20 66 6f 75 6e 64 31 25 3d 66 6f 75 | found1%=fou| 00004650 6e 64 31 25 2b 31 0d 16 30 6a 20 20 20 20 20 20 |nd1%+1..0j | 00004660 6f 73 6d 6f 66 6f 75 6e 64 31 68 61 6e 25 28 66 |osmofound1han%(f| 00004670 6f 75 6e 64 31 25 29 3d a4 63 72 65 61 74 65 69 |ound1%)=.createi| 00004680 63 6f 6e 28 6d 61 69 6e 25 2c 6e 61 6d 65 24 2c |con(main%,name$,| 00004690 22 22 2c 6c 65 66 74 31 25 2c 74 6f 70 31 25 2d |"",left1%,top1%-| 000046a0 32 30 38 2c 6c 65 66 74 31 25 2b 31 35 38 2c 74 |208,left1%+158,t| 000046b0 6f 70 31 25 2c 25 31 30 30 30 31 31 30 31 31 29 |op1%,%100011011)| 000046c0 0d 16 3a 1a 20 20 20 20 20 20 6c 65 66 74 31 25 |..:. left1%| 000046d0 3d 6c 65 66 74 31 25 2b 37 30 0d 16 44 24 20 20 |=left1%+70..D$ | 000046e0 20 20 20 20 6f 73 6d 6f 66 6f 75 6e 64 31 25 28 | osmofound1%(| 000046f0 66 6f 75 6e 64 31 25 29 3d 6e 61 6d 65 25 0d 16 |found1%)=name%..| 00004700 4e 2c 20 20 20 20 20 20 6f 73 6d 6f 66 6f 75 6e |N, osmofoun| 00004710 64 31 76 61 6c 25 28 66 6f 75 6e 64 31 25 29 3d |d1val%(found1%)=| 00004720 63 61 72 64 76 61 6c 75 65 25 0d 16 58 40 20 20 |cardvalue%..X@ | 00004730 20 20 20 20 f2 6f 73 6d 6f 73 69 73 5f 6d 6f 76 | .osmosis_mov| 00004740 65 63 61 72 64 28 69 63 6f 6e 25 2c 6f 73 6d 6f |ecard(icon%,osmo| 00004750 66 6f 75 6e 64 31 68 61 6e 25 28 66 6f 75 6e 64 |found1han%(found| 00004760 31 25 29 2c 6e 61 6d 65 24 29 0d 16 62 16 20 20 |1%),name$)..b. | 00004770 20 20 20 20 63 61 72 64 6d 6f 76 65 64 25 3d b9 | cardmoved%=.| 00004780 0d 16 6c 29 20 20 20 20 20 20 e7 20 6f 73 6d 6f |..l) . osmo| 00004790 66 6f 75 6e 64 31 25 28 31 33 29 3c 3e 30 20 8c |found1%(13)<>0 .| 000047a0 20 74 75 72 6e 31 25 3d b9 0d 16 76 12 20 20 20 | turn1%=...v. | 000047b0 20 c9 20 73 75 69 74 32 25 20 3a 0d 16 80 19 20 | . suit2% :.... | 000047c0 20 20 20 20 20 e3 20 49 3d 31 20 b8 20 66 6f 75 | . I=1 . fou| 000047d0 6e 64 31 25 0d 16 8a 33 20 20 20 20 20 20 20 20 |nd1%...3 | 000047e0 e7 20 63 61 72 64 76 61 6c 75 65 25 3d 6f 73 6d |. cardvalue%=osm| 000047f0 6f 66 6f 75 6e 64 31 76 61 6c 25 28 49 29 20 8c |ofound1val%(I) .| 00004800 20 74 61 67 25 3d b9 0d 16 94 0d 20 20 20 20 20 | tag%=..... | 00004810 20 ed 20 49 0d 16 9e 14 20 20 20 20 20 20 e7 20 | . I.... . | 00004820 74 61 67 25 3d b9 20 8c 0d 16 a8 1d 20 20 20 20 |tag%=. ..... | 00004830 20 20 20 20 66 6f 75 6e 64 32 25 3d 66 6f 75 6e | found2%=foun| 00004840 64 32 25 2b 31 0d 16 b2 6c 20 20 20 20 20 20 20 |d2%+1...l | 00004850 20 6f 73 6d 6f 66 6f 75 6e 64 32 68 61 6e 25 28 | osmofound2han%(| 00004860 66 6f 75 6e 64 32 25 29 3d a4 63 72 65 61 74 65 |found2%)=.create| 00004870 69 63 6f 6e 28 6d 61 69 6e 25 2c 6e 61 6d 65 24 |icon(main%,name$| 00004880 2c 22 22 2c 6c 65 66 74 32 25 2c 74 6f 70 32 25 |,"",left2%,top2%| 00004890 2d 32 30 38 2c 6c 65 66 74 32 25 2b 31 35 38 2c |-208,left2%+158,| 000048a0 74 6f 70 32 25 2c 25 31 30 30 30 31 31 30 31 31 |top2%,%100011011| 000048b0 29 0d 16 bc 1c 20 20 20 20 20 20 20 20 6c 65 66 |).... lef| 000048c0 74 32 25 3d 6c 65 66 74 32 25 2b 37 30 0d 16 c6 |t2%=left2%+70...| 000048d0 26 20 20 20 20 20 20 20 20 6f 73 6d 6f 66 6f 75 |& osmofou| 000048e0 6e 64 32 25 28 66 6f 75 6e 64 32 25 29 3d 6e 61 |nd2%(found2%)=na| 000048f0 6d 65 25 0d 16 d0 2e 20 20 20 20 20 20 20 20 6f |me%.... o| 00004900 73 6d 6f 66 6f 75 6e 64 32 76 61 6c 25 28 66 6f |smofound2val%(fo| 00004910 75 6e 64 32 25 29 3d 63 61 72 64 76 61 6c 75 65 |und2%)=cardvalue| 00004920 25 0d 16 da 42 20 20 20 20 20 20 20 20 f2 6f 73 |%...B .os| 00004930 6d 6f 73 69 73 5f 6d 6f 76 65 63 61 72 64 28 69 |mosis_movecard(i| 00004940 63 6f 6e 25 2c 6f 73 6d 6f 66 6f 75 6e 64 32 68 |con%,osmofound2h| 00004950 61 6e 25 28 66 6f 75 6e 64 32 25 29 2c 6e 61 6d |an%(found2%),nam| 00004960 65 24 29 0d 16 e4 18 20 20 20 20 20 20 20 20 63 |e$).... c| 00004970 61 72 64 6d 6f 76 65 64 25 3d b9 0d 16 ee 0b 20 |ardmoved%=..... | 00004980 20 20 20 20 20 cd 0d 16 f8 29 20 20 20 20 20 20 | ....) | 00004990 e7 20 6f 73 6d 6f 66 6f 75 6e 64 32 25 28 31 33 |. osmofound2%(13| 000049a0 29 3c 3e 30 20 8c 20 74 75 72 6e 32 25 3d b9 0d |)<>0 . turn2%=..| 000049b0 17 02 12 20 20 20 20 c9 20 73 75 69 74 33 25 20 |... . suit3% | 000049c0 3a 0d 17 0c 19 20 20 20 20 20 20 e3 20 49 3d 31 |:.... . I=1| 000049d0 20 b8 20 66 6f 75 6e 64 32 25 0d 17 16 33 20 20 | . found2%...3 | 000049e0 20 20 20 20 20 20 e7 20 63 61 72 64 76 61 6c 75 | . cardvalu| 000049f0 65 25 3d 6f 73 6d 6f 66 6f 75 6e 64 32 76 61 6c |e%=osmofound2val| 00004a00 25 28 49 29 20 8c 20 74 61 67 25 3d b9 0d 17 20 |%(I) . tag%=... | 00004a10 0d 20 20 20 20 20 20 ed 20 49 0d 17 2a 14 20 20 |. . I..*. | 00004a20 20 20 20 20 e7 20 74 61 67 25 3d b9 20 8c 0d 17 | . tag%=. ...| 00004a30 34 1d 20 20 20 20 20 20 20 20 66 6f 75 6e 64 33 |4. found3| 00004a40 25 3d 66 6f 75 6e 64 33 25 2b 31 0d 17 3e 6c 20 |%=found3%+1..>l | 00004a50 20 20 20 20 20 20 20 6f 73 6d 6f 66 6f 75 6e 64 | osmofound| 00004a60 33 68 61 6e 25 28 66 6f 75 6e 64 33 25 29 3d a4 |3han%(found3%)=.| 00004a70 63 72 65 61 74 65 69 63 6f 6e 28 6d 61 69 6e 25 |createicon(main%| 00004a80 2c 6e 61 6d 65 24 2c 22 22 2c 6c 65 66 74 33 25 |,name$,"",left3%| 00004a90 2c 74 6f 70 33 25 2d 32 30 38 2c 6c 65 66 74 33 |,top3%-208,left3| 00004aa0 25 2b 31 35 38 2c 74 6f 70 33 25 2c 25 31 30 30 |%+158,top3%,%100| 00004ab0 30 31 31 30 31 31 29 0d 17 48 1c 20 20 20 20 20 |011011)..H. | 00004ac0 20 20 20 6c 65 66 74 33 25 3d 6c 65 66 74 33 25 | left3%=left3%| 00004ad0 2b 37 30 0d 17 52 26 20 20 20 20 20 20 20 20 6f |+70..R& o| 00004ae0 73 6d 6f 66 6f 75 6e 64 33 25 28 66 6f 75 6e 64 |smofound3%(found| 00004af0 33 25 29 3d 6e 61 6d 65 25 0d 17 5c 2e 20 20 20 |3%)=name%..\. | 00004b00 20 20 20 20 20 6f 73 6d 6f 66 6f 75 6e 64 33 76 | osmofound3v| 00004b10 61 6c 25 28 66 6f 75 6e 64 33 25 29 3d 63 61 72 |al%(found3%)=car| 00004b20 64 76 61 6c 75 65 25 0d 17 66 42 20 20 20 20 20 |dvalue%..fB | 00004b30 20 20 20 f2 6f 73 6d 6f 73 69 73 5f 6d 6f 76 65 | .osmosis_move| 00004b40 63 61 72 64 28 69 63 6f 6e 25 2c 6f 73 6d 6f 66 |card(icon%,osmof| 00004b50 6f 75 6e 64 33 68 61 6e 25 28 66 6f 75 6e 64 33 |ound3han%(found3| 00004b60 25 29 2c 6e 61 6d 65 24 29 0d 17 70 18 20 20 20 |%),name$)..p. | 00004b70 20 20 20 20 20 63 61 72 64 6d 6f 76 65 64 25 3d | cardmoved%=| 00004b80 b9 0d 17 7a 0b 20 20 20 20 20 20 cd 0d 17 84 29 |...z. ....)| 00004b90 20 20 20 20 20 20 e7 20 6f 73 6d 6f 66 6f 75 6e | . osmofoun| 00004ba0 64 33 25 28 31 33 29 3c 3e 30 20 8c 20 74 75 72 |d3%(13)<>0 . tur| 00004bb0 6e 33 25 3d b9 0d 17 8e 12 20 20 20 20 c9 20 73 |n3%=..... . s| 00004bc0 75 69 74 34 25 20 3a 0d 17 98 19 20 20 20 20 20 |uit4% :.... | 00004bd0 20 e3 20 49 3d 31 20 b8 20 66 6f 75 6e 64 33 25 | . I=1 . found3%| 00004be0 0d 17 a2 33 20 20 20 20 20 20 20 20 e7 20 63 61 |...3 . ca| 00004bf0 72 64 76 61 6c 75 65 25 3d 6f 73 6d 6f 66 6f 75 |rdvalue%=osmofou| 00004c00 6e 64 33 76 61 6c 25 28 49 29 20 8c 20 74 61 67 |nd3val%(I) . tag| 00004c10 25 3d b9 0d 17 ac 0d 20 20 20 20 20 20 ed 20 49 |%=..... . I| 00004c20 0d 17 b6 14 20 20 20 20 20 20 e7 20 74 61 67 25 |.... . tag%| 00004c30 3d b9 20 8c 0d 17 c0 1d 20 20 20 20 20 20 20 20 |=. ..... | 00004c40 66 6f 75 6e 64 34 25 3d 66 6f 75 6e 64 34 25 2b |found4%=found4%+| 00004c50 31 0d 17 ca 6c 20 20 20 20 20 20 20 20 6f 73 6d |1...l osm| 00004c60 6f 66 6f 75 6e 64 34 68 61 6e 25 28 66 6f 75 6e |ofound4han%(foun| 00004c70 64 34 25 29 3d a4 63 72 65 61 74 65 69 63 6f 6e |d4%)=.createicon| 00004c80 28 6d 61 69 6e 25 2c 6e 61 6d 65 24 2c 22 22 2c |(main%,name$,"",| 00004c90 6c 65 66 74 34 25 2c 74 6f 70 34 25 2d 32 30 38 |left4%,top4%-208| 00004ca0 2c 6c 65 66 74 34 25 2b 31 35 38 2c 74 6f 70 34 |,left4%+158,top4| 00004cb0 25 2c 25 31 30 30 30 31 31 30 31 31 29 0d 17 d4 |%,%100011011)...| 00004cc0 1c 20 20 20 20 20 20 20 20 6c 65 66 74 34 25 3d |. left4%=| 00004cd0 6c 65 66 74 34 25 2b 37 30 0d 17 de 26 20 20 20 |left4%+70...& | 00004ce0 20 20 20 20 20 6f 73 6d 6f 66 6f 75 6e 64 34 25 | osmofound4%| 00004cf0 28 66 6f 75 6e 64 34 25 29 3d 6e 61 6d 65 25 0d |(found4%)=name%.| 00004d00 17 e8 2e 20 20 20 20 20 20 20 20 6f 73 6d 6f 66 |... osmof| 00004d10 6f 75 6e 64 34 76 61 6c 25 28 66 6f 75 6e 64 34 |ound4val%(found4| 00004d20 25 29 3d 63 61 72 64 76 61 6c 75 65 25 0d 17 f2 |%)=cardvalue%...| 00004d30 42 20 20 20 20 20 20 20 20 f2 6f 73 6d 6f 73 69 |B .osmosi| 00004d40 73 5f 6d 6f 76 65 63 61 72 64 28 69 63 6f 6e 25 |s_movecard(icon%| 00004d50 2c 6f 73 6d 6f 66 6f 75 6e 64 34 68 61 6e 25 28 |,osmofound4han%(| 00004d60 66 6f 75 6e 64 34 25 29 2c 6e 61 6d 65 24 29 0d |found4%),name$).| 00004d70 17 fc 18 20 20 20 20 20 20 20 20 63 61 72 64 6d |... cardm| 00004d80 6f 76 65 64 25 3d b9 0d 18 06 0b 20 20 20 20 20 |oved%=..... | 00004d90 20 cd 0d 18 10 29 20 20 20 20 20 20 e7 20 6f 73 | ....) . os| 00004da0 6d 6f 66 6f 75 6e 64 34 25 28 31 33 29 3c 3e 30 |mofound4%(13)<>0| 00004db0 20 8c 20 74 75 72 6e 34 25 3d b9 0d 18 1a 07 20 | . turn4%=..... | 00004dc0 20 cb 0d 18 24 1b 20 20 e7 20 69 63 6f 6e 73 75 | ...$. . iconsu| 00004dd0 69 74 25 3c 3e 73 75 69 74 31 25 20 8c 0d 18 2e |it%<>suit1% ....| 00004de0 1c 20 20 20 20 e7 20 6f 73 6d 6f 66 6f 75 6e 64 |. . osmofound| 00004df0 32 25 28 31 29 3d 30 20 8c 0d 18 38 2a 20 20 20 |2%(1)=0 ...8* | 00004e00 20 20 20 e7 20 63 61 72 64 76 61 6c 75 65 25 3d | . cardvalue%=| 00004e10 6f 73 6d 6f 66 6f 75 6e 64 31 76 61 6c 25 28 31 |osmofound1val%(1| 00004e20 29 20 8c 0d 18 42 20 20 20 20 20 20 20 20 20 6f |) ...B o| 00004e30 73 6d 6f 66 6f 75 6e 64 32 25 28 31 29 3d 6e 61 |smofound2%(1)=na| 00004e40 6d 65 25 0d 18 4c 66 20 20 20 20 20 20 20 20 6f |me%..Lf o| 00004e50 73 6d 6f 66 6f 75 6e 64 32 68 61 6e 25 28 31 29 |smofound2han%(1)| 00004e60 3d a4 63 72 65 61 74 65 69 63 6f 6e 28 6d 61 69 |=.createicon(mai| 00004e70 6e 25 2c 6e 61 6d 65 24 2c 22 22 2c 6c 65 66 74 |n%,name$,"",left| 00004e80 32 25 2c 74 6f 70 32 25 2d 32 30 38 2c 6c 65 66 |2%,top2%-208,lef| 00004e90 74 32 25 2b 31 35 38 2c 74 6f 70 32 25 2c 25 31 |t2%+158,top2%,%1| 00004ea0 30 30 30 31 31 30 31 31 29 0d 18 56 1c 20 20 20 |00011011)..V. | 00004eb0 20 20 20 20 20 6c 65 66 74 32 25 3d 6c 65 66 74 | left2%=left| 00004ec0 32 25 2b 37 30 0d 18 60 1c 20 20 20 20 20 20 20 |2%+70..`. | 00004ed0 20 73 75 69 74 32 25 3d 69 63 6f 6e 73 75 69 74 | suit2%=iconsuit| 00004ee0 25 0d 18 6a 3c 20 20 20 20 20 20 20 20 f2 6f 73 |%..j< .os| 00004ef0 6d 6f 73 69 73 5f 6d 6f 76 65 63 61 72 64 28 69 |mosis_movecard(i| 00004f00 63 6f 6e 25 2c 6f 73 6d 6f 66 6f 75 6e 64 32 68 |con%,osmofound2h| 00004f10 61 6e 25 28 31 29 2c 6e 61 6d 65 24 29 0d 18 74 |an%(1),name$)..t| 00004f20 15 20 20 20 20 20 20 20 20 66 6f 75 6e 64 32 25 |. found2%| 00004f30 3d 31 0d 18 7e 18 20 20 20 20 20 20 20 20 63 61 |=1..~. ca| 00004f40 72 64 6d 6f 76 65 64 25 3d b9 0d 18 88 0b 20 20 |rdmoved%=..... | 00004f50 20 20 20 20 cd 0d 18 92 09 20 20 20 20 cc 0d 18 | ..... ...| 00004f60 9c 1e 20 20 20 20 20 20 e7 20 6f 73 6d 6f 66 6f |.. . osmofo| 00004f70 75 6e 64 33 25 28 31 29 3d 30 20 8c 0d 18 a6 2c |und3%(1)=0 ....,| 00004f80 20 20 20 20 20 20 20 20 e7 20 63 61 72 64 76 61 | . cardva| 00004f90 6c 75 65 25 3d 6f 73 6d 6f 66 6f 75 6e 64 31 76 |lue%=osmofound1v| 00004fa0 61 6c 25 28 31 29 20 8c 0d 18 b0 22 20 20 20 20 |al%(1) ...." | 00004fb0 20 20 20 20 20 20 6f 73 6d 6f 66 6f 75 6e 64 33 | osmofound3| 00004fc0 25 28 31 29 3d 6e 61 6d 65 25 0d 18 ba 68 20 20 |%(1)=name%...h | 00004fd0 20 20 20 20 20 20 20 20 6f 73 6d 6f 66 6f 75 6e | osmofoun| 00004fe0 64 33 68 61 6e 25 28 31 29 3d a4 63 72 65 61 74 |d3han%(1)=.creat| 00004ff0 65 69 63 6f 6e 28 6d 61 69 6e 25 2c 6e 61 6d 65 |eicon(main%,name| 00005000 24 2c 22 22 2c 6c 65 66 74 33 25 2c 74 6f 70 33 |$,"",left3%,top3| 00005010 25 2d 32 30 38 2c 6c 65 66 74 33 25 2b 31 35 38 |%-208,left3%+158| 00005020 2c 74 6f 70 33 25 2c 25 31 30 30 30 31 31 30 31 |,top3%,%10001101| 00005030 31 29 0d 18 c4 1e 20 20 20 20 20 20 20 20 20 20 |1).... | 00005040 6c 65 66 74 33 25 3d 6c 65 66 74 33 25 2b 37 30 |left3%=left3%+70| 00005050 0d 18 ce 1e 20 20 20 20 20 20 20 20 20 20 73 75 |.... su| 00005060 69 74 33 25 3d 69 63 6f 6e 73 75 69 74 25 0d 18 |it3%=iconsuit%..| 00005070 d8 3e 20 20 20 20 20 20 20 20 20 20 f2 6f 73 6d |.> .osm| 00005080 6f 73 69 73 5f 6d 6f 76 65 63 61 72 64 28 69 63 |osis_movecard(ic| 00005090 6f 6e 25 2c 6f 73 6d 6f 66 6f 75 6e 64 33 68 61 |on%,osmofound3ha| 000050a0 6e 25 28 31 29 2c 6e 61 6d 65 24 29 0d 18 e2 1a |n%(1),name$)....| 000050b0 20 20 20 20 20 20 20 20 20 20 63 61 72 64 6d 6f | cardmo| 000050c0 76 65 64 25 3d b9 0d 18 ec 17 20 20 20 20 20 20 |ved%=..... | 000050d0 20 20 20 20 66 6f 75 6e 64 33 25 3d 31 0d 18 f6 | found3%=1...| 000050e0 0d 20 20 20 20 20 20 20 20 cd 0d 19 00 0b 20 20 |. ..... | 000050f0 20 20 20 20 cc 0d 19 0a 20 20 20 20 20 20 20 20 | .... | 00005100 20 e7 20 6f 73 6d 6f 66 6f 75 6e 64 34 25 28 31 | . osmofound4%(1| 00005110 29 3d 30 20 8c 0d 19 14 2e 20 20 20 20 20 20 20 |)=0 ..... | 00005120 20 20 20 e7 20 63 61 72 64 76 61 6c 75 65 25 3d | . cardvalue%=| 00005130 6f 73 6d 6f 66 6f 75 6e 64 31 76 61 6c 25 28 31 |osmofound1val%(1| 00005140 29 20 8c 0d 19 1e 24 20 20 20 20 20 20 20 20 20 |) ....$ | 00005150 20 20 20 6f 73 6d 6f 66 6f 75 6e 64 34 25 28 31 | osmofound4%(1| 00005160 29 3d 6e 61 6d 65 25 0d 19 28 6a 20 20 20 20 20 |)=name%..(j | 00005170 20 20 20 20 20 20 20 6f 73 6d 6f 66 6f 75 6e 64 | osmofound| 00005180 34 68 61 6e 25 28 31 29 3d a4 63 72 65 61 74 65 |4han%(1)=.create| 00005190 69 63 6f 6e 28 6d 61 69 6e 25 2c 6e 61 6d 65 24 |icon(main%,name$| 000051a0 2c 22 22 2c 6c 65 66 74 34 25 2c 74 6f 70 34 25 |,"",left4%,top4%| 000051b0 2d 32 30 38 2c 6c 65 66 74 34 25 2b 31 35 38 2c |-208,left4%+158,| 000051c0 74 6f 70 34 25 2c 25 31 30 30 30 31 31 30 31 31 |top4%,%100011011| 000051d0 29 0d 19 32 20 20 20 20 20 20 20 20 20 20 20 20 |)..2 | 000051e0 20 6c 65 66 74 34 25 3d 6c 65 66 74 34 25 2b 37 | left4%=left4%+7| 000051f0 30 0d 19 3c 20 20 20 20 20 20 20 20 20 20 20 20 |0..< | 00005200 20 73 75 69 74 34 25 3d 69 63 6f 6e 73 75 69 74 | suit4%=iconsuit| 00005210 25 0d 19 46 40 20 20 20 20 20 20 20 20 20 20 20 |%..F@ | 00005220 20 f2 6f 73 6d 6f 73 69 73 5f 6d 6f 76 65 63 61 | .osmosis_moveca| 00005230 72 64 28 69 63 6f 6e 25 2c 6f 73 6d 6f 66 6f 75 |rd(icon%,osmofou| 00005240 6e 64 34 68 61 6e 25 28 31 29 2c 6e 61 6d 65 24 |nd4han%(1),name$| 00005250 29 0d 19 50 1c 20 20 20 20 20 20 20 20 20 20 20 |)..P. | 00005260 20 63 61 72 64 6d 6f 76 65 64 25 3d b9 0d 19 5a | cardmoved%=...Z| 00005270 19 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 75 |. fou| 00005280 6e 64 34 25 3d 31 0d 19 64 0f 20 20 20 20 20 20 |nd4%=1..d. | 00005290 20 20 20 20 cd 0d 19 6e 0d 20 20 20 20 20 20 20 | ...n. | 000052a0 20 cd 0d 19 78 0b 20 20 20 20 20 20 cd 0d 19 82 | ...x. ....| 000052b0 09 20 20 20 20 cd 0d 19 8c 07 20 20 cd 0d 19 96 |. ..... ....| 000052c0 16 20 20 e7 20 63 61 72 64 6d 6f 76 65 64 25 3d |. . cardmoved%=| 000052d0 a3 20 8c 0d 19 a0 21 20 20 20 20 65 6d 70 74 79 |. ....! empty| 000052e0 25 3d a4 6f 73 6d 6f 73 69 73 5f 65 6d 70 74 79 |%=.osmosis_empty| 000052f0 70 69 6c 65 0d 19 aa 15 20 20 20 20 e7 20 65 6d |pile.... . em| 00005300 70 74 79 25 3c 3e 30 20 8c 0d 19 b4 16 20 20 20 |pty%<>0 ..... | 00005310 20 20 20 63 61 72 64 6d 6f 76 65 64 25 3d b9 0d | cardmoved%=..| 00005320 19 be 2f 20 20 20 20 20 20 f2 6f 73 6d 6f 73 69 |../ .osmosi| 00005330 73 5f 6d 6f 76 65 63 61 72 64 28 69 63 6f 6e 25 |s_movecard(icon%| 00005340 2c 65 6d 70 74 79 25 2c 6e 61 6d 65 24 29 0d 19 |,empty%,name$)..| 00005350 c8 15 20 20 20 20 20 20 c8 8e 20 65 6d 70 74 79 |.. .. empty| 00005360 25 20 ca 0d 19 d2 34 20 20 20 20 20 20 20 20 c9 |% ....4 .| 00005370 20 6f 73 6d 6f 70 69 6c 65 31 68 61 6e 25 28 31 | osmopile1han%(1| 00005380 29 20 3a 20 6f 73 6d 6f 70 69 6c 65 31 25 28 31 |) : osmopile1%(1| 00005390 29 3d 6e 61 6d 65 25 0d 19 dc 34 20 20 20 20 20 |)=name%...4 | 000053a0 20 20 20 c9 20 6f 73 6d 6f 70 69 6c 65 32 68 61 | . osmopile2ha| 000053b0 6e 25 28 31 29 20 3a 20 6f 73 6d 6f 70 69 6c 65 |n%(1) : osmopile| 000053c0 32 25 28 31 29 3d 6e 61 6d 65 25 0d 19 e6 34 20 |2%(1)=name%...4 | 000053d0 20 20 20 20 20 20 20 c9 20 6f 73 6d 6f 70 69 6c | . osmopil| 000053e0 65 33 68 61 6e 25 28 31 29 20 3a 20 6f 73 6d 6f |e3han%(1) : osmo| 000053f0 70 69 6c 65 33 25 28 31 29 3d 6e 61 6d 65 25 0d |pile3%(1)=name%.| 00005400 19 f0 34 20 20 20 20 20 20 20 20 c9 20 6f 73 6d |..4 . osm| 00005410 6f 70 69 6c 65 34 68 61 6e 25 28 31 29 20 3a 20 |opile4han%(1) : | 00005420 6f 73 6d 6f 70 69 6c 65 34 25 28 31 29 3d 6e 61 |osmopile4%(1)=na| 00005430 6d 65 25 0d 19 fa 0b 20 20 20 20 20 20 cb 0d 1a |me%.... ...| 00005440 04 09 20 20 20 20 cd 0d 1a 0e 07 20 20 cd 0d 1a |.. ..... ...| 00005450 18 05 cd 0d 1a 22 1a e7 20 69 63 6f 6e 25 3d 6f |.....".. icon%=o| 00005460 73 6d 6f 70 61 63 6b 68 61 6e 25 20 8c 0d 1a 2c |smopackhan% ...,| 00005470 1c 20 20 6c 61 73 74 66 72 6f 6d 25 3d 6f 73 6d |. lastfrom%=osm| 00005480 6f 70 61 63 6b 68 61 6e 25 0d 1a 36 18 20 20 e7 |opackhan%..6. .| 00005490 20 6f 73 6d 6f 70 61 63 6b 25 28 31 29 3d 30 20 | osmopack%(1)=0 | 000054a0 8c 0d 1a 40 13 20 20 20 20 6c 61 73 74 74 75 72 |...@. lasttur| 000054b0 6e 25 3d 30 0d 1a 4a 12 20 20 20 20 e3 20 49 3d |n%=0..J. . I=| 000054c0 31 20 b8 20 33 35 0d 1a 54 27 20 20 20 20 20 20 |1 . 35..T' | 000054d0 6f 73 6d 6f 70 61 63 6b 25 28 49 29 3d 6f 73 6d |osmopack%(I)=osm| 000054e0 6f 77 61 73 74 65 25 28 33 36 2d 49 29 0d 1a 5e |owaste%(36-I)..^| 000054f0 0b 20 20 20 20 ed 20 49 0d 1a 68 12 20 20 20 20 |. . I..h. | 00005500 e3 20 49 3d 31 20 b8 20 33 35 0d 1a 72 19 20 20 |. I=1 . 35..r. | 00005510 20 20 20 20 6f 73 6d 6f 77 61 73 74 65 25 28 49 | osmowaste%(I| 00005520 29 3d 30 0d 1a 7c 0b 20 20 20 20 ed 20 49 0d 1a |)=0..|. . I..| 00005530 86 19 20 20 20 20 c8 95 20 6f 73 6d 6f 70 61 63 |.. .. osmopac| 00005540 6b 25 28 31 29 3d 30 0d 1a 90 14 20 20 20 20 20 |k%(1)=0.... | 00005550 20 e3 20 49 3d 31 20 b8 20 33 34 0d 1a 9a 27 20 | . I=1 . 34...' | 00005560 20 20 20 20 20 20 20 6f 73 6d 6f 70 61 63 6b 25 | osmopack%| 00005570 28 49 29 3d 6f 73 6d 6f 70 61 63 6b 25 28 49 2b |(I)=osmopack%(I+| 00005580 31 29 0d 1a a4 0d 20 20 20 20 20 20 ed 20 49 0d |1).... . I.| 00005590 1a ae 19 20 20 20 20 20 20 6f 73 6d 6f 70 61 63 |... osmopac| 000055a0 6b 25 28 33 35 29 3d 30 0d 1a b8 09 20 20 20 20 |k%(35)=0.... | 000055b0 ce 0d 1a c2 31 20 20 20 20 f2 73 65 74 69 63 6f |....1 .setico| 000055c0 6e 73 70 72 69 74 65 28 6d 61 69 6e 25 2c 6f 73 |nsprite(main%,os| 000055d0 6d 6f 70 61 63 6b 68 61 6e 25 2c 22 62 61 63 6b |mopackhan%,"back| 000055e0 22 29 0d 1a cc 34 20 20 20 20 f2 73 65 74 69 63 |")...4 .setic| 000055f0 6f 6e 73 70 72 69 74 65 28 6d 61 69 6e 25 2c 6f |onsprite(main%,o| 00005600 73 6d 6f 77 61 73 74 65 68 61 6e 25 2c 22 6e 6f |smowastehan%,"no| 00005610 63 61 72 64 22 29 0d 1a d6 07 20 20 cc 0d 1a e0 |card").... ....| 00005620 1a 20 20 20 20 e7 20 6f 73 6d 6f 70 61 63 6b 25 |. . osmopack%| 00005630 28 33 29 3d 30 20 8c 0d 1a ea 1c 20 20 20 20 20 |(3)=0 ..... | 00005640 20 e7 20 6f 73 6d 6f 70 61 63 6b 25 28 32 29 3d | . osmopack%(2)=| 00005650 30 20 8c 0d 1a f4 1b 20 20 20 20 20 20 20 20 e3 |0 ..... .| 00005660 20 49 3d 33 34 20 b8 20 31 20 88 20 2d 31 0d 1a | I=34 . 1 . -1..| 00005670 fe 2b 20 20 20 20 20 20 20 20 20 20 6f 73 6d 6f |.+ osmo| 00005680 77 61 73 74 65 25 28 49 2b 31 29 3d 6f 73 6d 6f |waste%(I+1)=osmo| 00005690 77 61 73 74 65 25 28 49 29 0d 1b 08 0f 20 20 20 |waste%(I).... | 000056a0 20 20 20 20 20 ed 20 49 0d 1b 12 26 20 20 20 20 | . I...& | 000056b0 20 20 20 20 6f 73 6d 6f 77 61 73 74 65 25 28 31 | osmowaste%(1| 000056c0 29 3d 6f 73 6d 6f 70 61 63 6b 25 28 31 29 0d 1b |)=osmopack%(1)..| 000056d0 1c 1a 20 20 20 20 20 20 20 20 6f 73 6d 6f 70 61 |.. osmopa| 000056e0 63 6b 25 28 31 29 3d 30 0d 1b 26 17 20 20 20 20 |ck%(1)=0..&. | 000056f0 20 20 20 20 6c 61 73 74 74 75 72 6e 25 3d 31 0d | lastturn%=1.| 00005700 1b 30 0b 20 20 20 20 20 20 cc 0d 1b 3a 1b 20 20 |.0. ...:. | 00005710 20 20 20 20 20 20 e3 20 49 3d 33 33 20 b8 20 31 | . I=33 . 1| 00005720 20 88 20 2d 31 0d 1b 44 2b 20 20 20 20 20 20 20 | . -1..D+ | 00005730 20 20 20 6f 73 6d 6f 77 61 73 74 65 25 28 49 2b | osmowaste%(I+| 00005740 32 29 3d 6f 73 6d 6f 77 61 73 74 65 25 28 49 29 |2)=osmowaste%(I)| 00005750 0d 1b 4e 0f 20 20 20 20 20 20 20 20 ed 20 49 0d |..N. . I.| 00005760 1b 58 26 20 20 20 20 20 20 20 20 6f 73 6d 6f 77 |.X& osmow| 00005770 61 73 74 65 25 28 32 29 3d 6f 73 6d 6f 70 61 63 |aste%(2)=osmopac| 00005780 6b 25 28 31 29 0d 1b 62 26 20 20 20 20 20 20 20 |k%(1)..b& | 00005790 20 6f 73 6d 6f 77 61 73 74 65 25 28 31 29 3d 6f | osmowaste%(1)=o| 000057a0 73 6d 6f 70 61 63 6b 25 28 32 29 0d 1b 6c 29 20 |smopack%(2)..l) | 000057b0 20 20 20 20 20 20 20 6f 73 6d 6f 70 61 63 6b 25 | osmopack%| 000057c0 28 31 29 3d 30 3a 6f 73 6d 6f 70 61 63 6b 25 28 |(1)=0:osmopack%(| 000057d0 32 29 3d 30 0d 1b 76 17 20 20 20 20 20 20 20 20 |2)=0..v. | 000057e0 6c 61 73 74 74 75 72 6e 25 3d 32 0d 1b 80 0b 20 |lastturn%=2.... | 000057f0 20 20 20 20 20 cd 0d 1b 8a 09 20 20 20 20 cc 0d | ..... ..| 00005800 1b 94 19 20 20 20 20 20 20 e3 20 49 3d 33 32 20 |... . I=32 | 00005810 b8 20 31 20 88 20 2d 31 0d 1b 9e 29 20 20 20 20 |. 1 . -1...) | 00005820 20 20 20 20 6f 73 6d 6f 77 61 73 74 65 25 28 49 | osmowaste%(I| 00005830 2b 33 29 3d 6f 73 6d 6f 77 61 73 74 65 25 28 49 |+3)=osmowaste%(I| 00005840 29 0d 1b a8 0d 20 20 20 20 20 20 ed 20 49 0d 1b |).... . I..| 00005850 b2 24 20 20 20 20 20 20 6f 73 6d 6f 77 61 73 74 |.$ osmowast| 00005860 65 25 28 33 29 3d 6f 73 6d 6f 70 61 63 6b 25 28 |e%(3)=osmopack%(| 00005870 31 29 0d 1b bc 24 20 20 20 20 20 20 6f 73 6d 6f |1)...$ osmo| 00005880 77 61 73 74 65 25 28 32 29 3d 6f 73 6d 6f 70 61 |waste%(2)=osmopa| 00005890 63 6b 25 28 32 29 0d 1b c6 24 20 20 20 20 20 20 |ck%(2)...$ | 000058a0 6f 73 6d 6f 77 61 73 74 65 25 28 31 29 3d 6f 73 |osmowaste%(1)=os| 000058b0 6d 6f 70 61 63 6b 25 28 33 29 0d 1b d0 14 20 20 |mopack%(3).... | 000058c0 20 20 20 20 e3 20 49 3d 31 20 b8 20 33 32 0d 1b | . I=1 . 32..| 000058d0 da 27 20 20 20 20 20 20 20 20 6f 73 6d 6f 70 61 |.' osmopa| 000058e0 63 6b 25 28 49 29 3d 6f 73 6d 6f 70 61 63 6b 25 |ck%(I)=osmopack%| 000058f0 28 49 2b 33 29 0d 1b e4 0d 20 20 20 20 20 20 ed |(I+3).... .| 00005900 20 49 0d 1b ee 15 20 20 20 20 20 20 e3 20 49 3d | I.... . I=| 00005910 33 33 20 b8 20 33 35 0d 1b f8 1a 20 20 20 20 20 |33 . 35.... | 00005920 20 20 20 6f 73 6d 6f 70 61 63 6b 25 28 49 29 3d | osmopack%(I)=| 00005930 30 0d 1c 02 0d 20 20 20 20 20 20 ed 20 49 0d 1c |0.... . I..| 00005940 0c 15 20 20 20 20 20 20 6c 61 73 74 74 75 72 6e |.. lastturn| 00005950 25 3d 33 0d 1c 16 09 20 20 20 20 cd 0d 1c 20 1b |%=3.... ... .| 00005960 20 20 20 20 e7 20 6f 73 6d 6f 77 61 73 74 65 25 | . osmowaste%| 00005970 28 31 29 3d 30 20 8c 0d 1c 2a 36 20 20 20 20 20 |(1)=0 ...*6 | 00005980 20 f2 73 65 74 69 63 6f 6e 73 70 72 69 74 65 28 | .seticonsprite(| 00005990 6d 61 69 6e 25 2c 6f 73 6d 6f 77 61 73 74 65 68 |main%,osmowasteh| 000059a0 61 6e 25 2c 22 6e 6f 63 61 72 64 22 29 0d 1c 34 |an%,"nocard")..4| 000059b0 09 20 20 20 20 cc 0d 1c 3e 3c 20 20 20 20 20 20 |. ...>< | 000059c0 f2 73 65 74 69 63 6f 6e 73 70 72 69 74 65 28 6d |.seticonsprite(m| 000059d0 61 69 6e 25 2c 6f 73 6d 6f 77 61 73 74 65 68 61 |ain%,osmowasteha| 000059e0 6e 25 2c c3 6f 73 6d 6f 77 61 73 74 65 25 28 31 |n%,.osmowaste%(1| 000059f0 29 29 0d 1c 48 09 20 20 20 20 cd 0d 1c 52 46 20 |))..H. ...RF | 00005a00 20 20 20 e7 20 6f 73 6d 6f 70 61 63 6b 25 28 31 | . osmopack%(1| 00005a10 29 3d 30 20 8c 20 f2 73 65 74 69 63 6f 6e 73 70 |)=0 . .seticonsp| 00005a20 72 69 74 65 28 6d 61 69 6e 25 2c 6f 73 6d 6f 70 |rite(main%,osmop| 00005a30 61 63 6b 68 61 6e 25 2c 22 6e 6f 63 61 72 64 22 |ackhan%,"nocard"| 00005a40 29 0d 1c 5c 07 20 20 cd 0d 1c 66 10 63 61 72 64 |)..\. ...f.card| 00005a50 6d 6f 76 65 64 25 3d b9 0d 1c 70 05 cd 0d 1c 7a |moved%=...p....z| 00005a60 10 e7 20 74 75 72 6e 31 25 3d b9 20 8c 0d 1c 84 |.. turn1%=. ....| 00005a70 10 20 20 e3 20 49 3d 31 20 b8 20 31 33 0d 1c 8e |. . I=1 . 13...| 00005a80 36 20 20 20 20 f2 73 65 74 69 63 6f 6e 73 70 72 |6 .seticonspr| 00005a90 69 74 65 28 6d 61 69 6e 25 2c 6f 73 6d 6f 66 6f |ite(main%,osmofo| 00005aa0 75 6e 64 31 68 61 6e 25 28 49 29 2c 22 62 61 63 |und1han%(I),"bac| 00005ab0 6b 22 29 0d 1c 98 09 20 20 ed 20 49 0d 1c a2 19 |k").... . I....| 00005ac0 20 20 74 75 72 6e 31 25 3d a3 3a 74 75 72 6e 65 | turn1%=.:turne| 00005ad0 64 31 25 3d b9 0d 1c ac 05 cd 0d 1c b6 10 e7 20 |d1%=........... | 00005ae0 74 75 72 6e 32 25 3d b9 20 8c 0d 1c c0 10 20 20 |turn2%=. ..... | 00005af0 e3 20 49 3d 31 20 b8 20 31 33 0d 1c ca 36 20 20 |. I=1 . 13...6 | 00005b00 20 20 f2 73 65 74 69 63 6f 6e 73 70 72 69 74 65 | .seticonsprite| 00005b10 28 6d 61 69 6e 25 2c 6f 73 6d 6f 66 6f 75 6e 64 |(main%,osmofound| 00005b20 32 68 61 6e 25 28 49 29 2c 22 62 61 63 6b 22 29 |2han%(I),"back")| 00005b30 0d 1c d4 09 20 20 ed 20 49 0d 1c de 19 20 20 74 |.... . I.... t| 00005b40 75 72 6e 32 25 3d a3 3a 74 75 72 6e 65 64 32 25 |urn2%=.:turned2%| 00005b50 3d b9 0d 1c e8 05 cd 0d 1c f2 10 e7 20 74 75 72 |=........... tur| 00005b60 6e 33 25 3d b9 20 8c 0d 1c fc 10 20 20 e3 20 49 |n3%=. ..... . I| 00005b70 3d 31 20 b8 20 31 33 0d 1d 06 36 20 20 20 20 f2 |=1 . 13...6 .| 00005b80 73 65 74 69 63 6f 6e 73 70 72 69 74 65 28 6d 61 |seticonsprite(ma| 00005b90 69 6e 25 2c 6f 73 6d 6f 66 6f 75 6e 64 33 68 61 |in%,osmofound3ha| 00005ba0 6e 25 28 49 29 2c 22 62 61 63 6b 22 29 0d 1d 10 |n%(I),"back")...| 00005bb0 09 20 20 ed 20 49 0d 1d 1a 19 20 20 74 75 72 6e |. . I.... turn| 00005bc0 33 25 3d a3 3a 74 75 72 6e 65 64 33 25 3d b9 0d |3%=.:turned3%=..| 00005bd0 1d 24 05 cd 0d 1d 2e 10 e7 20 74 75 72 6e 34 25 |.$....... turn4%| 00005be0 3d b9 20 8c 0d 1d 38 10 20 20 e3 20 49 3d 31 20 |=. ...8. . I=1 | 00005bf0 b8 20 31 33 0d 1d 42 36 20 20 20 20 f2 73 65 74 |. 13..B6 .set| 00005c00 69 63 6f 6e 73 70 72 69 74 65 28 6d 61 69 6e 25 |iconsprite(main%| 00005c10 2c 6f 73 6d 6f 66 6f 75 6e 64 34 68 61 6e 25 28 |,osmofound4han%(| 00005c20 49 29 2c 22 62 61 63 6b 22 29 0d 1d 4c 09 20 20 |I),"back")..L. | 00005c30 ed 20 49 0d 1d 56 19 20 20 74 75 72 6e 34 25 3d |. I..V. turn4%=| 00005c40 a3 3a 74 75 72 6e 65 64 34 25 3d b9 0d 1d 60 05 |.:turned4%=...`.| 00005c50 cd 0d 1d 6a 14 e7 20 63 61 72 64 6d 6f 76 65 64 |...j.. cardmoved| 00005c60 25 3d b9 20 8c 0d 1d 74 32 20 20 c8 99 22 57 69 |%=. ...t2 .."Wi| 00005c70 6d 70 45 78 74 5f 53 68 61 64 65 45 6e 74 72 79 |mpExt_ShadeEntry| 00005c80 22 2c 2c 67 6d 65 6e 75 25 2c 30 2c 30 20 b8 20 |",,gmenu%,0,0 . | 00005c90 73 68 61 64 65 64 25 0d 1d 7e 36 20 20 e7 20 73 |shaded%..~6 . s| 00005ca0 68 61 64 65 64 25 3d 30 20 8c 20 c8 99 22 57 69 |haded%=0 . .."Wi| 00005cb0 6d 70 45 78 74 5f 53 68 61 64 65 45 6e 74 72 79 |mpExt_ShadeEntry| 00005cc0 22 2c 2c 67 6d 65 6e 75 25 2c 30 2c 30 0d 1d 88 |",,gmenu%,0,0...| 00005cd0 05 cd 0d 1d 92 18 e7 20 69 63 6f 6e 25 3d 30 20 |....... icon%=0 | 00005ce0 8c 20 f2 6e 65 77 67 61 6d 65 0d 1d 9c 05 e1 0d |. .newgame......| 00005cf0 1d a6 04 0d 1d b0 2f dd f2 6f 73 6d 6f 73 69 73 |....../..osmosis| 00005d00 5f 6d 6f 76 65 63 61 72 64 28 73 74 61 72 74 6c |_movecard(startl| 00005d10 6f 63 25 2c 65 6e 64 6c 6f 63 25 2c 6e 61 6d 65 |oc%,endloc%,name| 00005d20 24 29 0d 1d ba 3d f4 20 54 68 69 73 20 70 72 6f |$)...=. This pro| 00005d30 63 65 64 75 72 65 20 70 65 72 66 6f 72 6d 73 20 |cedure performs | 00005d40 6d 6f 76 65 6d 65 6e 74 20 6f 66 20 61 20 63 61 |movement of a ca| 00005d50 72 64 2c 20 6b 6e 6f 77 69 6e 67 20 69 74 73 0d |rd, knowing its.| 00005d60 1d c4 3e f4 20 69 6e 69 74 69 61 6c 20 6c 6f 63 |..>. initial loc| 00005d70 61 74 69 6f 6e 2c 20 69 6e 63 6c 75 64 69 6e 67 |ation, including| 00005d80 20 6d 6f 76 69 6e 67 20 63 61 72 64 73 20 75 70 | moving cards up| 00005d90 20 69 6e 20 74 68 65 20 70 69 6c 65 2e 0d 1d ce | in the pile....| 00005da0 38 6c 61 73 74 66 72 6f 6d 25 3d 73 74 61 72 74 |8lastfrom%=start| 00005db0 6c 6f 63 25 3a 6c 61 73 74 74 6f 25 3d 65 6e 64 |loc%:lastto%=end| 00005dc0 6c 6f 63 25 3a 6c 61 73 74 63 61 72 64 25 3d bb |loc%:lastcard%=.| 00005dd0 6e 61 6d 65 24 0d 1d d8 12 c8 8e 20 73 74 61 72 |name$...... star| 00005de0 74 6c 6f 63 25 20 ca 0d 1d e2 1a 20 20 c9 20 6f |tloc% ..... . o| 00005df0 73 6d 6f 70 69 6c 65 31 68 61 6e 25 28 31 29 20 |smopile1han%(1) | 00005e00 3a 0d 1d ec 11 20 20 20 20 e3 20 49 3d 31 20 b8 |:.... . I=1 .| 00005e10 20 33 0d 1d f6 27 20 20 20 20 20 20 6f 73 6d 6f | 3...' osmo| 00005e20 70 69 6c 65 31 25 28 49 29 3d 6f 73 6d 6f 70 69 |pile1%(I)=osmopi| 00005e30 6c 65 31 25 28 49 2b 31 29 0d 1e 00 0b 20 20 20 |le1%(I+1).... | 00005e40 20 ed 20 49 0d 1e 0a 17 20 20 20 20 6f 73 6d 6f | . I.... osmo| 00005e50 70 69 6c 65 31 25 28 34 29 3d 30 0d 1e 14 3d 20 |pile1%(4)=0...= | 00005e60 20 20 20 f2 73 65 74 69 63 6f 6e 73 70 72 69 74 | .seticonsprit| 00005e70 65 28 6d 61 69 6e 25 2c 6f 73 6d 6f 70 69 6c 65 |e(main%,osmopile| 00005e80 31 68 61 6e 25 28 31 29 2c c3 6f 73 6d 6f 70 69 |1han%(1),.osmopi| 00005e90 6c 65 31 25 28 31 29 29 0d 1e 1e 2b 20 20 20 20 |le1%(1))...+ | 00005ea0 f2 73 65 74 69 63 6f 6e 73 70 72 69 74 65 28 6d |.seticonsprite(m| 00005eb0 61 69 6e 25 2c 65 6e 64 6c 6f 63 25 2c 6e 61 6d |ain%,endloc%,nam| 00005ec0 65 24 29 0d 1e 28 11 20 20 20 20 e3 20 49 3d 32 |e$)..(. . I=2| 00005ed0 20 b8 20 34 0d 1e 32 48 20 20 20 20 20 20 e7 20 | . 4..2H . | 00005ee0 6f 73 6d 6f 70 69 6c 65 31 25 28 49 29 3d 30 20 |osmopile1%(I)=0 | 00005ef0 8c 20 f2 73 65 74 69 63 6f 6e 73 70 72 69 74 65 |. .seticonsprite| 00005f00 28 6d 61 69 6e 25 2c 6f 73 6d 6f 70 69 6c 65 31 |(main%,osmopile1| 00005f10 68 61 6e 25 28 49 29 2c 22 30 22 29 0d 1e 3c 0b |han%(I),"0")..<.| 00005f20 20 20 20 20 ed 20 49 0d 1e 46 1a 20 20 c9 20 6f | . I..F. . o| 00005f30 73 6d 6f 70 69 6c 65 32 68 61 6e 25 28 31 29 20 |smopile2han%(1) | 00005f40 3a 0d 1e 50 11 20 20 20 20 e3 20 49 3d 31 20 b8 |:..P. . I=1 .| 00005f50 20 33 0d 1e 5a 27 20 20 20 20 20 20 6f 73 6d 6f | 3..Z' osmo| 00005f60 70 69 6c 65 32 25 28 49 29 3d 6f 73 6d 6f 70 69 |pile2%(I)=osmopi| 00005f70 6c 65 32 25 28 49 2b 31 29 0d 1e 64 0b 20 20 20 |le2%(I+1)..d. | 00005f80 20 ed 20 49 0d 1e 6e 17 20 20 20 20 6f 73 6d 6f | . I..n. osmo| 00005f90 70 69 6c 65 32 25 28 34 29 3d 30 0d 1e 78 3d 20 |pile2%(4)=0..x= | 00005fa0 20 20 20 f2 73 65 74 69 63 6f 6e 73 70 72 69 74 | .seticonsprit| 00005fb0 65 28 6d 61 69 6e 25 2c 6f 73 6d 6f 70 69 6c 65 |e(main%,osmopile| 00005fc0 32 68 61 6e 25 28 31 29 2c c3 6f 73 6d 6f 70 69 |2han%(1),.osmopi| 00005fd0 6c 65 32 25 28 31 29 29 0d 1e 82 2b 20 20 20 20 |le2%(1))...+ | 00005fe0 f2 73 65 74 69 63 6f 6e 73 70 72 69 74 65 28 6d |.seticonsprite(m| 00005ff0 61 69 6e 25 2c 65 6e 64 6c 6f 63 25 2c 6e 61 6d |ain%,endloc%,nam| 00006000 65 24 29 0d 1e 8c 11 20 20 20 20 e3 20 49 3d 32 |e$).... . I=2| 00006010 20 b8 20 34 0d 1e 96 48 20 20 20 20 20 20 e7 20 | . 4...H . | 00006020 6f 73 6d 6f 70 69 6c 65 32 25 28 49 29 3d 30 20 |osmopile2%(I)=0 | 00006030 8c 20 f2 73 65 74 69 63 6f 6e 73 70 72 69 74 65 |. .seticonsprite| 00006040 28 6d 61 69 6e 25 2c 6f 73 6d 6f 70 69 6c 65 32 |(main%,osmopile2| 00006050 68 61 6e 25 28 49 29 2c 22 30 22 29 0d 1e a0 0b |han%(I),"0")....| 00006060 20 20 20 20 ed 20 49 0d 1e aa 1a 20 20 c9 20 6f | . I.... . o| 00006070 73 6d 6f 70 69 6c 65 33 68 61 6e 25 28 31 29 20 |smopile3han%(1) | 00006080 3a 0d 1e b4 11 20 20 20 20 e3 20 49 3d 31 20 b8 |:.... . I=1 .| 00006090 20 33 0d 1e be 27 20 20 20 20 20 20 6f 73 6d 6f | 3...' osmo| 000060a0 70 69 6c 65 33 25 28 49 29 3d 6f 73 6d 6f 70 69 |pile3%(I)=osmopi| 000060b0 6c 65 33 25 28 49 2b 31 29 0d 1e c8 0b 20 20 20 |le3%(I+1).... | 000060c0 20 ed 20 49 0d 1e d2 17 20 20 20 20 6f 73 6d 6f | . I.... osmo| 000060d0 70 69 6c 65 33 25 28 34 29 3d 30 0d 1e dc 3d 20 |pile3%(4)=0...= | 000060e0 20 20 20 f2 73 65 74 69 63 6f 6e 73 70 72 69 74 | .seticonsprit| 000060f0 65 28 6d 61 69 6e 25 2c 6f 73 6d 6f 70 69 6c 65 |e(main%,osmopile| 00006100 33 68 61 6e 25 28 31 29 2c c3 6f 73 6d 6f 70 69 |3han%(1),.osmopi| 00006110 6c 65 33 25 28 31 29 29 0d 1e e6 2b 20 20 20 20 |le3%(1))...+ | 00006120 f2 73 65 74 69 63 6f 6e 73 70 72 69 74 65 28 6d |.seticonsprite(m| 00006130 61 69 6e 25 2c 65 6e 64 6c 6f 63 25 2c 6e 61 6d |ain%,endloc%,nam| 00006140 65 24 29 0d 1e f0 11 20 20 20 20 e3 20 49 3d 32 |e$).... . I=2| 00006150 20 b8 20 34 0d 1e fa 48 20 20 20 20 20 20 e7 20 | . 4...H . | 00006160 6f 73 6d 6f 70 69 6c 65 33 25 28 49 29 3d 30 20 |osmopile3%(I)=0 | 00006170 8c 20 f2 73 65 74 69 63 6f 6e 73 70 72 69 74 65 |. .seticonsprite| 00006180 28 6d 61 69 6e 25 2c 6f 73 6d 6f 70 69 6c 65 33 |(main%,osmopile3| 00006190 68 61 6e 25 28 49 29 2c 22 30 22 29 0d 1f 04 0b |han%(I),"0")....| 000061a0 20 20 20 20 ed 20 49 0d 1f 0e 1a 20 20 c9 20 6f | . I.... . o| 000061b0 73 6d 6f 70 69 6c 65 34 68 61 6e 25 28 31 29 20 |smopile4han%(1) | 000061c0 3a 0d 1f 18 11 20 20 20 20 e3 20 49 3d 31 20 b8 |:.... . I=1 .| 000061d0 20 33 0d 1f 22 27 20 20 20 20 20 20 6f 73 6d 6f | 3.."' osmo| 000061e0 70 69 6c 65 34 25 28 49 29 3d 6f 73 6d 6f 70 69 |pile4%(I)=osmopi| 000061f0 6c 65 34 25 28 49 2b 31 29 0d 1f 2c 0b 20 20 20 |le4%(I+1)..,. | 00006200 20 ed 20 49 0d 1f 36 17 20 20 20 20 6f 73 6d 6f | . I..6. osmo| 00006210 70 69 6c 65 34 25 28 34 29 3d 30 0d 1f 40 3d 20 |pile4%(4)=0..@= | 00006220 20 20 20 f2 73 65 74 69 63 6f 6e 73 70 72 69 74 | .seticonsprit| 00006230 65 28 6d 61 69 6e 25 2c 6f 73 6d 6f 70 69 6c 65 |e(main%,osmopile| 00006240 34 68 61 6e 25 28 31 29 2c c3 6f 73 6d 6f 70 69 |4han%(1),.osmopi| 00006250 6c 65 34 25 28 31 29 29 0d 1f 4a 2b 20 20 20 20 |le4%(1))..J+ | 00006260 f2 73 65 74 69 63 6f 6e 73 70 72 69 74 65 28 6d |.seticonsprite(m| 00006270 61 69 6e 25 2c 65 6e 64 6c 6f 63 25 2c 6e 61 6d |ain%,endloc%,nam| 00006280 65 24 29 0d 1f 54 11 20 20 20 20 e3 20 49 3d 32 |e$)..T. . I=2| 00006290 20 b8 20 34 0d 1f 5e 48 20 20 20 20 20 20 e7 20 | . 4..^H . | 000062a0 6f 73 6d 6f 70 69 6c 65 34 25 28 49 29 3d 30 20 |osmopile4%(I)=0 | 000062b0 8c 20 f2 73 65 74 69 63 6f 6e 73 70 72 69 74 65 |. .seticonsprite| 000062c0 28 6d 61 69 6e 25 2c 6f 73 6d 6f 70 69 6c 65 34 |(main%,osmopile4| 000062d0 68 61 6e 25 28 49 29 2c 22 30 22 29 0d 1f 68 0b |han%(I),"0")..h.| 000062e0 20 20 20 20 ed 20 49 0d 1f 72 17 20 20 c9 20 6f | . I..r. . o| 000062f0 73 6d 6f 77 61 73 74 65 68 61 6e 25 20 3a 0d 1f |smowastehan% :..| 00006300 7c 12 20 20 20 20 e3 20 49 3d 31 20 b8 20 33 34 ||. . I=1 . 34| 00006310 0d 1f 86 27 20 20 20 20 20 20 6f 73 6d 6f 77 61 |...' osmowa| 00006320 73 74 65 25 28 49 29 3d 6f 73 6d 6f 77 61 73 74 |ste%(I)=osmowast| 00006330 65 25 28 49 2b 31 29 0d 1f 90 0b 20 20 20 20 ed |e%(I+1).... .| 00006340 20 49 0d 1f 9a 18 20 20 20 20 6f 73 6d 6f 77 61 | I.... osmowa| 00006350 73 74 65 25 28 33 35 29 3d 30 0d 1f a4 41 20 20 |ste%(35)=0...A | 00006360 20 20 e7 20 6f 73 6d 6f 77 61 73 74 65 25 28 31 | . osmowaste%(1| 00006370 29 3d 30 20 8c 20 68 6f 6c 65 24 3d 22 6e 6f 63 |)=0 . hole$="noc| 00006380 61 72 64 22 20 8b 20 68 6f 6c 65 24 3d c3 6f 73 |ard" . hole$=.os| 00006390 6d 6f 77 61 73 74 65 25 28 31 29 0d 1f ae 31 20 |mowaste%(1)...1 | 000063a0 20 20 20 f2 73 65 74 69 63 6f 6e 73 70 72 69 74 | .seticonsprit| 000063b0 65 28 6d 61 69 6e 25 2c 6f 73 6d 6f 77 61 73 74 |e(main%,osmowast| 000063c0 65 68 61 6e 25 2c 68 6f 6c 65 24 29 0d 1f b8 2b |ehan%,hole$)...+| 000063d0 20 20 20 20 f2 73 65 74 69 63 6f 6e 73 70 72 69 | .seticonspri| 000063e0 74 65 28 6d 61 69 6e 25 2c 65 6e 64 6c 6f 63 25 |te(main%,endloc%| 000063f0 2c 6e 61 6d 65 24 29 0d 1f c2 05 cb 0d 1f cc 05 |,name$).........| 00006400 e1 0d 1f d6 04 0d 1f e0 17 dd a4 6f 73 6d 6f 73 |...........osmos| 00006410 69 73 5f 65 6d 70 74 79 70 69 6c 65 0d 1f ea 44 |is_emptypile...D| 00006420 f4 20 43 68 65 63 6b 73 20 74 6f 20 73 65 65 20 |. Checks to see | 00006430 69 66 20 74 68 65 72 65 20 61 72 65 20 61 6e 79 |if there are any| 00006440 20 65 6d 70 74 79 20 70 69 6c 65 73 2c 20 72 65 | empty piles, re| 00006450 74 75 72 6e 73 20 74 68 65 20 68 61 6e 64 6c 65 |turns the handle| 00006460 0d 1f f4 3c f4 20 6f 66 20 74 68 65 20 66 69 72 |...<. of the fir| 00006470 73 74 20 65 6d 70 74 79 20 70 69 6c 65 20 69 74 |st empty pile it| 00006480 20 65 6e 63 6f 75 6e 74 65 72 73 2c 20 65 6c 73 | encounters, els| 00006490 65 20 72 65 74 75 72 6e 73 20 30 2e 0d 1f fe 29 |e returns 0....)| 000064a0 e7 20 6f 73 6d 6f 70 69 6c 65 31 25 28 31 29 3d |. osmopile1%(1)=| 000064b0 30 20 8c 20 3d 6f 73 6d 6f 70 69 6c 65 31 68 61 |0 . =osmopile1ha| 000064c0 6e 25 28 31 29 0d 20 08 29 e7 20 6f 73 6d 6f 70 |n%(1). .). osmop| 000064d0 69 6c 65 32 25 28 31 29 3d 30 20 8c 20 3d 6f 73 |ile2%(1)=0 . =os| 000064e0 6d 6f 70 69 6c 65 32 68 61 6e 25 28 31 29 0d 20 |mopile2han%(1). | 000064f0 12 29 e7 20 6f 73 6d 6f 70 69 6c 65 33 25 28 31 |.). osmopile3%(1| 00006500 29 3d 30 20 8c 20 3d 6f 73 6d 6f 70 69 6c 65 33 |)=0 . =osmopile3| 00006510 68 61 6e 25 28 31 29 0d 20 1c 29 e7 20 6f 73 6d |han%(1). .). osm| 00006520 6f 70 69 6c 65 34 25 28 31 29 3d 30 20 8c 20 3d |opile4%(1)=0 . =| 00006530 6f 73 6d 6f 70 69 6c 65 34 68 61 6e 25 28 31 29 |osmopile4han%(1)| 00006540 0d 20 26 06 3d 30 0d 20 30 04 0d 20 3a 12 dd f2 |. &.=0. 0.. :...| 00006550 6f 73 6d 6f 73 69 73 5f 75 6e 64 6f 0d 20 44 37 |osmosis_undo. D7| 00006560 f4 20 54 68 69 73 20 70 72 6f 63 65 64 75 72 65 |. This procedure| 00006570 20 77 69 6c 6c 20 75 6e 64 6f 20 74 68 65 20 6c | will undo the l| 00006580 61 73 74 20 6d 6f 76 65 20 69 6e 20 4f 73 6d 6f |ast move in Osmo| 00006590 73 69 73 0d 20 4e 0d ea 20 66 72 6f 6d 25 2c 49 |sis. N.. from%,I| 000065a0 0d 20 58 0b 66 72 6f 6d 25 3d 30 0d 20 62 39 e7 |. X.from%=0. b9.| 000065b0 20 6c 61 73 74 66 72 6f 6d 25 3d 6f 73 6d 6f 70 | lastfrom%=osmop| 000065c0 69 6c 65 31 68 61 6e 25 28 31 29 20 8c 20 66 72 |ile1han%(1) . fr| 000065d0 6f 6d 25 3d 6f 73 6d 6f 70 69 6c 65 31 68 61 6e |om%=osmopile1han| 000065e0 25 28 31 29 0d 20 6c 39 e7 20 6c 61 73 74 66 72 |%(1). l9. lastfr| 000065f0 6f 6d 25 3d 6f 73 6d 6f 70 69 6c 65 32 68 61 6e |om%=osmopile2han| 00006600 25 28 31 29 20 8c 20 66 72 6f 6d 25 3d 6f 73 6d |%(1) . from%=osm| 00006610 6f 70 69 6c 65 32 68 61 6e 25 28 31 29 0d 20 76 |opile2han%(1). v| 00006620 39 e7 20 6c 61 73 74 66 72 6f 6d 25 3d 6f 73 6d |9. lastfrom%=osm| 00006630 6f 70 69 6c 65 33 68 61 6e 25 28 31 29 20 8c 20 |opile3han%(1) . | 00006640 66 72 6f 6d 25 3d 6f 73 6d 6f 70 69 6c 65 33 68 |from%=osmopile3h| 00006650 61 6e 25 28 31 29 0d 20 80 39 e7 20 6c 61 73 74 |an%(1). .9. last| 00006660 66 72 6f 6d 25 3d 6f 73 6d 6f 70 69 6c 65 34 68 |from%=osmopile4h| 00006670 61 6e 25 28 31 29 20 8c 20 66 72 6f 6d 25 3d 6f |an%(1) . from%=o| 00006680 73 6d 6f 70 69 6c 65 34 68 61 6e 25 28 31 29 0d |smopile4han%(1).| 00006690 20 8a 33 e7 20 6c 61 73 74 66 72 6f 6d 25 3d 6f | .3. lastfrom%=o| 000066a0 73 6d 6f 77 61 73 74 65 68 61 6e 25 20 8c 20 66 |smowastehan% . f| 000066b0 72 6f 6d 25 3d 6f 73 6d 6f 77 61 73 74 65 68 61 |rom%=osmowasteha| 000066c0 6e 25 0d 20 94 26 c8 99 22 57 69 6d 70 45 78 74 |n%. .&.."WimpExt| 000066d0 5f 53 68 61 64 65 45 6e 74 72 79 22 2c 2c 67 6d |_ShadeEntry",,gm| 000066e0 65 6e 75 25 2c 30 2c 31 0d 20 9e 12 c8 8e 20 6c |enu%,0,1. .... l| 000066f0 61 73 74 66 72 6f 6d 25 20 ca 0d 20 a8 16 20 20 |astfrom% .. .. | 00006700 c9 20 6f 73 6d 6f 70 61 63 6b 68 61 6e 25 20 3a |. osmopackhan% :| 00006710 0d 20 b2 16 20 20 20 20 c8 8e 20 6c 61 73 74 74 |. .. .. lastt| 00006720 75 72 6e 25 20 ca 0d 20 bc 0f 20 20 20 20 20 20 |urn% .. .. | 00006730 c9 20 30 20 3a 0d 20 c6 16 20 20 20 20 20 20 20 |. 0 :. .. | 00006740 20 e3 20 49 3d 31 20 b8 20 33 35 0d 20 d0 2b 20 | . I=1 . 35. .+ | 00006750 20 20 20 20 20 20 20 20 20 6f 73 6d 6f 77 61 73 | osmowas| 00006760 74 65 25 28 49 29 3d 6f 73 6d 6f 70 61 63 6b 25 |te%(I)=osmopack%| 00006770 28 33 36 2d 49 29 0d 20 da 0f 20 20 20 20 20 20 |(36-I). .. | 00006780 20 20 ed 20 49 0d 20 e4 16 20 20 20 20 20 20 20 | . I. .. | 00006790 20 e3 20 49 3d 31 20 b8 20 33 35 0d 20 ee 1c 20 | . I=1 . 35. .. | 000067a0 20 20 20 20 20 20 20 20 20 6f 73 6d 6f 70 61 63 | osmopac| 000067b0 6b 25 28 49 29 3d 30 0d 20 f8 0f 20 20 20 20 20 |k%(I)=0. .. | 000067c0 20 20 20 ed 20 49 0d 21 02 1e 20 20 20 20 20 20 | . I.!.. | 000067d0 20 20 c8 95 20 6f 73 6d 6f 77 61 73 74 65 25 28 | .. osmowaste%(| 000067e0 31 29 3d 30 0d 21 0c 18 20 20 20 20 20 20 20 20 |1)=0.!.. | 000067f0 20 20 e3 20 49 3d 31 20 b8 20 33 34 0d 21 16 2d | . I=1 . 34.!.-| 00006800 20 20 20 20 20 20 20 20 20 20 20 20 6f 73 6d 6f | osmo| 00006810 77 61 73 74 65 25 28 49 29 3d 6f 73 6d 6f 77 61 |waste%(I)=osmowa| 00006820 73 74 65 25 28 49 2b 31 29 0d 21 20 11 20 20 20 |ste%(I+1).! . | 00006830 20 20 20 20 20 20 20 ed 20 49 0d 21 2a 1e 20 20 | . I.!*. | 00006840 20 20 20 20 20 20 20 20 6f 73 6d 6f 77 61 73 74 | osmowast| 00006850 65 25 28 33 35 29 3d 30 0d 21 34 0d 20 20 20 20 |e%(35)=0.!4. | 00006860 20 20 20 20 ce 0d 21 3e 37 20 20 20 20 20 20 20 | ..!>7 | 00006870 20 f2 73 65 74 69 63 6f 6e 73 70 72 69 74 65 28 | .seticonsprite(| 00006880 6d 61 69 6e 25 2c 6f 73 6d 6f 70 61 63 6b 68 61 |main%,osmopackha| 00006890 6e 25 2c 22 6e 6f 63 61 72 64 22 29 0d 21 48 3e |n%,"nocard").!H>| 000068a0 20 20 20 20 20 20 20 20 f2 73 65 74 69 63 6f 6e | .seticon| 000068b0 73 70 72 69 74 65 28 6d 61 69 6e 25 2c 6f 73 6d |sprite(main%,osm| 000068c0 6f 77 61 73 74 65 68 61 6e 25 2c c3 6f 73 6d 6f |owastehan%,.osmo| 000068d0 77 61 73 74 65 25 28 31 29 29 0d 21 52 0f 20 20 |waste%(1)).!R. | 000068e0 20 20 20 20 c9 20 31 20 3a 0d 21 5c 1b 20 20 20 | . 1 :.!\. | 000068f0 20 20 20 20 20 e3 20 49 3d 33 34 20 b8 20 31 20 | . I=34 . 1 | 00006900 88 20 2d 31 0d 21 66 29 20 20 20 20 20 20 20 20 |. -1.!f) | 00006910 20 20 6f 73 6d 6f 70 61 63 6b 25 28 49 2b 31 29 | osmopack%(I+1)| 00006920 3d 6f 73 6d 6f 70 61 63 6b 25 28 49 29 0d 21 70 |=osmopack%(I).!p| 00006930 0f 20 20 20 20 20 20 20 20 ed 20 49 0d 21 7a 26 |. . I.!z&| 00006940 20 20 20 20 20 20 20 20 6f 73 6d 6f 70 61 63 6b | osmopack| 00006950 25 28 31 29 3d 6f 73 6d 6f 77 61 73 74 65 25 28 |%(1)=osmowaste%(| 00006960 31 29 0d 21 84 16 20 20 20 20 20 20 20 20 e3 20 |1).!.. . | 00006970 49 3d 31 20 b8 20 33 34 0d 21 8e 2b 20 20 20 20 |I=1 . 34.!.+ | 00006980 20 20 20 20 20 20 6f 73 6d 6f 77 61 73 74 65 25 | osmowaste%| 00006990 28 49 29 3d 6f 73 6d 6f 77 61 73 74 65 25 28 49 |(I)=osmowaste%(I| 000069a0 2b 31 29 0d 21 98 0f 20 20 20 20 20 20 20 20 ed |+1).!.. .| 000069b0 20 49 0d 21 a2 3e 20 20 20 20 20 20 20 20 f2 73 | I.!.> .s| 000069c0 65 74 69 63 6f 6e 73 70 72 69 74 65 28 6d 61 69 |eticonsprite(mai| 000069d0 6e 25 2c 6f 73 6d 6f 77 61 73 74 65 68 61 6e 25 |n%,osmowastehan%| 000069e0 2c c3 6f 73 6d 6f 77 61 73 74 65 25 28 31 29 29 |,.osmowaste%(1))| 000069f0 0d 21 ac 35 20 20 20 20 20 20 20 20 f2 73 65 74 |.!.5 .set| 00006a00 69 63 6f 6e 73 70 72 69 74 65 28 6d 61 69 6e 25 |iconsprite(main%| 00006a10 2c 6f 73 6d 6f 70 61 63 6b 68 61 6e 25 2c 22 62 |,osmopackhan%,"b| 00006a20 61 63 6b 22 29 0d 21 b6 0f 20 20 20 20 20 20 c9 |ack").!.. .| 00006a30 20 32 20 3a 0d 21 c0 1b 20 20 20 20 20 20 20 20 | 2 :.!.. | 00006a40 e3 20 49 3d 33 33 20 b8 20 31 20 88 20 2d 31 0d |. I=33 . 1 . -1.| 00006a50 21 ca 29 20 20 20 20 20 20 20 20 20 20 6f 73 6d |!.) osm| 00006a60 6f 70 61 63 6b 25 28 49 2b 32 29 3d 6f 73 6d 6f |opack%(I+2)=osmo| 00006a70 70 61 63 6b 25 28 49 29 0d 21 d4 0f 20 20 20 20 |pack%(I).!.. | 00006a80 20 20 20 20 ed 20 49 0d 21 de 26 20 20 20 20 20 | . I.!.& | 00006a90 20 20 20 6f 73 6d 6f 70 61 63 6b 25 28 32 29 3d | osmopack%(2)=| 00006aa0 6f 73 6d 6f 77 61 73 74 65 25 28 31 29 0d 21 e8 |osmowaste%(1).!.| 00006ab0 26 20 20 20 20 20 20 20 20 6f 73 6d 6f 70 61 63 |& osmopac| 00006ac0 6b 25 28 31 29 3d 6f 73 6d 6f 77 61 73 74 65 25 |k%(1)=osmowaste%| 00006ad0 28 32 29 0d 21 f2 16 20 20 20 20 20 20 20 20 e3 |(2).!.. .| 00006ae0 20 49 3d 31 20 b8 20 33 33 0d 21 fc 2b 20 20 20 | I=1 . 33.!.+ | 00006af0 20 20 20 20 20 20 20 6f 73 6d 6f 77 61 73 74 65 | osmowaste| 00006b00 25 28 49 29 3d 6f 73 6d 6f 77 61 73 74 65 25 28 |%(I)=osmowaste%(| 00006b10 49 2b 32 29 0d 22 06 0f 20 20 20 20 20 20 20 20 |I+2).".. | 00006b20 ed 20 49 0d 22 10 2d 20 20 20 20 20 20 20 20 6f |. I.".- o| 00006b30 73 6d 6f 77 61 73 74 65 25 28 33 34 29 3d 30 3a |smowaste%(34)=0:| 00006b40 6f 73 6d 6f 77 61 73 74 65 25 28 33 35 29 3d 30 |osmowaste%(35)=0| 00006b50 0d 22 1a 3e 20 20 20 20 20 20 20 20 f2 73 65 74 |.".> .set| 00006b60 69 63 6f 6e 73 70 72 69 74 65 28 6d 61 69 6e 25 |iconsprite(main%| 00006b70 2c 6f 73 6d 6f 77 61 73 74 65 68 61 6e 25 2c c3 |,osmowastehan%,.| 00006b80 6f 73 6d 6f 77 61 73 74 65 25 28 31 29 29 0d 22 |osmowaste%(1))."| 00006b90 24 35 20 20 20 20 20 20 20 20 f2 73 65 74 69 63 |$5 .setic| 00006ba0 6f 6e 73 70 72 69 74 65 28 6d 61 69 6e 25 2c 6f |onsprite(main%,o| 00006bb0 73 6d 6f 70 61 63 6b 68 61 6e 25 2c 22 62 61 63 |smopackhan%,"bac| 00006bc0 6b 22 29 0d 22 2e 0f 20 20 20 20 20 20 c9 20 33 |k").".. . 3| 00006bd0 20 3a 0d 22 38 1b 20 20 20 20 20 20 20 20 e3 20 | :."8. . | 00006be0 49 3d 33 32 20 b8 20 31 20 88 20 2d 31 0d 22 42 |I=32 . 1 . -1."B| 00006bf0 29 20 20 20 20 20 20 20 20 20 20 6f 73 6d 6f 70 |) osmop| 00006c00 61 63 6b 25 28 49 2b 33 29 3d 6f 73 6d 6f 70 61 |ack%(I+3)=osmopa| 00006c10 63 6b 25 28 49 29 0d 22 4c 0f 20 20 20 20 20 20 |ck%(I)."L. | 00006c20 20 20 ed 20 49 0d 22 56 26 20 20 20 20 20 20 20 | . I."V& | 00006c30 20 6f 73 6d 6f 70 61 63 6b 25 28 33 29 3d 6f 73 | osmopack%(3)=os| 00006c40 6d 6f 77 61 73 74 65 25 28 31 29 0d 22 60 26 20 |mowaste%(1)."`& | 00006c50 20 20 20 20 20 20 20 6f 73 6d 6f 70 61 63 6b 25 | osmopack%| 00006c60 28 32 29 3d 6f 73 6d 6f 77 61 73 74 65 25 28 32 |(2)=osmowaste%(2| 00006c70 29 0d 22 6a 26 20 20 20 20 20 20 20 20 6f 73 6d |)."j& osm| 00006c80 6f 70 61 63 6b 25 28 31 29 3d 6f 73 6d 6f 77 61 |opack%(1)=osmowa| 00006c90 73 74 65 25 28 33 29 0d 22 74 16 20 20 20 20 20 |ste%(3)."t. | 00006ca0 20 20 20 e3 20 49 3d 31 20 b8 20 33 32 0d 22 7e | . I=1 . 32."~| 00006cb0 2b 20 20 20 20 20 20 20 20 20 20 6f 73 6d 6f 77 |+ osmow| 00006cc0 61 73 74 65 25 28 49 29 3d 6f 73 6d 6f 77 61 73 |aste%(I)=osmowas| 00006cd0 74 65 25 28 49 2b 33 29 0d 22 88 0f 20 20 20 20 |te%(I+3).".. | 00006ce0 20 20 20 20 ed 20 49 0d 22 92 17 20 20 20 20 20 | . I.".. | 00006cf0 20 20 20 e3 20 49 3d 33 33 20 b8 20 33 35 0d 22 | . I=33 . 35."| 00006d00 9c 1d 20 20 20 20 20 20 20 20 20 20 6f 73 6d 6f |.. osmo| 00006d10 77 61 73 74 65 25 28 49 29 3d 30 0d 22 a6 0f 20 |waste%(I)=0.".. | 00006d20 20 20 20 20 20 20 20 ed 20 49 0d 22 b0 1f 20 20 | . I.".. | 00006d30 20 20 20 20 20 20 e7 20 6f 73 6d 6f 77 61 73 74 | . osmowast| 00006d40 65 25 28 31 29 3d 30 20 8c 0d 22 ba 3a 20 20 20 |e%(1)=0 ..".: | 00006d50 20 20 20 20 20 20 20 f2 73 65 74 69 63 6f 6e 73 | .seticons| 00006d60 70 72 69 74 65 28 6d 61 69 6e 25 2c 6f 73 6d 6f |prite(main%,osmo| 00006d70 77 61 73 74 65 68 61 6e 25 2c 22 6e 6f 63 61 72 |wastehan%,"nocar| 00006d80 64 22 29 0d 22 c4 0d 20 20 20 20 20 20 20 20 cc |d").".. .| 00006d90 0d 22 ce 40 20 20 20 20 20 20 20 20 20 20 f2 73 |.".@ .s| 00006da0 65 74 69 63 6f 6e 73 70 72 69 74 65 28 6d 61 69 |eticonsprite(mai| 00006db0 6e 25 2c 6f 73 6d 6f 77 61 73 74 65 68 61 6e 25 |n%,osmowastehan%| 00006dc0 2c c3 6f 73 6d 6f 77 61 73 74 65 25 28 31 29 29 |,.osmowaste%(1))| 00006dd0 0d 22 d8 0d 20 20 20 20 20 20 20 20 cd 0d 22 e2 |.".. ..".| 00006de0 09 20 20 20 20 cb 0d 22 ec 0f 20 20 c9 20 66 72 |. ..".. . fr| 00006df0 6f 6d 25 20 3a 0d 22 f6 ab 20 20 20 20 e7 20 6c |om% :.".. . l| 00006e00 61 73 74 74 6f 25 3d 6f 73 6d 6f 66 6f 75 6e 64 |astto%=osmofound| 00006e10 31 68 61 6e 25 28 66 6f 75 6e 64 31 25 29 20 84 |1han%(found1%) .| 00006e20 20 6c 61 73 74 74 6f 25 3d 6f 73 6d 6f 66 6f 75 | lastto%=osmofou| 00006e30 6e 64 32 68 61 6e 25 28 66 6f 75 6e 64 32 25 29 |nd2han%(found2%)| 00006e40 20 84 20 6c 61 73 74 74 6f 25 3d 6f 73 6d 6f 66 | . lastto%=osmof| 00006e50 6f 75 6e 64 33 68 61 6e 25 28 66 6f 75 6e 64 33 |ound3han%(found3| 00006e60 25 29 20 84 20 6c 61 73 74 74 6f 25 3d 6f 73 6d |%) . lastto%=osm| 00006e70 6f 66 6f 75 6e 64 34 68 61 6e 25 28 66 6f 75 6e |ofound4han%(foun| 00006e80 64 34 25 29 20 8c 20 f2 62 6c 61 6e 6b 69 63 6f |d4%) . .blankico| 00006e90 6e 28 6d 61 69 6e 25 2c 6c 61 73 74 74 6f 25 29 |n(main%,lastto%)| 00006ea0 0d 23 00 12 20 20 20 20 c8 8e 20 66 72 6f 6d 25 |.#.. .. from%| 00006eb0 20 ca 0d 23 0a 1e 20 20 20 20 20 20 c9 20 6f 73 | ..#.. . os| 00006ec0 6d 6f 70 69 6c 65 31 68 61 6e 25 28 31 29 20 3a |mopile1han%(1) :| 00006ed0 0d 23 14 1a 20 20 20 20 20 20 20 20 e3 20 49 3d |.#.. . I=| 00006ee0 34 20 b8 20 32 20 88 20 2d 31 0d 23 1e 2b 20 20 |4 . 2 . -1.#.+ | 00006ef0 20 20 20 20 20 20 20 20 6f 73 6d 6f 70 69 6c 65 | osmopile| 00006f00 31 25 28 49 29 3d 6f 73 6d 6f 70 69 6c 65 31 25 |1%(I)=osmopile1%| 00006f10 28 49 2d 31 29 0d 23 28 50 20 20 20 20 20 20 20 |(I-1).#(P | 00006f20 20 20 20 e7 20 6f 73 6d 6f 70 69 6c 65 31 25 28 | . osmopile1%(| 00006f30 49 29 3c 3e 30 20 8c 20 f2 73 65 74 69 63 6f 6e |I)<>0 . .seticon| 00006f40 73 70 72 69 74 65 28 6d 61 69 6e 25 2c 6f 73 6d |sprite(main%,osm| 00006f50 6f 70 69 6c 65 31 68 61 6e 25 28 49 29 2c 22 62 |opile1han%(I),"b| 00006f60 61 63 6b 22 29 0d 23 32 0f 20 20 20 20 20 20 20 |ack").#2. | 00006f70 20 ed 20 49 0d 23 3c 23 20 20 20 20 20 20 20 20 | . I.#<# | 00006f80 6f 73 6d 6f 70 69 6c 65 31 25 28 31 29 3d 6c 61 |osmopile1%(1)=la| 00006f90 73 74 63 61 72 64 25 0d 23 46 1e 20 20 20 20 20 |stcard%.#F. | 00006fa0 20 c9 20 6f 73 6d 6f 70 69 6c 65 32 68 61 6e 25 | . osmopile2han%| 00006fb0 28 31 29 20 3a 0d 23 50 1a 20 20 20 20 20 20 20 |(1) :.#P. | 00006fc0 20 e3 20 49 3d 34 20 b8 20 32 20 88 20 2d 31 0d | . I=4 . 2 . -1.| 00006fd0 23 5a 2b 20 20 20 20 20 20 20 20 20 20 6f 73 6d |#Z+ osm| 00006fe0 6f 70 69 6c 65 32 25 28 49 29 3d 6f 73 6d 6f 70 |opile2%(I)=osmop| 00006ff0 69 6c 65 32 25 28 49 2d 31 29 0d 23 64 50 20 20 |ile2%(I-1).#dP | 00007000 20 20 20 20 20 20 20 20 e7 20 6f 73 6d 6f 70 69 | . osmopi| 00007010 6c 65 32 25 28 49 29 3c 3e 30 20 8c 20 f2 73 65 |le2%(I)<>0 . .se| 00007020 74 69 63 6f 6e 73 70 72 69 74 65 28 6d 61 69 6e |ticonsprite(main| 00007030 25 2c 6f 73 6d 6f 70 69 6c 65 32 68 61 6e 25 28 |%,osmopile2han%(| 00007040 49 29 2c 22 62 61 63 6b 22 29 0d 23 6e 0f 20 20 |I),"back").#n. | 00007050 20 20 20 20 20 20 ed 20 49 0d 23 78 23 20 20 20 | . I.#x# | 00007060 20 20 20 20 20 6f 73 6d 6f 70 69 6c 65 32 25 28 | osmopile2%(| 00007070 31 29 3d 6c 61 73 74 63 61 72 64 25 0d 23 82 1e |1)=lastcard%.#..| 00007080 20 20 20 20 20 20 c9 20 6f 73 6d 6f 70 69 6c 65 | . osmopile| 00007090 33 68 61 6e 25 28 31 29 20 3a 0d 23 8c 1a 20 20 |3han%(1) :.#.. | 000070a0 20 20 20 20 20 20 e3 20 49 3d 34 20 b8 20 32 20 | . I=4 . 2 | 000070b0 88 20 2d 31 0d 23 96 2b 20 20 20 20 20 20 20 20 |. -1.#.+ | 000070c0 20 20 6f 73 6d 6f 70 69 6c 65 33 25 28 49 29 3d | osmopile3%(I)=| 000070d0 6f 73 6d 6f 70 69 6c 65 33 25 28 49 2d 31 29 0d |osmopile3%(I-1).| 000070e0 23 a0 50 20 20 20 20 20 20 20 20 20 20 e7 20 6f |#.P . o| 000070f0 73 6d 6f 70 69 6c 65 33 25 28 49 29 3c 3e 30 20 |smopile3%(I)<>0 | 00007100 8c 20 f2 73 65 74 69 63 6f 6e 73 70 72 69 74 65 |. .seticonsprite| 00007110 28 6d 61 69 6e 25 2c 6f 73 6d 6f 70 69 6c 65 33 |(main%,osmopile3| 00007120 68 61 6e 25 28 49 29 2c 22 62 61 63 6b 22 29 0d |han%(I),"back").| 00007130 23 aa 0f 20 20 20 20 20 20 20 20 ed 20 49 0d 23 |#.. . I.#| 00007140 b4 23 20 20 20 20 20 20 20 20 6f 73 6d 6f 70 69 |.# osmopi| 00007150 6c 65 33 25 28 31 29 3d 6c 61 73 74 63 61 72 64 |le3%(1)=lastcard| 00007160 25 0d 23 be 1e 20 20 20 20 20 20 c9 20 6f 73 6d |%.#.. . osm| 00007170 6f 70 69 6c 65 34 68 61 6e 25 28 31 29 20 3a 0d |opile4han%(1) :.| 00007180 23 c8 1a 20 20 20 20 20 20 20 20 e3 20 49 3d 34 |#.. . I=4| 00007190 20 b8 20 32 20 88 20 2d 31 0d 23 d2 2b 20 20 20 | . 2 . -1.#.+ | 000071a0 20 20 20 20 20 20 20 6f 73 6d 6f 70 69 6c 65 34 | osmopile4| 000071b0 25 28 49 29 3d 6f 73 6d 6f 70 69 6c 65 34 25 28 |%(I)=osmopile4%(| 000071c0 49 2d 31 29 0d 23 dc 50 20 20 20 20 20 20 20 20 |I-1).#.P | 000071d0 20 20 e7 20 6f 73 6d 6f 70 69 6c 65 34 25 28 49 | . osmopile4%(I| 000071e0 29 3c 3e 30 20 8c 20 f2 73 65 74 69 63 6f 6e 73 |)<>0 . .seticons| 000071f0 70 72 69 74 65 28 6d 61 69 6e 25 2c 6f 73 6d 6f |prite(main%,osmo| 00007200 70 69 6c 65 34 68 61 6e 25 28 49 29 2c 22 62 61 |pile4han%(I),"ba| 00007210 63 6b 22 29 0d 23 e6 0f 20 20 20 20 20 20 20 20 |ck").#.. | 00007220 ed 20 49 0d 23 f0 23 20 20 20 20 20 20 20 20 6f |. I.#.# o| 00007230 73 6d 6f 70 69 6c 65 34 25 28 31 29 3d 6c 61 73 |smopile4%(1)=las| 00007240 74 63 61 72 64 25 0d 23 fa 1b 20 20 20 20 20 20 |tcard%.#.. | 00007250 c9 20 6f 73 6d 6f 77 61 73 74 65 68 61 6e 25 20 |. osmowastehan% | 00007260 3a 0d 24 04 1b 20 20 20 20 20 20 20 20 e3 20 49 |:.$.. . I| 00007270 3d 33 35 20 b8 20 32 20 88 20 2d 31 0d 24 0e 2b |=35 . 2 . -1.$.+| 00007280 20 20 20 20 20 20 20 20 20 20 6f 73 6d 6f 77 61 | osmowa| 00007290 73 74 65 25 28 49 29 3d 6f 73 6d 6f 77 61 73 74 |ste%(I)=osmowast| 000072a0 65 25 28 49 2d 31 29 0d 24 18 0f 20 20 20 20 20 |e%(I-1).$.. | 000072b0 20 20 20 ed 20 49 0d 24 22 23 20 20 20 20 20 20 | . I.$"# | 000072c0 20 20 6f 73 6d 6f 77 61 73 74 65 25 28 31 29 3d | osmowaste%(1)=| 000072d0 6c 61 73 74 63 61 72 64 25 0d 24 2c 09 20 20 20 |lastcard%.$,. | 000072e0 20 cb 0d 24 36 14 20 20 20 20 c8 8e 20 6c 61 73 | ..$6. .. las| 000072f0 74 74 6f 25 20 ca 0d 24 40 25 20 20 20 20 20 20 |tto% ..$@% | 00007300 c9 20 6f 73 6d 6f 66 6f 75 6e 64 31 68 61 6e 25 |. osmofound1han%| 00007310 28 66 6f 75 6e 64 31 25 29 20 3a 0d 24 4a 2e 20 |(found1%) :.$J. | 00007320 20 20 20 20 20 20 20 66 6f 75 6e 64 31 25 3d 66 | found1%=f| 00007330 6f 75 6e 64 31 25 2d 31 3a 6c 65 66 74 31 25 3d |ound1%-1:left1%=| 00007340 6c 65 66 74 31 25 2d 37 30 0d 24 54 1a 20 20 20 |left1%-70.$T. | 00007350 20 20 20 20 20 e7 20 74 75 72 6e 65 64 31 25 3d | . turned1%=| 00007360 b9 20 8c 0d 24 5e 18 20 20 20 20 20 20 20 20 20 |. ..$^. | 00007370 20 e3 20 49 3d 31 20 b8 20 31 32 0d 24 68 47 20 | . I=1 . 12.$hG | 00007380 20 20 20 20 20 20 20 20 20 20 20 f2 73 65 74 69 | .seti| 00007390 63 6f 6e 73 70 72 69 74 65 28 6d 61 69 6e 25 2c |consprite(main%,| 000073a0 6f 73 6d 6f 66 6f 75 6e 64 31 68 61 6e 25 28 49 |osmofound1han%(I| 000073b0 29 2c c3 6f 73 6d 6f 66 6f 75 6e 64 31 25 28 49 |),.osmofound1%(I| 000073c0 29 29 0d 24 72 11 20 20 20 20 20 20 20 20 20 20 |)).$r. | 000073d0 ed 20 49 0d 24 7c 0d 20 20 20 20 20 20 20 20 cd |. I.$|. .| 000073e0 0d 24 86 25 20 20 20 20 20 20 c9 20 6f 73 6d 6f |.$.% . osmo| 000073f0 66 6f 75 6e 64 32 68 61 6e 25 28 66 6f 75 6e 64 |found2han%(found| 00007400 32 25 29 20 3a 0d 24 90 2e 20 20 20 20 20 20 20 |2%) :.$.. | 00007410 20 66 6f 75 6e 64 32 25 3d 66 6f 75 6e 64 32 25 | found2%=found2%| 00007420 2d 31 3a 6c 65 66 74 32 25 3d 6c 65 66 74 32 25 |-1:left2%=left2%| 00007430 2d 37 30 0d 24 9a 1a 20 20 20 20 20 20 20 20 e7 |-70.$.. .| 00007440 20 74 75 72 6e 65 64 32 25 3d b9 20 8c 0d 24 a4 | turned2%=. ..$.| 00007450 18 20 20 20 20 20 20 20 20 20 20 e3 20 49 3d 31 |. . I=1| 00007460 20 b8 20 31 32 0d 24 ae 47 20 20 20 20 20 20 20 | . 12.$.G | 00007470 20 20 20 20 20 f2 73 65 74 69 63 6f 6e 73 70 72 | .seticonspr| 00007480 69 74 65 28 6d 61 69 6e 25 2c 6f 73 6d 6f 66 6f |ite(main%,osmofo| 00007490 75 6e 64 32 68 61 6e 25 28 49 29 2c c3 6f 73 6d |und2han%(I),.osm| 000074a0 6f 66 6f 75 6e 64 32 25 28 49 29 29 0d 24 b8 11 |ofound2%(I)).$..| 000074b0 20 20 20 20 20 20 20 20 20 20 ed 20 49 0d 24 c2 | . I.$.| 000074c0 0d 20 20 20 20 20 20 20 20 cd 0d 24 cc 25 20 20 |. ..$.% | 000074d0 20 20 20 20 c9 20 6f 73 6d 6f 66 6f 75 6e 64 33 | . osmofound3| 000074e0 68 61 6e 25 28 66 6f 75 6e 64 33 25 29 20 3a 0d |han%(found3%) :.| 000074f0 24 d6 2e 20 20 20 20 20 20 20 20 66 6f 75 6e 64 |$.. found| 00007500 33 25 3d 66 6f 75 6e 64 33 25 2d 31 3a 6c 65 66 |3%=found3%-1:lef| 00007510 74 33 25 3d 6c 65 66 74 33 25 2d 37 30 0d 24 e0 |t3%=left3%-70.$.| 00007520 1a 20 20 20 20 20 20 20 20 e7 20 74 75 72 6e 65 |. . turne| 00007530 64 33 25 3d b9 20 8c 0d 24 ea 18 20 20 20 20 20 |d3%=. ..$.. | 00007540 20 20 20 20 20 e3 20 49 3d 31 20 b8 20 31 32 0d | . I=1 . 12.| 00007550 24 f4 47 20 20 20 20 20 20 20 20 20 20 20 20 f2 |$.G .| 00007560 73 65 74 69 63 6f 6e 73 70 72 69 74 65 28 6d 61 |seticonsprite(ma| 00007570 69 6e 25 2c 6f 73 6d 6f 66 6f 75 6e 64 33 68 61 |in%,osmofound3ha| 00007580 6e 25 28 49 29 2c c3 6f 73 6d 6f 66 6f 75 6e 64 |n%(I),.osmofound| 00007590 33 25 28 49 29 29 0d 24 fe 11 20 20 20 20 20 20 |3%(I)).$.. | 000075a0 20 20 20 20 ed 20 49 0d 25 08 0d 20 20 20 20 20 | . I.%.. | 000075b0 20 20 20 cd 0d 25 12 25 20 20 20 20 20 20 c9 20 | ..%.% . | 000075c0 6f 73 6d 6f 66 6f 75 6e 64 34 68 61 6e 25 28 66 |osmofound4han%(f| 000075d0 6f 75 6e 64 34 25 29 20 3a 0d 25 1c 2e 20 20 20 |ound4%) :.%.. | 000075e0 20 20 20 20 20 66 6f 75 6e 64 34 25 3d 66 6f 75 | found4%=fou| 000075f0 6e 64 34 25 2d 31 3a 6c 65 66 74 34 25 3d 6c 65 |nd4%-1:left4%=le| 00007600 66 74 34 25 2d 37 30 0d 25 26 1a 20 20 20 20 20 |ft4%-70.%&. | 00007610 20 20 20 e7 20 74 75 72 6e 65 64 34 25 3d b9 20 | . turned4%=. | 00007620 8c 0d 25 30 18 20 20 20 20 20 20 20 20 20 20 e3 |..%0. .| 00007630 20 49 3d 31 20 b8 20 31 32 0d 25 3a 47 20 20 20 | I=1 . 12.%:G | 00007640 20 20 20 20 20 20 20 20 20 f2 73 65 74 69 63 6f | .setico| 00007650 6e 73 70 72 69 74 65 28 6d 61 69 6e 25 2c 6f 73 |nsprite(main%,os| 00007660 6d 6f 66 6f 75 6e 64 34 68 61 6e 25 28 49 29 2c |mofound4han%(I),| 00007670 c3 6f 73 6d 6f 66 6f 75 6e 64 34 25 28 49 29 29 |.osmofound4%(I))| 00007680 0d 25 44 11 20 20 20 20 20 20 20 20 20 20 ed 20 |.%D. . | 00007690 49 0d 25 4e 0d 20 20 20 20 20 20 20 20 cd 0d 25 |I.%N. ..%| 000076a0 58 1e 20 20 20 20 20 20 c9 20 6f 73 6d 6f 70 69 |X. . osmopi| 000076b0 6c 65 31 68 61 6e 25 28 31 29 20 3a 0d 25 62 1b |le1han%(1) :.%b.| 000076c0 20 20 20 20 20 20 20 20 6f 73 6d 6f 70 69 6c 65 | osmopile| 000076d0 31 25 28 31 29 3d 30 0d 25 6c 36 20 20 20 20 20 |1%(1)=0.%l6 | 000076e0 20 20 20 f2 73 65 74 69 63 6f 6e 73 70 72 69 74 | .seticonsprit| 000076f0 65 28 6d 61 69 6e 25 2c 6f 73 6d 6f 70 69 6c 65 |e(main%,osmopile| 00007700 31 68 61 6e 25 28 31 29 2c 22 30 22 29 0d 25 76 |1han%(1),"0").%v| 00007710 1e 20 20 20 20 20 20 c9 20 6f 73 6d 6f 70 69 6c |. . osmopil| 00007720 65 32 68 61 6e 25 28 31 29 20 3a 0d 25 80 1b 20 |e2han%(1) :.%.. | 00007730 20 20 20 20 20 20 20 6f 73 6d 6f 70 69 6c 65 32 | osmopile2| 00007740 25 28 31 29 3d 30 0d 25 8a 36 20 20 20 20 20 20 |%(1)=0.%.6 | 00007750 20 20 f2 73 65 74 69 63 6f 6e 73 70 72 69 74 65 | .seticonsprite| 00007760 28 6d 61 69 6e 25 2c 6f 73 6d 6f 70 69 6c 65 32 |(main%,osmopile2| 00007770 68 61 6e 25 28 31 29 2c 22 30 22 29 0d 25 94 1e |han%(1),"0").%..| 00007780 20 20 20 20 20 20 c9 20 6f 73 6d 6f 70 69 6c 65 | . osmopile| 00007790 33 68 61 6e 25 28 31 29 20 3a 0d 25 9e 1b 20 20 |3han%(1) :.%.. | 000077a0 20 20 20 20 20 20 6f 73 6d 6f 70 69 6c 65 33 25 | osmopile3%| 000077b0 28 31 29 3d 30 0d 25 a8 36 20 20 20 20 20 20 20 |(1)=0.%.6 | 000077c0 20 f2 73 65 74 69 63 6f 6e 73 70 72 69 74 65 28 | .seticonsprite(| 000077d0 6d 61 69 6e 25 2c 6f 73 6d 6f 70 69 6c 65 33 68 |main%,osmopile3h| 000077e0 61 6e 25 28 31 29 2c 22 30 22 29 0d 25 b2 1e 20 |an%(1),"0").%.. | 000077f0 20 20 20 20 20 c9 20 6f 73 6d 6f 70 69 6c 65 34 | . osmopile4| 00007800 68 61 6e 25 28 31 29 20 3a 0d 25 bc 1b 20 20 20 |han%(1) :.%.. | 00007810 20 20 20 20 20 6f 73 6d 6f 70 69 6c 65 34 25 28 | osmopile4%(| 00007820 31 29 3d 30 0d 25 c6 36 20 20 20 20 20 20 20 20 |1)=0.%.6 | 00007830 f2 73 65 74 69 63 6f 6e 73 70 72 69 74 65 28 6d |.seticonsprite(m| 00007840 61 69 6e 25 2c 6f 73 6d 6f 70 69 6c 65 34 68 61 |ain%,osmopile4ha| 00007850 6e 25 28 31 29 2c 22 30 22 29 0d 25 d0 09 20 20 |n%(1),"0").%.. | 00007860 20 20 cb 0d 25 da 2e 20 20 20 20 f2 73 65 74 69 | ..%.. .seti| 00007870 63 6f 6e 73 70 72 69 74 65 28 6d 61 69 6e 25 2c |consprite(main%,| 00007880 66 72 6f 6d 25 2c c3 6c 61 73 74 63 61 72 64 25 |from%,.lastcard%| 00007890 29 0d 25 e4 05 cb 0d 25 ee 05 e1 0d 25 f8 04 0d |).%....%....%...| 000078a0 26 02 0d dd f2 70 79 72 61 6d 69 64 0d 26 0c 23 |&....pyramid.&.#| 000078b0 f4 20 53 65 74 73 20 75 70 20 74 68 65 20 67 61 |. Sets up the ga| 000078c0 6d 65 20 66 6f 72 20 70 79 72 61 6d 69 64 2e 0d |me for pyramid..| 000078d0 26 16 30 c8 99 22 57 69 6d 70 45 78 74 5f 53 65 |&.0.."WimpExt_Se| 000078e0 74 57 69 6e 64 6f 77 54 69 74 6c 65 22 2c 2c 2c |tWindowTitle",,,| 000078f0 6d 61 69 6e 25 2c 22 50 79 72 61 6d 69 64 22 0d |main%,"Pyramid".| 00007900 26 20 30 c8 99 22 57 69 6d 70 45 78 74 5f 53 68 |& 0.."WimpExt_Sh| 00007910 61 64 65 45 6e 74 72 79 22 2c 2c 67 6d 65 6e 75 |adeEntry",,gmenu| 00007920 25 2c 30 2c 30 20 b8 20 73 68 61 64 65 64 25 0d |%,0,0 . shaded%.| 00007930 26 2a 34 e7 20 73 68 61 64 65 64 25 3d 31 20 8c |&*4. shaded%=1 .| 00007940 20 c8 99 22 57 69 6d 70 45 78 74 5f 53 68 61 64 | .."WimpExt_Shad| 00007950 65 45 6e 74 72 79 22 2c 2c 67 6d 65 6e 75 25 2c |eEntry",,gmenu%,| 00007960 30 2c 31 0d 26 34 38 e7 20 70 6c 61 79 65 64 25 |0,1.&48. played%| 00007970 3d b9 20 80 20 69 63 6f 6e 6e 75 6d 62 65 72 25 |=. . iconnumber%| 00007980 3c 3e 30 20 8c 20 f2 63 6c 65 61 6e 75 70 77 69 |<>0 . .cleanupwi| 00007990 6e 64 6f 77 28 6d 61 69 6e 25 29 0d 26 3e 0c f2 |ndow(main%).&>..| 000079a0 73 68 75 66 66 6c 65 0d 26 48 11 f2 70 79 72 61 |shuffle.&H..pyra| 000079b0 6d 69 64 5f 64 65 61 6c 0d 26 52 13 f2 70 79 72 |mid_deal.&R..pyr| 000079c0 61 6d 69 64 5f 6c 61 79 6f 75 74 0d 26 5c 05 e1 |amid_layout.&\..| 000079d0 0d 26 66 04 0d 26 70 12 dd f2 70 79 72 61 6d 69 |.&f..&p...pyrami| 000079e0 64 5f 64 65 61 6c 0d 26 7a 1e f4 20 53 65 74 73 |d_deal.&z.. Sets| 000079f0 20 75 70 20 74 68 65 20 67 61 6d 65 20 61 72 72 | up the game arr| 00007a00 61 79 73 2e 0d 26 84 07 ea 20 49 0d 26 8e 0e e3 |ays..&... I.&...| 00007a10 20 49 3d 31 20 b8 20 32 38 0d 26 98 19 20 20 70 | I=1 . 28.&.. p| 00007a20 79 72 6c 61 79 25 28 49 29 3d 70 61 63 6b 25 28 |yrlay%(I)=pack%(| 00007a30 49 29 0d 26 a2 07 ed 20 49 0d 26 ac 0e e3 20 49 |I).&... I.&... I| 00007a40 3d 31 20 b8 20 32 34 0d 26 b6 1d 20 20 70 79 72 |=1 . 24.&.. pyr| 00007a50 70 61 63 6b 25 28 49 29 3d 70 61 63 6b 25 28 49 |pack%(I)=pack%(I| 00007a60 2b 32 38 29 0d 26 c0 14 20 20 70 79 72 77 61 73 |+28).&.. pyrwas| 00007a70 74 65 25 28 49 29 3d 30 0d 26 ca 07 ed 20 49 0d |te%(I)=0.&... I.| 00007a80 26 d4 0e e3 20 49 3d 31 20 b8 20 35 32 0d 26 de |&... I=1 . 52.&.| 00007a90 14 20 20 70 79 72 66 6f 75 6e 64 25 28 49 29 3d |. pyrfound%(I)=| 00007aa0 30 0d 26 e8 07 ed 20 49 0d 26 f2 05 e1 0d 26 fc |0.&... I.&....&.| 00007ab0 04 0d 27 06 14 dd f2 70 79 72 61 6d 69 64 5f 6c |..'....pyramid_l| 00007ac0 61 79 6f 75 74 0d 27 10 28 f4 20 53 65 74 73 20 |ayout.'.(. Sets | 00007ad0 75 70 20 74 68 65 20 73 63 72 65 65 6e 20 77 69 |up the screen wi| 00007ae0 74 68 20 74 68 65 20 63 61 72 64 73 2e 0d 27 1a |th the cards..'.| 00007af0 12 ea 20 6c 65 66 74 25 2c 74 6f 70 25 2c 49 0d |.. left%,top%,I.| 00007b00 27 24 24 c8 99 20 22 57 69 6d 70 45 78 74 5f 4f |'$$.. "WimpExt_O| 00007b10 70 65 6e 57 69 6e 64 6f 77 54 6f 70 22 2c 6d 61 |penWindowTop",ma| 00007b20 69 6e 25 0d 27 2e 16 6c 65 66 74 25 3d 36 36 31 |in%.'..left%=661| 00007b30 3a 74 6f 70 25 3d 2d 31 30 0d 27 38 57 70 79 72 |:top%=-10.'8Wpyr| 00007b40 6c 61 79 68 61 6e 25 28 31 29 3d a4 63 72 65 61 |layhan%(1)=.crea| 00007b50 74 65 69 63 6f 6e 28 6d 61 69 6e 25 2c c3 70 79 |teicon(main%,.py| 00007b60 72 6c 61 79 25 28 31 29 2c 22 22 2c 6c 65 66 74 |rlay%(1),"",left| 00007b70 25 2c 74 6f 70 25 2d 32 30 38 2c 6c 65 66 74 25 |%,top%-208,left%| 00007b80 2b 31 35 38 2c 74 6f 70 25 2c 31 32 35 37 31 29 |+158,top%,12571)| 00007b90 0d 27 42 13 6c 65 66 74 25 3d 6c 65 66 74 25 2d |.'B.left%=left%-| 00007ba0 31 30 30 0d 27 4c 11 74 6f 70 25 3d 74 6f 70 25 |100.'L.top%=top%| 00007bb0 2d 31 32 35 0d 27 56 0d e3 20 49 3d 32 20 b8 20 |-125.'V.. I=2 . | 00007bc0 33 0d 27 60 59 20 20 70 79 72 6c 61 79 68 61 6e |3.'`Y pyrlayhan| 00007bd0 25 28 49 29 3d a4 63 72 65 61 74 65 69 63 6f 6e |%(I)=.createicon| 00007be0 28 6d 61 69 6e 25 2c c3 70 79 72 6c 61 79 25 28 |(main%,.pyrlay%(| 00007bf0 49 29 2c 22 22 2c 6c 65 66 74 25 2c 74 6f 70 25 |I),"",left%,top%| 00007c00 2d 32 30 38 2c 6c 65 66 74 25 2b 31 35 38 2c 74 |-208,left%+158,t| 00007c10 6f 70 25 2c 31 32 35 37 31 29 0d 27 6a 15 20 20 |op%,12571).'j. | 00007c20 6c 65 66 74 25 3d 6c 65 66 74 25 2b 32 30 30 0d |left%=left%+200.| 00007c30 27 74 07 ed 20 49 0d 27 7e 21 6c 65 66 74 25 3d |'t.. I.'~!left%=| 00007c40 6c 65 66 74 25 2d 35 30 30 3a 74 6f 70 25 3d 74 |left%-500:top%=t| 00007c50 6f 70 25 2d 31 32 35 0d 27 88 0d e3 20 49 3d 34 |op%-125.'... I=4| 00007c60 20 b8 20 36 0d 27 92 59 20 20 70 79 72 6c 61 79 | . 6.'.Y pyrlay| 00007c70 68 61 6e 25 28 49 29 3d a4 63 72 65 61 74 65 69 |han%(I)=.createi| 00007c80 63 6f 6e 28 6d 61 69 6e 25 2c c3 70 79 72 6c 61 |con(main%,.pyrla| 00007c90 79 25 28 49 29 2c 22 22 2c 6c 65 66 74 25 2c 74 |y%(I),"",left%,t| 00007ca0 6f 70 25 2d 32 30 38 2c 6c 65 66 74 25 2b 31 35 |op%-208,left%+15| 00007cb0 38 2c 74 6f 70 25 2c 31 32 35 37 31 29 0d 27 9c |8,top%,12571).'.| 00007cc0 15 20 20 6c 65 66 74 25 3d 6c 65 66 74 25 2b 32 |. left%=left%+2| 00007cd0 30 30 0d 27 a6 07 ed 20 49 0d 27 b0 21 6c 65 66 |00.'... I.'.!lef| 00007ce0 74 25 3d 6c 65 66 74 25 2d 37 30 30 3a 74 6f 70 |t%=left%-700:top| 00007cf0 25 3d 74 6f 70 25 2d 31 32 35 0d 27 ba 0e e3 20 |%=top%-125.'... | 00007d00 49 3d 37 20 b8 20 31 30 0d 27 c4 59 20 20 70 79 |I=7 . 10.'.Y py| 00007d10 72 6c 61 79 68 61 6e 25 28 49 29 3d a4 63 72 65 |rlayhan%(I)=.cre| 00007d20 61 74 65 69 63 6f 6e 28 6d 61 69 6e 25 2c c3 70 |ateicon(main%,.p| 00007d30 79 72 6c 61 79 25 28 49 29 2c 22 22 2c 6c 65 66 |yrlay%(I),"",lef| 00007d40 74 25 2c 74 6f 70 25 2d 32 30 38 2c 6c 65 66 74 |t%,top%-208,left| 00007d50 25 2b 31 35 38 2c 74 6f 70 25 2c 31 32 35 37 31 |%+158,top%,12571| 00007d60 29 0d 27 ce 15 20 20 6c 65 66 74 25 3d 6c 65 66 |).'.. left%=lef| 00007d70 74 25 2b 32 30 30 0d 27 d8 07 ed 20 49 0d 27 e2 |t%+200.'... I.'.| 00007d80 21 6c 65 66 74 25 3d 6c 65 66 74 25 2d 39 30 30 |!left%=left%-900| 00007d90 3a 74 6f 70 25 3d 74 6f 70 25 2d 31 32 35 0d 27 |:top%=top%-125.'| 00007da0 ec 0f e3 20 49 3d 31 31 20 b8 20 31 35 0d 27 f6 |... I=11 . 15.'.| 00007db0 59 20 20 70 79 72 6c 61 79 68 61 6e 25 28 49 29 |Y pyrlayhan%(I)| 00007dc0 3d a4 63 72 65 61 74 65 69 63 6f 6e 28 6d 61 69 |=.createicon(mai| 00007dd0 6e 25 2c c3 70 79 72 6c 61 79 25 28 49 29 2c 22 |n%,.pyrlay%(I),"| 00007de0 22 2c 6c 65 66 74 25 2c 74 6f 70 25 2d 32 30 38 |",left%,top%-208| 00007df0 2c 6c 65 66 74 25 2b 31 35 38 2c 74 6f 70 25 2c |,left%+158,top%,| 00007e00 31 32 35 37 31 29 0d 28 00 15 20 20 6c 65 66 74 |12571).(.. left| 00007e10 25 3d 6c 65 66 74 25 2b 32 30 30 0d 28 0a 07 ed |%=left%+200.(...| 00007e20 20 49 0d 28 14 22 6c 65 66 74 25 3d 6c 65 66 74 | I.(."left%=left| 00007e30 25 2d 31 31 30 30 3a 74 6f 70 25 3d 74 6f 70 25 |%-1100:top%=top%| 00007e40 2d 31 32 35 0d 28 1e 0f e3 20 49 3d 31 36 20 b8 |-125.(... I=16 .| 00007e50 20 32 31 0d 28 28 59 20 20 70 79 72 6c 61 79 68 | 21.((Y pyrlayh| 00007e60 61 6e 25 28 49 29 3d a4 63 72 65 61 74 65 69 63 |an%(I)=.createic| 00007e70 6f 6e 28 6d 61 69 6e 25 2c c3 70 79 72 6c 61 79 |on(main%,.pyrlay| 00007e80 25 28 49 29 2c 22 22 2c 6c 65 66 74 25 2c 74 6f |%(I),"",left%,to| 00007e90 70 25 2d 32 30 38 2c 6c 65 66 74 25 2b 31 35 38 |p%-208,left%+158| 00007ea0 2c 74 6f 70 25 2c 31 32 35 37 31 29 0d 28 32 15 |,top%,12571).(2.| 00007eb0 20 20 6c 65 66 74 25 3d 6c 65 66 74 25 2b 32 30 | left%=left%+20| 00007ec0 30 0d 28 3c 07 ed 20 49 0d 28 46 22 6c 65 66 74 |0.(<.. I.(F"left| 00007ed0 25 3d 6c 65 66 74 25 2d 31 33 30 30 3a 74 6f 70 |%=left%-1300:top| 00007ee0 25 3d 74 6f 70 25 2d 31 32 35 0d 28 50 0f e3 20 |%=top%-125.(P.. | 00007ef0 49 3d 32 32 20 b8 20 32 38 0d 28 5a 59 20 20 70 |I=22 . 28.(ZY p| 00007f00 79 72 6c 61 79 68 61 6e 25 28 49 29 3d a4 63 72 |yrlayhan%(I)=.cr| 00007f10 65 61 74 65 69 63 6f 6e 28 6d 61 69 6e 25 2c c3 |eateicon(main%,.| 00007f20 70 79 72 6c 61 79 25 28 49 29 2c 22 22 2c 6c 65 |pyrlay%(I),"",le| 00007f30 66 74 25 2c 74 6f 70 25 2d 32 30 38 2c 6c 65 66 |ft%,top%-208,lef| 00007f40 74 25 2b 31 35 38 2c 74 6f 70 25 2c 31 32 35 37 |t%+158,top%,1257| 00007f50 31 29 0d 28 64 15 20 20 6c 65 66 74 25 3d 6c 65 |1).(d. left%=le| 00007f60 66 74 25 2b 32 30 30 0d 28 6e 07 ed 20 49 0d 28 |ft%+200.(n.. I.(| 00007f70 78 42 70 79 72 70 61 63 6b 68 61 6e 25 3d a4 63 |xBpyrpackhan%=.c| 00007f80 72 65 61 74 65 69 63 6f 6e 28 6d 61 69 6e 25 2c |reateicon(main%,| 00007f90 22 62 61 63 6b 22 2c 22 22 2c 35 30 2c 2d 32 35 |"back","",50,-25| 00007fa0 38 2c 32 30 38 2c 2d 35 30 2c 31 32 35 37 31 29 |8,208,-50,12571)| 00007fb0 0d 28 82 46 70 79 72 77 61 73 74 65 68 61 6e 25 |.(.Fpyrwastehan%| 00007fc0 3d a4 63 72 65 61 74 65 69 63 6f 6e 28 6d 61 69 |=.createicon(mai| 00007fd0 6e 25 2c 22 6e 6f 63 61 72 64 22 2c 22 22 2c 32 |n%,"nocard","",2| 00007fe0 32 30 2c 2d 32 35 38 2c 33 37 38 2c 2d 35 30 2c |20,-258,378,-50,| 00007ff0 31 32 35 37 31 29 0d 28 8c 48 70 79 72 66 6f 75 |12571).(.Hpyrfou| 00008000 6e 64 68 61 6e 25 3d a4 63 72 65 61 74 65 69 63 |ndhan%=.createic| 00008010 6f 6e 28 6d 61 69 6e 25 2c 22 6e 6f 63 61 72 64 |on(main%,"nocard| 00008020 22 2c 22 22 2c 31 32 30 30 2c 2d 32 35 38 2c 31 |","",1200,-258,1| 00008030 33 35 38 2c 2d 35 30 2c 31 32 35 37 31 29 0d 28 |358,-50,12571).(| 00008040 96 0e e3 20 49 3d 31 20 b8 20 32 38 0d 28 a0 16 |... I=1 . 28.(..| 00008050 20 20 70 79 72 64 65 6c 65 74 65 64 25 28 49 29 | pyrdeleted%(I)| 00008060 3d a3 0d 28 aa 07 ed 20 49 0d 28 b4 3f 64 65 61 |=..(... I.(.?dea| 00008070 6c 25 3d 31 3a 73 65 6c 65 63 74 65 64 25 3d a3 |l%=1:selected%=.| 00008080 3a 66 69 72 73 74 63 61 72 64 25 3d 30 3a 66 69 |:firstcard%=0:fi| 00008090 72 73 74 69 63 6f 6e 25 3d 30 3a 63 61 72 64 73 |rsticon%=0:cards| 000080a0 6c 65 66 74 25 3d 32 34 0d 28 be 7b 73 63 6f 72 |left%=24.(.{scor| 000080b0 65 68 61 6e 25 3d a4 63 72 65 61 74 65 69 63 6f |ehan%=.createico| 000080c0 6e 28 6d 61 69 6e 25 2c 22 22 2c 22 53 63 6f 72 |n(main%,"","Scor| 000080d0 65 20 3a 20 22 2b c3 73 63 6f 72 65 25 2b 22 20 |e : "+.score%+" | 000080e0 69 6e 20 22 2b c3 70 79 72 67 61 6d 65 73 25 2c |in "+.pyrgames%,| 000080f0 35 30 2c 2d 33 35 30 2c 33 30 30 2c 2d 32 39 30 |50,-350,300,-290| 00008100 2c 25 30 30 30 31 30 31 31 31 30 30 30 30 30 30 |,%00010111000000| 00008110 30 30 30 30 30 30 30 30 30 31 30 30 31 31 31 31 |0000000001001111| 00008120 30 31 29 0d 28 c8 66 64 65 61 6c 68 61 6e 25 3d |01).(.fdealhan%=| 00008130 a4 63 72 65 61 74 65 69 63 6f 6e 28 6d 61 69 6e |.createicon(main| 00008140 25 2c 22 22 2c 22 44 65 61 6c 20 3a 20 22 2b c3 |%,"","Deal : "+.| 00008150 64 65 61 6c 25 2c 35 30 2c 2d 34 32 30 2c 33 30 |deal%,50,-420,30| 00008160 30 2c 2d 33 36 30 2c 25 30 30 30 31 30 31 31 31 |0,-360,%00010111| 00008170 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 31 |0000000000000001| 00008180 30 30 31 31 31 31 30 31 29 0d 28 d2 76 63 61 72 |00111101).(.vcar| 00008190 64 73 6c 65 66 74 68 61 6e 25 3d a4 63 72 65 61 |dslefthan%=.crea| 000081a0 74 65 69 63 6f 6e 28 6d 61 69 6e 25 2c 22 22 2c |teicon(main%,"",| 000081b0 22 43 61 72 64 73 20 6c 65 66 74 20 3a 20 22 2b |"Cards left : "+| 000081c0 c3 63 61 72 64 73 6c 65 66 74 25 2c 35 30 2c 2d |.cardsleft%,50,-| 000081d0 34 39 30 2c 33 30 30 2c 2d 34 33 30 2c 25 30 30 |490,300,-430,%00| 000081e0 30 31 30 31 31 31 30 30 30 30 30 30 30 30 30 30 |0101110000000000| 000081f0 30 30 30 30 30 31 30 30 31 31 31 31 30 31 29 0d |00000100111101).| 00008200 28 dc 39 6c 61 73 74 69 63 6f 6e 31 25 3d 2d 31 |(.9lasticon1%=-1| 00008210 3a 6c 61 73 74 69 63 6f 6e 32 25 3d 2d 31 3a 6c |:lasticon2%=-1:l| 00008220 61 73 74 76 61 6c 31 25 3d 2d 31 3a 6c 61 73 74 |astval1%=-1:last| 00008230 76 61 6c 32 25 3d 2d 31 0d 28 e6 05 e1 0d 28 f0 |val2%=-1.(....(.| 00008240 04 0d 28 fa 1f dd f2 70 79 72 61 6d 69 64 5f 6d |..(....pyramid_m| 00008250 6f 75 73 65 63 6c 69 63 6b 28 69 63 6f 6e 25 29 |ouseclick(icon%)| 00008260 0d 29 04 40 f4 20 54 68 69 73 20 70 72 6f 63 65 |.).@. This proce| 00008270 64 75 72 65 20 70 72 6f 63 65 73 73 65 73 20 6d |dure processes m| 00008280 6f 75 73 65 63 6c 69 63 6b 73 20 69 6e 20 61 20 |ouseclicks in a | 00008290 67 61 6d 65 20 6f 66 20 50 79 72 61 6d 69 64 2e |game of Pyramid.| 000082a0 0d 29 0e 1c f4 20 4e 6f 77 20 70 72 6f 63 65 73 |.)... Now proces| 000082b0 73 20 74 68 65 20 65 76 65 6e 74 2e 0d 29 18 33 |s the event..).3| 000082c0 ea 20 63 6c 69 63 6b 25 2c 49 2c 4a 2c 70 6c 61 |. click%,I,J,pla| 000082d0 79 25 2c 74 65 6d 70 63 61 72 64 25 2c 73 68 61 |y%,tempcard%,sha| 000082e0 64 65 64 25 2c 63 61 72 64 6d 6f 76 65 64 25 0d |ded%,cardmoved%.| 000082f0 29 22 10 63 61 72 64 6d 6f 76 65 64 25 3d a3 0d |)".cardmoved%=..| 00008300 29 2c 23 70 6c 61 79 25 3d a4 70 79 72 61 6d 69 |),#play%=.pyrami| 00008310 64 5f 75 6e 63 6f 76 65 72 65 64 28 69 63 6f 6e |d_uncovered(icon| 00008320 25 29 0d 29 36 37 e7 20 69 63 6f 6e 25 3d 70 79 |%).)67. icon%=py| 00008330 72 77 61 73 74 65 68 61 6e 25 20 84 20 69 63 6f |rwastehan% . ico| 00008340 6e 25 3d 70 79 72 66 6f 75 6e 64 68 61 6e 25 20 |n%=pyrfoundhan% | 00008350 8c 20 70 6c 61 79 25 3d b9 0d 29 40 0f de 20 63 |. play%=..)@.. c| 00008360 6c 69 63 6b 25 20 34 30 0d 29 4a 11 21 63 6c 69 |lick% 40.)J.!cli| 00008370 63 6b 25 3d 6d 61 69 6e 25 0d 29 54 12 63 6c 69 |ck%=main%.)T.cli| 00008380 63 6b 25 21 34 3d 69 63 6f 6e 25 0d 29 5e 2b c8 |ck%!4=icon%.)^+.| 00008390 99 22 57 69 6d 70 5f 47 65 74 49 63 6f 6e 53 74 |."Wimp_GetIconSt| 000083a0 61 74 65 22 2c 2c 63 6c 69 63 6b 25 20 b8 20 2c |ate",,click% . ,| 000083b0 63 6c 69 63 6b 25 0d 29 68 14 6e 61 6d 65 24 3d |click%.)h.name$=| 000083c0 24 63 6c 69 63 6b 25 21 33 32 0d 29 72 13 6e 61 |$click%!32.)r.na| 000083d0 6d 65 24 3d c1 6e 61 6d 65 24 2c 32 29 0d 29 7c |me$=.name$,2).)|| 000083e0 10 6e 61 6d 65 25 3d bb 6e 61 6d 65 24 0d 29 86 |.name%=.name$.).| 000083f0 10 e7 20 6e 61 6d 65 25 3c 3e 30 20 8c 0d 29 90 |.. name%<>0 ..).| 00008400 20 20 20 63 61 72 64 76 61 6c 75 65 25 3d a4 63 | cardvalue%=.c| 00008410 61 72 64 76 61 6c 28 6e 61 6d 65 25 29 0d 29 9a |ardval(name%).).| 00008420 05 cc 0d 29 a4 13 20 20 63 61 72 64 76 61 6c 75 |...).. cardvalu| 00008430 65 25 3d 2d 31 0d 29 ae 05 cd 0d 29 b8 3a e7 20 |e%=-1.)....).:. | 00008440 69 63 6f 6e 25 3d 70 79 72 70 61 63 6b 68 61 6e |icon%=pyrpackhan| 00008450 25 20 8c 20 63 61 72 64 76 61 6c 75 65 25 3d a4 |% . cardvalue%=.| 00008460 63 61 72 64 76 61 6c 28 70 79 72 70 61 63 6b 25 |cardval(pyrpack%| 00008470 28 31 29 29 0d 29 c2 10 e7 20 69 63 6f 6e 25 3c |(1)).)... icon%<| 00008480 3e 30 20 8c 0d 29 cc 15 20 20 e7 20 73 65 6c 65 |>0 ..).. . sele| 00008490 63 74 65 64 25 3d a3 20 8c 0d 29 d6 48 20 20 20 |cted%=. ..).H | 000084a0 20 6c 61 73 74 69 63 6f 6e 31 25 3d 69 63 6f 6e | lasticon1%=icon| 000084b0 25 3a 6c 61 73 74 76 61 6c 31 25 3d 63 61 72 64 |%:lastval1%=card| 000084c0 76 61 6c 75 65 25 3a 6c 61 73 74 69 63 6f 6e 32 |value%:lasticon2| 000084d0 25 3d 2d 31 3a 6c 61 73 74 76 61 6c 32 25 3d 2d |%=-1:lastval2%=-| 000084e0 31 0d 29 e0 07 20 20 cd 0d 29 ea 2f 20 20 e7 20 |1.).. ..)./ . | 000084f0 73 65 6c 65 63 74 65 64 25 3d b9 20 80 20 63 61 |selected%=. . ca| 00008500 72 64 76 61 6c 75 65 25 2b 6c 61 73 74 76 61 6c |rdvalue%+lastval| 00008510 31 25 3d 31 33 20 8c 0d 29 f4 2d 20 20 20 20 6c |1%=13 ..).- l| 00008520 61 73 74 69 63 6f 6e 32 25 3d 69 63 6f 6e 25 3a |asticon2%=icon%:| 00008530 6c 61 73 74 76 61 6c 32 25 3d 63 61 72 64 76 61 |lastval2%=cardva| 00008540 6c 75 65 25 0d 29 fe 07 20 20 cd 0d 2a 08 05 cd |lue%.).. ..*...| 00008550 0d 2a 12 1c f4 20 4e 6f 77 20 70 72 6f 63 65 73 |.*... Now proces| 00008560 73 20 74 68 65 20 63 6c 69 63 6b 2e 0d 2a 1c 0e |s the click..*..| 00008570 c8 8e 20 69 63 6f 6e 25 20 ca 0d 2a 26 0b 20 20 |.. icon% ..*&. | 00008580 c9 20 30 20 3a 0d 2a 30 1c 20 20 20 20 73 63 6f |. 0 :.*0. sco| 00008590 72 65 25 3d 30 3a 70 79 72 67 61 6d 65 73 25 3d |re%=0:pyrgames%=| 000085a0 30 0d 2a 3a 10 20 20 20 20 f2 6e 65 77 67 61 6d |0.*:. .newgam| 000085b0 65 0d 2a 44 15 20 20 c9 20 70 79 72 70 61 63 6b |e.*D. . pyrpack| 000085c0 68 61 6e 25 20 3a 0d 2a 4e 14 20 20 20 20 63 61 |han% :.*N. ca| 000085d0 72 64 6d 6f 76 65 64 25 3d b9 0d 2a 58 19 20 20 |rdmoved%=..*X. | 000085e0 20 20 e7 20 70 79 72 70 61 63 6b 25 28 31 29 3d | . pyrpack%(1)=| 000085f0 30 20 8c 0d 2a 62 14 20 20 20 20 20 20 e3 20 49 |0 ..*b. . I| 00008600 3d 31 20 b8 20 32 34 0d 2a 6c 27 20 20 20 20 20 |=1 . 24.*l' | 00008610 20 20 20 70 79 72 70 61 63 6b 25 28 49 29 3d 70 | pyrpack%(I)=p| 00008620 79 72 77 61 73 74 65 25 28 32 35 2d 49 29 0d 2a |yrwaste%(25-I).*| 00008630 76 0d 20 20 20 20 20 20 ed 20 49 0d 2a 80 14 20 |v. . I.*.. | 00008640 20 20 20 20 20 e3 20 49 3d 31 20 b8 20 32 34 0d | . I=1 . 24.| 00008650 2a 8a 1a 20 20 20 20 20 20 20 20 70 79 72 77 61 |*.. pyrwa| 00008660 73 74 65 25 28 49 29 3d 30 0d 2a 94 0d 20 20 20 |ste%(I)=0.*.. | 00008670 20 20 20 ed 20 49 0d 2a 9e 1b 20 20 20 20 20 20 | . I.*.. | 00008680 e7 20 70 79 72 70 61 63 6b 25 28 31 29 3d 30 20 |. pyrpack%(1)=0 | 00008690 8c 0d 2a a8 0d 20 20 20 20 20 20 20 20 f5 0d 2a |..*.. ..*| 000086a0 b2 18 20 20 20 20 20 20 20 20 20 20 e3 20 49 3d |.. . I=| 000086b0 31 20 b8 20 32 33 0d 2a bc 29 20 20 20 20 20 20 |1 . 23.*.) | 000086c0 20 20 20 20 20 20 70 79 72 70 61 63 6b 25 28 49 | pyrpack%(I| 000086d0 29 3d 70 79 72 70 61 63 6b 25 28 49 2b 31 29 0d |)=pyrpack%(I+1).| 000086e0 2a c6 11 20 20 20 20 20 20 20 20 20 20 ed 20 49 |*.. . I| 000086f0 0d 2a d0 1c 20 20 20 20 20 20 20 20 20 20 70 79 |.*.. py| 00008700 72 70 61 63 6b 25 28 32 34 29 3d 30 0d 2a da 1c |rpack%(24)=0.*..| 00008710 20 20 20 20 20 20 20 20 fd 20 70 79 72 70 61 63 | . pyrpac| 00008720 6b 25 28 31 29 3c 3e 30 0d 2a e4 0b 20 20 20 20 |k%(1)<>0.*.. | 00008730 20 20 cd 0d 2a ee 17 20 20 20 20 20 20 64 65 61 | ..*.. dea| 00008740 6c 25 3d 64 65 61 6c 25 2b 31 0d 2a f8 51 20 20 |l%=deal%+1.*.Q | 00008750 20 20 20 20 e7 20 64 65 61 6c 25 3c 34 20 8c 20 | . deal%<4 . | 00008760 c8 99 22 57 69 6d 70 45 78 74 5f 53 65 74 49 63 |.."WimpExt_SetIc| 00008770 6f 6e 53 74 72 69 6e 67 22 2c 2c 2c 6d 61 69 6e |onString",,,main| 00008780 25 2c 64 65 61 6c 68 61 6e 25 2c 22 44 65 61 6c |%,dealhan%,"Deal| 00008790 20 3a 20 22 2b c3 64 65 61 6c 25 0d 2b 02 32 20 | : "+.deal%.+.2 | 000087a0 20 20 20 20 20 f2 73 65 74 69 63 6f 6e 73 70 72 | .seticonspr| 000087b0 69 74 65 28 6d 61 69 6e 25 2c 70 79 72 70 61 63 |ite(main%,pyrpac| 000087c0 6b 68 61 6e 25 2c 22 62 61 63 6b 22 29 0d 2b 0c |khan%,"back").+.| 000087d0 35 20 20 20 20 20 20 f2 73 65 74 69 63 6f 6e 73 |5 .seticons| 000087e0 70 72 69 74 65 28 6d 61 69 6e 25 2c 70 79 72 77 |prite(main%,pyrw| 000087f0 61 73 74 65 68 61 6e 25 2c 22 6e 6f 63 61 72 64 |astehan%,"nocard| 00008800 22 29 0d 2b 16 09 20 20 20 20 cc 0d 2b 20 25 20 |").+.. ..+ % | 00008810 20 20 20 20 20 e7 20 66 69 72 73 74 69 63 6f 6e | . firsticon| 00008820 25 3d 70 79 72 77 61 73 74 65 68 61 6e 25 20 8c |%=pyrwastehan% .| 00008830 0d 2b 2a 36 20 20 20 20 20 20 20 20 c8 99 22 57 |.+*6 .."W| 00008840 69 6d 70 45 78 74 5f 53 65 74 49 63 6f 6e 22 2c |impExt_SetIcon",| 00008850 2c 2c 6d 61 69 6e 25 2c 70 79 72 77 61 73 74 65 |,,main%,pyrwaste| 00008860 68 61 6e 25 2c 30 0d 2b 34 31 20 20 20 20 20 20 |han%,0.+41 | 00008870 20 20 73 65 6c 65 63 74 65 64 25 3d a3 3a 66 69 | selected%=.:fi| 00008880 72 73 74 69 63 6f 6e 25 3d 30 3a 66 69 72 73 74 |rsticon%=0:first| 00008890 63 61 72 64 25 3d 30 0d 2b 3e 0b 20 20 20 20 20 |card%=0.+>. | 000088a0 20 cd 0d 2b 48 19 20 20 20 20 20 20 e3 20 49 3d | ..+H. . I=| 000088b0 32 34 20 b8 20 32 20 88 20 2d 31 0d 2b 52 27 20 |24 . 2 . -1.+R' | 000088c0 20 20 20 20 20 20 20 70 79 72 77 61 73 74 65 25 | pyrwaste%| 000088d0 28 49 29 3d 70 79 72 77 61 73 74 65 25 28 49 2d |(I)=pyrwaste%(I-| 000088e0 31 29 0d 2b 5c 0d 20 20 20 20 20 20 ed 20 49 0d |1).+\. . I.| 000088f0 2b 66 22 20 20 20 20 20 20 70 79 72 77 61 73 74 |+f" pyrwast| 00008900 65 25 28 31 29 3d 70 79 72 70 61 63 6b 25 28 31 |e%(1)=pyrpack%(1| 00008910 29 0d 2b 70 14 20 20 20 20 20 20 e3 20 49 3d 31 |).+p. . I=1| 00008920 20 b8 20 32 33 0d 2b 7a 25 20 20 20 20 20 20 20 | . 23.+z% | 00008930 20 70 79 72 70 61 63 6b 25 28 49 29 3d 70 79 72 | pyrpack%(I)=pyr| 00008940 70 61 63 6b 25 28 49 2b 31 29 0d 2b 84 0d 20 20 |pack%(I+1).+.. | 00008950 20 20 20 20 ed 20 49 0d 2b 8e 18 20 20 20 20 20 | . I.+.. | 00008960 20 70 79 72 70 61 63 6b 25 28 32 34 29 3d 30 0d | pyrpack%(24)=0.| 00008970 2b 98 1b 20 20 20 20 20 20 e7 20 70 79 72 70 61 |+.. . pyrpa| 00008980 63 6b 25 28 31 29 3d 30 20 8c 0d 2b a2 36 20 20 |ck%(1)=0 ..+.6 | 00008990 20 20 20 20 20 20 f2 73 65 74 69 63 6f 6e 73 70 | .seticonsp| 000089a0 72 69 74 65 28 6d 61 69 6e 25 2c 70 79 72 70 61 |rite(main%,pyrpa| 000089b0 63 6b 68 61 6e 25 2c 22 6e 6f 63 61 72 64 22 29 |ckhan%,"nocard")| 000089c0 0d 2b ac 0b 20 20 20 20 20 20 cd 0d 2b b6 3c 20 |.+.. ..+.< | 000089d0 20 20 20 20 20 20 20 f2 73 65 74 69 63 6f 6e 73 | .seticons| 000089e0 70 72 69 74 65 28 6d 61 69 6e 25 2c 70 79 72 77 |prite(main%,pyrw| 000089f0 61 73 74 65 68 61 6e 25 2c c3 70 79 72 77 61 73 |astehan%,.pyrwas| 00008a00 74 65 25 28 31 29 29 0d 2b c0 09 20 20 20 20 cd |te%(1)).+.. .| 00008a10 0d 2b ca 05 cb 0d 2b d4 1a e7 20 70 6c 61 79 25 |.+....+... play%| 00008a20 3d b9 20 80 20 6e 61 6d 65 25 3c 3e 30 20 8c 0d |=. . name%<>0 ..| 00008a30 2b de 15 20 20 e7 20 73 65 6c 65 63 74 65 64 25 |+.. . selected%| 00008a40 3d a3 20 8c 0d 2b e8 2b 20 20 20 20 c8 99 22 57 |=. ..+.+ .."W| 00008a50 69 6d 70 45 78 74 5f 53 65 74 49 63 6f 6e 22 2c |impExt_SetIcon",| 00008a60 2c 2c 6d 61 69 6e 25 2c 69 63 6f 6e 25 2c 32 0d |,,main%,icon%,2.| 00008a70 2b f2 2f 20 20 20 20 e7 20 63 61 72 64 76 61 6c |+./ . cardval| 00008a80 75 65 25 3d 31 33 20 80 20 69 63 6f 6e 25 3c 3e |ue%=13 . icon%<>| 00008a90 70 79 72 66 6f 75 6e 64 68 61 6e 25 20 8c 0d 2b |pyrfoundhan% ..+| 00008aa0 fc 2d 20 20 20 20 20 20 c8 99 22 57 69 6d 70 45 |.- .."WimpE| 00008ab0 78 74 5f 53 65 74 49 63 6f 6e 22 2c 2c 2c 6d 61 |xt_SetIcon",,,ma| 00008ac0 69 6e 25 2c 69 63 6f 6e 25 2c 30 0d 2c 06 28 20 |in%,icon%,0.,.( | 00008ad0 20 20 20 20 20 f2 70 79 72 61 6d 69 64 5f 6d 6f | .pyramid_mo| 00008ae0 76 65 63 61 72 64 28 69 63 6f 6e 25 2c 6e 61 6d |vecard(icon%,nam| 00008af0 65 24 29 0d 2c 10 19 20 20 20 20 20 20 e3 20 49 |e$).,.. . I| 00008b00 3d 35 32 20 b8 20 32 20 88 20 2d 31 0d 2c 1a 27 |=52 . 2 . -1.,.'| 00008b10 20 20 20 20 20 20 20 20 70 79 72 66 6f 75 6e 64 | pyrfound| 00008b20 25 28 49 29 3d 70 79 72 66 6f 75 6e 64 25 28 49 |%(I)=pyrfound%(I| 00008b30 2d 31 29 0d 2c 24 0d 20 20 20 20 20 20 ed 20 49 |-1).,$. . I| 00008b40 0d 2c 2e 1c 20 20 20 20 20 20 70 79 72 66 6f 75 |.,.. pyrfou| 00008b50 6e 64 25 28 31 29 3d 6e 61 6d 65 25 0d 2c 38 15 |nd%(1)=name%.,8.| 00008b60 20 20 20 20 20 20 73 65 6c 65 63 74 65 64 25 3d | selected%=| 00008b70 a3 0d 2c 42 09 20 20 20 20 cc 0d 2c 4c 1c 20 20 |..,B. ..,L. | 00008b80 20 20 20 20 e7 20 63 61 72 64 76 61 6c 75 65 25 | . cardvalue%| 00008b90 3c 3e 31 33 20 8c 0d 2c 56 4f 20 20 20 20 20 20 |<>13 ..,VO | 00008ba0 20 20 73 65 6c 65 63 74 65 64 25 3d b9 3a 66 69 | selected%=.:fi| 00008bb0 72 73 74 63 61 72 64 25 3d 63 61 72 64 76 61 6c |rstcard%=cardval| 00008bc0 75 65 25 3a 66 69 72 73 74 69 63 6f 6e 25 3d 69 |ue%:firsticon%=i| 00008bd0 63 6f 6e 25 3a 66 69 72 73 74 6e 61 6d 65 25 3d |con%:firstname%=| 00008be0 6e 61 6d 65 25 0d 2c 60 0b 20 20 20 20 20 20 cd |name%.,`. .| 00008bf0 0d 2c 6a 09 20 20 20 20 cd 0d 2c 74 07 20 20 cc |.,j. ..,t. .| 00008c00 0d 2c 7e 1c 20 20 20 20 e7 20 69 63 6f 6e 25 3d |.,~. . icon%=| 00008c10 66 69 72 73 74 69 63 6f 6e 25 20 8c 0d 2c 88 2d |firsticon% ..,.-| 00008c20 20 20 20 20 20 20 c8 99 22 57 69 6d 70 45 78 74 | .."WimpExt| 00008c30 5f 53 65 74 49 63 6f 6e 22 2c 2c 2c 6d 61 69 6e |_SetIcon",,,main| 00008c40 25 2c 69 63 6f 6e 25 2c 32 0d 2c 92 4a 20 20 20 |%,icon%,2.,.J | 00008c50 20 20 20 73 65 6c 65 63 74 65 64 25 3d a3 3a 66 | selected%=.:f| 00008c60 69 72 73 74 63 61 72 64 25 3d 30 3a 66 69 72 73 |irstcard%=0:firs| 00008c70 74 69 63 6f 6e 25 3d 30 3a 6c 61 73 74 69 63 6f |ticon%=0:lastico| 00008c80 6e 31 25 3d 2d 31 3a 6c 61 73 74 76 61 6c 31 25 |n1%=-1:lastval1%| 00008c90 3d 2d 31 0d 2c 9c 09 20 20 20 20 cc 0d 2c a6 26 |=-1.,.. ..,.&| 00008ca0 20 20 20 20 20 20 e7 20 63 61 72 64 76 61 6c 75 | . cardvalu| 00008cb0 65 25 2b 66 69 72 73 74 63 61 72 64 25 3d 31 33 |e%+firstcard%=13| 00008cc0 20 8c 0d 2c b0 27 20 20 20 20 20 20 20 20 e7 20 | ..,.' . | 00008cd0 66 69 72 73 74 69 63 6f 6e 25 3d 70 79 72 66 6f |firsticon%=pyrfo| 00008ce0 75 6e 64 68 61 6e 25 20 8c 0d 2c ba 2c 20 20 20 |undhan% ..,., | 00008cf0 20 20 20 20 20 20 20 f2 70 79 72 61 6d 69 64 5f | .pyramid_| 00008d00 6d 6f 76 65 63 61 72 64 28 69 63 6f 6e 25 2c 6e |movecard(icon%,n| 00008d10 61 6d 65 24 29 0d 2c c4 1d 20 20 20 20 20 20 20 |ame$).,.. | 00008d20 20 20 20 e3 20 49 3d 35 32 20 b8 20 32 20 88 20 | . I=52 . 2 . | 00008d30 2d 31 0d 2c ce 2b 20 20 20 20 20 20 20 20 20 20 |-1.,.+ | 00008d40 20 20 70 79 72 66 6f 75 6e 64 25 28 49 29 3d 70 | pyrfound%(I)=p| 00008d50 79 72 66 6f 75 6e 64 25 28 49 2d 31 29 0d 2c d8 |yrfound%(I-1).,.| 00008d60 11 20 20 20 20 20 20 20 20 20 20 ed 20 49 0d 2c |. . I.,| 00008d70 e2 20 20 20 20 20 20 20 20 20 20 20 70 79 72 66 |. pyrf| 00008d80 6f 75 6e 64 25 28 31 29 3d 6e 61 6d 65 25 0d 2c |ound%(1)=name%.,| 00008d90 ec 38 20 20 20 20 20 20 20 20 20 20 c8 99 22 57 |.8 .."W| 00008da0 69 6d 70 45 78 74 5f 53 65 74 49 63 6f 6e 22 2c |impExt_SetIcon",| 00008db0 2c 2c 6d 61 69 6e 25 2c 70 79 72 66 6f 75 6e 64 |,,main%,pyrfound| 00008dc0 68 61 6e 25 2c 30 0d 2c f6 33 20 20 20 20 20 20 |han%,0.,.3 | 00008dd0 20 20 20 20 73 65 6c 65 63 74 65 64 25 3d a3 3a | selected%=.:| 00008de0 66 69 72 73 74 69 63 6f 6e 25 3d 30 3a 66 69 72 |firsticon%=0:fir| 00008df0 73 74 63 61 72 64 25 3d 30 0d 2d 00 0d 20 20 20 |stcard%=0.-.. | 00008e00 20 20 20 20 20 cc 0d 2d 0a 36 20 20 20 20 20 20 | ..-.6 | 00008e10 20 20 20 20 c8 99 22 57 69 6d 70 45 78 74 5f 53 | .."WimpExt_S| 00008e20 65 74 49 63 6f 6e 22 2c 2c 2c 6d 61 69 6e 25 2c |etIcon",,,main%,| 00008e30 66 69 72 73 74 69 63 6f 6e 25 2c 30 0d 2d 14 38 |firsticon%,0.-.8| 00008e40 20 20 20 20 20 20 20 20 20 20 c8 99 22 57 69 6d | .."Wim| 00008e50 70 45 78 74 5f 53 65 74 49 63 6f 6e 22 2c 2c 2c |pExt_SetIcon",,,| 00008e60 6d 61 69 6e 25 2c 70 79 72 66 6f 75 6e 64 68 61 |main%,pyrfoundha| 00008e70 6e 25 2c 30 0d 2d 1e 24 20 20 20 20 20 20 20 20 |n%,0.-.$ | 00008e80 20 20 e7 20 69 63 6f 6e 25 3d 70 79 72 66 6f 75 | . icon%=pyrfou| 00008e90 6e 64 68 61 6e 25 20 8c 0d 2d 28 33 20 20 20 20 |ndhan% ..-(3 | 00008ea0 20 20 20 20 20 20 20 20 f2 70 79 72 61 6d 69 64 | .pyramid| 00008eb0 5f 6d 6f 76 65 63 61 72 64 28 66 69 72 73 74 69 |_movecard(firsti| 00008ec0 63 6f 6e 25 2c 6e 61 6d 65 24 29 0d 2d 32 1f 20 |con%,name$).-2. | 00008ed0 20 20 20 20 20 20 20 20 20 20 20 74 65 6d 70 63 | tempc| 00008ee0 61 72 64 25 3d 6e 61 6d 65 25 0d 2d 3c 27 20 20 |ard%=name%.-<' | 00008ef0 20 20 20 20 20 20 20 20 20 20 70 79 72 66 6f 75 | pyrfou| 00008f00 6e 64 25 28 31 29 3d 66 69 72 73 74 63 61 72 64 |nd%(1)=firstcard| 00008f10 25 0d 2d 46 1f 20 20 20 20 20 20 20 20 20 20 20 |%.-F. | 00008f20 20 e3 20 49 3d 35 32 20 b8 20 32 20 88 20 2d 31 | . I=52 . 2 . -1| 00008f30 0d 2d 50 2d 20 20 20 20 20 20 20 20 20 20 20 20 |.-P- | 00008f40 20 20 70 79 72 66 6f 75 6e 64 25 28 49 29 3d 70 | pyrfound%(I)=p| 00008f50 79 72 66 6f 75 6e 64 25 28 49 2d 31 29 0d 2d 5a |yrfound%(I-1).-Z| 00008f60 13 20 20 20 20 20 20 20 20 20 20 20 20 ed 20 49 |. . I| 00008f70 0d 2d 64 26 20 20 20 20 20 20 20 20 20 20 20 20 |.-d& | 00008f80 70 79 72 66 6f 75 6e 64 25 28 31 29 3d 74 65 6d |pyrfound%(1)=tem| 00008f90 70 63 61 72 64 25 0d 2d 6e 3d 20 20 20 20 20 20 |pcard%.-n= | 00008fa0 20 20 20 20 20 20 f2 73 65 74 69 63 6f 6e 73 70 | .seticonsp| 00008fb0 72 69 74 65 28 6d 61 69 6e 25 2c 70 79 72 66 6f |rite(main%,pyrfo| 00008fc0 75 6e 64 68 61 6e 25 2c c3 74 65 6d 70 63 61 72 |undhan%,.tempcar| 00008fd0 64 25 29 0d 2d 78 3a 20 20 20 20 20 20 20 20 20 |d%).-x: | 00008fe0 20 20 20 c8 99 22 57 69 6d 70 45 78 74 5f 53 65 | .."WimpExt_Se| 00008ff0 74 49 63 6f 6e 22 2c 2c 2c 6d 61 69 6e 25 2c 70 |tIcon",,,main%,p| 00009000 79 72 66 6f 75 6e 64 68 61 6e 25 2c 30 0d 2d 82 |yrfoundhan%,0.-.| 00009010 35 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c |5 sel| 00009020 65 63 74 65 64 25 3d a3 3a 66 69 72 73 74 69 63 |ected%=.:firstic| 00009030 6f 6e 25 3d 30 3a 66 69 72 73 74 63 61 72 64 25 |on%=0:firstcard%| 00009040 3d 30 0d 2d 8c 0f 20 20 20 20 20 20 20 20 20 20 |=0.-.. | 00009050 cc 0d 2d 96 1f 20 20 20 20 20 20 20 20 20 20 20 |..-.. | 00009060 20 e3 20 49 3d 35 32 20 b8 20 33 20 88 20 2d 31 | . I=52 . 3 . -1| 00009070 0d 2d a0 2d 20 20 20 20 20 20 20 20 20 20 20 20 |.-.- | 00009080 20 20 70 79 72 66 6f 75 6e 64 25 28 49 29 3d 70 | pyrfound%(I)=p| 00009090 79 72 66 6f 75 6e 64 25 28 49 2d 32 29 0d 2d aa |yrfound%(I-2).-.| 000090a0 13 20 20 20 20 20 20 20 20 20 20 20 20 ed 20 49 |. . I| 000090b0 0d 2d b4 27 20 20 20 20 20 20 20 20 20 20 20 20 |.-.' | 000090c0 70 79 72 66 6f 75 6e 64 25 28 32 29 3d 66 69 72 |pyrfound%(2)=fir| 000090d0 73 74 6e 61 6d 65 25 0d 2d be 22 20 20 20 20 20 |stname%.-." | 000090e0 20 20 20 20 20 20 20 70 79 72 66 6f 75 6e 64 25 | pyrfound%| 000090f0 28 31 29 3d 6e 61 6d 65 25 0d 2d c8 33 20 20 20 |(1)=name%.-.3 | 00009100 20 20 20 20 20 20 20 20 20 f2 70 79 72 61 6d 69 | .pyrami| 00009110 64 5f 6d 6f 76 65 63 61 72 64 28 66 69 72 73 74 |d_movecard(first| 00009120 69 63 6f 6e 25 2c 6e 61 6d 65 24 29 0d 2d d2 2e |icon%,name$).-..| 00009130 20 20 20 20 20 20 20 20 20 20 20 20 f2 70 79 72 | .pyr| 00009140 61 6d 69 64 5f 6d 6f 76 65 63 61 72 64 28 69 63 |amid_movecard(ic| 00009150 6f 6e 25 2c 6e 61 6d 65 24 29 0d 2d dc 35 20 20 |on%,name$).-.5 | 00009160 20 20 20 20 20 20 20 20 20 20 73 65 6c 65 63 74 | select| 00009170 65 64 25 3d a3 3a 66 69 72 73 74 63 61 72 64 25 |ed%=.:firstcard%| 00009180 3d 30 3a 66 69 72 73 74 69 63 6f 6e 25 3d 30 0d |=0:firsticon%=0.| 00009190 2d e6 0f 20 20 20 20 20 20 20 20 20 20 cd 0d 2d |-.. ..-| 000091a0 f0 0d 20 20 20 20 20 20 20 20 cd 0d 2d fa 0b 20 |.. ..-.. | 000091b0 20 20 20 20 20 cd 0d 2e 04 09 20 20 20 20 cd 0d | ..... ..| 000091c0 2e 0e 07 20 20 cd 0d 2e 18 05 cd 0d 2e 22 31 e7 |... ........"1.| 000091d0 20 64 65 61 6c 25 3d 34 20 84 20 70 79 72 64 65 | deal%=4 . pyrde| 000091e0 6c 65 74 65 64 25 28 31 29 3d b9 20 8c 20 f2 70 |leted%(1)=. . .p| 000091f0 79 72 61 6d 69 64 5f 73 63 6f 72 65 0d 2e 2c 16 |yramid_score..,.| 00009200 e7 20 6c 61 73 74 69 63 6f 6e 31 25 3c 3e 2d 31 |. lasticon1%<>-1| 00009210 20 8c 0d 2e 36 32 20 20 c8 99 22 57 69 6d 70 45 | ...62 .."WimpE| 00009220 78 74 5f 53 68 61 64 65 45 6e 74 72 79 22 2c 2c |xt_ShadeEntry",,| 00009230 67 6d 65 6e 75 25 2c 30 2c 30 20 b8 20 73 68 61 |gmenu%,0,0 . sha| 00009240 64 65 64 25 0d 2e 40 36 20 20 e7 20 73 68 61 64 |ded%..@6 . shad| 00009250 65 64 25 3d 30 20 8c 20 c8 99 22 57 69 6d 70 45 |ed%=0 . .."WimpE| 00009260 78 74 5f 53 68 61 64 65 45 6e 74 72 79 22 2c 2c |xt_ShadeEntry",,| 00009270 67 6d 65 6e 75 25 2c 30 2c 30 0d 2e 4a 05 cd 0d |gmenu%,0,0..J...| 00009280 2e 54 05 e1 0d 2e 5e 04 0d 2e 68 1e dd a4 70 79 |.T....^...h...py| 00009290 72 61 6d 69 64 5f 75 6e 63 6f 76 65 72 65 64 28 |ramid_uncovered(| 000092a0 69 63 6f 6e 25 29 0d 2e 72 3f f4 20 54 68 69 73 |icon%)..r?. This| 000092b0 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e | function return| 000092c0 73 20 54 52 55 45 20 69 66 20 74 68 65 20 73 65 |s TRUE if the se| 000092d0 6c 65 63 74 65 64 20 69 63 6f 6e 20 69 73 20 69 |lected icon is i| 000092e0 6e 20 74 68 65 0d 2e 7c 33 f4 20 6c 61 79 6f 75 |n the..|3. layou| 000092f0 74 20 61 6e 64 20 69 73 20 75 6e 63 6f 76 65 72 |t and is uncover| 00009300 65 64 2c 20 61 6e 64 20 46 41 4c 53 45 20 6f 74 |ed, and FALSE ot| 00009310 68 65 72 77 69 73 65 2e 0d 2e 86 0d ea 20 49 2c |herwise...... I,| 00009320 74 65 6d 70 25 0d 2e 90 0f 49 3d 30 3a 74 65 6d |temp%....I=0:tem| 00009330 70 25 3d a3 0d 2e 9a 05 f5 0d 2e a4 0b 20 20 49 |p%=.......... I| 00009340 3d 49 2b 31 0d 2e ae 25 20 20 e7 20 69 63 6f 6e |=I+1...% . icon| 00009350 25 3d 70 79 72 6c 61 79 68 61 6e 25 28 49 29 20 |%=pyrlayhan%(I) | 00009360 8c 20 74 65 6d 70 25 3d b9 0d 2e b8 14 fd 20 74 |. temp%=...... t| 00009370 65 6d 70 25 3d b9 20 84 20 49 3d 32 38 0d 2e c2 |emp%=. . I=28...| 00009380 13 e7 20 74 65 6d 70 25 3d a3 20 8c 20 49 3d 30 |.. temp%=. . I=0| 00009390 0d 2e cc 0e e7 20 49 3d 30 20 8c 20 3d a3 0d 2e |..... I=0 . =...| 000093a0 d6 34 e7 20 49 3d 31 20 80 20 70 79 72 64 65 6c |.4. I=1 . pyrdel| 000093b0 65 74 65 64 25 28 32 29 3d b9 20 80 20 70 79 72 |eted%(2)=. . pyr| 000093c0 64 65 6c 65 74 65 64 25 28 33 29 3d b9 20 8c 20 |deleted%(3)=. . | 000093d0 3d b9 0d 2e e0 34 e7 20 49 3d 32 20 80 20 70 79 |=....4. I=2 . py| 000093e0 72 64 65 6c 65 74 65 64 25 28 34 29 3d b9 20 80 |rdeleted%(4)=. .| 000093f0 20 70 79 72 64 65 6c 65 74 65 64 25 28 35 29 3d | pyrdeleted%(5)=| 00009400 b9 20 8c 20 3d b9 0d 2e ea 34 e7 20 49 3d 33 20 |. . =....4. I=3 | 00009410 80 20 70 79 72 64 65 6c 65 74 65 64 25 28 35 29 |. pyrdeleted%(5)| 00009420 3d b9 20 80 20 70 79 72 64 65 6c 65 74 65 64 25 |=. . pyrdeleted%| 00009430 28 36 29 3d b9 20 8c 20 3d b9 0d 2e f4 34 e7 20 |(6)=. . =....4. | 00009440 49 3d 34 20 80 20 70 79 72 64 65 6c 65 74 65 64 |I=4 . pyrdeleted| 00009450 25 28 37 29 3d b9 20 80 20 70 79 72 64 65 6c 65 |%(7)=. . pyrdele| 00009460 74 65 64 25 28 38 29 3d b9 20 8c 20 3d b9 0d 2e |ted%(8)=. . =...| 00009470 fe 34 e7 20 49 3d 35 20 80 20 70 79 72 64 65 6c |.4. I=5 . pyrdel| 00009480 65 74 65 64 25 28 38 29 3d b9 20 80 20 70 79 72 |eted%(8)=. . pyr| 00009490 64 65 6c 65 74 65 64 25 28 39 29 3d b9 20 8c 20 |deleted%(9)=. . | 000094a0 3d b9 0d 2f 08 35 e7 20 49 3d 36 20 80 20 70 79 |=../.5. I=6 . py| 000094b0 72 64 65 6c 65 74 65 64 25 28 39 29 3d b9 20 80 |rdeleted%(9)=. .| 000094c0 20 70 79 72 64 65 6c 65 74 65 64 25 28 31 30 29 | pyrdeleted%(10)| 000094d0 3d b9 20 8c 20 3d b9 0d 2f 12 36 e7 20 49 3d 37 |=. . =../.6. I=7| 000094e0 20 80 20 70 79 72 64 65 6c 65 74 65 64 25 28 31 | . pyrdeleted%(1| 000094f0 31 29 3d b9 20 80 20 70 79 72 64 65 6c 65 74 65 |1)=. . pyrdelete| 00009500 64 25 28 31 32 29 3d b9 20 8c 20 3d b9 0d 2f 1c |d%(12)=. . =../.| 00009510 36 e7 20 49 3d 38 20 80 20 70 79 72 64 65 6c 65 |6. I=8 . pyrdele| 00009520 74 65 64 25 28 31 32 29 3d b9 20 80 20 70 79 72 |ted%(12)=. . pyr| 00009530 64 65 6c 65 74 65 64 25 28 31 33 29 3d b9 20 8c |deleted%(13)=. .| 00009540 20 3d b9 0d 2f 26 36 e7 20 49 3d 39 20 80 20 70 | =../&6. I=9 . p| 00009550 79 72 64 65 6c 65 74 65 64 25 28 31 33 29 3d b9 |yrdeleted%(13)=.| 00009560 20 80 20 70 79 72 64 65 6c 65 74 65 64 25 28 31 | . pyrdeleted%(1| 00009570 34 29 3d b9 20 8c 20 3d b9 0d 2f 30 37 e7 20 49 |4)=. . =../07. I| 00009580 3d 31 30 20 80 20 70 79 72 64 65 6c 65 74 65 64 |=10 . pyrdeleted| 00009590 25 28 31 34 29 3d b9 20 80 20 70 79 72 64 65 6c |%(14)=. . pyrdel| 000095a0 65 74 65 64 25 28 31 35 29 3d b9 20 8c 20 3d b9 |eted%(15)=. . =.| 000095b0 0d 2f 3a 37 e7 20 49 3d 31 31 20 80 20 70 79 72 |./:7. I=11 . pyr| 000095c0 64 65 6c 65 74 65 64 25 28 31 36 29 3d b9 20 80 |deleted%(16)=. .| 000095d0 20 70 79 72 64 65 6c 65 74 65 64 25 28 31 37 29 | pyrdeleted%(17)| 000095e0 3d b9 20 8c 20 3d b9 0d 2f 44 37 e7 20 49 3d 31 |=. . =../D7. I=1| 000095f0 32 20 80 20 70 79 72 64 65 6c 65 74 65 64 25 28 |2 . pyrdeleted%(| 00009600 31 37 29 3d b9 20 80 20 70 79 72 64 65 6c 65 74 |17)=. . pyrdelet| 00009610 65 64 25 28 31 38 29 3d b9 20 8c 20 3d b9 0d 2f |ed%(18)=. . =../| 00009620 4e 37 e7 20 49 3d 31 33 20 80 20 70 79 72 64 65 |N7. I=13 . pyrde| 00009630 6c 65 74 65 64 25 28 31 38 29 3d b9 20 80 20 70 |leted%(18)=. . p| 00009640 79 72 64 65 6c 65 74 65 64 25 28 31 39 29 3d b9 |yrdeleted%(19)=.| 00009650 20 8c 20 3d b9 0d 2f 58 37 e7 20 49 3d 31 34 20 | . =../X7. I=14 | 00009660 80 20 70 79 72 64 65 6c 65 74 65 64 25 28 31 39 |. pyrdeleted%(19| 00009670 29 3d b9 20 80 20 70 79 72 64 65 6c 65 74 65 64 |)=. . pyrdeleted| 00009680 25 28 32 30 29 3d b9 20 8c 20 3d b9 0d 2f 62 37 |%(20)=. . =../b7| 00009690 e7 20 49 3d 31 35 20 80 20 70 79 72 64 65 6c 65 |. I=15 . pyrdele| 000096a0 74 65 64 25 28 32 30 29 3d b9 20 80 20 70 79 72 |ted%(20)=. . pyr| 000096b0 64 65 6c 65 74 65 64 25 28 32 31 29 3d b9 20 8c |deleted%(21)=. .| 000096c0 20 3d b9 0d 2f 6c 37 e7 20 49 3d 31 36 20 80 20 | =../l7. I=16 . | 000096d0 70 79 72 64 65 6c 65 74 65 64 25 28 32 32 29 3d |pyrdeleted%(22)=| 000096e0 b9 20 80 20 70 79 72 64 65 6c 65 74 65 64 25 28 |. . pyrdeleted%(| 000096f0 32 33 29 3d b9 20 8c 20 3d b9 0d 2f 76 37 e7 20 |23)=. . =../v7. | 00009700 49 3d 31 37 20 80 20 70 79 72 64 65 6c 65 74 65 |I=17 . pyrdelete| 00009710 64 25 28 32 33 29 3d b9 20 80 20 70 79 72 64 65 |d%(23)=. . pyrde| 00009720 6c 65 74 65 64 25 28 32 34 29 3d b9 20 8c 20 3d |leted%(24)=. . =| 00009730 b9 0d 2f 80 37 e7 20 49 3d 31 38 20 80 20 70 79 |../.7. I=18 . py| 00009740 72 64 65 6c 65 74 65 64 25 28 32 34 29 3d b9 20 |rdeleted%(24)=. | 00009750 80 20 70 79 72 64 65 6c 65 74 65 64 25 28 32 35 |. pyrdeleted%(25| 00009760 29 3d b9 20 8c 20 3d b9 0d 2f 8a 37 e7 20 49 3d |)=. . =../.7. I=| 00009770 31 39 20 80 20 70 79 72 64 65 6c 65 74 65 64 25 |19 . pyrdeleted%| 00009780 28 32 35 29 3d b9 20 80 20 70 79 72 64 65 6c 65 |(25)=. . pyrdele| 00009790 74 65 64 25 28 32 36 29 3d b9 20 8c 20 3d b9 0d |ted%(26)=. . =..| 000097a0 2f 94 37 e7 20 49 3d 32 30 20 80 20 70 79 72 64 |/.7. I=20 . pyrd| 000097b0 65 6c 65 74 65 64 25 28 32 36 29 3d b9 20 80 20 |eleted%(26)=. . | 000097c0 70 79 72 64 65 6c 65 74 65 64 25 28 32 37 29 3d |pyrdeleted%(27)=| 000097d0 b9 20 8c 20 3d b9 0d 2f 9e 37 e7 20 49 3d 32 31 |. . =../.7. I=21| 000097e0 20 80 20 70 79 72 64 65 6c 65 74 65 64 25 28 32 | . pyrdeleted%(2| 000097f0 37 29 3d b9 20 80 20 70 79 72 64 65 6c 65 74 65 |7)=. . pyrdelete| 00009800 64 25 28 32 38 29 3d b9 20 8c 20 3d b9 0d 2f a8 |d%(28)=. . =../.| 00009810 0f e7 20 49 3d 32 32 20 8c 20 3d b9 0d 2f b2 0f |.. I=22 . =../..| 00009820 e7 20 49 3d 32 33 20 8c 20 3d b9 0d 2f bc 0f e7 |. I=23 . =../...| 00009830 20 49 3d 32 34 20 8c 20 3d b9 0d 2f c6 0f e7 20 | I=24 . =../... | 00009840 49 3d 32 35 20 8c 20 3d b9 0d 2f d0 0f e7 20 49 |I=25 . =../... I| 00009850 3d 32 36 20 8c 20 3d b9 0d 2f da 0f e7 20 49 3d |=26 . =../... I=| 00009860 32 37 20 8c 20 3d b9 0d 2f e4 0f e7 20 49 3d 32 |27 . =../... I=2| 00009870 38 20 8c 20 3d b9 0d 2f ee 06 3d a3 0d 2f f8 04 |8 . =../..=../..| 00009880 0d 30 02 23 dd f2 70 79 72 61 6d 69 64 5f 6d 6f |.0.#..pyramid_mo| 00009890 76 65 63 61 72 64 28 69 63 6f 6e 25 2c 6e 61 6d |vecard(icon%,nam| 000098a0 65 24 29 0d 30 0c 41 f4 20 54 68 69 73 20 70 72 |e$).0.A. This pr| 000098b0 6f 63 65 64 75 72 65 20 74 61 6b 65 73 20 63 61 |ocedure takes ca| 000098c0 72 65 20 6f 66 20 6d 6f 76 69 6e 67 20 74 68 65 |re of moving the| 000098d0 20 63 61 72 64 20 66 72 6f 6d 20 74 68 65 20 73 | card from the s| 000098e0 74 61 72 74 0d 30 16 41 f4 20 6c 6f 63 61 74 69 |tart.0.A. locati| 000098f0 6f 6e 20 74 6f 20 74 68 65 20 66 6f 75 6e 64 61 |on to the founda| 00009900 74 69 6f 6e 2c 20 69 6e 63 6c 75 64 69 6e 67 20 |tion, including | 00009910 6d 6f 76 69 6e 67 20 63 61 72 64 73 20 72 6f 75 |moving cards rou| 00009920 6e 64 20 69 6e 0d 30 20 2c f4 20 70 69 6c 65 73 |nd in.0 ,. piles| 00009930 20 61 6e 64 20 64 65 6c 65 74 69 6e 67 20 74 68 | and deleting th| 00009940 65 20 72 65 6c 65 76 61 6e 74 20 69 63 6f 6e 73 |e relevant icons| 00009950 2e 0d 30 2a 07 ea 20 49 0d 30 34 2c f2 73 65 74 |..0*.. I.04,.set| 00009960 69 63 6f 6e 73 70 72 69 74 65 28 6d 61 69 6e 25 |iconsprite(main%| 00009970 2c 70 79 72 66 6f 75 6e 64 68 61 6e 25 2c 6e 61 |,pyrfoundhan%,na| 00009980 6d 65 24 29 0d 30 3e 10 63 61 72 64 6d 6f 76 65 |me$).0>.cardmove| 00009990 64 25 3d b9 0d 30 48 1a e7 20 69 63 6f 6e 25 3d |d%=..0H.. icon%=| 000099a0 70 79 72 77 61 73 74 65 68 61 6e 25 20 8c 0d 30 |pyrwastehan% ..0| 000099b0 52 10 20 20 e3 20 49 3d 31 20 b8 20 32 33 0d 30 |R. . I=1 . 23.0| 000099c0 5c 23 20 20 20 20 70 79 72 77 61 73 74 65 25 28 |\# pyrwaste%(| 000099d0 49 29 3d 70 79 72 77 61 73 74 65 25 28 49 2b 31 |I)=pyrwaste%(I+1| 000099e0 29 0d 30 66 09 20 20 ed 20 49 0d 30 70 15 20 20 |).0f. . I.0p. | 000099f0 70 79 72 77 61 73 74 65 25 28 32 34 29 3d 30 0d |pyrwaste%(24)=0.| 00009a00 30 7a 18 20 20 e7 20 70 79 72 77 61 73 74 65 25 |0z. . pyrwaste%| 00009a10 28 31 29 3d 30 20 8c 0d 30 84 33 20 20 20 20 f2 |(1)=0 ..0.3 .| 00009a20 73 65 74 69 63 6f 6e 73 70 72 69 74 65 28 6d 61 |seticonsprite(ma| 00009a30 69 6e 25 2c 70 79 72 77 61 73 74 65 68 61 6e 25 |in%,pyrwastehan%| 00009a40 2c 22 6e 6f 63 61 72 64 22 29 0d 30 8e 07 20 20 |,"nocard").0.. | 00009a50 cc 0d 30 98 38 20 20 20 20 f2 73 65 74 69 63 6f |..0.8 .setico| 00009a60 6e 73 70 72 69 74 65 28 6d 61 69 6e 25 2c 70 79 |nsprite(main%,py| 00009a70 72 77 61 73 74 65 68 61 6e 25 2c c3 70 79 72 77 |rwastehan%,.pyrw| 00009a80 61 73 74 65 25 28 31 29 29 0d 30 a2 07 20 20 cd |aste%(1)).0.. .| 00009a90 0d 30 ac 1d 20 20 63 61 72 64 73 6c 65 66 74 25 |.0.. cardsleft%| 00009aa0 3d 63 61 72 64 73 6c 65 66 74 25 2d 31 0d 30 b6 |=cardsleft%-1.0.| 00009ab0 51 20 20 c8 99 22 57 69 6d 70 45 78 74 5f 53 65 |Q .."WimpExt_Se| 00009ac0 74 49 63 6f 6e 53 74 72 69 6e 67 22 2c 2c 2c 6d |tIconString",,,m| 00009ad0 61 69 6e 25 2c 63 61 72 64 73 6c 65 66 74 68 61 |ain%,cardsleftha| 00009ae0 6e 25 2c 22 43 61 72 64 73 20 6c 65 66 74 20 3a |n%,"Cards left :| 00009af0 20 22 2b c3 63 61 72 64 73 6c 65 66 74 25 0d 30 | "+.cardsleft%.0| 00009b00 c0 05 cc 0d 30 ca 1d 20 20 f2 62 6c 61 6e 6b 69 |....0.. .blanki| 00009b10 63 6f 6e 28 6d 61 69 6e 25 2c 69 63 6f 6e 25 29 |con(main%,icon%)| 00009b20 0d 30 d4 10 20 20 e3 20 49 3d 31 20 b8 20 32 38 |.0.. . I=1 . 28| 00009b30 0d 30 de 1f 20 20 20 20 e7 20 70 79 72 6c 61 79 |.0.. . pyrlay| 00009b40 68 61 6e 25 28 49 29 3d 69 63 6f 6e 25 20 8c 0d |han%(I)=icon% ..| 00009b50 30 e8 1a 20 20 20 20 20 20 70 79 72 64 65 6c 65 |0.. pyrdele| 00009b60 74 65 64 25 28 49 29 3d b9 0d 30 f2 16 20 20 20 |ted%(I)=..0.. | 00009b70 20 20 20 70 79 72 6c 61 79 25 28 49 29 3d 30 0d | pyrlay%(I)=0.| 00009b80 30 fc 09 20 20 20 20 cd 0d 31 06 09 20 20 ed 20 |0.. ..1.. . | 00009b90 49 0d 31 10 05 cd 0d 31 1a 05 e1 0d 31 24 04 0d |I.1....1....1$..| 00009ba0 31 2e 12 dd f2 70 79 72 61 6d 69 64 5f 75 6e 64 |1....pyramid_und| 00009bb0 6f 0d 31 38 3a f4 20 54 68 69 73 20 70 72 6f 63 |o.18:. This proc| 00009bc0 65 64 75 72 65 20 77 69 6c 6c 20 75 6e 64 6f 20 |edure will undo | 00009bd0 74 68 65 20 6c 61 73 74 20 61 63 74 69 6f 6e 20 |the last action | 00009be0 69 6e 20 50 79 72 61 6d 69 64 2e 0d 31 42 15 ea |in Pyramid..1B..| 00009bf0 20 49 2c 74 65 6d 70 31 25 2c 74 65 6d 70 32 25 | I,temp1%,temp2%| 00009c00 0d 31 4c 26 c8 99 22 57 69 6d 70 45 78 74 5f 53 |.1L&.."WimpExt_S| 00009c10 68 61 64 65 45 6e 74 72 79 22 2c 2c 67 6d 65 6e |hadeEntry",,gmen| 00009c20 75 25 2c 30 2c 31 0d 31 56 2e e7 20 6c 61 73 74 |u%,0,1.1V.. last| 00009c30 69 63 6f 6e 32 25 3d 2d 31 20 80 20 6c 61 73 74 |icon2%=-1 . last| 00009c40 69 63 6f 6e 31 25 3d 70 79 72 70 61 63 6b 68 61 |icon1%=pyrpackha| 00009c50 6e 25 20 8c 0d 31 60 18 20 20 e7 20 70 79 72 77 |n% ..1`. . pyrw| 00009c60 61 73 74 65 25 28 31 29 3d 30 20 8c 0d 31 6a 12 |aste%(1)=0 ..1j.| 00009c70 20 20 20 20 e3 20 49 3d 31 20 b8 20 32 34 0d 31 | . I=1 . 24.1| 00009c80 74 25 20 20 20 20 20 20 70 79 72 77 61 73 74 65 |t% pyrwaste| 00009c90 25 28 32 35 2d 49 29 3d 70 79 72 70 61 63 6b 25 |%(25-I)=pyrpack%| 00009ca0 28 49 29 0d 31 7e 17 20 20 20 20 20 20 70 79 72 |(I).1~. pyr| 00009cb0 70 61 63 6b 25 28 49 29 3d 30 0d 31 88 0b 20 20 |pack%(I)=0.1.. | 00009cc0 20 20 ed 20 49 0d 31 92 19 20 20 20 20 c8 95 20 | . I.1.. .. | 00009cd0 70 79 72 77 61 73 74 65 25 28 31 29 3d 30 0d 31 |pyrwaste%(1)=0.1| 00009ce0 9c 14 20 20 20 20 20 20 e3 20 49 3d 31 20 b8 20 |.. . I=1 . | 00009cf0 32 34 0d 31 a6 27 20 20 20 20 20 20 20 20 70 79 |24.1.' py| 00009d00 72 77 61 73 74 65 25 28 49 29 3d 70 79 72 77 61 |rwaste%(I)=pyrwa| 00009d10 73 74 65 25 28 49 2b 31 29 0d 31 b0 0d 20 20 20 |ste%(I+1).1.. | 00009d20 20 20 20 ed 20 49 0d 31 ba 09 20 20 20 20 ce 0d | . I.1.. ..| 00009d30 31 c4 15 20 20 20 20 64 65 61 6c 25 3d 64 65 61 |1.. deal%=dea| 00009d40 6c 25 2d 31 0d 31 ce 43 20 20 20 20 c8 99 22 57 |l%-1.1.C .."W| 00009d50 69 6d 70 45 78 74 5f 53 65 74 49 63 6f 6e 53 74 |impExt_SetIconSt| 00009d60 72 69 6e 67 22 2c 2c 2c 6d 61 69 6e 25 2c 64 65 |ring",,,main%,de| 00009d70 61 6c 68 61 6e 25 2c 22 44 65 61 6c 20 3a 20 22 |alhan%,"Deal : "| 00009d80 2b c3 64 65 61 6c 25 0d 31 d8 38 20 20 20 20 f2 |+.deal%.1.8 .| 00009d90 73 65 74 69 63 6f 6e 73 70 72 69 74 65 28 6d 61 |seticonsprite(ma| 00009da0 69 6e 25 2c 70 79 72 77 61 73 74 65 68 61 6e 25 |in%,pyrwastehan%| 00009db0 2c c3 70 79 72 77 61 73 74 65 25 28 31 29 29 0d |,.pyrwaste%(1)).| 00009dc0 31 e2 32 20 20 20 20 f2 73 65 74 69 63 6f 6e 73 |1.2 .seticons| 00009dd0 70 72 69 74 65 28 6d 61 69 6e 25 2c 70 79 72 70 |prite(main%,pyrp| 00009de0 61 63 6b 68 61 6e 25 2c 22 6e 6f 63 61 72 64 22 |ackhan%,"nocard"| 00009df0 29 0d 31 ec 07 20 20 cc 0d 31 f6 17 20 20 20 20 |).1.. ..1.. | 00009e00 e3 20 49 3d 32 34 20 b8 20 32 20 88 20 2d 31 0d |. I=24 . 2 . -1.| 00009e10 32 00 23 20 20 20 20 20 20 70 79 72 70 61 63 6b |2.# pyrpack| 00009e20 25 28 49 29 3d 70 79 72 70 61 63 6b 25 28 49 2d |%(I)=pyrpack%(I-| 00009e30 31 29 0d 32 0a 0b 20 20 20 20 ed 20 49 0d 32 14 |1).2.. . I.2.| 00009e40 20 20 20 20 20 70 79 72 70 61 63 6b 25 28 31 29 | pyrpack%(1)| 00009e50 3d 70 79 72 77 61 73 74 65 25 28 31 29 0d 32 1e |=pyrwaste%(1).2.| 00009e60 12 20 20 20 20 e3 20 49 3d 31 20 b8 20 32 33 0d |. . I=1 . 23.| 00009e70 32 28 25 20 20 20 20 20 20 70 79 72 77 61 73 74 |2(% pyrwast| 00009e80 65 25 28 49 29 3d 70 79 72 77 61 73 74 65 25 28 |e%(I)=pyrwaste%(| 00009e90 49 2b 31 29 0d 32 32 0b 20 20 20 20 ed 20 49 0d |I+1).22. . I.| 00009ea0 32 3c 17 20 20 20 20 70 79 72 77 61 73 74 65 25 |2<. pyrwaste%| 00009eb0 28 32 34 29 3d 30 0d 32 46 79 20 20 20 20 e7 20 |(24)=0.2Fy . | 00009ec0 70 79 72 77 61 73 74 65 25 28 31 29 3d 30 20 8c |pyrwaste%(1)=0 .| 00009ed0 20 f2 73 65 74 69 63 6f 6e 73 70 72 69 74 65 28 | .seticonsprite(| 00009ee0 6d 61 69 6e 25 2c 70 79 72 77 61 73 74 65 68 61 |main%,pyrwasteha| 00009ef0 6e 25 2c 22 6e 6f 63 61 72 64 22 29 20 8b 20 f2 |n%,"nocard") . .| 00009f00 73 65 74 69 63 6f 6e 73 70 72 69 74 65 28 6d 61 |seticonsprite(ma| 00009f10 69 6e 25 2c 70 79 72 77 61 73 74 65 68 61 6e 25 |in%,pyrwastehan%| 00009f20 2c c3 70 79 72 77 61 73 74 65 25 28 31 29 29 0d |,.pyrwaste%(1)).| 00009f30 32 50 30 20 20 20 20 f2 73 65 74 69 63 6f 6e 73 |2P0 .seticons| 00009f40 70 72 69 74 65 28 6d 61 69 6e 25 2c 70 79 72 70 |prite(main%,pyrp| 00009f50 61 63 6b 68 61 6e 25 2c 22 62 61 63 6b 22 29 0d |ackhan%,"back").| 00009f60 32 5a 07 20 20 cd 0d 32 64 05 cd 0d 32 6e 15 e7 |2Z. ..2d...2n..| 00009f70 20 6c 61 73 74 69 63 6f 6e 32 25 3d 2d 31 20 8c | lasticon2%=-1 .| 00009f80 0d 32 78 16 20 20 e7 20 6c 61 73 74 76 61 6c 31 |.2x. . lastval1| 00009f90 25 3d 31 33 20 8c 0d 32 82 41 20 20 20 20 f4 20 |%=13 ..2.A . | 00009fa0 74 61 6b 65 20 74 68 65 20 6b 69 6e 67 20 6f 66 |take the king of| 00009fb0 66 20 74 68 65 20 66 6f 75 6e 64 61 74 69 6f 6e |f the foundation| 00009fc0 20 61 6e 64 20 70 75 74 20 69 74 20 62 61 63 6b | and put it back| 00009fd0 20 6f 6e 20 74 68 65 0d 32 8c 1f 20 20 20 20 f4 | on the.2.. .| 00009fe0 20 6c 61 79 6f 75 74 20 6f 72 20 77 61 73 74 65 | layout or waste| 00009ff0 20 70 69 6c 65 2e 0d 32 96 1b 20 20 20 20 74 65 | pile..2.. te| 0000a000 6d 70 31 25 3d 70 79 72 66 6f 75 6e 64 25 28 31 |mp1%=pyrfound%(1| 0000a010 29 0d 32 a0 12 20 20 20 20 e3 20 49 3d 31 20 b8 |).2.. . I=1 .| 0000a020 20 35 31 0d 32 aa 25 20 20 20 20 20 20 70 79 72 | 51.2.% pyr| 0000a030 66 6f 75 6e 64 25 28 49 29 3d 70 79 72 66 6f 75 |found%(I)=pyrfou| 0000a040 6e 64 25 28 49 2b 31 29 0d 32 b4 0b 20 20 20 20 |nd%(I+1).2.. | 0000a050 ed 20 49 0d 32 be 17 20 20 20 20 70 79 72 66 6f |. I.2.. pyrfo| 0000a060 75 6e 64 25 28 35 32 29 3d 30 0d 32 c8 23 20 20 |und%(52)=0.2.# | 0000a070 20 20 e7 20 6c 61 73 74 69 63 6f 6e 31 25 3d 70 | . lasticon1%=p| 0000a080 79 72 77 61 73 74 65 68 61 6e 25 20 8c 0d 32 d2 |yrwastehan% ..2.| 0000a090 19 20 20 20 20 20 20 e3 20 49 3d 32 34 20 b8 20 |. . I=24 . | 0000a0a0 32 20 88 20 2d 31 0d 32 dc 27 20 20 20 20 20 20 |2 . -1.2.' | 0000a0b0 20 20 70 79 72 77 61 73 74 65 25 28 49 29 3d 70 | pyrwaste%(I)=p| 0000a0c0 79 72 77 61 73 74 65 25 28 49 2d 31 29 0d 32 e6 |yrwaste%(I-1).2.| 0000a0d0 0d 20 20 20 20 20 20 ed 20 49 0d 32 f0 1d 20 20 |. . I.2.. | 0000a0e0 20 20 20 20 70 79 72 77 61 73 74 65 25 28 31 29 | pyrwaste%(1)| 0000a0f0 3d 74 65 6d 70 31 25 0d 32 fa 3a 20 20 20 20 20 |=temp1%.2.: | 0000a100 20 f2 73 65 74 69 63 6f 6e 73 70 72 69 74 65 28 | .seticonsprite(| 0000a110 6d 61 69 6e 25 2c 70 79 72 77 61 73 74 65 68 61 |main%,pyrwasteha| 0000a120 6e 25 2c c3 70 79 72 77 61 73 74 65 25 28 31 29 |n%,.pyrwaste%(1)| 0000a130 29 0d 33 04 6d 20 20 20 20 20 20 63 61 72 64 73 |).3.m cards| 0000a140 6c 65 66 74 25 3d 63 61 72 64 73 6c 65 66 74 25 |left%=cardsleft%| 0000a150 2b 31 3a c8 99 22 57 69 6d 70 45 78 74 5f 53 65 |+1:.."WimpExt_Se| 0000a160 74 49 63 6f 6e 53 74 72 69 6e 67 22 2c 2c 2c 6d |tIconString",,,m| 0000a170 61 69 6e 25 2c 63 61 72 64 73 6c 65 66 74 68 61 |ain%,cardsleftha| 0000a180 6e 25 2c 22 43 61 72 64 73 20 6c 65 66 74 20 3a |n%,"Cards left :| 0000a190 20 22 2b c3 63 61 72 64 73 6c 65 66 74 25 0d 33 | "+.cardsleft%.3| 0000a1a0 0e 09 20 20 20 20 cc 0d 33 18 0d 20 20 20 20 20 |.. ..3.. | 0000a1b0 20 49 3d 31 0d 33 22 0b 20 20 20 20 20 20 f5 0d | I=1.3". ..| 0000a1c0 33 2c 11 20 20 20 20 20 20 20 20 49 3d 49 2b 31 |3,. I=I+1| 0000a1d0 0d 33 36 2b 20 20 20 20 20 20 fd 20 49 3d 32 38 |.36+ . I=28| 0000a1e0 20 84 20 70 79 72 6c 61 79 68 61 6e 25 28 49 29 | . pyrlayhan%(I)| 0000a1f0 3d 6c 61 73 74 69 63 6f 6e 31 25 0d 33 40 26 20 |=lasticon1%.3@& | 0000a200 20 20 20 20 20 e7 20 70 79 72 6c 61 79 68 61 6e | . pyrlayhan| 0000a210 25 28 49 29 3d 6c 61 73 74 69 63 6f 6e 31 25 20 |%(I)=lasticon1% | 0000a220 8c 0d 33 4a 1d 20 20 20 20 20 20 20 20 70 79 72 |..3J. pyr| 0000a230 6c 61 79 25 28 49 29 3d 74 65 6d 70 31 25 0d 33 |lay%(I)=temp1%.3| 0000a240 54 3b 20 20 20 20 20 20 20 20 f2 73 65 74 69 63 |T; .setic| 0000a250 6f 6e 73 70 72 69 74 65 28 6d 61 69 6e 25 2c 70 |onsprite(main%,p| 0000a260 79 72 6c 61 79 68 61 6e 25 28 49 29 2c c3 70 79 |yrlayhan%(I),.py| 0000a270 72 6c 61 79 25 28 49 29 29 0d 33 5e 1c 20 20 20 |rlay%(I)).3^. | 0000a280 20 20 20 20 20 70 79 72 64 65 6c 65 74 65 64 25 | pyrdeleted%| 0000a290 28 49 29 3d a3 0d 33 68 0b 20 20 20 20 20 20 cd |(I)=..3h. .| 0000a2a0 0d 33 72 09 20 20 20 20 cd 0d 33 7c 1a 20 20 20 |.3r. ..3|. | 0000a2b0 20 e7 20 70 79 72 66 6f 75 6e 64 25 28 31 29 3d | . pyrfound%(1)=| 0000a2c0 30 20 8c 0d 33 86 35 20 20 20 20 20 20 f2 73 65 |0 ..3.5 .se| 0000a2d0 74 69 63 6f 6e 73 70 72 69 74 65 28 6d 61 69 6e |ticonsprite(main| 0000a2e0 25 2c 70 79 72 66 6f 75 6e 64 68 61 6e 25 2c 22 |%,pyrfoundhan%,"| 0000a2f0 6e 6f 63 61 72 64 22 29 0d 33 90 09 20 20 20 20 |nocard").3.. | 0000a300 cc 0d 33 9a 3a 20 20 20 20 20 20 f2 73 65 74 69 |..3.: .seti| 0000a310 63 6f 6e 73 70 72 69 74 65 28 6d 61 69 6e 25 2c |consprite(main%,| 0000a320 70 79 72 66 6f 75 6e 64 68 61 6e 25 2c c3 70 79 |pyrfoundhan%,.py| 0000a330 72 66 6f 75 6e 64 25 28 31 29 29 0d 33 a4 09 20 |rfound%(1)).3.. | 0000a340 20 20 20 cd 0d 33 ae 07 20 20 cc 0d 33 b8 30 20 | ..3.. ..3.0 | 0000a350 20 20 20 c8 99 22 57 69 6d 70 45 78 74 5f 53 65 | .."WimpExt_Se| 0000a360 74 49 63 6f 6e 22 2c 2c 2c 6d 61 69 6e 25 2c 6c |tIcon",,,main%,l| 0000a370 61 73 74 69 63 6f 6e 31 25 2c 30 0d 33 c2 07 20 |asticon1%,0.3.. | 0000a380 20 cd 0d 33 cc 05 cd 0d 33 d6 15 e7 20 6c 61 73 | ..3....3... las| 0000a390 74 76 61 6c 32 25 3c 3e 2d 31 20 8c 0d 33 e0 39 |tval2%<>-1 ..3.9| 0000a3a0 f4 20 54 61 6b 65 20 74 68 65 20 63 61 72 64 73 |. Take the cards| 0000a3b0 20 61 6e 64 20 70 75 74 20 74 68 65 6d 20 69 6e | and put them in| 0000a3c0 74 6f 20 74 65 6d 70 31 25 20 61 6e 64 20 74 65 |to temp1% and te| 0000a3d0 6d 70 32 25 2e 0d 33 ea 2d 20 20 74 65 6d 70 32 |mp2%..3.- temp2| 0000a3e0 25 3d 70 79 72 66 6f 75 6e 64 25 28 31 29 3a 74 |%=pyrfound%(1):t| 0000a3f0 65 6d 70 31 25 3d 70 79 72 66 6f 75 6e 64 25 28 |emp1%=pyrfound%(| 0000a400 32 29 0d 33 f4 2b f4 20 53 68 69 66 74 20 74 68 |2).3.+. Shift th| 0000a410 65 20 66 6f 75 6e 64 61 74 69 6f 6e 20 62 61 63 |e foundation bac| 0000a420 6b 20 75 70 20 32 20 63 61 72 64 73 2e 0d 33 fe |k up 2 cards..3.| 0000a430 10 20 20 e3 20 49 3d 31 20 b8 20 35 30 0d 34 08 |. . I=1 . 50.4.| 0000a440 23 20 20 20 20 70 79 72 66 6f 75 6e 64 25 28 49 |# pyrfound%(I| 0000a450 29 3d 70 79 72 66 6f 75 6e 64 25 28 49 2b 32 29 |)=pyrfound%(I+2)| 0000a460 0d 34 12 09 20 20 ed 20 49 0d 34 1c 44 f4 20 50 |.4.. . I.4.D. P| 0000a470 75 74 20 73 70 65 63 69 61 6c 20 63 61 73 65 73 |ut special cases| 0000a480 20 69 6e 20 2d 20 69 66 20 74 65 6d 70 31 25 20 | in - if temp1% | 0000a490 6f 72 20 74 65 6d 70 32 25 20 61 72 65 20 74 68 |or temp2% are th| 0000a4a0 65 20 66 6f 75 6e 64 61 74 69 6f 6e 2c 0d 34 26 |e foundation,.4&| 0000a4b0 3e f4 20 74 68 65 6e 20 70 75 74 20 69 74 20 62 |>. then put it b| 0000a4c0 61 63 6b 20 28 73 69 6e 67 6c 65 20 70 72 6f 63 |ack (single proc| 0000a4d0 65 64 75 72 65 29 2c 20 75 73 69 6e 67 20 50 52 |edure), using PR| 0000a4e0 4f 43 6d 6f 76 65 63 61 72 64 2e 0d 34 30 21 20 |OCmovecard..40! | 0000a4f0 20 e7 20 6c 61 73 74 69 63 6f 6e 31 25 3d 70 79 | . lasticon1%=py| 0000a500 72 66 6f 75 6e 64 68 61 6e 25 20 8c 0d 34 3a 32 |rfoundhan% ..4:2| 0000a510 20 20 20 20 f2 73 65 74 69 63 6f 6e 73 70 72 69 | .seticonspri| 0000a520 74 65 28 6d 61 69 6e 25 2c 70 79 72 66 6f 75 6e |te(main%,pyrfoun| 0000a530 64 68 61 6e 25 2c c3 74 65 6d 70 31 25 29 0d 34 |dhan%,.temp1%).4| 0000a540 44 17 20 20 20 20 e3 20 49 3d 35 32 20 b8 20 32 |D. . I=52 . 2| 0000a550 20 88 20 2d 31 0d 34 4e 25 20 20 20 20 20 20 70 | . -1.4N% p| 0000a560 79 72 66 6f 75 6e 64 25 28 49 29 3d 70 79 72 66 |yrfound%(I)=pyrf| 0000a570 6f 75 6e 64 25 28 49 2d 31 29 0d 34 58 0b 20 20 |ound%(I-1).4X. | 0000a580 20 20 ed 20 49 0d 34 62 1b 20 20 20 20 70 79 72 | . I.4b. pyr| 0000a590 66 6f 75 6e 64 25 28 31 29 3d 74 65 6d 70 31 25 |found%(1)=temp1%| 0000a5a0 0d 34 6c 07 20 20 cd 0d 34 76 21 20 20 e7 20 6c |.4l. ..4v! . l| 0000a5b0 61 73 74 69 63 6f 6e 32 25 3d 70 79 72 66 6f 75 |asticon2%=pyrfou| 0000a5c0 6e 64 68 61 6e 25 20 8c 0d 34 80 32 20 20 20 20 |ndhan% ..4.2 | 0000a5d0 f2 73 65 74 69 63 6f 6e 73 70 72 69 74 65 28 6d |.seticonsprite(m| 0000a5e0 61 69 6e 25 2c 70 79 72 66 6f 75 6e 64 68 61 6e |ain%,pyrfoundhan| 0000a5f0 25 2c c3 74 65 6d 70 32 25 29 0d 34 8a 17 20 20 |%,.temp2%).4.. | 0000a600 20 20 e3 20 49 3d 35 32 20 b8 20 32 20 88 20 2d | . I=52 . 2 . -| 0000a610 31 0d 34 94 25 20 20 20 20 20 20 70 79 72 66 6f |1.4.% pyrfo| 0000a620 75 6e 64 25 28 49 29 3d 70 79 72 66 6f 75 6e 64 |und%(I)=pyrfound| 0000a630 25 28 49 2d 31 29 0d 34 9e 0b 20 20 20 20 ed 20 |%(I-1).4.. . | 0000a640 49 0d 34 a8 1b 20 20 20 20 70 79 72 66 6f 75 6e |I.4.. pyrfoun| 0000a650 64 25 28 31 29 3d 74 65 6d 70 32 25 0d 34 b2 07 |d%(1)=temp2%.4..| 0000a660 20 20 cd 0d 34 bc 3c f4 20 4e 65 65 64 20 73 69 | ..4.<. Need si| 0000a670 6d 69 6c 61 72 20 63 68 65 63 6b 20 66 6f 72 20 |milar check for | 0000a680 77 61 73 74 65 20 70 69 6c 65 2c 20 74 6f 20 6d |waste pile, to m| 0000a690 6f 76 65 20 63 61 72 64 73 20 64 6f 77 6e 2e 0d |ove cards down..| 0000a6a0 34 c6 21 20 20 e7 20 6c 61 73 74 69 63 6f 6e 31 |4.! . lasticon1| 0000a6b0 25 3d 70 79 72 77 61 73 74 65 68 61 6e 25 20 8c |%=pyrwastehan% .| 0000a6c0 0d 34 d0 32 20 20 20 20 f2 73 65 74 69 63 6f 6e |.4.2 .seticon| 0000a6d0 73 70 72 69 74 65 28 6d 61 69 6e 25 2c 70 79 72 |sprite(main%,pyr| 0000a6e0 77 61 73 74 65 68 61 6e 25 2c c3 74 65 6d 70 31 |wastehan%,.temp1| 0000a6f0 25 29 0d 34 da 17 20 20 20 20 e3 20 49 3d 32 34 |%).4.. . I=24| 0000a700 20 b8 20 32 20 88 20 2d 31 0d 34 e4 25 20 20 20 | . 2 . -1.4.% | 0000a710 20 20 20 70 79 72 77 61 73 74 65 25 28 49 29 3d | pyrwaste%(I)=| 0000a720 70 79 72 77 61 73 74 65 25 28 49 2d 31 29 0d 34 |pyrwaste%(I-1).4| 0000a730 ee 0b 20 20 20 20 ed 20 49 0d 34 f8 7f 20 20 20 |.. . I.4.. | 0000a740 20 70 79 72 77 61 73 74 65 25 28 31 29 3d 74 65 | pyrwaste%(1)=te| 0000a750 6d 70 31 25 3a 63 61 72 64 73 6c 65 66 74 25 3d |mp1%:cardsleft%=| 0000a760 63 61 72 64 73 6c 65 66 74 25 2b 31 3a c8 99 22 |cardsleft%+1:.."| 0000a770 57 69 6d 70 45 78 74 5f 53 65 74 49 63 6f 6e 53 |WimpExt_SetIconS| 0000a780 74 72 69 6e 67 22 2c 2c 2c 6d 61 69 6e 25 2c 63 |tring",,,main%,c| 0000a790 61 72 64 73 6c 65 66 74 68 61 6e 25 2c 22 43 61 |ardslefthan%,"Ca| 0000a7a0 72 64 73 20 6c 65 66 74 20 3a 20 22 2b c3 63 61 |rds left : "+.ca| 0000a7b0 72 64 73 6c 65 66 74 25 0d 35 02 07 20 20 cd 0d |rdsleft%.5.. ..| 0000a7c0 35 0c 21 20 20 e7 20 6c 61 73 74 69 63 6f 6e 32 |5.! . lasticon2| 0000a7d0 25 3d 70 79 72 77 61 73 74 65 68 61 6e 25 20 8c |%=pyrwastehan% .| 0000a7e0 0d 35 16 32 20 20 20 20 f2 73 65 74 69 63 6f 6e |.5.2 .seticon| 0000a7f0 73 70 72 69 74 65 28 6d 61 69 6e 25 2c 70 79 72 |sprite(main%,pyr| 0000a800 77 61 73 74 65 68 61 6e 25 2c c3 74 65 6d 70 32 |wastehan%,.temp2| 0000a810 25 29 0d 35 20 17 20 20 20 20 e3 20 49 3d 32 34 |%).5 . . I=24| 0000a820 20 b8 20 32 20 88 20 2d 31 0d 35 2a 25 20 20 20 | . 2 . -1.5*% | 0000a830 20 20 20 70 79 72 77 61 73 74 65 25 28 49 29 3d | pyrwaste%(I)=| 0000a840 70 79 72 77 61 73 74 65 25 28 49 2d 31 29 0d 35 |pyrwaste%(I-1).5| 0000a850 34 0b 20 20 20 20 ed 20 49 0d 35 3e 7f 20 20 20 |4. . I.5>. | 0000a860 20 70 79 72 77 61 73 74 65 25 28 31 29 3d 74 65 | pyrwaste%(1)=te| 0000a870 6d 70 32 25 3a 63 61 72 64 73 6c 65 66 74 25 3d |mp2%:cardsleft%=| 0000a880 63 61 72 64 73 6c 65 66 74 25 2b 31 3a c8 99 22 |cardsleft%+1:.."| 0000a890 57 69 6d 70 45 78 74 5f 53 65 74 49 63 6f 6e 53 |WimpExt_SetIconS| 0000a8a0 74 72 69 6e 67 22 2c 2c 2c 6d 61 69 6e 25 2c 63 |tring",,,main%,c| 0000a8b0 61 72 64 73 6c 65 66 74 68 61 6e 25 2c 22 43 61 |ardslefthan%,"Ca| 0000a8c0 72 64 73 20 6c 65 66 74 20 3a 20 22 2b c3 63 61 |rds left : "+.ca| 0000a8d0 72 64 73 6c 65 66 74 25 0d 35 48 07 20 20 cd 0d |rdsleft%.5H. ..| 0000a8e0 35 52 39 f4 20 50 75 74 20 74 65 6d 70 31 25 20 |5R9. Put temp1% | 0000a8f0 62 61 63 6b 20 6f 6e 20 6c 61 73 74 69 63 6f 6e |back on lasticon| 0000a900 31 25 20 61 6e 64 20 72 65 73 65 74 20 74 68 65 |1% and reset the| 0000a910 20 73 70 72 69 74 65 2e 0d 35 5c 3d 20 20 e7 20 | sprite..5\= . | 0000a920 6c 61 73 74 69 63 6f 6e 31 25 3c 3e 70 79 72 66 |lasticon1%<>pyrf| 0000a930 6f 75 6e 64 68 61 6e 25 20 80 20 6c 61 73 74 69 |oundhan% . lasti| 0000a940 63 6f 6e 31 25 3c 3e 70 79 72 77 61 73 74 65 68 |con1%<>pyrwasteh| 0000a950 61 6e 25 20 8c 0d 35 66 0b 20 20 20 20 49 3d 31 |an% ..5f. I=1| 0000a960 0d 35 70 09 20 20 20 20 f5 0d 35 7a 0f 20 20 20 |.5p. ..5z. | 0000a970 20 20 20 49 3d 49 2b 31 0d 35 84 29 20 20 20 20 | I=I+1.5.) | 0000a980 fd 20 6c 61 73 74 69 63 6f 6e 31 25 3d 70 79 72 |. lasticon1%=pyr| 0000a990 6c 61 79 68 61 6e 25 28 49 29 20 84 20 49 3d 32 |layhan%(I) . I=2| 0000a9a0 38 0d 35 8e 33 20 20 20 20 f2 73 65 74 69 63 6f |8.5.3 .setico| 0000a9b0 6e 73 70 72 69 74 65 28 6d 61 69 6e 25 2c 70 79 |nsprite(main%,py| 0000a9c0 72 6c 61 79 68 61 6e 25 28 49 29 2c c3 74 65 6d |rlayhan%(I),.tem| 0000a9d0 70 31 25 29 0d 35 98 2a 20 20 20 20 70 79 72 6c |p1%).5.* pyrl| 0000a9e0 61 79 25 28 49 29 3d 74 65 6d 70 31 25 3a 70 79 |ay%(I)=temp1%:py| 0000a9f0 72 64 65 6c 65 74 65 64 25 28 49 29 3d a3 0d 35 |rdeleted%(I)=..5| 0000aa00 a2 07 20 20 cd 0d 35 ac 39 f4 20 50 75 74 20 74 |.. ..5.9. Put t| 0000aa10 65 6d 70 20 32 20 62 61 63 6b 20 6f 6e 20 6c 61 |emp 2 back on la| 0000aa20 73 74 69 63 6f 6e 32 25 20 61 6e 64 20 72 65 73 |sticon2% and res| 0000aa30 65 74 20 74 68 65 20 73 70 72 69 74 65 2e 0d 35 |et the sprite..5| 0000aa40 b6 3d 20 20 e7 20 6c 61 73 74 69 63 6f 6e 32 25 |.= . lasticon2%| 0000aa50 3c 3e 70 79 72 66 6f 75 6e 64 68 61 6e 25 20 80 |<>pyrfoundhan% .| 0000aa60 20 6c 61 73 74 69 63 6f 6e 32 25 3c 3e 70 79 72 | lasticon2%<>pyr| 0000aa70 77 61 73 74 65 68 61 6e 25 20 8c 0d 35 c0 0b 20 |wastehan% ..5.. | 0000aa80 20 20 20 49 3d 31 0d 35 ca 09 20 20 20 20 f5 0d | I=1.5.. ..| 0000aa90 35 d4 0f 20 20 20 20 20 20 49 3d 49 2b 31 0d 35 |5.. I=I+1.5| 0000aaa0 de 29 20 20 20 20 fd 20 6c 61 73 74 69 63 6f 6e |.) . lasticon| 0000aab0 32 25 3d 70 79 72 6c 61 79 68 61 6e 25 28 49 29 |2%=pyrlayhan%(I)| 0000aac0 20 84 20 49 3d 32 38 0d 35 e8 33 20 20 20 20 f2 | . I=28.5.3 .| 0000aad0 73 65 74 69 63 6f 6e 73 70 72 69 74 65 28 6d 61 |seticonsprite(ma| 0000aae0 69 6e 25 2c 70 79 72 6c 61 79 68 61 6e 25 28 49 |in%,pyrlayhan%(I| 0000aaf0 29 2c c3 74 65 6d 70 32 25 29 0d 35 f2 2a 20 20 |),.temp2%).5.* | 0000ab00 20 20 70 79 72 6c 61 79 25 28 49 29 3d 74 65 6d | pyrlay%(I)=tem| 0000ab10 70 32 25 3a 70 79 72 64 65 6c 65 74 65 64 25 28 |p2%:pyrdeleted%(| 0000ab20 49 29 3d a3 0d 35 fc 07 20 20 cd 0d 36 06 18 20 |I)=..5.. ..6.. | 0000ab30 20 e7 20 70 79 72 66 6f 75 6e 64 25 28 31 29 3d | . pyrfound%(1)=| 0000ab40 30 20 8c 0d 36 10 33 20 20 20 20 f2 73 65 74 69 |0 ..6.3 .seti| 0000ab50 63 6f 6e 73 70 72 69 74 65 28 6d 61 69 6e 25 2c |consprite(main%,| 0000ab60 70 79 72 66 6f 75 6e 64 68 61 6e 25 2c 22 6e 6f |pyrfoundhan%,"no| 0000ab70 63 61 72 64 22 29 0d 36 1a 07 20 20 cc 0d 36 24 |card").6.. ..6$| 0000ab80 38 20 20 20 20 f2 73 65 74 69 63 6f 6e 73 70 72 |8 .seticonspr| 0000ab90 69 74 65 28 6d 61 69 6e 25 2c 70 79 72 66 6f 75 |ite(main%,pyrfou| 0000aba0 6e 64 68 61 6e 25 2c c3 70 79 72 66 6f 75 6e 64 |ndhan%,.pyrfound| 0000abb0 25 28 31 29 29 0d 36 2e 07 20 20 cd 0d 36 38 05 |%(1)).6.. ..68.| 0000abc0 cd 0d 36 42 39 6c 61 73 74 69 63 6f 6e 31 25 3d |..6B9lasticon1%=| 0000abd0 2d 31 3a 6c 61 73 74 69 63 6f 6e 32 25 3d 2d 31 |-1:lasticon2%=-1| 0000abe0 3a 6c 61 73 74 76 61 6c 31 25 3d 2d 31 3a 6c 61 |:lastval1%=-1:la| 0000abf0 73 74 76 61 6c 32 25 3d 2d 31 0d 36 4c 05 e1 0d |stval2%=-1.6L...| 0000ac00 36 56 04 0d 36 60 13 dd f2 70 79 72 61 6d 69 64 |6V..6`...pyramid| 0000ac10 5f 73 63 6f 72 65 0d 36 6a 3c f4 20 54 68 69 73 |_score.6j<. This| 0000ac20 20 70 72 6f 63 65 64 75 72 65 20 77 69 6c 6c 20 | procedure will | 0000ac30 77 6f 72 6b 20 6f 75 74 20 74 68 65 20 73 63 6f |work out the sco| 0000ac40 72 65 20 66 6f 72 20 74 68 69 73 20 6d 61 74 63 |re for this matc| 0000ac50 68 2e 0d 36 74 1a ea 20 6c 61 79 6f 75 74 6c 65 |h..6t.. layoutle| 0000ac60 66 74 25 2c 62 75 74 74 6f 6e 73 25 0d 36 7e 27 |ft%,buttons%.6~'| 0000ac70 6c 61 79 6f 75 74 6c 65 66 74 25 3d 30 3a 70 79 |layoutleft%=0:py| 0000ac80 72 67 61 6d 65 73 25 3d 70 79 72 67 61 6d 65 73 |rgames%=pyrgames| 0000ac90 25 2b 31 0d 36 88 0e e3 20 49 3d 31 20 b8 20 32 |%+1.6... I=1 . 2| 0000aca0 38 0d 36 92 31 20 20 e7 20 70 79 72 6c 61 79 25 |8.6.1 . pyrlay%| 0000acb0 28 49 29 3c 3e 30 20 8c 20 6c 61 79 6f 75 74 6c |(I)<>0 . layoutl| 0000acc0 65 66 74 25 3d 6c 61 79 6f 75 74 6c 65 66 74 25 |eft%=layoutleft%| 0000acd0 2b 31 0d 36 9c 07 ed 20 49 0d 36 a6 0e c8 8e 20 |+1.6... I.6.... | 0000ace0 64 65 61 6c 25 20 ca 0d 36 b0 1c 20 20 c9 20 31 |deal% ..6.. . 1| 0000acf0 20 3a 20 73 63 6f 72 65 25 3d 73 63 6f 72 65 25 | : score%=score%| 0000ad00 2b 35 30 0d 36 ba 1c 20 20 c9 20 32 20 3a 20 73 |+50.6.. . 2 : s| 0000ad10 63 6f 72 65 25 3d 73 63 6f 72 65 25 2b 33 35 0d |core%=score%+35.| 0000ad20 36 c4 1c 20 20 c9 20 33 20 3a 20 73 63 6f 72 65 |6.. . 3 : score| 0000ad30 25 3d 73 63 6f 72 65 25 2b 32 30 0d 36 ce 25 20 |%=score%+20.6.% | 0000ad40 20 c9 20 34 20 3a 20 73 63 6f 72 65 25 3d 73 63 | . 4 : score%=sc| 0000ad50 6f 72 65 25 2d 6c 61 79 6f 75 74 6c 65 66 74 25 |ore%-layoutleft%| 0000ad60 0d 36 d8 05 cb 0d 36 e2 24 73 63 6f 72 65 25 3d |.6....6.$score%=| 0000ad70 73 63 6f 72 65 25 2d 63 61 72 64 73 6c 65 66 74 |score%-cardsleft| 0000ad80 25 3a 64 65 61 6c 25 3d 34 0d 36 ec 54 c8 99 22 |%:deal%=4.6.T.."| 0000ad90 57 69 6d 70 45 78 74 5f 53 65 74 49 63 6f 6e 53 |WimpExt_SetIconS| 0000ada0 74 72 69 6e 67 22 2c 2c 2c 6d 61 69 6e 25 2c 73 |tring",,,main%,s| 0000adb0 63 6f 72 65 68 61 6e 25 2c 22 53 63 6f 72 65 20 |corehan%,"Score | 0000adc0 3a 20 22 2b c3 73 63 6f 72 65 25 2b 22 20 69 6e |: "+.score%+" in| 0000add0 20 22 2b c3 70 79 72 67 61 6d 65 73 25 0d 36 f6 | "+.pyrgames%.6.| 0000ade0 13 e7 20 70 79 72 67 61 6d 65 73 25 3d 36 20 8c |.. pyrgames%=6 .| 0000adf0 0d 37 00 12 20 20 de 20 62 75 74 74 6f 6e 73 25 |.7.. . buttons%| 0000ae00 20 34 0d 37 0a 1b 20 20 24 28 62 75 74 74 6f 6e | 4.7.. $(button| 0000ae10 73 25 2b 30 29 3d 22 42 65 67 69 6e 22 0d 37 14 |s%+0)="Begin".7.| 0000ae20 13 20 20 e7 20 73 63 6f 72 65 25 3e 3d 30 20 8c |. . score%>=0 .| 0000ae30 0d 37 1e 97 20 20 20 20 c8 99 22 57 69 6d 70 45 |.7.. .."WimpE| 0000ae40 78 74 5f 43 6f 6e 74 72 6f 6c 49 6d 6d 65 64 69 |xt_ControlImmedi| 0000ae50 61 74 65 22 2c 2c 32 2c 22 50 79 72 61 6d 69 64 |ate",,2,"Pyramid| 0000ae60 22 2c 22 43 6f 6e 67 72 61 74 75 6c 61 74 69 6f |","Congratulatio| 0000ae70 6e 73 21 20 59 6f 75 72 20 73 63 6f 72 65 20 6f |ns! Your score o| 0000ae80 66 20 22 2b c3 73 63 6f 72 65 25 2b 22 20 77 61 |f "+.score%+" wa| 0000ae90 73 20 61 62 6f 76 65 20 70 61 72 2e 20 43 6c 69 |s above par. Cli| 0000aea0 63 6b 20 27 42 65 67 69 6e 27 20 66 6f 72 20 61 |ck 'Begin' for a| 0000aeb0 20 6e 65 77 20 6d 61 74 63 68 2e 22 2c 62 75 74 | new match.",but| 0000aec0 74 6f 6e 73 25 2c 30 0d 37 28 07 20 20 cc 0d 37 |tons%,0.7(. ..7| 0000aed0 32 96 20 20 20 20 c8 99 22 57 69 6d 70 45 78 74 |2. .."WimpExt| 0000aee0 5f 43 6f 6e 74 72 6f 6c 49 6d 6d 65 64 69 61 74 |_ControlImmediat| 0000aef0 65 22 2c 2c 32 2c 22 50 79 72 61 6d 69 64 22 2c |e",,2,"Pyramid",| 0000af00 22 43 6f 6d 6d 69 73 65 72 61 74 69 6f 6e 73 21 |"Commiserations!| 0000af10 20 59 6f 75 72 20 73 63 6f 72 65 20 6f 66 20 22 | Your score of "| 0000af20 2b c3 73 63 6f 72 65 25 2b 22 20 77 61 73 20 62 |+.score%+" was b| 0000af30 65 6c 6f 77 20 70 61 72 2e 20 43 6c 69 63 6b 20 |elow par. Click | 0000af40 27 42 65 67 69 6e 27 20 66 6f 72 20 61 20 6e 65 |'Begin' for a ne| 0000af50 77 20 6d 61 74 63 68 2e 22 2c 62 75 74 74 6f 6e |w match.",button| 0000af60 73 25 2c 30 0d 37 3c 07 20 20 cd 0d 37 46 18 70 |s%,0.7<. ..7F.p| 0000af70 79 72 67 61 6d 65 73 25 3d 30 3a 73 63 6f 72 65 |yrgames%=0:score| 0000af80 25 3d 30 0d 37 50 05 cd 0d 37 5a 0c f2 6e 65 77 |%=0.7P...7Z..new| 0000af90 67 61 6d 65 0d 37 64 05 e1 0d 37 6e 04 0d ff |game.7d...7n...| 0000af9f