00001 /* 00002 * Ucscriptop.h - Usecode-script opcode definitions. 00003 * 00004 * Copyright (C) 2000-2001 The Exult Team 00005 * 00006 * This program is free software; you can redistribute it and/or modify 00007 * it under the terms of the GNU General Public License as published by 00008 * the Free Software Foundation; either version 2 of the License, or 00009 * (at your option) any later version. 00010 * 00011 * This program is distributed in the hope that it will be useful, 00012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00014 * GNU General Public License for more details. 00015 * 00016 * You should have received a copy of the GNU General Public License 00017 * along with this program; if not, write to the Free Software 00018 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 00019 */ 00020 00021 #ifndef _USCRIPTOP_H 00022 #define _USCRIPTOP_H 00023 00024 /* 00025 * Opcodes for Usecode_script's: 00026 */ 00027 namespace Ucscript 00028 { 00029 enum Ucscript_ops 00030 { 00031 cont = 0x01, // Continue without painting. 00032 repeat = 0x0b, // Loop(offset, cnt). 00033 repeat2 = 0x0c, // Loop(offset, cnt1, cnt2). 00034 nop = 0x21, // Not sure about this. 00035 dont_halt = 0x23, // Not right? 00036 delay_ticks = 0x27, // Delay(ticks). 00037 delay_hours = 0x29, // Delay nn game hours. 00038 finish = 0x2c, // Finish script if killed. 00039 remove = 0x2d, // Remove item & halt. 00040 step_n = 0x30, // Step in given direction. 00041 step_ne = 0x31, 00042 step_e = 0x32, 00043 step_se = 0x33, 00044 step_s = 0x34, 00045 step_sw = 0x35, 00046 step_w = 0x36, 00047 step_nw = 0x37, 00048 descend = 0x38, // Decr. lift. 00049 rise = 0x39, // Incr. lift. 00050 frame = 0x46, // Set_frame(frnum). 00051 egg = 0x48, // Activate egg. 00052 next_frame_max =0x4d, // Next frame, but stop at max. 00053 next_frame = 0x4e, // Next frame, but wrap. 00054 prev_frame_min =0x4f, // Prev frame, but stop at 0. 00055 prev_frame = 0x50, // Prev. frame, but wrap. 00056 say = 0x52, // Say(string). 00057 step = 0x53, // Step(dir). 00058 music = 0x54, // Play(track#). 00059 usecode = 0x55, // Call usecode(fun). 00060 speech = 0x56, // Speech(track#). 00061 sfx = 0x58, // Sound_effect(#). 00062 face_dir = 0x59, // Face_dir(dir), dir=0-7, 0=north. 00063 npc_frame = 0x61, // 61-70: Set frame, but w/ cur. dir. 00064 hit = 0x78, // Hit(hps, ??). Item attacked. 00065 /* 00066 * These are (I think) not in the original: 00067 */ 00068 usecode2 = 0x80, // Call usecode(fun, eventid). 00069 resurrect = 0x81 // Parm. is body. 00070 }; 00071 } 00072 #endif