home *** CD-ROM | disk | FTP | other *** search
/ Computerworld 1996 April / Computerworld_1996-04_cd.bin / cw / programy / psion / hry / dancer.arj / DANCER.OPL next >
Encoding:
Text File  |  1994-04-10  |  1.9 KB  |  185 lines

  1. APP Dancer
  2.  
  3.   type 1
  4.  
  5.   icon "\OPD\view"
  6.  
  7. ENDA
  8.  
  9.  
  10.  
  11. PROC start:
  12.  
  13. GLOBAL ww%,w%(6),d%,c%,delay%,w$(128)
  14.  
  15. GLOBAL off%(6),dum%,p$(128)
  16.  
  17.   REM Dont keep S3 awake!
  18.  
  19.   call ($138b,0,0,0,0,0)
  20.  
  21.   c%=0
  22.  
  23.   p$="\pic\dancer01.PIC" : REM DANCER PICS
  24.  
  25.   w$=ffile$:(tparse$:(p$)) 
  26.  
  27.   if w$=""
  28.  
  29.     dum%=alert(p$,"Above file not found on A:, B: or M:","Drat")
  30.  
  31.   else
  32.  
  33.     w$=left$(w$,len(w$)-5)
  34.  
  35.     do
  36.  
  37.       c%=c%+1
  38.  
  39.       w%(c%)=patt:(w$+NUM$(c%,1)+".PIC")
  40.  
  41.     until c%=6 : REM 6 FRAMES
  42.  
  43.     BEEP 5,60
  44.  
  45.     REM SHOW FRAMES
  46.  
  47.     Do
  48.  
  49.       s:(1,3):s:(2,2):s:(3,2):s:(4,2)
  50.  
  51.       s:(5,2):s:(6,3):s:(5,2):s:(4,2)
  52.  
  53.       s:(3,2):s:(2,2)
  54.  
  55.     Until 0
  56.  
  57.   endif
  58.  
  59. ENDP
  60.  
  61.  
  62.  
  63. PROC s:(a%,b%)
  64.  
  65.  REM Show w%(a%) for len b%
  66.  
  67.  gORDER w%(a%),1
  68.  
  69.  pause b%
  70.  
  71. ENDP
  72.  
  73.  
  74.  
  75. PROC patt:(t$)
  76.  
  77. LOCAL bit%,x%,y%,w%,h%,t%
  78.  
  79.   REM t$=PIC to load
  80.  
  81.   REM Centre Window, Ret Window Id.
  82.  
  83.   bit%=gLOADBIT(t$)
  84.  
  85.   gUSE bit%
  86.  
  87.   w%=gWIDTH
  88.  
  89.   h%=gHEIGHT
  90.  
  91.   x%=(240-w%)/2.0
  92.  
  93.   y%=(80-h%)/2.0
  94.  
  95.   t%=gCREATE(x%,y%,w%,h%,1)
  96.  
  97.   gUSE t%
  98.  
  99.   gORDER t%,2
  100.  
  101.   gPATT bit%,w%,h%,3
  102.  
  103.   gCLOSE bit%
  104.  
  105.   RETURN t%
  106.  
  107. ENDP
  108.  
  109.  
  110.  
  111. PROC tparse$:(w$)
  112.  
  113. LOCAL p$(128)
  114.  
  115.   p$=parse$(w$,cmd$(1),off%())
  116.  
  117.   return p$
  118.  
  119. ENDP
  120.  
  121.  
  122.  
  123. PROC ffile$:(w$)
  124.  
  125. LOCAL a%,m%,b%,p$(128),d$(3),d1$(3),d2$(3)
  126.  
  127.   p$=w$
  128.  
  129.   if NOT exist(p$)
  130.  
  131.     d$=Mid$(p$,off%(2),off%(3)-off%(2))
  132.  
  133.     if d$="M:"
  134.  
  135.       d1$="A:": d2$="B:"
  136.  
  137.     endif
  138.  
  139.     if d$="A:"
  140.  
  141.       d1$="M:": d2$="B:"
  142.  
  143.     endif
  144.  
  145.     if d$="B:"
  146.  
  147.       d1$="M:": d2$="A:"
  148.  
  149.     endif
  150.  
  151.     p$=midd$:(p$,off%(2),off%(3)-off%(2),d1$)
  152.  
  153.     if NOT exist(p$)
  154.  
  155.       p$=midd$:(p$,off%(2),off%(3)-off%(2),d2$)
  156.  
  157.       if NOT exist(p$)
  158.  
  159.         p$=""
  160.  
  161.       endif
  162.  
  163.     endif
  164.  
  165.   endif
  166.  
  167. RETURN p$ 
  168.  
  169. ENDP
  170.  
  171.  
  172.  
  173. PROC Midd$:(s$,a%,b%,ins$)
  174.  
  175. LOCAL t$(128)
  176.  
  177.   t$=left$(s$,a%-1)+left$(ins$,b%)
  178.  
  179.   t$=t$+mid$(s$,a%+b%,128)
  180.  
  181. RETURN t$
  182.  
  183. ENDP
  184.  
  185.