void ScriptInterpreter::cmd_send() { debug(4, "\nENTER: stackPtr = %d; _localStackPos = %d", _stack.getStackPos(), _localStackPos); byte argc = readByte(); debug(4, "argc = %d", argc); _stack.push(argc); _stack.push(_codeIp - _codeBase); _stack.push(_runningScriptObjectIndex); _stack.push(kScriptStackLimit - _localStackPos); _localStackPos = _stack.getStackPos(); int16 propertyId = _stack.peek(_localStackPos + argc + 2); int16 objectIndex = _stack.peek(_localStackPos + argc + 4); debug(4, "objectIndex = %d (%04X); propertyId = %d(%04X)", objectIndex, objectIndex, propertyId, propertyId); if (objectIndex != 0) { objectIndex = _vm->_dat->getObject(objectIndex)->getClass(); } else { objectIndex = _stack.peek(_localStackPos + argc + 3); } debug(4, "--> objectIndex = %d(%04X)", objectIndex, objectIndex); if (objectIndex != 0) { _runningScriptObjectIndex = _vm->_dat->getObjectProperty(objectIndex, propertyId); if (_runningScriptObjectIndex != 0) { _codeBase = _vm->_dat->getObject(_runningScriptObjectIndex)->getData(); _codeIp = _codeBase; } else { _stack.push(0); cmd_return(); } } else { _stack.push(0); cmd_return(); } }
static void cmd_c(key_info_t key_info, keys_info_t *keys_info) { goto_line(top + indexes[SK_BY_TIME_CHANGED]); cmd_return(key_info, keys_info); }
static void cmd_m(key_info_t key_info, keys_info_t *keys_info) { goto_line(top + indexes[SK_BY_TIME_MODIFIED]); cmd_return(key_info, keys_info); }
static void cmd_T(key_info_t key_info, keys_info_t *keys_info) { goto_line(top + indexes[SK_BY_TARGET]); cmd_return(key_info, keys_info); }
static void cmd_a(key_info_t key_info, keys_info_t *keys_info) { goto_line(top + indexes[SK_BY_TIME_ACCESSED]); cmd_return(key_info, keys_info); }
static void cmd_i(key_info_t key_info, keys_info_t *keys_info) { goto_line(top + indexes[SK_BY_NITEMS]); cmd_return(key_info, keys_info); }
static void cmd_u(key_info_t key_info, keys_info_t *keys_info) { goto_line(top + indexes[SK_BY_GROUPS]); cmd_return(key_info, keys_info); }
static void cmd_s(key_info_t key_info, keys_info_t *keys_info) { goto_line(top + indexes[SK_BY_SIZE]); cmd_return(key_info, keys_info); }
static void cmd_O(key_info_t key_info, keys_info_t *keys_info) { goto_line(top + indexes[SK_BY_OWNER_NAME]); cmd_return(key_info, keys_info); }
static void cmd_p(key_info_t key_info, keys_info_t *keys_info) { goto_line(top + indexes[SK_BY_PERMISSIONS]); cmd_return(key_info, keys_info); }
static void cmd_f(key_info_t key_info, keys_info_t *keys_info) { goto_line(top + indexes[SK_BY_FILEEXT]); cmd_return(key_info, keys_info); }
static void cmd_e(key_info_t key_info, keys_info_t *keys_info) { goto_line(top + indexes[SK_BY_EXTENSION]); cmd_return(key_info, keys_info); }