home *** CD-ROM | disk | FTP | other *** search
/ CD PowerPlay 6 / TheCompleteAdventureCollection1995 / CDPP6.ISO / utility / agtsrc / execute.pa4 < prev    next >
Encoding:
Text File  |  1989-12-20  |  4.5 KB  |  133 lines

  1.  
  2.   {EXECUTE.PA2}
  3.  
  4.   {Execute User Command}
  5.   { Main Procedure }
  6.  
  7.   PROCEDURE Execute_cmd(verb, noun, prep, object_word : words);
  8.  
  9.   BEGIN                           {execute}
  10.     IF ((object_word = 'DOOR') OR
  11.         (object_word = 'DOORS')) AND
  12.     ((NOT Is_Noun(object_word)) OR { Allow user-defined door(s) }
  13.      (NOT Is_Visible(Noun_Number(object_word)))) THEN
  14.       BEGIN                       { No doors are affected by preposition unless metacommand }
  15.         Normalize(verb); Normalize(noun);
  16.         Normalize(prep); Normalize(object_word);
  17.         WriteLn('To ', verb, ' the ', noun, ' ', prep, ' the ', object_word,
  18.                 ' suddenly seems rather useless,');
  19.         WriteLn('so you decide not to after all.');
  20.       END
  21.     ELSE
  22.       IF Is_Direction(verb)
  23.       THEN Go(verb)
  24.       ELSE IF (verb = 'LOOK')
  25.       THEN Room[Current_room]^.has_seen := False
  26.       ELSE IF ((verb = 'SCORE') OR ((verb = 'SHOW') AND (noun = 'SCORE')))
  27.       THEN show_score
  28.       ELSE IF (verb = 'INVENTORY')
  29.       THEN Inventory
  30.       ELSE IF (verb = 'HELP')
  31.       THEN Help
  32.       ELSE IF (verb = 'WAIT')
  33.       THEN Do_Nothing
  34.       ELSE IF (verb = 'SCRIPT')
  35.       THEN Script
  36.       ELSE IF (verb = 'UNSCRIPT')
  37.       THEN UNScript
  38.       ELSE IF (verb = 'YELL')
  39.       THEN Scream
  40.       ELSE IF (((verb = 'LIST') AND (noun = 'EXITS'))
  41.                OR ((verb = 'SHOW') AND (noun = 'EXITS')) OR (verb = 'LIST_EXITS'))
  42.       THEN List_Exits(Current_room)
  43.       ELSE IF (verb = 'VERBOSE')
  44.       THEN verbose := True
  45.       ELSE IF (verb = 'BRIEF')
  46.       THEN verbose := False
  47.       ELSE IF (verb = 'QUIT')
  48.       THEN Quit
  49.       ELSE IF (verb = 'ATTACK')
  50.       THEN Attack(noun, prep, object_word)
  51.       ELSE IF (verb = 'FIRE')
  52.       THEN Shoot(noun, prep, object_word)
  53.       ELSE IF (verb = 'SAVE')
  54.       THEN Save
  55.       ELSE IF (verb = 'RESTORE')
  56.       THEN Restore
  57.       ELSE IF (verb = 'MAGIC_WORD')
  58.       THEN MagicWord
  59.  
  60.         {the rest of the verbs *need* a noun - check for it now}
  61.       ELSE IF (noun = '')
  62.       THEN WriteLn(IO, 'You need to specify a noun!')
  63.       ELSE IF (verb = 'GET')
  64.       THEN
  65.         IF noun = 'ALL'
  66.         THEN Take_All
  67.         ELSE Take(noun)
  68.       ELSE IF (verb = 'WEAR')
  69.       THEN
  70.         IF noun = 'ALL'
  71.         THEN Wear_All
  72.         ELSE Wear(noun)
  73.       ELSE IF (verb = 'DROP')
  74.       THEN
  75.         IF noun = 'ALL'
  76.         THEN Drop_All
  77.         ELSE Drop(noun)
  78.       ELSE IF (verb = 'REMOVE')
  79.       THEN
  80.         IF noun = 'ALL'
  81.         THEN Remove_All
  82.         ELSE Drop(noun)
  83.       ELSE IF (verb = 'PUT')
  84.       THEN Put(noun, prep, object_word)
  85.       ELSE IF (verb = 'THROW')
  86.       THEN Throw(noun, prep, object_word)
  87.       ELSE IF (verb = 'TELL')
  88.       THEN TELL(noun, object_word)
  89.       ELSE IF (verb = 'ASK')
  90.       THEN ASK(noun, object_word)
  91.       ELSE IF (verb = 'OPEN')
  92.       THEN Open_Noun(noun, prep, object_word)
  93.       ELSE IF (verb = 'CLOSE')
  94.       THEN Close_Noun(noun)
  95.       ELSE IF (verb = 'LOCK')
  96.       THEN Lock(noun, prep, object_word)
  97.       ELSE IF (verb = 'UNLOCK')
  98.       THEN Unlock(noun, prep, object_word)
  99.       ELSE IF (verb = 'DRINK')
  100.       THEN Drink(noun)
  101.       ELSE IF (verb = 'EAT')
  102.       THEN Eat(noun)
  103.       ELSE IF (verb = 'READ')
  104.       THEN Read_Noun(noun)
  105.       ELSE IF (verb = 'EXAMINE')
  106.       THEN IF NOT LightIsHere     {determine if need and have specific light}
  107.         THEN
  108.           IF (Room[Current_room]^.light = 1)
  109.           THEN                    {player isn't carrying any light at all}
  110.             WriteLn(IO, 'It is pitch black.  You can examine nothing, not even your hands.')
  111.           ELSE                    {player may be carrying a light but still can't see}
  112.             WriteLn(IO, 'For some reason, you can''t see or examine anything here.')
  113.         ELSE Describe(noun)       {Show noun description only if it can be seen}
  114.  
  115.           {'specials'}
  116.       ELSE IF (verb = 'TURN')
  117.       THEN Turn(noun, prep, object_word)
  118.       ELSE IF (verb = 'PUSH')
  119.       THEN Push(noun, prep, object_word)
  120.       ELSE IF (verb = 'PULL')
  121.       THEN Pull(noun, prep, object_word)
  122.       ELSE IF (verb = 'PLAY')
  123.       THEN Play(noun)
  124.       ELSE IF (verb = 'CHANGE_LOCATIONS')
  125.       THEN Change_Locations(noun)
  126.       ELSE IF (verb = 'LIGHT')
  127.       THEN light(noun)
  128.       ELSE IF (verb = 'EXTINGUISH')
  129.       THEN Extinguish(noun)
  130.       ELSE IF (Length(verb) > 0) THEN WriteLn(IO, 'Sorry, you can''t do that....');
  131.   END;                            {execute}
  132.  
  133.