home *** CD-ROM | disk | FTP | other *** search
/ CD PowerPlay 7 / cdpowerplayissue.iso / sources / shared.dxr / 00457.ls < prev    next >
Encoding:
Text File  |  1994-10-17  |  11.3 KB  |  427 lines

  1. on highlighter
  2.   global Subject, religion
  3.   set subjectCount to the height of sprite 19 / 8
  4.   set subjectNum to (the mouseV - the top of sprite 19) / subjectCount
  5.   if subjectNum >= 8 then
  6.     set subjectNum to 8
  7.   end if
  8.   set the locV of sprite 20 to the top of sprite 19 + (subjectCount * subjectNum) + subjectNum
  9.   set Subject to ChooseSubject(subjectNum)
  10.   put religion & Subject into field "store"
  11. end
  12.  
  13. on divideMe
  14.   global religion, Subject
  15.   set religionNum to (the mouseH - the left of sprite 18) / 78
  16.   if (religionNum = 5) or (religionNum < 1) then
  17.     if religionNum > 7 then
  18.       set religionNum to 7
  19.     end if
  20.     set sprtH to the left of sprite 18 + (78 * religionNum) + (the width of sprite 19 / 2) - 9
  21.     set the locH of sprite 19 to sprtH
  22.     set religion to ChooseReligion(religionNum)
  23.     repeat while the stillDown
  24.       if the mouseV >= 396 then
  25.         set Subject to "bla"
  26.         set the castNum of sprite 20 to 451
  27.         set the foreColor of sprite 20 to 249
  28.         set the width of sprite 20 to 73
  29.         set the height of sprite 20 to 73
  30.         set the locV of sprite 20 to 403
  31.         set the locV of sprite 19 to 202
  32.         set the locH of sprite 20 to the locH of sprite 19 - 35
  33.       else
  34.         highlighter()
  35.         set the castNum of sprite 20 to 511
  36.         set the foreColor of sprite 20 to 249
  37.         set the width of sprite 20 to 67
  38.         set the height of sprite 20 to 48
  39.         set the locH of sprite 20 to the locH of sprite 19 - 33
  40.       end if
  41.       updateStage()
  42.     end repeat
  43.   else
  44.     userAlert("You can only explore Islam in this demonstration version of Sources of Faith.")
  45.   end if
  46. end
  47.  
  48. on ChooseReligion religionNum
  49.   global religion, dontDoMe
  50.   set the puppet of sprite 24 to 1
  51.   set the locH of sprite 24 to 800
  52.   set the locH of sprite 23 to 800
  53.   set dontDoMe to 1
  54.   if religionNum < 1 then
  55.     puppetSprite(17, 1)
  56.     puppetSprite(21, 1)
  57.     puppetSprite(22, 1)
  58.     set the locH of sprite 17 to 800
  59.     set the locH of sprite 19 to 800
  60.     set the locV of sprite 20 to 800
  61.     set the locH of sprite 21 to 800
  62.     set the locV of sprite 22 to 800
  63.     set the castNum of sprite 18 to 452
  64.     set dontDoMe to 0
  65.     return religion
  66.   else
  67.     if religionNum = 1 then
  68.       return "Anim"
  69.     else
  70.       if religionNum = 2 then
  71.         return "Budd"
  72.       else
  73.         if religionNum = 3 then
  74.           return "Chri"
  75.         else
  76.           if religionNum = 4 then
  77.             return "Hind"
  78.           else
  79.             if religionNum = 5 then
  80.               return "Isla"
  81.             else
  82.               if religionNum = 6 then
  83.                 return "Juda"
  84.               else
  85.                 if religionNum = 7 then
  86.                   return "Tao"
  87.                 end if
  88.               end if
  89.             end if
  90.           end if
  91.         end if
  92.       end if
  93.     end if
  94.   end if
  95. end
  96.  
  97. on ChooseSubject subjectNumber
  98.   global Subject, dontDoMe
  99.   set subjectNumber to subjectNumber + 1
  100.   if subjectNumber < 9 then
  101.     set the height of sprite 20 to 46
  102.     set the width of sprite 20 to 46
  103.     set the locH of sprite 20 to the locH of sprite 20
  104.   else
  105.     set the width of sprite 20 to 70
  106.     set the height of sprite 20 to 70
  107.   end if
  108.   if subjectNumber = 1 then
  109.     return "Gods"
  110.   else
  111.     if subjectNumber = 2 then
  112.       return "life"
  113.     else
  114.       if subjectNumber = 3 then
  115.         return "Ethi"
  116.       else
  117.         if subjectNumber = 4 then
  118.           return "cult"
  119.         else
  120.           if subjectNumber = 5 then
  121.             return "fest"
  122.           else
  123.             if subjectNumber = 6 then
  124.               return "wher"
  125.             else
  126.               if subjectNumber = 7 then
  127.                 return "vari"
  128.               else
  129.                 if subjectNumber = 8 then
  130.                   return "intr"
  131.                 else
  132.                   if (subjectNumber = 9) or (subjectNumber = 10) then
  133.                     if dontDoMe = 1 then
  134.                       set Subject to "bla"
  135.                       return Subject
  136.                     else
  137.                       if dontDoMe = 0 then
  138.                         return Subject
  139.                       end if
  140.                     end if
  141.                   end if
  142.                 end if
  143.               end if
  144.             end if
  145.           end if
  146.         end if
  147.       end if
  148.     end if
  149.   end if
  150. end
  151.  
  152. on checkWhereIam
  153.   global IdleReligion, bgSound, OnorOff
  154.   if (OnorOff = 1) and (soundBusy(1) = 0) then
  155.     sound playFile 1, string(bgSound)
  156.   end if
  157.   if the castNum of sprite 18 = 449 then
  158.     if IdleReligion = "Anim" then
  159.       set whichReligion to 1
  160.     else
  161.       if IdleReligion = "Budd" then
  162.         set whichReligion to 2
  163.       else
  164.         if IdleReligion = "Chri" then
  165.           set whichReligion to 3
  166.         else
  167.           if IdleReligion = "Hind" then
  168.             set whichReligion to 4
  169.           else
  170.             if IdleReligion = "Isla" then
  171.               set whichReligion to 5
  172.             else
  173.               if IdleReligion = "Juda" then
  174.                 set whichReligion to 6
  175.               else
  176.                 if IdleReligion = "Tao" then
  177.                   set whichReligion to 7
  178.                 else
  179.                   set whichReligion to 0
  180.                 end if
  181.               end if
  182.             end if
  183.           end if
  184.         end if
  185.       end if
  186.     end if
  187.     if whichReligion > 0 then
  188.       sizeMe()
  189.       set the locH of sprite 20 to the left of sprite 18 + (78 * whichReligion) - 12
  190.     else
  191.       set the locH of sprite 20 to 800
  192.     end if
  193.   end if
  194. end
  195.  
  196. on sizeMe
  197.   set the castNum of sprite 20 to 451
  198.   set the foreColor of sprite 20 to 249
  199.   set the width of sprite 20 to 73
  200.   set the height of sprite 20 to 73
  201.   set the locV of sprite 20 to 403
  202. end
  203.  
  204. on textFlipper
  205.   set it to the locH of sprite 24
  206.   if the locH of sprite 24 > 700 then
  207.     set the puppet of sprite 24 to 1
  208.     set the locH of sprite 24 to 115
  209.     set the locV of sprite 24 to 32
  210.     set the locH of sprite 23 to 115
  211.     set the puppet of sprite 17 to 1
  212.     set the castNum of sprite 17 to 461
  213.     set the locH of sprite 17 to 43
  214.     set the locV of sprite 17 to 168
  215.   else
  216.     if the locH of sprite 24 < 800 then
  217.       set the puppet of sprite 24 to 1
  218.       set the locH of sprite 24 to 800
  219.       set the locH of sprite 23 to 800
  220.       set the castNum of sprite 17 to 454
  221.       set the locH of sprite 17 to 43
  222.     end if
  223.   end if
  224.   updateStage()
  225. end
  226.  
  227. on Textoid textFieldNum
  228.   set the castNum of sprite 24 to textFieldNum
  229.   textFlipper()
  230. end
  231.  
  232. on glossary glossWord
  233.   global bodyOfText, label, default, gloss_texts, glossList
  234.   set glossWord to lowercaseWord(unpossessive(trimWord(glossWord)))
  235.   if glossWord <> EMPTY then
  236.     cursor(4)
  237.     if glossList = EMPTY then
  238.       set glossList to getFileContent(gloss_texts & "SofIndex.txt")
  239.     end if
  240.     set glossFile to wordIsInGlossary(glossWord, glossList)
  241.     if glossFile <> EMPTY then
  242.       set glossPath to gloss_texts & glossFile
  243.       set glossDef to getFileContent(glossPath)
  244.       set the itemDelimiter to TAB
  245.       set glossWord to item 1 of glossDef
  246.       delete item 1 of glossDef
  247.       set the itemDelimiter to ","
  248.       glossAlert(glossWord, glossDef)
  249.     else
  250.       set glossWord to makeWordNotPlural(glossWord)
  251.       if glossWord <> EMPTY then
  252.         glossary(glossWord, EMPTY)
  253.       end if
  254.     end if
  255.     cursor(-1)
  256.   end if
  257. end
  258.  
  259. on getFileContent fileName
  260.   set filer to FileIO(mnew, "read", fileName)
  261.   set fileBuffer to EMPTY
  262.   repeat while 1
  263.     filer(mReadLine)
  264.     set fileLine to trimString(the result)
  265.     if fileLine = EMPTY then
  266.       exit repeat
  267.       next repeat
  268.     end if
  269.     put fileLine & RETURN after fileBuffer
  270.   end repeat
  271.   filer(mdispose)
  272.   return fileBuffer
  273. end
  274.  
  275. on lowercaseWord TheWord
  276.   if TheWord <> EMPTY then
  277.     set wordLen to length(TheWord)
  278.     repeat with i = 1 to wordLen
  279.       set ascii to charToNum(char i of TheWord)
  280.       if (ascii >= 65) and (ascii <= 90) then
  281.         set ascii to ascii + 32
  282.         put numToChar(ascii) into char i of TheWord
  283.       end if
  284.     end repeat
  285.   end if
  286.   return TheWord
  287. end
  288.  
  289. on makeWordNotPlural TheWord
  290.   if TheWord <> EMPTY then
  291.     set wordLen to length(TheWord)
  292.     if "Ss" contains char wordLen of TheWord then
  293.       delete char wordLen of TheWord
  294.     else
  295.       set TheWord to EMPTY
  296.     end if
  297.   end if
  298.   return TheWord
  299. end
  300.  
  301. on unpossessive TheWord
  302.   if TheWord <> EMPTY then
  303.     set wordLen to length(TheWord)
  304.     if "Ss" contains char wordLen of TheWord then
  305.       if "'`┬┤ΓÇÿΓÇÖ┬▓" contains char wordLen - 1 of TheWord then
  306.         delete char wordLen of TheWord
  307.         delete char wordLen - 1 of TheWord
  308.       end if
  309.     end if
  310.   end if
  311.   return TheWord
  312. end
  313.  
  314. on wordIsInGlossary TheWord, theList
  315.   set wordFile to EMPTY
  316.   if (TheWord <> EMPTY) and (theList <> EMPTY) then
  317.     set lineCount to the number of lines in theList
  318.     set the itemDelimiter to TAB
  319.     if lineCount = 1 then
  320.       if item 1 of line 1 of theList = TheWord then
  321.         set wordFile to item 2 of line 1 of theList
  322.       end if
  323.     else
  324.       if lineCount <= 8 then
  325.         repeat with i = 1 to lineCount
  326.           if item 1 of line i of theList = TheWord then
  327.             set wordFile to item 2 of line i of theList
  328.             exit repeat
  329.           end if
  330.         end repeat
  331.       else
  332.         set l to 1
  333.         set h to lineCount
  334.         repeat while l <= h
  335.           set m to (l + h) / 2
  336.           if TheWord < item 1 of line m of theList then
  337.             set h to m - 1
  338.             next repeat
  339.           end if
  340.           if TheWord > item 1 of line m of theList then
  341.             set l to m + 1
  342.             next repeat
  343.           end if
  344.           set wordFile to item 2 of line m of theList
  345.           exit repeat
  346.         end repeat
  347.       end if
  348.     end if
  349.     set the itemDelimiter to ","
  350.   end if
  351.   return wordFile
  352. end
  353.  
  354. on trimWord TheWord
  355.   repeat while TheWord <> EMPTY
  356.     set ascii to charToNum(char 1 of TheWord)
  357.     if ((ascii >= 65) and (ascii <= 90)) or ((ascii >= 97) and (ascii <= 122)) then
  358.       exit repeat
  359.       next repeat
  360.     end if
  361.     delete char 1 of TheWord
  362.   end repeat
  363.   repeat while TheWord <> EMPTY
  364.     set wordLen to length(TheWord)
  365.     set ascii to charToNum(char wordLen of TheWord)
  366.     if ((ascii >= 65) and (ascii <= 90)) or ((ascii >= 97) and (ascii <= 122)) then
  367.       exit repeat
  368.       next repeat
  369.     end if
  370.     delete char wordLen of TheWord
  371.   end repeat
  372.   return TheWord
  373. end
  374.  
  375. on trimString theStr
  376.   repeat while theStr <> EMPTY
  377.     if charToNum(char 1 of theStr) <= 32 then
  378.       delete char 1 of theStr
  379.       next repeat
  380.     end if
  381.     exit repeat
  382.   end repeat
  383.   repeat while theStr <> EMPTY
  384.     set strLen to length(theStr)
  385.     if charToNum(char strLen of theStr) <= 32 then
  386.       delete char strLen of theStr
  387.       next repeat
  388.     end if
  389.     exit repeat
  390.   end repeat
  391.   return theStr
  392. end
  393.  
  394. on fatalError str
  395.   global bodyOfText, label, default
  396.   set label to "Fatal Error"
  397.   set default to RETURN & RETURN & str
  398.   if the machineType < 256 then
  399.     Dialog("modal", "glossary", "from label,from default,cancel,default")
  400.   else
  401.     alert(label & RETURN & default)
  402.   end if
  403.   reallyQuit()
  404. end
  405.  
  406. on userAlert str
  407.   global bodyOfText, label, default
  408.   set label to "Sources of Faith"
  409.   set default to RETURN & RETURN & str
  410.   if the machineType < 256 then
  411.     Dialog("modal", "glossary", "from label,from default,cancel,default")
  412.   else
  413.     alert(label & RETURN & default)
  414.   end if
  415. end
  416.  
  417. on glossAlert TheWord, theDef
  418.   global bodyOfText, label, default
  419.   set label to TheWord
  420.   set default to theDef
  421.   if the machineType < 256 then
  422.     Dialog("modal", "glossary", "from label,from default,cancel,default")
  423.   else
  424.     alert(label & ":" && default)
  425.   end if
  426. end
  427.