Logo Search packages:      
Sourcecode: agistudio version File versions

agicommands.cpp

/*
 *  QT AGI Studio :: Copyright (C) 2000 Helen Zommer
 *
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program; if not, write to the Free Software
 *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 *
 */

#include "agicommands.h"


const char *ArgTypePrefix[9] = {"","v","f","m","o","i","s","w","c"};
const char *ArgTypeName[9] = {"number","var","flag","message","object",
                             "inventory item","string","word","controller"};



CommandStruct TestCommand[19] = {
  { "",  0 , { 0,0,0,0,0,0,0 } }, //dummy
  { "equaln", 2, { atVar,atNum,0,0,0,0,0 } },
  { "equalv", 2, { atVar,atVar,0,0,0,0,0 } },
  { "lessn", 2, { atVar,atNum,0,0,0,0,0 } },
  { "lessv", 2, { atVar,atVar,0,0,0,0,0 } },
  { "greatern", 2, { atVar,atNum,0,0,0,0,0 } },
  { "greaterv", 2, { atVar,atVar,0,0,0,0,0 } },
  { "isset", 1, { atFlag,0,0,0,0,0,0 } },
  { "issetv", 1, { atVar,0,0,0,0,0,0 } },
  { "has", 1, { atIObj,0,0,0,0,0,0 } },
  { "obj.in.room", 2, { atIObj,atVar,0,0,0,0,0 } },
  { "posn", 5, { atSObj,atNum,atNum,atNum,atNum,0,0 } },
  { "controller", 1, { atCtrl,0,0,0,0,0,0 } },
  { "have.key", 0, { 0,0,0,0,0,0,0 } },
  { "said", 0, { 0,0,0,0,0,0,0 } },  // special command so we don't need to set the right argument types for it
  { "compare.strings", 2, { atStr,atStr,0,0,0,0,0 } },
  { "obj.in.box", 5, { atSObj,atNum,atNum,atNum,atNum,0,0 } },
  { "center.posn", 5, { atSObj,atNum,atNum,atNum,atNum,0,0 } },
  { "right.posn", 5, { atSObj,atNum,atNum,atNum,atNum,0,0 } }

};


CommandStruct AGICommand[182] = {

 { "return",  0, { 0,0,0,0,0,0,0 } },
 { "increment",  1, { atVar,0,0,0,0,0,0 } },
 { "decrement",  1, { atVar,0,0,0,0,0,0 } },
 { "assignn",  2, { atVar,atNum,0,0,0,0,0 } },
 { "assignv",  2, { atVar,atVar,0,0,0,0,0 } },
 { "addn",  2, { atVar,atNum,0,0,0,0,0 } },
 { "addv",  2, { atVar,atVar,0,0,0,0,0 } },
 { "subn",  2, { atVar,atNum,0,0,0,0,0 } },
 { "subv",  2, { atVar,atVar,0,0,0,0,0 } },
 { "lindirectv",  2, { atVar,atVar,0,0,0,0,0 } },
 { "rindirect",  2, { atVar,atVar,0,0,0,0,0 } },
 { "lindirectn",  2, { atVar,atNum,0,0,0,0,0 } },
 { "set",  1, { atFlag,0,0,0,0,0,0 } },
 { "reset",  1, { atFlag,0,0,0,0,0,0 } },
 { "toggle",  1, { atFlag,0,0,0,0,0,0 } },
 { "set.v",  1, { atVar,0,0,0,0,0,0 } },
 { "reset.v",  1, { atVar,0,0,0,0,0,0 } },
 { "toggle.v",  1, { atVar,0,0,0,0,0,0 } },
 { "new.room",  1, { atNum,0,0,0,0,0,0 } },
 { "new.room.v",  1, { atVar,0,0,0,0,0,0 } },
 { "load.logics",  1, { atNum,0,0,0,0,0,0 } },
 { "load.logics.v",  1, { atVar,0,0,0,0,0,0 } },
 { "call",  1, { atNum,0,0,0,0,0,0 } },
 { "call.v",  1, { atVar,0,0,0,0,0,0 } },
 { "load.pic",  1, { atVar,0,0,0,0,0,0 } },
 { "draw.pic",  1, { atVar,0,0,0,0,0,0 } },
 { "show.pic",  0, { 0,0,0,0,0,0,0 } },
 { "discard.pic",  1, { atVar,0,0,0,0,0,0 } },
 { "overlay.pic",  1, { atVar,0,0,0,0,0,0 } },
 { "show.pri.screen",  0, { 0,0,0,0,0,0,0 } },
 { "load.view",  1, { atNum,0,0,0,0,0,0 } },
 { "load.view.v",  1, { atVar,0,0,0,0,0,0 } },
 { "discard.view",  1, { atNum,0,0,0,0,0,0 } },
 { "animate.obj",  1, { atSObj,0,0,0,0,0,0 } },
 { "unanimate.all",  0, { 0,0,0,0,0,0,0 } },
 { "draw",  1, { atSObj,0,0,0,0,0,0 } },
 { "erase",  1, { atSObj,0,0,0,0,0,0 } },
 { "position",  3, { atSObj,atNum,atNum,0,0,0,0 } },
 { "position.v",  3, { atSObj,atVar,atVar,0,0,0,0 } },
 { "get.posn",  3, { atSObj,atVar,atVar,0,0,0,0 } },
 { "reposition",  3, { atSObj,atVar,atVar,0,0,0,0 } },
 { "set.view",  2, { atSObj,atNum,0,0,0,0,0 } },
 { "set.view.v",  2, { atSObj,atVar,0,0,0,0,0 } },
 { "set.loop",  2, { atSObj,atNum,0,0,0,0,0 } },
 { "set.loop.v",  2, { atSObj,atVar,0,0,0,0,0 } },
 { "fix.loop",  1, { atSObj,0,0,0,0,0,0 } },
 { "release.loop",  1, { atSObj,0,0,0,0,0,0 } },
 { "set.cel",  2, { atSObj,atNum,0,0,0,0,0 } },
 { "set.cel.v",  2, { atSObj,atVar,0,0,0,0,0 } },
 { "last.cel",  2, { atSObj,atVar,0,0,0,0,0 } },
 { "current.cel",  2, { atSObj,atVar,0,0,0,0,0 } },
 { "current.loop",  2, { atSObj,atVar,0,0,0,0,0 } },
 { "current.view",  2, { atSObj,atVar,0,0,0,0,0 } },
 { "number.of.loops",  2, { atSObj,atVar,0,0,0,0,0 } },
 { "set.priority",  2, { atSObj,atNum,0,0,0,0,0 } },
 { "set.priority.v",  2, { atSObj,atVar,0,0,0,0,0 } },
 { "release.priority",  1, { atSObj,0,0,0,0,0,0 } },
 { "get.priority",  2, { atSObj,atVar,0,0,0,0,0 } },
 { "stop.update",  1, { atSObj,0,0,0,0,0,0 } },
 { "start.update",  1, { atSObj,0,0,0,0,0,0 } },
 { "force.update",  1, { atSObj,0,0,0,0,0,0 } },
 { "ignore.horizon",  1, { atSObj,0,0,0,0,0,0 } },
 { "observe.horizon",  1, { atSObj,0,0,0,0,0,0 } },
 { "set.horizon",  1, { atNum,0,0,0,0,0,0 } },
 { "object.on.water",  1, { atSObj,0,0,0,0,0,0 } },
 { "object.on.land",  1, { atSObj,0,0,0,0,0,0 } },
 { "object.on.anything",  1, { atSObj,0,0,0,0,0,0 } },
 { "ignore.objs",  1, { atSObj,0,0,0,0,0,0 } },
 { "observe.objs",  1, { atSObj,0,0,0,0,0,0 } },
 { "distance",  3, { atSObj,atSObj,atVar,0,0,0,0 } },
 { "stop.cycling",  1, { atSObj,0,0,0,0,0,0 } },
 { "start.cycling",  1, { atSObj,0,0,0,0,0,0 } },
 { "normal.cycle",  1, { atSObj,0,0,0,0,0,0 } },
 { "end.of.loop",  2, { atSObj,atFlag,0,0,0,0,0 } },
 { "reverse.cycle", 1, { atSObj,0,0,0,0,0,0 } },
 { "reverse.loop",  2, { atSObj,atFlag,0,0,0,0,0 } },
 { "cycle.time",  2, { atSObj,atVar,0,0,0,0,0 } },  // arg2 Num???
 { "stop.motion",  1, { atSObj,0,0,0,0,0,0 } },
 { "start.motion",  1, { atSObj,0,0,0,0,0,0 } },
 { "step.size",  2, { atSObj,atVar,0,0,0,0,0 } },   // arg2 Num???
 { "step.time",  2, { atSObj,atVar,0,0,0,0,0 } },   // arg2 Num???
 { "move.obj",  5, { atSObj,atNum,atNum,atNum,atFlag,0,0 } },
 { "move.obj.v",  5, { atSObj,atVar,atVar,atNum,atFlag,0,0 } },  // arg 3 var???
 { "follow.ego",  3, { atSObj,atNum,atFlag,0,0,0,0 } },
 { "wander",  1, { atSObj,0,0,0,0,0,0 } },
 { "normal.motion",  1, { atSObj,0,0,0,0,0,0 } },
 { "set.dir",  2, { atSObj,atVar,0,0,0,0,0 } },
 { "get.dir",  2, { atSObj,atVar,0,0,0,0,0 } },
 { "ignore.blocks",  1, { atSObj,0,0,0,0,0,0 } },
 { "observe.blocks",  1, { atSObj,0,0,0,0,0,0 } },
 { "block",  4, { atNum,atNum,atNum,atNum,0,0,0 } },
 { "unblock",  0, { 0,0,0,0,0,0,0 } },
 { "get",  1, { atIObj,0,0,0,0,0,0 } },
 { "get.v",  1, { atVar,0,0,0,0,0,0 } },
 { "drop",  1, { atIObj,0,0,0,0,0,0 } },
 { "put",  2, { atIObj,atVar,0,0,0,0,0 } },
 { "put.v",  2, { atVar,atVar,0,0,0,0,0 } },
 { "get.room.v",  2, { atVar,atVar,0,0,0,0,0 } },
 { "load.sound",  1, { atNum,0,0,0,0,0,0 } },
 { "sound",  2, { atNum,atFlag,0,0,0,0,0 } },
 { "stop.sound",  0, { 0,0,0,0,0,0,0 } },
 { "print",  1, { atMsg,0,0,0,0,0,0 } },
 { "print.v",  1, { atVar,0,0,0,0,0,0 } },
 { "display",  3, { atNum,atNum,atMsg,0,0,0,0 } },
 { "display.v",  3, { atVar,atVar,atVar,0,0,0,0 } },
 { "clear.lines",  3, { atNum,atNum,atNum,0,0,0,0 } },
 { "text.screen",  0, { 0,0,0,0,0,0,0 } },
 { "graphics",  0, { 0,0,0,0,0,0,0 } },
 { "set.cursor.char",  1, { atMsg,0,0,0,0,0,0 } },
 { "set.text.attribute",  2, { atNum,atNum,0,0,0,0,0 } },
 { "shake.screen",  1, { atNum,0,0,0,0,0,0 } },
 { "configure.screen",  3, { atNum,atNum,atNum,0,0,0,0 } },
 { "status.line.on",  0, { 0,0,0,0,0,0,0 } },
 { "status.line.off",  0, { 0,0,0,0,0,0,0 } },
 { "set.string",  2, { atStr,atMsg,0,0,0,0,0 } },
 { "get.string",  5, { atStr,atMsg,atNum,atNum,atNum,0,0 } },
 { "word.to.string",  2, { atWord,atStr,0,0,0,0,0 } },
 { "parse",  1, { atStr,0,0,0,0,0,0 } },
 { "get.num",  2, { atMsg,atVar,0,0,0,0,0 } },
 { "prevent.input",  0, { 0,0,0,0,0,0,0 } },
 { "accept.input",  0, { 0,0,0,0,0,0,0 } },
 { "set.key",  3, { atNum,atNum,atCtrl,0,0,0,0 } },
 { "add.to.pic",  7, { atNum,atNum,atNum,atNum,atNum,atNum,atNum } },
 { "add.to.pic.v",  7, { atVar,atVar,atVar,atVar,atVar,atVar,atVar } },
 { "status",  0, { 0,0,0,0,0,0,0 } },
 { "save.game",  0, { 0,0,0,0,0,0,0 } },
 { "restore.game",  0, { 0,0,0,0,0,0,0 } },
 { "init.disk",  0, { 0,0,0,0,0,0,0 } },
 { "restart.game",  0, { 0,0,0,0,0,0,0 } },
 { "show.obj",  1, { atNum,0,0,0,0,0,0 } },
 { "random",  3, { atNum,atNum,atVar,0,0,0,0 } },
 { "program.control",  0, { 0,0,0,0,0,0,0 } },
 { "player.control",  0, { 0,0,0,0,0,0,0 } },
 { "obj.status.v",  1, { atVar,0,0,0,0,0,0 } },
 { "quit",  1, { atNum,0,0,0,0,0,0 } },  // 0 args for 2.089
 { "show.mem",  0, { 0,0,0,0,0,0,0 } },
 { "pause",  0, { 0,0,0,0,0,0,0 } },
 { "echo.line",  0, { 0,0,0,0,0,0,0 } },
 { "cancel.line",  0, { 0,0,0,0,0,0,0 } },
 { "init.joy",  0, { 0,0,0,0,0,0,0 } },
 { "toggle.monitor",  0, { 0,0,0,0,0,0,0 } },
 { "version",  0, { 0,0,0,0,0,0,0 } },
 { "script.size",  1, { atNum,0,0,0,0,0,0 } },
 { "set.game.id",  1, { atMsg,0,0,0,0,0,0 } },
 { "log",  1, { atMsg,0,0,0,0,0,0 } },
 { "set.scan.start",  0, { 0,0,0,0,0,0,0 } },
 { "reset.scan.start",  0, { 0,0,0,0,0,0,0 } },
 { "reposition.to",  3, { atSObj,atNum,atNum,0,0,0,0 } },
 { "reposition.to.v",  3, { atSObj,atVar,atVar,0,0,0,0 } },
 { "trace.on",  0, { 0,0,0,0,0,0,0 } },
 { "trace.info",  3, { atNum,atNum,atNum,0,0,0,0 } },
 { "print.at",  4, { atMsg,atNum,atNum,atNum,0,0,0 } },    // 3 args before 2.440
 { "print.at.v",  4, { atMsg,atVar,atVar,atVar,0,0,0 } },  // 3 args before 2.440
 { "discard.view.v",  1, { atVar,0,0,0,0,0,0 } },
 { "clear.text.rect",  5, { atNum,atNum,atNum,atNum,atNum,0,0 } },
 { "set.upper.left",  2, { 0,0,0,0,0,0,0 } },    // ?????
 { "set.menu",  1, { atMsg,0,0,0,0,0,0 } },
 { "set.menu.item",  2, { atMsg,atCtrl,0,0,0,0,0 } },
 { "submit.menu",  0, { 0,0,0,0,0,0,0 } },
 { "enable.item",  1, { atCtrl,0,0,0,0,0,0 } },
 { "disable.item",  1, { atCtrl,0,0,0,0,0,0 } },
 { "menu.input",  0, { 0,0,0,0,0,0,0 } },
 { "show.obj.v",  1, { atVar,0,0,0,0,0,0 } },
 { "open.dialogue",  0, { 0,0,0,0,0,0,0 } },
 { "close.dialogue",  0, { 0,0,0,0,0,0,0 } },
 { "mul.n",  2, { atVar,atNum,0,0,0,0,0 } },
 { "mul.v",  2, { atVar,atVar,0,0,0,0,0 } },
 { "div.n",  2, { atVar,atNum,0,0,0,0,0 } },
 { "div.v",  2, { atVar,atVar,0,0,0,0,0 } },
 { "close.window",  0, { 0,0,0,0,0,0,0 } },

 // The formerly unknown commands
 { "set.simple", 1, {0,0,0,0,0,0,0 } },    // unknown 170
 { "push.script", 0, {0,0,0,0,0,0,0 } },   // unknown 171
 { "pop.script", 0, {0,0,0,0,0,0,0 } },    // unknown 172
 { "hold.key", 0, {0,0,0,0,0,0,0 } },      // unknown 173
 { "set.pri.base", 1, {0,0,0,0,0,0,0 } },  // unknown 174
 { "discard.sound", 1, {0,0,0,0,0,0,0 } }, // unknown 175
 { "hide.mouse", 0, {0,0,0,0,0,0,0 } },    // unknown 176 - 1 arg for 3.002.086
 { "allow.menu", 1, {0,0,0,0,0,0,0 } },    // unknown 177
 { "show.mouse", 0, {0,0,0,0,0,0,0 } },    // unknown 178
 { "fence.mouse", 4, {0,0,0,0,0,0,0 } },   // unknown 179
 { "mouse.posn", 2, {0,0,0,0,0,0,0 } },    // unknown 180
 { "release.key", 0, {0,0,0,0,0,0,0 } }    // unknown 181
};


int NumAGICommands  = 181; // not counting return()

void CorrectCommands(double VerNum)
{

  if(VerNum <= 2.089){
    AGICommand[134].NumArgs = 0;  //quit
  }
  if(VerNum < 2.400){
    AGICommand[151].NumArgs = 3;  // print.at
    AGICommand[152].NumArgs = 3;  // print.at.v
  }  
  if(VerNum <= 3.002086){
    AGICommand[176].NumArgs = 1;
  } 
  if(VerNum <= 2.089)NumAGICommands = 155;
  else if (VerNum <= 2.272)NumAGICommands = 161;
  else if (VerNum <= 2.440)NumAGICommands = 169;
  else if (VerNum <= 2.917)NumAGICommands = 173;
  else if (VerNum <= 2.936)NumAGICommands = 175;
  else if (VerNum <= 3.002086)NumAGICommands = 177;
  else NumAGICommands = 181;

}

Generated by  Doxygen 1.6.0   Back to index