home *** CD-ROM | disk | FTP | other *** search
/ Boot Disc 2 / boot-disc-1996-10.iso / bootcd.dir / 00273_Script_FileTreeClass < prev    next >
Text File  |  1996-08-09  |  3KB  |  109 lines

  1. property nametree,filetree,basepath,source,poslist,activebase,activemid,activeleaf,DOSMode
  2.  
  3. on new me
  4.   set nametree=[:]
  5.   set filetree=[:]
  6.   set activebase=""
  7.   set activemid=""
  8.   set activeleaf=0
  9.   set DOSMode=false
  10.   set basepath=the moviepath&"Content"
  11.   set source="FileListText"
  12.   set poslist=[]
  13.   return me
  14. end
  15.  
  16. on gentrees me
  17.   set data=the text of field source
  18.   set olddelimiter=the itemdelimiter
  19.   set the itemdelimiter=":"
  20.   repeat with index=1 to the number of lines in data
  21.     set curline=line index of data
  22.     set level=0
  23.     repeat while char (level+1) of curline = "*"
  24.       set level=level+1
  25.     end repeat
  26.     set fullentry=item 1 of curline
  27.     delete char 1 to level of fullentry
  28.     set pathentry=item 2 of curline
  29.     put fullentry,pathentry
  30.     case level of
  31.       1:
  32.         addprop nametree,fullentry,[:]
  33.         addprop filetree,pathentry,[:]
  34.         set midnamelist=getprop(nametree,fullentry)
  35.         set midfilelist=getprop(filetree,pathentry)
  36.       2:
  37.         addprop midnamelist,fullentry,[]
  38.         addprop midfilelist,pathentry,[]
  39.         set leafnamelist=getprop(midnamelist,fullentry)
  40.         set leaffilelist=getprop(midfilelist,pathentry)
  41.       3:
  42.         add leafnamelist,fullentry
  43.         add leaffilelist,pathentry
  44.     end case
  45.   end repeat
  46.   put nametree into field "NameTree"
  47.   put filetree into field "FileTree"
  48.   set the itemdelimiter=olddelimiter
  49. end
  50.  
  51. on loadtrees me
  52.   set nametree=value(the text of field "NameTree")
  53.   set filetree=value(the text of field "FileTree")
  54. end 
  55.  
  56.  
  57. on getposlist me,mybase,mymid,myleaf
  58.   set poslist=[]
  59.   set baselist=getprop(nametree,mybase)
  60.   add poslist,findpos(nametree,mybase)
  61.   set midlist=getprop(baselist,mymid)
  62.   add poslist,findpos(baselist,mymid)
  63.   add poslist,getpos(midlist,myleaf)
  64.   return poslist
  65. end
  66.  
  67. on fullToPath me,mybase,mymid,myleaf
  68.   getposlist me,mybase,mymid,myleaf
  69.   set base=getpropat(filetree,getat(poslist,1))
  70.   set baselist=getprop(filetree,base)
  71.   set mid=getpropat(baselist,getat(poslist,2))
  72.   set midlist=getprop(baselist,mid)
  73.   set leaf=getat(midlist,getat(poslist,3))
  74.   set path=basepath&"\"&base&"\"&mid&"\"&leaf
  75.   return path
  76. end
  77.  
  78. on GetLeafText me,mybase,mymid
  79.   set midlist=getprop(nametree,mybase)
  80.   set leaflist=getprop(midlist,mymid)
  81.   set buffer=""
  82.   repeat with leaf in leaflist
  83.     set buffer=buffer&leaf&return
  84.   end repeat
  85.   delete char length(buffer) of buffer
  86.   return buffer
  87. end
  88.  
  89. on Launch me
  90.   if activeLeaf<>0 then
  91.     if char 1 of activeLeaf="#" then
  92.       put "The BootCD installer can't run the program, though it can be launched from Windows 95.  The location of the install program is at "& fulltopath(me,activebase,activemid,activeleaf) &"." into field "DemoInfo"
  93.       set the fontstyle of line 1 of member "DemoInfo" to "bold"
  94.     else
  95.       open fulltopath(me,activebase,activemid,activeleaf)
  96.       cursor 4
  97.       --alert("Now launching "&activeleaf&".")
  98.       startTimer
  99.       repeat while the timer<60
  100.       end repeat
  101.       cursor -1
  102.       set state=true
  103.     end if
  104.   else
  105.     set state=false
  106.   end if
  107.   return state
  108. end
  109.