[Scummvm-cvs-logs] SF.net SVN: scummvm:[38833] scummvm/trunk/engines/sci

fingolfin at users.sourceforge.net fingolfin at users.sourceforge.net
Tue Feb 24 06:51:55 CET 2009


Revision: 38833
          http://scummvm.svn.sourceforge.net/scummvm/?rev=38833&view=rev
Author:   fingolfin
Date:     2009-02-24 05:51:55 +0000 (Tue, 24 Feb 2009)

Log Message:
-----------
SCI: Moved kernel.h and kdebug.h from include/ to engine/; untangled header deps some more

Modified Paths:
--------------
    scummvm/trunk/engines/sci/engine/game.cpp
    scummvm/trunk/engines/sci/engine/kernel.cpp
    scummvm/trunk/engines/sci/engine/kevent.cpp
    scummvm/trunk/engines/sci/engine/kfile.cpp
    scummvm/trunk/engines/sci/engine/kgraphics.cpp
    scummvm/trunk/engines/sci/engine/klists.cpp
    scummvm/trunk/engines/sci/engine/kmath.cpp
    scummvm/trunk/engines/sci/engine/kmenu.cpp
    scummvm/trunk/engines/sci/engine/kmovement.cpp
    scummvm/trunk/engines/sci/engine/kpathing.cpp
    scummvm/trunk/engines/sci/engine/kscripts.cpp
    scummvm/trunk/engines/sci/engine/ksound.cpp
    scummvm/trunk/engines/sci/engine/kstring.cpp
    scummvm/trunk/engines/sci/engine/scriptdebug.cpp
    scummvm/trunk/engines/sci/engine/vm.cpp
    scummvm/trunk/engines/sci/gfx/menubar.cpp
    scummvm/trunk/engines/sci/include/engine.h
    scummvm/trunk/engines/sci/sci.cpp
    scummvm/trunk/engines/sci/scicore/vocab.cpp
    scummvm/trunk/engines/sci/tools.cpp

Added Paths:
-----------
    scummvm/trunk/engines/sci/engine/kdebug.h
    scummvm/trunk/engines/sci/engine/kernel.h

Removed Paths:
-------------
    scummvm/trunk/engines/sci/include/kdebug.h
    scummvm/trunk/engines/sci/include/kernel.h

Modified: scummvm/trunk/engines/sci/engine/game.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/game.cpp	2009-02-24 05:39:10 UTC (rev 38832)
+++ scummvm/trunk/engines/sci/engine/game.cpp	2009-02-24 05:51:55 UTC (rev 38833)
@@ -29,7 +29,7 @@
 #include "sci/include/sciresource.h"
 #include "sci/include/engine.h"
 #include "sci/include/versions.h"
-#include "sci/include/kernel.h"
+#include "sci/engine/kernel.h"
 #include "sci/engine/kernel_types.h"
 #include "sci/gfx/gfx_widgets.h"
 #include "sci/gfx/menubar.h"

Copied: scummvm/trunk/engines/sci/engine/kdebug.h (from rev 38822, scummvm/trunk/engines/sci/include/kdebug.h)
===================================================================
--- scummvm/trunk/engines/sci/engine/kdebug.h	                        (rev 0)
+++ scummvm/trunk/engines/sci/engine/kdebug.h	2009-02-24 05:51:55 UTC (rev 38833)
@@ -0,0 +1,112 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * $URL$
+ * $Id$
+ *
+ */
+
+/* Kernel debug defines */
+
+#ifndef _SCI_KDEBUG_H_
+#define _SCI_KDEBUG_H_
+
+namespace Sci {
+
+class EngineState;
+
+#define SCIk_DEBUG_MODES 17
+
+#define SCIkERROR_NR -2
+#define SCIkWARNING_NR -1
+#define SCIkFUNCCHK_NR 5
+#define SCIkSOUNDCHK_NR 7
+#define SCIkGFXDRIVER_NR 8
+#define SCIkBASESETTER_NR 9
+#define SCIkPARSER_NR 10
+#define SCIkAVOIDPATH_NR 17
+
+#define SCIkERROR      s, __FILE__, __LINE__, SCIkERROR_NR
+#define SCIkNODES      s, __FILE__, __LINE__, 1
+#define SCIkGRAPHICS   s, __FILE__, __LINE__, 2
+#define SCIkSTRINGS    s, __FILE__, __LINE__, 3
+#define SCIkMEM        s, __FILE__, __LINE__, 4
+#define SCIkFUNCCHK    s, __FILE__, __LINE__, SCIkFUNCCHK_NR
+#define SCIkBRESEN     s, __FILE__, __LINE__, 6
+#define SCIkSOUND      s, __FILE__, __LINE__, SCIkSOUNDCHK_NR
+#define SCIkGFXDRIVER  s, __FILE__, __LINE__, SCIkGFXDRIVER_NR
+#define SCIkBASESETTER s, __FILE__, __LINE__, SCIkBASESETTER_NR
+#define SCIkPARSER     s, __FILE__, __LINE__, SCIkPARSER_NR
+#define SCIkMENU       s, __FILE__, __LINE__, 11
+#define SCIkSAID       s, __FILE__, __LINE__, 12
+#define SCIkFILE       s, __FILE__, __LINE__, 13
+#define SCIkAVOIDPATH  s, __FILE__, __LINE__, SCIkAVOIDPATH_NR
+
+#define SCI_KERNEL_DEBUG
+
+#ifdef SCI_KERNEL_DEBUG
+
+#ifdef __GNUC__XXX
+
+#define SCIkdebug(arguments...) _SCIGNUkdebug(__PRETTY_FUNCTION__,  ## arguments)
+
+#else /* !__GNUC__ */
+
+#define SCIkdebug _SCIkdebug
+
+#endif /* !__GNUC__ */
+
+#else /* !SCI_KERNEL_DEBUG */
+
+#define SCIkdebug 1? (void)0 : _SCIkdebug
+
+#endif /* !SCI_KERNEL_DEBUG */
+
+
+#ifdef __GNUC__XXX
+
+#define SCIkwarn(arguments...) _SCIGNUkdebug(__PRETTY_FUNCTION__, ## arguments)
+
+#else /* !__GNUC__ */
+
+#define SCIkwarn _SCIkwarn
+
+#endif /* !__GNUC__ */
+
+ /* Internal functions */
+void _SCIkwarn(EngineState *s, const char *file, int line, int area, const char *format, ...);
+void _SCIkdebug(EngineState *s, const char *file, int line, int area, const char *format, ...);
+void _SCIGNUkdebug(const char *funcname, EngineState *s, const char *file, int line, int area, const char *format, ...);
+
+/* If mode=1, enables debugging for specified areas. If mode=0, disables
+** debugging for specified areas.
+** Valid area characters: ulgcmfbad
+*/
+void set_debug_mode(EngineState *s, int mode, const char *areas);
+
+extern int sci_debug_flags;
+
+/* Debug flags */
+#define _DEBUG_FLAG_LOGGING 1 /* Log each command executed */
+#define _DEBUG_FLAG_BREAK_ON_WARNINGS 2 /* Break on warnings */
+
+} // End of namespace Sci
+
+#endif

Modified: scummvm/trunk/engines/sci/engine/kernel.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/kernel.cpp	2009-02-24 05:39:10 UTC (rev 38832)
+++ scummvm/trunk/engines/sci/engine/kernel.cpp	2009-02-24 05:51:55 UTC (rev 38833)
@@ -36,6 +36,7 @@
 
 #include "sci/sci.h"
 #include "sci/engine/gc.h"
+#include "sci/engine/kernel.h"
 #include "sci/include/sciresource.h"
 #include "sci/include/engine.h"
 #include "sci/gfx/gfx_operations.h"

Copied: scummvm/trunk/engines/sci/engine/kernel.h (from rev 38825, scummvm/trunk/engines/sci/include/kernel.h)
===================================================================
--- scummvm/trunk/engines/sci/engine/kernel.h	                        (rev 0)
+++ scummvm/trunk/engines/sci/engine/kernel.h	2009-02-24 05:51:55 UTC (rev 38833)
@@ -0,0 +1,340 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * $URL$
+ * $Id$
+ *
+ */
+
+#ifndef _SCI_KERNEL_H_
+#define _SCI_KERNEL_H_
+
+#include "common/scummsys.h"
+#include "common/debug.h"
+
+#include "sci/engine/kdebug.h"
+#include "sci/include/uinput.h"
+#include "sci/include/sciconsole.h" /* sciprintf() */
+
+namespace Sci {
+
+struct node_t;	// from vm.h
+struct list_t;	// from vm.h
+
+extern int _kdebug_cheap_event_hack;
+extern int _kdebug_cheap_soundcue_hack;
+extern int stop_on_event;
+
+extern int _debug_seeking;
+extern int _debug_step_running;
+
+#define AVOIDPATH_DYNMEM_STRING "AvoidPath polyline"
+
+
+struct abs_rect_t {
+	int x, y, xend, yend;
+};
+
+/* Formerly, the heap macros were here; they have been deprecated, however. */
+
+/******************** Selector functionality ********************/
+
+#define GET_SEL32(_o_, _slc_) read_selector(s, _o_, s->selector_map._slc_, __FILE__, __LINE__)
+#define GET_SEL32V(_o_, _slc_) (GET_SEL32(_o_, _slc_).offset)
+#define GET_SEL32SV(_o_, _slc_) ((int16)(GET_SEL32(_o_, _slc_).offset))
+/* Retrieves a selector from an object
+** Parameters: (reg_t) object: The address of the object which the selector should be read from
+**             (selector_name) selector: The selector to read
+** Returns   : (int16/uint16/reg_t) The selector value
+** This macro halts on error. 'selector' must be a selector name registered in vm.h's
+** selector_map_t and mapped in script.c.
+*/
+
+#define PUT_SEL32(_o_, _slc_, _val_) write_selector(s, _o_, s->selector_map._slc_, _val_, __FILE__, __LINE__)
+#define PUT_SEL32V(_o_, _slc_, _val_) write_selector(s, _o_, s->selector_map._slc_, make_reg(0, _val_), __FILE__, __LINE__)
+/* Writes a selector value to an object
+** Parameters: (reg_t) object: The address of the object which the selector should be written to
+**             (selector_name) selector: The selector to read
+**             (int16) value: The value to write
+** Returns   : (void)
+** This macro halts on error. 'selector' must be a selector name registered in vm.h's
+** selector_map_t and mapped in script.c.
+*/
+
+
+#define INV_SEL(_object_, _selector_, _noinvalid_) \
+	s, _object_,  s->selector_map._selector_, _noinvalid_, funct_nr, argv, argc, __FILE__, __LINE__
+/* Kludge for use with invoke_selector(). Used for compatibility with compilers that can't
+** handle vararg macros.
+*/
+
+
+reg_t read_selector(EngineState *s,  reg_t object, selector_t selector_id, const char *fname, int line);
+void write_selector(EngineState *s, reg_t object, selector_t selector_id, reg_t value, const char *fname, int line);
+int invoke_selector(EngineState *s, reg_t object, int selector_id, int noinvalid, int kfunct,
+	stack_ptr_t k_argp, int k_argc, const char *fname, int line, int argc, ...);
+
+
+/******************** Text functionality ********************/
+char *kernel_lookup_text(EngineState *s, reg_t address, int index);
+/* Looks up text referenced by scripts
+** Parameters: (EngineState *s): The current state
+**             (reg_t) address: The address to look up
+**             (int) index: The relative index
+** Returns   : (char *): The referenced text, or NULL on error.
+** SCI uses two values to reference to text: An address, and an index. The address
+** determines whether the text should be read from a resource file, or from the heap,
+** while the index either refers to the number of the string in the specified source,
+** or to a relative position inside the text.
+*/
+
+
+/******************** Debug functionality ********************/
+#define KERNEL_OOPS(reason) kernel_oops(s, __FILE__, __LINE__, reason)
+
+#ifdef SCI_KERNEL_DEBUG
+
+#define CHECK_THIS_KERNEL_FUNCTION if (s->debug_mode & (1 << SCIkFUNCCHK_NR)) {\
+	int i;\
+	sciprintf("Kernel CHECK: %s[%x](", s->kernel_names[funct_nr], funct_nr); \
+	for (i = 0; i < argc; i++) { \
+		sciprintf("%04x", 0xffff & UKPV(i)); \
+		if (i+1 < argc) sciprintf(", "); \
+	} \
+	sciprintf(")\n"); \
+} \
+
+#else /* !SCI_KERNEL_DEBUG */
+
+#define CHECK_THIS_KERNEL_FUNCTION
+
+#endif /* !SCI_KERNEL_DEBUG */
+
+
+bool is_object(EngineState *s, reg_t obj);
+/* Checks whether a heap address contains an object
+** Parameters: (EngineState *) s: The current state
+**             (reg_t) obj: The address to check
+** Returns   : (int) 1 if it is an object, 0 otherwise
+*/
+
+/******************** Kernel function parameter macros ********************/
+
+/* Returns the parameter value or (alt) if not enough parameters were supplied */
+
+
+#define KP_ALT(x, alt) ((x < argc)? argv[x] : (alt))
+#define KP_UINT(x) ((uint16) x.offset)
+#define KP_SINT(x) ((int16) x.offset)
+
+
+#define SKPV(x) KP_SINT(argv[x])
+#define UKPV(x) KP_UINT(argv[x])
+#define SKPV_OR_ALT(x,a) KP_SINT(KP_ALT(x, make_reg(0, a)))
+#define UKPV_OR_ALT(x,a) KP_UINT(KP_ALT(x, make_reg(0, a)))
+
+reg_t *kernel_dereference_reg_pointer(EngineState *s, reg_t pointer, int entries);
+byte *kernel_dereference_bulk_pointer(EngineState *s, reg_t pointer, int entries);
+#define kernel_dereference_char_pointer(state, pointer, entries) (char*)kernel_dereference_bulk_pointer(state, pointer, entries)
+/* Dereferences a heap pointer
+** Parameters: (EngineState *) s: The state to operate on
+**             (reg_t ) pointer: The pointer to dereference
+**             (int) entries: The number of values expected (for checking)
+**                            (use 0 for strings)
+** Returns   : (reg_t/char *): A physical reference to the address pointed
+**                        to, or NULL on error or if not enugh entries
+**                        were available
+** reg_t dereferenciation also assures alignedness of data.
+*/
+
+/******************** Resource Macros ********************/
+
+/* Returns the composite resource ID: */
+#define RESOURCE_ID(type, number) (number) | ((type) << 11)
+#define RESOURCE_NUMBER(resid) ((resid) & 0x7ff)
+#define RESOURCE_TYPE(resid) ((resid) >> 11)
+
+int kernel_oops(EngineState *s, const char *file, int line, const char *reason);
+/* Halts script execution and informs the user about an internal kernel error or failed assertion
+** Parameters: (EngineState *) s: The state to use
+**            (const char *) file: The file the oops occured in
+**            (int) line: The line the oops occured in
+**            (const char *) reason: Reason for the kernel oops
+*/
+
+/******************** Priority macros/functions ********************/
+
+extern int sci01_priority_table_flags; /* 1: delete, 2: print */
+
+int _find_priority_band(EngineState *s, int band);
+/* Finds the position of the priority band specified
+** Parameters: (EngineState *) s: State to search in
+**             (int) band: Band to look for
+** Returns   : (int) Offset at which the band starts
+*/
+
+int _find_view_priority(EngineState *s, int y);
+/* Does the opposite of _find_priority_band
+** Parameters: (EngineState *) s: State
+**             (int) y: Coordinate to check
+** Returns   : (int) The priority band y belongs to
+*/
+
+#define SCI0_VIEW_PRIORITY_14_ZONES(y) (((y) < s->priority_first)? 0 : (((y) >= s->priority_last)? 14 : 1\
+	+ ((((y) - s->priority_first) * 14) / (s->priority_last - s->priority_first))))
+
+#define SCI0_PRIORITY_BAND_FIRST_14_ZONES(nr) ((((nr) == 0)? 0 :  \
+	((s->priority_first) + (((nr)-1) * (s->priority_last - s->priority_first)) / 14)))
+
+#define SCI0_VIEW_PRIORITY(y) (((y) < s->priority_first)? 0 : (((y) >= s->priority_last)? 14 : 1\
+	+ ((((y) - s->priority_first) * 15) / (s->priority_last - s->priority_first))))
+
+#define SCI0_PRIORITY_BAND_FIRST(nr) ((((nr) == 0)? 0 :  \
+	((s->priority_first) + (((nr)-1) * (s->priority_last - s->priority_first)) / 15)))
+
+#define VIEW_PRIORITY(y) _find_view_priority(s, y)
+#define PRIORITY_BAND_FIRST(nr) _find_priority_band(s, nr)
+
+
+
+
+
+/******************** Dynamic view list functions ********************/
+
+abs_rect_t set_base(EngineState *s, reg_t object);
+/* Determines the base rectangle of the specified view object
+** Parameters: (EngineState *) s: The state to use
+**             (reg_t) object: The object to set
+** Returns   : (abs_rect) The absolute base rectangle
+*/
+
+extern abs_rect_t get_nsrect(EngineState *s, reg_t object, byte clip);
+/* Determines the now-seen rectangle of a view object
+** Parameters: (EngineState *) s: The state to use
+**             (reg_t) object: The object to check
+**             (byte) clip: Flag to determine wheter priority band
+**                          clipping should be performed
+** Returns   : (abs_rect) The absolute rectangle describing the
+** now-seen area.
+*/
+
+void _k_dyn_view_list_prepare_change(EngineState *s);
+/* Removes all views in anticipation of a new window or text */
+void _k_dyn_view_list_accept_change(EngineState *s);
+/* Redraws all views after a new window or text was added */
+
+
+
+
+/******************** Misc functions ********************/
+
+void process_sound_events(EngineState *s); /* Get all sound events, apply their changes to the heap */
+
+#define LOOKUP_NODE(addr) lookup_node(s, (addr), __FILE__, __LINE__)
+#define LOOKUP_LIST(addr) lookup_list(s, addr, __FILE__, __LINE__)
+
+node_t *lookup_node(EngineState *s, reg_t addr, const char *file, int line);
+/* Resolves an address into a list node
+** Parameters: (EngineState *) s: The state to operate on
+**             (reg_t) addr: The address to resolve
+**             (const char *) file: The file the function was called from
+**             (int) line: The line number the function was called from
+** Returns   : (node_t *) The list node referenced, or NULL on error
+*/
+
+
+list_t *lookup_list(EngineState *s, reg_t addr, const char *file, int line);
+/* Resolves a list pointer to a list
+** Parameters: (EngineState *) s: The state to operate on
+**             (reg_t) addr: The address to resolve
+**             (const char *) file: The file the function was called from
+**             (int) line: The line number the function was called from
+** Returns   : (list_t *) The list referenced, or NULL on error
+*/
+
+
+/******************** Constants ********************/
+
+/* Maximum length of a savegame name (including terminator character) */
+#define SCI_MAX_SAVENAME_LENGTH 0x24
+
+/* Flags for the signal selector */
+#define _K_VIEW_SIG_FLAG_STOP_UPDATE    0x0001
+#define _K_VIEW_SIG_FLAG_UPDATED        0x0002
+#define _K_VIEW_SIG_FLAG_NO_UPDATE      0x0004
+#define _K_VIEW_SIG_FLAG_HIDDEN         0x0008
+#define _K_VIEW_SIG_FLAG_FIX_PRI_ON     0x0010
+#define _K_VIEW_SIG_FLAG_ALWAYS_UPDATE  0x0020
+#define _K_VIEW_SIG_FLAG_FORCE_UPDATE   0x0040
+#define _K_VIEW_SIG_FLAG_REMOVE         0x0080
+#define _K_VIEW_SIG_FLAG_FROZEN         0x0100
+#define _K_VIEW_SIG_FLAG_IS_EXTRA       0x0200
+#define _K_VIEW_SIG_FLAG_HIT_OBSTACLE   0x0400
+#define _K_VIEW_SIG_FLAG_DOESNT_TURN    0x0800
+#define _K_VIEW_SIG_FLAG_NO_CYCLER      0x1000
+#define _K_VIEW_SIG_FLAG_IGNORE_HORIZON 0x2000
+#define _K_VIEW_SIG_FLAG_IGNORE_ACTOR   0x4000
+#define _K_VIEW_SIG_FLAG_DISPOSE_ME     0x8000
+
+#define _K_VIEW_SIG_FLAG_FREESCI_STOPUPD 0x20000000 /* View has been stop-updated */
+
+
+/* Sound status */
+#define _K_SOUND_STATUS_STOPPED 0
+#define _K_SOUND_STATUS_INITIALIZED 1
+#define _K_SOUND_STATUS_PAUSED 2
+#define _K_SOUND_STATUS_PLAYING 3
+
+
+
+/* Kernel optimization flags */
+#define KERNEL_OPT_FLAG_GOT_EVENT (1<<0)
+#define KERNEL_OPT_FLAG_GOT_2NDEVENT (1<<1)
+
+
+/******************** Kernel functions ********************/
+
+/* Generic description: */
+typedef reg_t kfunct(EngineState *s, int funct_nr, int argc, reg_t *argv);
+
+#define FREESCI_KFUNCT_GLUTTON 1
+
+struct kfunct_sig_pair_t {
+	kfunct *fun; /* The actual function */
+	const char *signature;  /* kfunct signature */
+	const char *orig_name; /* Original name, in case we couldn't map it */
+};
+
+#define KF_OLD 0
+#define KF_NEW 1
+#define KF_NONE -1 /* No mapping, but name is known */
+#define KF_TERMINATOR -42 /* terminates kfunct_mappers */
+
+struct sci_kernel_function_t {
+	int type; /* KF_* */
+	const char *name;
+	kfunct_sig_pair_t sig_pair;
+};
+
+extern sci_kernel_function_t kfunct_mappers[];
+
+} // End of namespace Sci
+
+#endif /* _SCI_KERNEL_H_ */

Modified: scummvm/trunk/engines/sci/engine/kevent.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/kevent.cpp	2009-02-24 05:39:10 UTC (rev 38832)
+++ scummvm/trunk/engines/sci/engine/kevent.cpp	2009-02-24 05:51:55 UTC (rev 38833)
@@ -25,6 +25,7 @@
 
 #include "sci/include/engine.h"
 #include "sci/gfx/gfx_widgets.h"
+#include "sci/engine/kernel.h"
 
 namespace Sci {
 

Modified: scummvm/trunk/engines/sci/engine/kfile.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/kfile.cpp	2009-02-24 05:39:10 UTC (rev 38832)
+++ scummvm/trunk/engines/sci/engine/kfile.cpp	2009-02-24 05:51:55 UTC (rev 38833)
@@ -35,8 +35,9 @@
 #include "common/str.h"
 #include "common/savefile.h"
 
+#include "sci/sci.h"
 #include "sci/include/engine.h"
-#include "sci/sci.h"
+#include "sci/engine/kernel.h"
 
 #include <errno.h>
 #include <sys/stat.h>		// for S_IREAD/S_IWRITE

Modified: scummvm/trunk/engines/sci/engine/kgraphics.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/kgraphics.cpp	2009-02-24 05:39:10 UTC (rev 38832)
+++ scummvm/trunk/engines/sci/engine/kgraphics.cpp	2009-02-24 05:51:55 UTC (rev 38833)
@@ -27,9 +27,10 @@
 
 #include "sci/include/sciresource.h"
 #include "sci/include/engine.h"
+#include "sci/include/sci_widgets.h"
 #include "sci/gfx/gfx_widgets.h"
 #include "sci/engine/sci_graphics.h"
-#include "sci/include/sci_widgets.h"
+#include "sci/engine/kernel.h"
 
 namespace Sci {
 

Modified: scummvm/trunk/engines/sci/engine/klists.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/klists.cpp	2009-02-24 05:39:10 UTC (rev 38832)
+++ scummvm/trunk/engines/sci/engine/klists.cpp	2009-02-24 05:51:55 UTC (rev 38833)
@@ -24,6 +24,7 @@
  */
 
 #include "sci/include/engine.h"
+#include "sci/engine/kernel.h"
 
 namespace Sci {
 

Modified: scummvm/trunk/engines/sci/engine/kmath.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/kmath.cpp	2009-02-24 05:39:10 UTC (rev 38832)
+++ scummvm/trunk/engines/sci/engine/kmath.cpp	2009-02-24 05:51:55 UTC (rev 38833)
@@ -24,6 +24,7 @@
  */
 
 #include "sci/include/engine.h"
+#include "sci/engine/kernel.h"
 
 namespace Sci {
 

Modified: scummvm/trunk/engines/sci/engine/kmenu.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/kmenu.cpp	2009-02-24 05:39:10 UTC (rev 38832)
+++ scummvm/trunk/engines/sci/engine/kmenu.cpp	2009-02-24 05:51:55 UTC (rev 38833)
@@ -27,6 +27,7 @@
 #include "sci/include/engine.h"
 #include "sci/include/sci_widgets.h"
 #include "sci/gfx/menubar.h"
+#include "sci/engine/kernel.h"
 
 namespace Sci {
 

Modified: scummvm/trunk/engines/sci/engine/kmovement.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/kmovement.cpp	2009-02-24 05:39:10 UTC (rev 38832)
+++ scummvm/trunk/engines/sci/engine/kmovement.cpp	2009-02-24 05:51:55 UTC (rev 38833)
@@ -25,6 +25,7 @@
 
 #include "sci/include/sciresource.h"
 #include "sci/include/engine.h"
+#include "sci/engine/kernel.h"
 
 namespace Sci {
 

Modified: scummvm/trunk/engines/sci/engine/kpathing.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/kpathing.cpp	2009-02-24 05:39:10 UTC (rev 38832)
+++ scummvm/trunk/engines/sci/engine/kpathing.cpp	2009-02-24 05:51:55 UTC (rev 38833)
@@ -30,6 +30,7 @@
 #include "sci/include/engine.h"
 #include "sci/engine/aatree.h"
 #include "sci/gfx/gfx_widgets.h"
+#include "sci/engine/kernel.h"
 
 #include "common/list.h"
 

Modified: scummvm/trunk/engines/sci/engine/kscripts.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/kscripts.cpp	2009-02-24 05:39:10 UTC (rev 38832)
+++ scummvm/trunk/engines/sci/engine/kscripts.cpp	2009-02-24 05:51:55 UTC (rev 38833)
@@ -26,6 +26,7 @@
 #include "sci/include/sciresource.h"
 #include "sci/include/engine.h"
 #include "sci/engine/kernel_types.h"
+#include "sci/engine/kernel.h"
 
 namespace Sci {
 

Modified: scummvm/trunk/engines/sci/engine/ksound.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/ksound.cpp	2009-02-24 05:39:10 UTC (rev 38832)
+++ scummvm/trunk/engines/sci/engine/ksound.cpp	2009-02-24 05:51:55 UTC (rev 38833)
@@ -25,6 +25,7 @@
 
 #include "sci/include/engine.h"
 #include "sci/sfx/sfx_player.h"
+#include "sci/engine/kernel.h"
 
 namespace Sci {
 

Modified: scummvm/trunk/engines/sci/engine/kstring.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/kstring.cpp	2009-02-24 05:39:10 UTC (rev 38832)
+++ scummvm/trunk/engines/sci/engine/kstring.cpp	2009-02-24 05:51:55 UTC (rev 38833)
@@ -28,6 +28,7 @@
 #include "sci/include/sciresource.h"
 #include "sci/include/engine.h"
 #include "sci/engine/message.h"
+#include "sci/engine/kernel.h"
 
 namespace Sci {
 

Modified: scummvm/trunk/engines/sci/engine/scriptdebug.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/scriptdebug.cpp	2009-02-24 05:39:10 UTC (rev 38832)
+++ scummvm/trunk/engines/sci/engine/scriptdebug.cpp	2009-02-24 05:51:55 UTC (rev 38833)
@@ -29,8 +29,9 @@
 #include "sci/include/sciresource.h"
 #include "sci/include/engine.h"
 #include "sci/include/sciconsole.h"
-#include "sci/include/kdebug.h"
+#include "sci/engine/kdebug.h"
 #include "sci/include/vocabulary.h"
+#include "sci/engine/kernel.h"
 #include "sci/engine/kernel_types.h"
 #include "sci/include/sci_midi.h"
 #include "sci/include/sci_widgets.h"

Modified: scummvm/trunk/engines/sci/engine/vm.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/vm.cpp	2009-02-24 05:39:10 UTC (rev 38832)
+++ scummvm/trunk/engines/sci/engine/vm.cpp	2009-02-24 05:51:55 UTC (rev 38833)
@@ -28,7 +28,8 @@
 #include "sci/include/sciresource.h"
 #include "sci/include/engine.h"
 #include "sci/include/versions.h"
-#include "sci/include/kdebug.h"
+#include "sci/engine/kdebug.h"
+#include "sci/engine/kernel.h"
 #include "sci/engine/kernel_types.h"
 #include "sci/engine/seg_manager.h"
 #include "sci/engine/gc.h"

Modified: scummvm/trunk/engines/sci/gfx/menubar.cpp
===================================================================
--- scummvm/trunk/engines/sci/gfx/menubar.cpp	2009-02-24 05:39:10 UTC (rev 38832)
+++ scummvm/trunk/engines/sci/gfx/menubar.cpp	2009-02-24 05:51:55 UTC (rev 38833)
@@ -31,6 +31,7 @@
 #include "sci/sci_memory.h"
 #include "sci/include/engine.h"
 #include "sci/gfx/menubar.h"
+#include "sci/engine/kernel.h"
 
 namespace Sci {
 

Modified: scummvm/trunk/engines/sci/include/engine.h
===================================================================
--- scummvm/trunk/engines/sci/include/engine.h	2009-02-24 05:39:10 UTC (rev 38832)
+++ scummvm/trunk/engines/sci/include/engine.h	2009-02-24 05:51:55 UTC (rev 38833)
@@ -38,9 +38,7 @@
 #include "sci/include/sciresource.h"
 #include "sci/include/script.h"
 #include "sci/include/sciconsole.h"
-#include "sci/include/vm.h"
 #include "sci/include/versions.h"
-#include "sci/include/kernel.h"
 #include "sci/engine/seg_manager.h"
 #include "sci/gfx/gfx_state_internal.h"
 #include "sci/sfx/sfx_engine.h"
@@ -48,6 +46,7 @@
 namespace Sci {
 
 struct menubar_t;
+struct kfunct_sig_pair_t;	// from kernel.h
 
 class DirSeeker;
 

Deleted: scummvm/trunk/engines/sci/include/kdebug.h
===================================================================
--- scummvm/trunk/engines/sci/include/kdebug.h	2009-02-24 05:39:10 UTC (rev 38832)
+++ scummvm/trunk/engines/sci/include/kdebug.h	2009-02-24 05:51:55 UTC (rev 38833)
@@ -1,110 +0,0 @@
-/* ScummVM - Graphic Adventure Engine
- *
- * ScummVM is the legal property of its developers, whose names
- * are too numerous to list here. Please refer to the COPYRIGHT
- * file distributed with this source distribution.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
-
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
-
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * $URL$
- * $Id$
- *
- */
-
-/* Kernel debug defines */
-
-#ifndef _SCI_KDEBUG_H_
-#define _SCI_KDEBUG_H_
-
-namespace Sci {
-
-#define SCIk_DEBUG_MODES 17
-
-#define SCIkERROR_NR -2
-#define SCIkWARNING_NR -1
-#define SCIkFUNCCHK_NR 5
-#define SCIkSOUNDCHK_NR 7
-#define SCIkGFXDRIVER_NR 8
-#define SCIkBASESETTER_NR 9
-#define SCIkPARSER_NR 10
-#define SCIkAVOIDPATH_NR 17
-
-#define SCIkERROR      s, __FILE__, __LINE__, SCIkERROR_NR
-#define SCIkNODES      s, __FILE__, __LINE__, 1
-#define SCIkGRAPHICS   s, __FILE__, __LINE__, 2
-#define SCIkSTRINGS    s, __FILE__, __LINE__, 3
-#define SCIkMEM        s, __FILE__, __LINE__, 4
-#define SCIkFUNCCHK    s, __FILE__, __LINE__, SCIkFUNCCHK_NR
-#define SCIkBRESEN     s, __FILE__, __LINE__, 6
-#define SCIkSOUND      s, __FILE__, __LINE__, SCIkSOUNDCHK_NR
-#define SCIkGFXDRIVER  s, __FILE__, __LINE__, SCIkGFXDRIVER_NR
-#define SCIkBASESETTER s, __FILE__, __LINE__, SCIkBASESETTER_NR
-#define SCIkPARSER     s, __FILE__, __LINE__, SCIkPARSER_NR
-#define SCIkMENU       s, __FILE__, __LINE__, 11
-#define SCIkSAID       s, __FILE__, __LINE__, 12
-#define SCIkFILE       s, __FILE__, __LINE__, 13
-#define SCIkAVOIDPATH  s, __FILE__, __LINE__, SCIkAVOIDPATH_NR
-
-#define SCI_KERNEL_DEBUG
-
-#ifdef SCI_KERNEL_DEBUG
-
-#ifdef __GNUC__XXX
-
-#define SCIkdebug(arguments...) _SCIGNUkdebug(__PRETTY_FUNCTION__,  ## arguments)
-
-#else /* !__GNUC__ */
-
-#define SCIkdebug _SCIkdebug
-
-#endif /* !__GNUC__ */
-
-#else /* !SCI_KERNEL_DEBUG */
-
-#define SCIkdebug 1? (void)0 : _SCIkdebug
-
-#endif /* !SCI_KERNEL_DEBUG */
-
-
-#ifdef __GNUC__XXX
-
-#define SCIkwarn(arguments...) _SCIGNUkdebug(__PRETTY_FUNCTION__, ## arguments)
-
-#else /* !__GNUC__ */
-
-#define SCIkwarn _SCIkwarn
-
-#endif /* !__GNUC__ */
-
- /* Internal functions */
-void _SCIkwarn(EngineState *s, const char *file, int line, int area, const char *format, ...);
-void _SCIkdebug(EngineState *s, const char *file, int line, int area, const char *format, ...);
-void _SCIGNUkdebug(const char *funcname, EngineState *s, const char *file, int line, int area, const char *format, ...);
-
-/* If mode=1, enables debugging for specified areas. If mode=0, disables
-** debugging for specified areas.
-** Valid area characters: ulgcmfbad
-*/
-void set_debug_mode(EngineState *s, int mode, const char *areas);
-
-extern int sci_debug_flags;
-
-/* Debug flags */
-#define _DEBUG_FLAG_LOGGING 1 /* Log each command executed */
-#define _DEBUG_FLAG_BREAK_ON_WARNINGS 2 /* Break on warnings */
-
-} // End of namespace Sci
-
-#endif

Deleted: scummvm/trunk/engines/sci/include/kernel.h
===================================================================
--- scummvm/trunk/engines/sci/include/kernel.h	2009-02-24 05:39:10 UTC (rev 38832)
+++ scummvm/trunk/engines/sci/include/kernel.h	2009-02-24 05:51:55 UTC (rev 38833)
@@ -1,338 +0,0 @@
-/* ScummVM - Graphic Adventure Engine
- *
- * ScummVM is the legal property of its developers, whose names
- * are too numerous to list here. Please refer to the COPYRIGHT
- * file distributed with this source distribution.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
-
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
-
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * $URL$
- * $Id$
- *
- */
-
-#ifndef _SCI_KERNEL_H_
-#define _SCI_KERNEL_H_
-
-#include "common/scummsys.h"
-#include "common/debug.h"
-
-#include "sci/include/kdebug.h"
-#include "sci/include/uinput.h"
-#include "sci/include/vm.h"
-#include "sci/include/sciconsole.h" /* sciprintf() */
-
-namespace Sci {
-
-extern int _kdebug_cheap_event_hack;
-extern int _kdebug_cheap_soundcue_hack;
-extern int stop_on_event;
-
-extern int _debug_seeking;
-extern int _debug_step_running;
-
-#define AVOIDPATH_DYNMEM_STRING "AvoidPath polyline"
-
-
-struct abs_rect_t {
-	int x, y, xend, yend;
-};
-
-/* Formerly, the heap macros were here; they have been deprecated, however. */
-
-/******************** Selector functionality ********************/
-
-#define GET_SEL32(_o_, _slc_) read_selector(s, _o_, s->selector_map._slc_, __FILE__, __LINE__)
-#define GET_SEL32V(_o_, _slc_) (GET_SEL32(_o_, _slc_).offset)
-#define GET_SEL32SV(_o_, _slc_) ((int16)(GET_SEL32(_o_, _slc_).offset))
-/* Retrieves a selector from an object
-** Parameters: (reg_t) object: The address of the object which the selector should be read from
-**             (selector_name) selector: The selector to read
-** Returns   : (int16/uint16/reg_t) The selector value
-** This macro halts on error. 'selector' must be a selector name registered in vm.h's
-** selector_map_t and mapped in script.c.
-*/
-
-#define PUT_SEL32(_o_, _slc_, _val_) write_selector(s, _o_, s->selector_map._slc_, _val_, __FILE__, __LINE__)
-#define PUT_SEL32V(_o_, _slc_, _val_) write_selector(s, _o_, s->selector_map._slc_, make_reg(0, _val_), __FILE__, __LINE__)
-/* Writes a selector value to an object
-** Parameters: (reg_t) object: The address of the object which the selector should be written to
-**             (selector_name) selector: The selector to read
-**             (int16) value: The value to write
-** Returns   : (void)
-** This macro halts on error. 'selector' must be a selector name registered in vm.h's
-** selector_map_t and mapped in script.c.
-*/
-
-
-#define INV_SEL(_object_, _selector_, _noinvalid_) \
-	s, _object_,  s->selector_map._selector_, _noinvalid_, funct_nr, argv, argc, __FILE__, __LINE__
-/* Kludge for use with invoke_selector(). Used for compatibility with compilers that can't
-** handle vararg macros.
-*/
-
-
-reg_t read_selector(EngineState *s,  reg_t object, selector_t selector_id, const char *fname, int line);
-void write_selector(EngineState *s, reg_t object, selector_t selector_id, reg_t value, const char *fname, int line);
-int invoke_selector(EngineState *s, reg_t object, int selector_id, int noinvalid, int kfunct,
-	stack_ptr_t k_argp, int k_argc, const char *fname, int line, int argc, ...);
-
-
-/******************** Text functionality ********************/
-char *kernel_lookup_text(EngineState *s, reg_t address, int index);
-/* Looks up text referenced by scripts
-** Parameters: (EngineState *s): The current state
-**             (reg_t) address: The address to look up
-**             (int) index: The relative index
-** Returns   : (char *): The referenced text, or NULL on error.
-** SCI uses two values to reference to text: An address, and an index. The address
-** determines whether the text should be read from a resource file, or from the heap,
-** while the index either refers to the number of the string in the specified source,
-** or to a relative position inside the text.
-*/
-
-
-/******************** Debug functionality ********************/
-#define KERNEL_OOPS(reason) kernel_oops(s, __FILE__, __LINE__, reason)
-
-#ifdef SCI_KERNEL_DEBUG
-
-#define CHECK_THIS_KERNEL_FUNCTION if (s->debug_mode & (1 << SCIkFUNCCHK_NR)) {\
-	int i;\
-	sciprintf("Kernel CHECK: %s[%x](", s->kernel_names[funct_nr], funct_nr); \
-	for (i = 0; i < argc; i++) { \
-		sciprintf("%04x", 0xffff & UKPV(i)); \
-		if (i+1 < argc) sciprintf(", "); \
-	} \
-	sciprintf(")\n"); \
-} \
-
-#else /* !SCI_KERNEL_DEBUG */
-
-#define CHECK_THIS_KERNEL_FUNCTION
-
-#endif /* !SCI_KERNEL_DEBUG */
-
-
-bool is_object(EngineState *s, reg_t obj);
-/* Checks whether a heap address contains an object
-** Parameters: (EngineState *) s: The current state
-**             (reg_t) obj: The address to check
-** Returns   : (int) 1 if it is an object, 0 otherwise
-*/
-
-/******************** Kernel function parameter macros ********************/
-
-/* Returns the parameter value or (alt) if not enough parameters were supplied */
-
-
-#define KP_ALT(x, alt) ((x < argc)? argv[x] : (alt))
-#define KP_UINT(x) ((uint16) x.offset)
-#define KP_SINT(x) ((int16) x.offset)
-
-
-#define SKPV(x) KP_SINT(argv[x])
-#define UKPV(x) KP_UINT(argv[x])
-#define SKPV_OR_ALT(x,a) KP_SINT(KP_ALT(x, make_reg(0, a)))
-#define UKPV_OR_ALT(x,a) KP_UINT(KP_ALT(x, make_reg(0, a)))
-
-reg_t *kernel_dereference_reg_pointer(EngineState *s, reg_t pointer, int entries);
-byte *kernel_dereference_bulk_pointer(EngineState *s, reg_t pointer, int entries);
-#define kernel_dereference_char_pointer(state, pointer, entries) (char*)kernel_dereference_bulk_pointer(state, pointer, entries)
-/* Dereferences a heap pointer
-** Parameters: (EngineState *) s: The state to operate on
-**             (reg_t ) pointer: The pointer to dereference
-**             (int) entries: The number of values expected (for checking)
-**                            (use 0 for strings)
-** Returns   : (reg_t/char *): A physical reference to the address pointed
-**                        to, or NULL on error or if not enugh entries
-**                        were available
-** reg_t dereferenciation also assures alignedness of data.
-*/
-
-/******************** Resource Macros ********************/
-
-/* Returns the composite resource ID: */
-#define RESOURCE_ID(type, number) (number) | ((type) << 11)
-#define RESOURCE_NUMBER(resid) ((resid) & 0x7ff)
-#define RESOURCE_TYPE(resid) ((resid) >> 11)
-
-int kernel_oops(EngineState *s, const char *file, int line, const char *reason);
-/* Halts script execution and informs the user about an internal kernel error or failed assertion
-** Parameters: (EngineState *) s: The state to use
-**            (const char *) file: The file the oops occured in
-**            (int) line: The line the oops occured in
-**            (const char *) reason: Reason for the kernel oops
-*/
-
-/******************** Priority macros/functions ********************/
-
-extern int sci01_priority_table_flags; /* 1: delete, 2: print */
-
-int _find_priority_band(EngineState *s, int band);
-/* Finds the position of the priority band specified
-** Parameters: (EngineState *) s: State to search in
-**             (int) band: Band to look for
-** Returns   : (int) Offset at which the band starts
-*/
-
-int _find_view_priority(EngineState *s, int y);
-/* Does the opposite of _find_priority_band
-** Parameters: (EngineState *) s: State
-**             (int) y: Coordinate to check
-** Returns   : (int) The priority band y belongs to
-*/
-
-#define SCI0_VIEW_PRIORITY_14_ZONES(y) (((y) < s->priority_first)? 0 : (((y) >= s->priority_last)? 14 : 1\
-	+ ((((y) - s->priority_first) * 14) / (s->priority_last - s->priority_first))))
-
-#define SCI0_PRIORITY_BAND_FIRST_14_ZONES(nr) ((((nr) == 0)? 0 :  \
-	((s->priority_first) + (((nr)-1) * (s->priority_last - s->priority_first)) / 14)))
-
-#define SCI0_VIEW_PRIORITY(y) (((y) < s->priority_first)? 0 : (((y) >= s->priority_last)? 14 : 1\
-	+ ((((y) - s->priority_first) * 15) / (s->priority_last - s->priority_first))))
-
-#define SCI0_PRIORITY_BAND_FIRST(nr) ((((nr) == 0)? 0 :  \
-	((s->priority_first) + (((nr)-1) * (s->priority_last - s->priority_first)) / 15)))
-
-#define VIEW_PRIORITY(y) _find_view_priority(s, y)
-#define PRIORITY_BAND_FIRST(nr) _find_priority_band(s, nr)
-
-
-
-
-
-/******************** Dynamic view list functions ********************/
-
-abs_rect_t set_base(EngineState *s, reg_t object);
-/* Determines the base rectangle of the specified view object
-** Parameters: (EngineState *) s: The state to use
-**             (reg_t) object: The object to set
-** Returns   : (abs_rect) The absolute base rectangle
-*/
-
-extern abs_rect_t get_nsrect(EngineState *s, reg_t object, byte clip);
-/* Determines the now-seen rectangle of a view object
-** Parameters: (EngineState *) s: The state to use
-**             (reg_t) object: The object to check
-**             (byte) clip: Flag to determine wheter priority band
-**                          clipping should be performed
-** Returns   : (abs_rect) The absolute rectangle describing the
-** now-seen area.
-*/
-
-void _k_dyn_view_list_prepare_change(EngineState *s);
-/* Removes all views in anticipation of a new window or text */
-void _k_dyn_view_list_accept_change(EngineState *s);
-/* Redraws all views after a new window or text was added */
-
-
-
-
-/******************** Misc functions ********************/
-
-void process_sound_events(EngineState *s); /* Get all sound events, apply their changes to the heap */
-
-#define LOOKUP_NODE(addr) lookup_node(s, (addr), __FILE__, __LINE__)
-#define LOOKUP_LIST(addr) lookup_list(s, addr, __FILE__, __LINE__)
-
-node_t *lookup_node(EngineState *s, reg_t addr, const char *file, int line);
-/* Resolves an address into a list node
-** Parameters: (EngineState *) s: The state to operate on
-**             (reg_t) addr: The address to resolve
-**             (const char *) file: The file the function was called from
-**             (int) line: The line number the function was called from
-** Returns   : (node_t *) The list node referenced, or NULL on error
-*/
-
-
-list_t *lookup_list(EngineState *s, reg_t addr, const char *file, int line);
-/* Resolves a list pointer to a list
-** Parameters: (EngineState *) s: The state to operate on
-**             (reg_t) addr: The address to resolve
-**             (const char *) file: The file the function was called from
-**             (int) line: The line number the function was called from
-** Returns   : (list_t *) The list referenced, or NULL on error
-*/
-
-
-/******************** Constants ********************/
-
-/* Maximum length of a savegame name (including terminator character) */
-#define SCI_MAX_SAVENAME_LENGTH 0x24
-
-/* Flags for the signal selector */
-#define _K_VIEW_SIG_FLAG_STOP_UPDATE    0x0001
-#define _K_VIEW_SIG_FLAG_UPDATED        0x0002
-#define _K_VIEW_SIG_FLAG_NO_UPDATE      0x0004
-#define _K_VIEW_SIG_FLAG_HIDDEN         0x0008
-#define _K_VIEW_SIG_FLAG_FIX_PRI_ON     0x0010
-#define _K_VIEW_SIG_FLAG_ALWAYS_UPDATE  0x0020
-#define _K_VIEW_SIG_FLAG_FORCE_UPDATE   0x0040
-#define _K_VIEW_SIG_FLAG_REMOVE         0x0080
-#define _K_VIEW_SIG_FLAG_FROZEN         0x0100
-#define _K_VIEW_SIG_FLAG_IS_EXTRA       0x0200
-#define _K_VIEW_SIG_FLAG_HIT_OBSTACLE   0x0400
-#define _K_VIEW_SIG_FLAG_DOESNT_TURN    0x0800
-#define _K_VIEW_SIG_FLAG_NO_CYCLER      0x1000
-#define _K_VIEW_SIG_FLAG_IGNORE_HORIZON 0x2000
-#define _K_VIEW_SIG_FLAG_IGNORE_ACTOR   0x4000
-#define _K_VIEW_SIG_FLAG_DISPOSE_ME     0x8000
-
-#define _K_VIEW_SIG_FLAG_FREESCI_STOPUPD 0x20000000 /* View has been stop-updated */
-
-
-/* Sound status */
-#define _K_SOUND_STATUS_STOPPED 0
-#define _K_SOUND_STATUS_INITIALIZED 1
-#define _K_SOUND_STATUS_PAUSED 2
-#define _K_SOUND_STATUS_PLAYING 3
-
-
-
-/* Kernel optimization flags */
-#define KERNEL_OPT_FLAG_GOT_EVENT (1<<0)
-#define KERNEL_OPT_FLAG_GOT_2NDEVENT (1<<1)
-
-
-/******************** Kernel functions ********************/
-
-/* Generic description: */
-typedef reg_t kfunct(EngineState *s, int funct_nr, int argc, reg_t *argv);
-
-#define FREESCI_KFUNCT_GLUTTON 1
-
-struct kfunct_sig_pair_t {
-	kfunct *fun; /* The actual function */
-	const char *signature;  /* kfunct signature */
-	const char *orig_name; /* Original name, in case we couldn't map it */
-};
-
-#define KF_OLD 0
-#define KF_NEW 1
-#define KF_NONE -1 /* No mapping, but name is known */
-#define KF_TERMINATOR -42 /* terminates kfunct_mappers */
-
-struct sci_kernel_function_t {
-	int type; /* KF_* */
-	const char *name;
-	kfunct_sig_pair_t sig_pair;
-};
-
-extern sci_kernel_function_t kfunct_mappers[];
-
-} // End of namespace Sci
-
-#endif /* _SCI_KERNEL_H_ */

Modified: scummvm/trunk/engines/sci/sci.cpp
===================================================================
--- scummvm/trunk/engines/sci/sci.cpp	2009-02-24 05:39:10 UTC (rev 38832)
+++ scummvm/trunk/engines/sci/sci.cpp	2009-02-24 05:51:55 UTC (rev 38833)
@@ -31,6 +31,7 @@
 #include "sci/sci.h"
 #include "sci/console.h"
 #include "sci/include/engine.h"
+#include "sci/engine/kernel.h"
 
 #ifdef WIN32
 #  include <direct.h>

Modified: scummvm/trunk/engines/sci/scicore/vocab.cpp
===================================================================
--- scummvm/trunk/engines/sci/scicore/vocab.cpp	2009-02-24 05:39:10 UTC (rev 38832)
+++ scummvm/trunk/engines/sci/scicore/vocab.cpp	2009-02-24 05:51:55 UTC (rev 38833)
@@ -27,7 +27,7 @@
 
 #include "sci/include/sciresource.h"
 #include "sci/include/engine.h"
-#include "sci/include/kernel.h"
+#include "sci/engine/kernel.h"
 
 namespace Sci {
 

Modified: scummvm/trunk/engines/sci/tools.cpp
===================================================================
--- scummvm/trunk/engines/sci/tools.cpp	2009-02-24 05:39:10 UTC (rev 38832)
+++ scummvm/trunk/engines/sci/tools.cpp	2009-02-24 05:51:55 UTC (rev 38833)
@@ -40,6 +40,7 @@
 #include "common/str.h"
 
 #include "sci/include/engine.h"
+#include "sci/engine/kernel.h"
 
 namespace Sci {
 


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list