22 #ifndef ULTIMA8_KERNEL_KERNEL_H 23 #define ULTIMA8_KERNEL_KERNEL_H 25 #include "common/str.h" 26 #include "ultima/ultima8/misc/common_types.h" 27 #include "ultima/ultima8/usecode/intrinsics.h" 51 static Kernel *get_instance() {
58 ProcId addProcess(
Process *proc,
bool dispose =
true);
62 ProcId addProcessExec(
Process *proc,
bool dispose =
true);
65 Process *getProcess(ProcId pid);
67 ProcId assignPID(
Process *proc);
69 void setNextProcess(
Process *proc);
70 Process *getRunningProcess()
const {
71 return _runningProcess;
75 uint32 getNumProcesses(ObjId objid, uint16 processtype);
78 Process *findProcess(ObjId objid, uint16 processtype);
84 void killProcesses(ObjId objid, uint16 processtype,
bool fail);
90 void killProcessesNotOfType(ObjId objid, uint16 processtype,
bool fail);
96 void killAllProcessesNotOfTypeExcludeCurrent(uint16 processtype,
bool fail);
114 bool isPaused()
const {
118 void setFrameByFrame(
bool fbf) {
121 bool isFrameByFrame()
const {
122 return _frameByFrame;
125 void addProcessLoader(
Common::String classname, ProcessLoadFunc func) {
126 _processLoaders[classname] = func;
129 uint32 getFrameNum()
const {
130 return _tickNum / TICKS_PER_FRAME;
132 uint32 getTickNum()
const {
136 static constexpr uint32 TICKS_PER_FRAME = 2;
137 static constexpr uint32 TICKS_PER_SECOND = 60;
138 static constexpr uint32 FRAMES_PER_SECOND = TICKS_PER_SECOND / TICKS_PER_FRAME;
141 static const uint16 PROC_TYPE_ALL;
143 INTRINSIC(I_getNumProcesses);
144 INTRINSIC(I_resetRef);
158 unsigned int _paused;
Definition: detection.h:27
Definition: algorithm.h:29
Definition: list_intern.h:51
Definition: list_intern.h:54
Definition: debugger.h:33