22#ifndef SCI_ENGINE_KERNEL_H
23#define SCI_ENGINE_KERNEL_H
25#include "common/scummsys.h"
26#include "common/debug.h"
27#include "common/rect.h"
28#include "common/str-array.h"
30#include "sci/engine/selector.h"
31#include "sci/engine/vm_types.h"
32#include "sci/engine/vm.h"
45struct SciWorkaroundEntry;
109 kScummVMSleepId = 0xe0,
111 kScummVMSaveLoadId = 0xe1
117 SIG_TYPE_NULL = 0x01,
118 SIG_TYPE_INTEGER = 0x02,
119 SIG_TYPE_UNINITIALIZED = 0x04,
120 SIG_TYPE_OBJECT = 0x08,
121 SIG_TYPE_REFERENCE = 0x10,
122 SIG_TYPE_LIST = 0x20,
123 SIG_TYPE_NODE = 0x40,
124 SIG_TYPE_ERROR = 0x80,
125 SIG_IS_INVALID = 0x100,
126 SIG_IS_OPTIONAL = 0x200,
127 SIG_NEEDS_MORE = 0x400,
128 SIG_MORE_MAY_FOLLOW = 0x800
132#define SIG_MAYBE_ANY (SIG_TYPE_NULL | SIG_TYPE_INTEGER | SIG_TYPE_OBJECT | SIG_TYPE_REFERENCE | SIG_TYPE_LIST | SIG_TYPE_NODE)
137typedef reg_t KernelFunctionCall(EngineState *s,
int argc, reg_t *argv);
140 KernelFunctionCall *function;
145 bool debugBreakpoint;
149 KernelFunctionCall *function;
154 uint16 subFunctionCount;
165 uint getSelectorNamesSize()
const;
169 uint getKernelNamesSize()
const;
171 Common::String getKernelName(uint number, uint subFunction)
const;
181 void dissectScript(
int scriptNumber,
Vocabulary *vocab);
202 void signatureDebug(
Common::String &signatureDetails,
const uint16 *sig,
int argc,
const reg_t *argv);
242 void loadSelectorNames();
Definition: features.h:56
KernelFunctionArray _kernelFuncs
Definition: kernel.h:187
Common::String lookupText(reg_t address, int index)
uint16 findRegType(reg_t reg)
Kernel(ResourceManager *resMan, SegManager *segMan)
bool signatureMatch(const uint16 *sig, int argc, const reg_t *argv)
SelectorCache _selectorCache
Definition: kernel.h:185
int findSelector(const char *selectorName) const
void loadKernelNames(GameFeatures *features)
Definition: resource.h:327
Definition: seg_manager.h:48
Definition: vocabulary.h:188
Definition: lobject.h:332
Definition: workarounds.h:49
Definition: selector.h:33
Definition: vm_types.h:39