diff options
author | Filippos Karapetis | 2009-05-31 14:55:32 +0000 |
---|---|---|
committer | Filippos Karapetis | 2009-05-31 14:55:32 +0000 |
commit | 4441ca4b3e39ed1613c826f7b46b1e7076fcbe14 (patch) | |
tree | b540763429cefd43f33d209fd3a2a2a8e5307bda /engines/sci/engine/script.h | |
parent | be224386484793c519840cff0b752e9fd2a430b1 (diff) | |
download | scummvm-rg350-4441ca4b3e39ed1613c826f7b46b1e7076fcbe14.tar.gz scummvm-rg350-4441ca4b3e39ed1613c826f7b46b1e7076fcbe14.tar.bz2 scummvm-rg350-4441ca4b3e39ed1613c826f7b46b1e7076fcbe14.zip |
- Further objectification of the SCI vocabulary functions
- Rewrote the sci_opcodes enum so that it's easier to read
- Made the engine error out if data is sent to an invalid selector (which is a fatal condition)
svn-id: r41069
Diffstat (limited to 'engines/sci/engine/script.h')
-rw-r--r-- | engines/sci/engine/script.h | 260 |
1 files changed, 128 insertions, 132 deletions
diff --git a/engines/sci/engine/script.h b/engines/sci/engine/script.h index ab7ba7af80..5b8dbe1869 100644 --- a/engines/sci/engine/script.h +++ b/engines/sci/engine/script.h @@ -51,8 +51,6 @@ enum ScriptObjectTypes { SCI_OBJ_LOCALVARS }; -void script_dissect(ResourceManager *resmgr, int res_no, Vocabulary *vocab); - /* Opcode formats as used by script.c */ enum opcode_format { Script_Invalid = -1, @@ -74,142 +72,140 @@ enum opcode_format { }; enum sci_opcodes { /* FIXME */ - op_bnot = 0, - op_add, - op_sub, - op_mul, - op_div, - op_mod, - op_shr, - op_shl, - op_xor, - op_and, - op_or, - op_neg, - op_not, - op_eq, - op_ne_, - op_gt_, - op_ge_, - op_lt_, - op_le_, - op_ugt_, - op_uge_, - op_ult_, - op_ule_, - op_bt, - op_bnt, - op_jmp, - op_ldi, - op_push, - op_pushi, - op_toss, - op_dup, - op_link, - op_call = 0x20, - op_callk, - op_callb, - op_calle, - op_ret, - op_send, - op_class = 0x28, - op_self = 0x2a, - op_super, - op_rest, - op_lea, - op_selfID, - op_pprev = 0x30, - op_pToa, - op_aTop, - op_pTos, - op_sTop, - op_ipToa, - op_dpToa, - op_ipTos, - op_dpTos, - op_lofsa, - op_lofss, - op_push0, - op_push1, - op_push2, - op_pushSelf, - op_lag = 0x40, - op_lal, - op_lat, - op_lap, - op_lagi, - op_lali, - op_lati, - op_lapi, - op_lsg, - op_lsl, - op_lst, - op_lsp, - op_lsgi, - op_lsli, - op_lsti, - op_lspi, - op_sag, - op_sal, - op_sat, - op_sap, - op_sagi, - op_sali, - op_sati, - op_sapi, - op_ssg, - op_ssl, - op_sst, - op_ssp, - op_ssgi, - op_ssli, - op_ssti, - op_sspi, - op_plusag, - op_plusal, - op_plusat, - op_plusap, - op_plusagi, - op_plusali, - op_plusati, - op_plusapi, - op_plussg, - op_plussl, - op_plusst, - op_plussp, - op_plussgi, - op_plussli, - op_plussti, - op_plusspi, - op_minusag, - op_minusal, - op_minusat, - op_minusap, - op_minusagi, - op_minusali, - op_minusati, - op_minusapi, - op_minussg, - op_minussl, - op_minusst, - op_minussp, - op_minussgi, - op_minussli, - op_minussti, - op_minusspi + op_bnot = 0x00, // 000 + op_add = 0x01, // 001 + op_sub = 0x02, // 002 + op_mul = 0x03, // 003 + op_div = 0x04, // 004 + op_mod = 0x05, // 005 + op_shr = 0x06, // 006 + op_shl = 0x07, // 007 + op_xor = 0x08, // 008 + op_and = 0x09, // 009 + op_or = 0x0a, // 010 + op_neg = 0x0b, // 011 + op_not = 0x0c, // 012 + op_eq = 0x0d, // 013 + op_ne_ = 0x0e, // 014 + op_gt_ = 0x0f, // 015 + op_ge_ = 0x10, // 016 + op_lt_ = 0x11, // 017 + op_le_ = 0x12, // 018 + op_ugt_ = 0x13, // 019 + op_uge_ = 0x14, // 020 + op_ult_ = 0x15, // 021 + op_ule_ = 0x16, // 022 + op_bt = 0x17, // 023 + op_bnt = 0x18, // 024 + op_jmp = 0x19, // 025 + op_ldi = 0x1a, // 026 + op_push = 0x1b, // 027 + op_pushi = 0x1c, // 028 + op_toss = 0x1d, // 029 + op_dup = 0x1e, // 030 + op_link = 0x1f, // 031 + op_call = 0x20, // 032 + op_callk = 0x21, // 033 + op_callb = 0x22, // 034 + op_calle = 0x23, // 035 + op_ret = 0x24, // 036 + op_send = 0x25, // 037 + // dummy 0x26, // 038 + // dummy 0x27, // 039 + op_class = 0x28, // 040 + // dummy 0x29, // 041 + op_self = 0x2a, // 042 + op_super = 0x2b, // 043 + op_rest = 0x2c, // 044 + op_lea = 0x2d, // 045 + op_selfID = 0x2e, // 046 + // dummy 0x2f // 047 + op_pprev = 0x30, // 048 + op_pToa = 0x31, // 049 + op_aTop = 0x32, // 050 + op_pTos = 0x33, // 051 + op_sTop = 0x34, // 052 + op_ipToa = 0x35, // 053 + op_dpToa = 0x36, // 054 + op_ipTos = 0x37, // 055 + op_dpTos = 0x38, // 056 + op_lofsa = 0x39, // 057 + op_lofss = 0x3a, // 058 + op_push0 = 0x3b, // 059 + op_push1 = 0x3c, // 060 + op_push2 = 0x3d, // 061 + op_pushSelf = 0x3e, // 062 + // dummy 0x3f, // 063 + op_lag = 0x40, // 064 + op_lal = 0x41, // 065 + op_lat = 0x42, // 066 + op_lap = 0x43, // 067 + op_lagi = 0x44, // 068 + op_lali = 0x45, // 069 + op_lati = 0x46, // 070 + op_lapi = 0x47, // 071 + op_lsg = 0x48, // 072 + op_lsl = 0x49, // 073 + op_lst = 0x4a, // 074 + op_lsp = 0x4b, // 075 + op_lsgi = 0x4c, // 076 + op_lsli = 0x4d, // 077 + op_lsti = 0x4e, // 078 + op_lspi = 0x4f, // 079 + op_sag = 0x50, // 080 + op_sal = 0x51, // 081 + op_sat = 0x52, // 082 + op_sap = 0x53, // 083 + op_sagi = 0x54, // 084 + op_sali = 0x55, // 085 + op_sati = 0x56, // 086 + op_sapi = 0x57, // 087 + op_ssg = 0x58, // 088 + op_ssl = 0x59, // 089 + op_sst = 0x5a, // 090 + op_ssp = 0x5b, // 091 + op_ssgi = 0x5c, // 092 + op_ssli = 0x5d, // 093 + op_ssti = 0x5e, // 094 + op_sspi = 0x5f, // 095 + op_plusag = 0x60, // 096 + op_plusal = 0x61, // 097 + op_plusat = 0x62, // 098 + op_plusap = 0x63, // 099 + op_plusagi = 0x64, // 100 + op_plusali = 0x65, // 101 + op_plusati = 0x66, // 102 + op_plusapi = 0x67, // 103 + op_plussg = 0x68, // 104 + op_plussl = 0x69, // 105 + op_plusst = 0x6a, // 106 + op_plussp = 0x6b, // 107 + op_plussgi = 0x6c, // 108 + op_plussli = 0x6d, // 109 + op_plussti = 0x6e, // 110 + op_plusspi = 0x6f, // 111 + op_minusag = 0x70, // 112 + op_minusal = 0x71, // 113 + op_minusat = 0x72, // 114 + op_minusap = 0x73, // 115 + op_minusagi = 0x74, // 116 + op_minusali = 0x75, // 117 + op_minusati = 0x76, // 118 + op_minusapi = 0x77, // 119 + op_minussg = 0x78, // 120 + op_minussl = 0x79, // 121 + op_minusst = 0x7a, // 122 + op_minussp = 0x7b, // 123 + op_minussgi = 0x7c, // 124 + op_minussli = 0x7d, // 125 + op_minussti = 0x7e, // 126 + op_minusspi = 0x7f // 127 }; extern opcode_format g_opcode_formats[128][4]; void script_adjust_opcode_formats(int res_version); -int script_find_selector(Common::StringList *selectorNames, const char *selector_name); -/* Determines the selector ID of a selector by its name -** Parameters: (state_t *) s: VM state -** (char *) selector_name: Name of the selector to look up -** Returns : (int) The appropriate selector ID, or -1 on error -*/ - void script_free_breakpoints(EngineState *s); } // End of namespace Sci |