home *** CD-ROM | disk | FTP | other *** search
/ hobbes.nmsu.edu 2008 / 2008-06-02_hobbes.nmsu.edu.zip / new / scummc-0.2.0-os2.zip / ScummC / examples / openquest / verbs.scc < prev    next >
Encoding:
Text File  |  2008-04-06  |  6.8 KB  |  259 lines

  1. /* ScummC
  2.  * Copyright (C) 2007  Alban Bedel
  3.  *
  4.  * This program is free software; you can redistribute it and/or
  5.  * modify it under the terms of the GNU General Public License
  6.  * as published by the Free Software Foundation; either version 2
  7.  * of the License, or (at your option) any later version.
  8.  
  9.  * This program is distributed in the hope that it will be useful,
  10.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12.  * GNU General Public License for more details.
  13.  
  14.  * You should have received a copy of the GNU General Public License
  15.  * along with this program; if not, write to the Free Software
  16.  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  17.  *
  18.  */
  19.  
  20.  
  21. #include <scummVars6.s>
  22. #include "common.sch"
  23. #include "verbs.sch"
  24.  
  25. verb backgroundVerb;
  26.  
  27.  
  28. room Verbs {
  29.  
  30.     object background {
  31.         states = {
  32.             { 0, 0, "graphics/verbs/verb_background.bmp" }
  33.         };
  34.     }
  35.  
  36.     chset verbChset = "verbs.char";
  37.  
  38.     // setup all the verbs
  39.     script setupVerbs() {
  40.         int color,backColor,hiColor,dimColor,l,c,vrb;
  41.  
  42.         color = VERB_COLOR;
  43.         hiColor = VERB_HI_COLOR;
  44.         dimColor = VERB_DIM_COLOR;
  45.         backColor = VERB_BACK_COLOR;
  46.  
  47.         initCharset(verbChset);
  48.  
  49.         setCurrentVerb(backgroundVerb);
  50.         initVerb();
  51.         setVerbObject(background,Verbs);
  52.         setVerbXY(0,144);
  53.  
  54.         sntcVerb = WalkTo;
  55.         //sntcObjA = 0;
  56.         //sntcObjB = 0;
  57.  
  58.         setCurrentVerb(SntcLine);
  59.         initVerb();
  60.         setVerbName("%v{sntcVerb} %n{sntcObjADesc} %s{sntcPrepo} %n{sntcObjBDesc}");
  61.         setVerbXY(160,147);
  62.         setVerbColor(dimColor);
  63.         verbCenter();
  64.  
  65.         setCurrentVerb(WalkTo);
  66.         initVerb();
  67.         setVerbName("Walk to");
  68.         setVerbKey('w');
  69.  
  70.         setCurrentVerb(Give);
  71.         initVerb();
  72.         setVerbName("Give");
  73.         setVerbXY(146,174);
  74.         setVerbBackColor(backColor);
  75.         setVerbColor(color);
  76.         setVerbHiColor(hiColor);
  77.         setVerbDimColor(dimColor);
  78.         verbCenter();
  79.         setVerbOn();
  80.         setVerbKey('g');
  81.         
  82.         setCurrentVerb(PickUp);
  83.         initVerb();
  84.         setVerbName("Pick up");
  85.         setVerbXY(102,161);
  86.         setVerbBackColor(backColor);
  87.         setVerbColor(color);
  88.         setVerbHiColor(hiColor);
  89.         setVerbDimColor(dimColor);
  90.         verbCenter();
  91.         setVerbOn();
  92.         setVerbKey('p');
  93.  
  94.         setCurrentVerb(Use);
  95.         initVerb();
  96.         setVerbName("Use");
  97.         setVerbXY(146,187);
  98.         setVerbBackColor(backColor);
  99.         setVerbColor(color);
  100.         setVerbHiColor(hiColor);
  101.         setVerbDimColor(dimColor);
  102.         verbCenter();
  103.         setVerbOn();
  104.         setVerbKey('u');
  105.  
  106.         setCurrentVerb(Open);
  107.         initVerb();
  108.         setVerbName("Open");
  109.         setVerbXY(188,161);
  110.         setVerbBackColor(backColor);
  111.         setVerbColor(color);
  112.         setVerbHiColor(hiColor);
  113.         setVerbDimColor(dimColor);
  114.         verbCenter();
  115.         setVerbOn();
  116.         setVerbKey('o');
  117.  
  118.         setCurrentVerb(LookAt);
  119.         initVerb();
  120.         setVerbName("Examine");
  121.         setVerbXY(146,161);
  122.         setVerbBackColor(backColor);
  123.         setVerbColor(color);
  124.         setVerbHiColor(hiColor);
  125.         setVerbDimColor(dimColor);
  126.         verbCenter();
  127.         setVerbOn();
  128.         setVerbKey('e');
  129.  
  130.         setCurrentVerb(Smell);
  131.         initVerb();
  132.         setVerbName("Smell");
  133.         setVerbXY(188,174);
  134.         setVerbBackColor(backColor);
  135.         setVerbColor(color);
  136.         setVerbHiColor(hiColor);
  137.         setVerbDimColor(dimColor);
  138.         verbCenter();
  139.         setVerbOn();
  140.         setVerbKey('s');
  141.  
  142.         setCurrentVerb(TalkTo);
  143.         initVerb();
  144.         setVerbName("Talk to");
  145.         setVerbXY(102,174);
  146.         setVerbBackColor(backColor);
  147.         setVerbColor(color);
  148.         setVerbHiColor(hiColor);
  149.         setVerbDimColor(dimColor);
  150.         verbCenter();
  151.         setVerbOn();
  152.         setVerbKey('t');
  153.  
  154.         setCurrentVerb(Move);
  155.         initVerb();
  156.         setVerbName("Move");
  157.         setVerbXY(188,187);
  158.         setVerbBackColor(backColor);
  159.         setVerbColor(color);
  160.         setVerbHiColor(hiColor);
  161.         setVerbDimColor(dimColor);
  162.         verbCenter();
  163.         setVerbOn();
  164.         setVerbKey('m');
  165.  
  166.         setCurrentVerb(invUp);
  167.         initVerb();
  168.         setVerbName("\x03");
  169.         setVerbXY(309,165);
  170.         setVerbBackColor(backColor);
  171.         setVerbColor(color);
  172.         setVerbHiColor(hiColor);
  173.         setVerbDimColor(dimColor);
  174.         //verbCenter();
  175.  
  176.         setCurrentVerb(invDown);
  177.         initVerb();
  178.         setVerbName("\x02");
  179.         setVerbXY(309,185);
  180.         setVerbBackColor(backColor);
  181.         setVerbColor(color);
  182.         setVerbHiColor(hiColor);
  183.         setVerbDimColor(dimColor);
  184.         //verbCenter();
  185.  
  186.         for(l = 0,vrb = invSlot0 ; l < INVENTORY_LINE ; l++)
  187.             for(c = 0 ; c < INVENTORY_COL ; c++, vrb++) {
  188.                 setCurrentVerb(vrb);
  189.                 initVerb();
  190.                 //verbCenter();
  191.                 setVerbXY(216 + c*48,162 + l*18);
  192.                 setVerbOn();
  193.             }
  194.         dimInt(invObj,8);
  195.  
  196.         saveVerbs(Give, Move, 2); // Main verbs (stored in slot 2)
  197.         saveVerbs(invSlot0, invSlot0+7, 3); // Inventory items (stored in slot 3)
  198.  
  199.         initCharset(ResRoom::chtest);
  200.     }
  201.  
  202.     // turn on all the verb for the interface 
  203.     // and fire the mouse watching thread
  204.     script showVerbs(int show) {
  205.         int* vrb;
  206.         int i;
  207.  
  208.         if(!!show == verbsOn) return;
  209.  
  210.         if (show)
  211.         {
  212.             setCurrentVerb(backgroundVerb);
  213.             setVerbOn();
  214.             redrawVerb();
  215.  
  216.             restoreVerbs(Give, Move, 2); // Show main verbs
  217.             restoreVerbs(invSlot0, invSlot0+7, 3); // Show inventory items
  218.  
  219.             ResRoom::inventoryHandler( 0 ); // reset display in case any items have been picked up
  220.             
  221.             // The rest can be turned on manually
  222.             setCurrentVerb(SntcLine);
  223.             setVerbOn();
  224.             redrawVerb();
  225.             setCurrentVerb(invUp);
  226.             setVerbOn();
  227.             redrawVerb();
  228.             setCurrentVerb(invDown);
  229.             setVerbOn();
  230.             redrawVerb();
  231.         }
  232.         else
  233.         {
  234.             saveVerbs(Give, Move, 2); // Hide main verbs
  235.             saveVerbs(invSlot0, invSlot0+7, 3); // Hide inventory items
  236.  
  237.             // The rest can be turned off manually
  238.             setCurrentVerb(SntcLine);
  239.             setVerbOff();
  240.             redrawVerb();
  241.             setCurrentVerb(invUp);
  242.             setVerbOff();
  243.             redrawVerb();
  244.             setCurrentVerb(invDown);
  245.             setVerbOff();
  246.  
  247.             redrawVerb();
  248.             setCurrentVerb(backgroundVerb);
  249.             setVerbOff();
  250.             redrawVerb();
  251.         }
  252.  
  253.         verbsOn = !!show;
  254.  
  255.     }
  256.  
  257.  
  258. }
  259.