Index: Daodan/src/BFW_Motoko_Draw.h
===================================================================
--- Daodan/src/BFW_Motoko_Draw.h	(revision 990)
+++ 	(revision )
@@ -1,109 +1,0 @@
-#ifndef BFW_MOTOKO_DRAW_H
-#define BFW_MOTOKO_DRAW_H
-
-typedef struct M3tDisplayMode
-{
-	unsigned short Width;
-	unsigned short Height;
-	unsigned short Depth;
-	unsigned short __unused;
-} M3tDisplayMode;						// 0x0010: (size).
-
-typedef struct M3tDisplayDevice
-{
-	unsigned int __unknown;				// 
-	unsigned short NumModes;			// 0x0004: number of valid display modes on this device.
-	M3tDisplayMode Modes[16];			// 0x0006: list of supported display modes.
-	unsigned short __padding;			// 0x0086: padding (not used).
-} M3tDisplayDevice;						// 0x0088: (size).
- 
-typedef struct M3tDrawEngineCaps
-{
-	int Type;							// 0x0000:
-	char Name[64];						// 0x0004: draw engine name (eg. "OpenGL").
-	char Driver[64];					// 0x0044: driver name (always NULL string).
-	unsigned int Version;				// 0x0084: draw engine version (1 for OpenGL).
-	unsigned int NumDevices;			// 0x0088: number of valid DisplayDevice-s.
-	M3tDisplayDevice DisplayDevices[8];	// 0x008c: 1 or more display devices.
-	int __unknown;						// 0x04cc:
-} M3tDrawEngineCaps;					// 0x04d0: (size).
-
-typedef struct
-{
-	int Context_New;
-	int Context_Delete;
-	int Texture_ResetAll;
-	int PrivateState_Size;
-	int PrivateState_New;
-	int PrivateState_Delete;
-	int State_Update;
-} M3tDrawEngine;
-
-typedef struct
-{
-	int FrameStart;
-	int FrameEnd;
-	int FrameSync;
-	int Triangle;
-	int Quad;
-	int Pent;
-	int Line;
-	int Point;
-	int TriSprite;
-	int Sprite;
-	int SpriteArray;
-	int ScreenCapture;
-	int PointVisible;
-	int SupportsPointVisible;
-	int TextureFormatAvailable;
-	int SetResolution;
-	int ResetFog;
-	int TextureLoad;
-	int TextureUnload;
-	int SinglePassMultitextureCapable;
-} M3tDrawContext;
-
-typedef struct
-{
-	float *Position;
-	int *Color;
-	float *TexCoord0;
-	float *TexCoord1;
-	void *Texture0;
-	void *Texture1;
-	void *State6;
-	void *State7;
-	void *State8;
-} M3tDrawPtrState;
-
-typedef struct
-{
-	WORD data[3][256];
-} M3tWin32GammaRamp;
-
-typedef struct
-{
-	float	x;
-	float	y;
-	float	z;
-	float	invW;
-} M3tPointScreen;
-
-typedef struct
-{
-	char pad[8];
-		
-	UUtUns16 width;
-	UUtUns16 height;
-	int texelType; // enum IMtPixelType
-		
-	UUtUns16 num_x;
-	UUtUns16 num_y;
-
-	UUtUns32 num_textures;
-	void* textures[1]; // struct M3tTextureMap
-} M3tTextureMap_Big;
-
-extern char M3gResolutionSwitch;
-
-#endif
Index: Daodan/src/BFW_ScriptLang.h
===================================================================
--- Daodan/src/BFW_ScriptLang.h	(revision 990)
+++ 	(revision )
@@ -1,31 +1,0 @@
-#ifndef BFW_SCRIPTLANG_H
-#define BFW_SCRIPTLANG_H
-
-#include "stdint.h"
-
-typedef enum {
-	sl_int32,
-	sl_str32,
-	sl_float,
-	sl_bool,  /* Actually int32 0 or 1. */
-	sl_void,
-} sl_type;
-
-typedef struct {
-	sl_type type;
-	union {
-		void*   value;
-		int32_t value_int32;
-		char*   value_str32;
-		float   value_float;
-		char    value_bool;
-	} val;
-} sl_arg;
-
-typedef struct {
-	char*    name;
-	char*    calllocation; //maybe
-	int      linenumber;   //perhaps
-} sl_callinfo;
-
-#endif
Index: Daodan/src/BFW_Utility.h
===================================================================
--- Daodan/src/BFW_Utility.h	(revision 990)
+++ 	(revision )
@@ -1,13 +1,0 @@
-#ifndef BFW_UTILITY_H
-#define BFW_UTILITY_H
-
-#include "stdint.h"
-
-typedef struct {
-	int16_t Top;
-	int16_t Left;
-	int16_t Right;
-	int16_t Bottom; 
-} OniRectangle;
-
-#endif
Index: Daodan/src/Daodan.c
===================================================================
--- Daodan/src/Daodan.c	(revision 990)
+++ Daodan/src/Daodan.c	(revision 992)
@@ -15,7 +15,5 @@
 #include "_Version.h"
 
-#include "Oni.h"
-
-#include "Oni_GL.h"
+#include "Oni/Oni.h"
 
 HMODULE DDrDLLModule;
Index: Daodan/src/Daodan.h
===================================================================
--- Daodan/src/Daodan.h	(revision 990)
+++ Daodan/src/Daodan.h	(revision 992)
@@ -6,22 +6,5 @@
 #include "stdint.h"
 
-#define ONICALL __fastcall
-#define UUmType(t) typedef struct t t;
-
-#define DDmAssert(expr) assert(expr);
-
-typedef unsigned char UUtBool;
-#define UUcTrue  ((UUtBool) 1)
-#define UUcFalse ((UUtBool) 0)
-
-typedef unsigned short UUtError;
-#define UUcError_None ((UUtError) 0)
-
-typedef unsigned char UUtUns8;
-typedef unsigned short UUtUns16;
-typedef unsigned int UUtUns32;
-typedef char UUtInt8;
-typedef short UUtInt16;
-typedef int UUtInt32;
+#include "Oni/Oni.h"
 
 extern HMODULE DDrDLLModule;
Index: Daodan/src/Daodan_BSL.c
===================================================================
--- Daodan/src/Daodan_BSL.c	(revision 990)
+++ Daodan/src/Daodan_BSL.c	(revision 992)
@@ -8,8 +8,7 @@
 #include "Daodan_Patch.h"
 #include "Daodan_Console.h"
-#include "BFW_ScriptLang.h"
-#include "Oni.h"
-#include "Oni_Character.h"
-#include "Oni_GL.h"
+
+#include "Oni/Oni.h"
+
 #include "Daodan_Character.h"
 
Index: Daodan/src/Daodan_Character.c
===================================================================
--- Daodan/src/Daodan_Character.c	(revision 990)
+++ Daodan/src/Daodan_Character.c	(revision 992)
@@ -1,6 +1,6 @@
 #include <stdlib.h>
 #include "Daodan_Character.h"
-#include "Oni_Character.h"
-#include "Oni.h"
+
+#include "Oni/Oni.h"
 
 int DDr_TeamToTeamID(const char* team_string) //Already something like this in the engine, but I'm reimplementing it...
Index: Daodan/src/Daodan_Cheater.c
===================================================================
--- Daodan/src/Daodan_Cheater.c	(revision 990)
+++ Daodan/src/Daodan_Cheater.c	(revision 992)
@@ -2,6 +2,6 @@
 #include "stdint.h"
 #include <math.h>
-#include "Oni.h"
-#include "Oni_Character.h"
+
+#include "Oni/Oni.h"
 
 #include "_Version.h"
@@ -9,4 +9,5 @@
 #include "Daodan.h"
 #include "Daodan_Cheater.h"
+
 union MSVC_EVIL_FLOAT_HACK
 {
Index: Daodan/src/Daodan_Config.c
===================================================================
--- Daodan/src/Daodan_Config.c	(revision 990)
+++ Daodan/src/Daodan_Config.c	(revision 992)
@@ -7,5 +7,5 @@
 #include "Daodan_Utility.h"
 
-#include "Oni_Symbols.h"
+#include "Oni/Oni.h"
 
 #include "Inifile_Reader.h"
Index: Daodan/src/Daodan_Console.c
===================================================================
--- Daodan/src/Daodan_Console.c	(revision 990)
+++ Daodan/src/Daodan_Console.c	(revision 992)
@@ -3,5 +3,5 @@
 
 #include "Daodan_Console.h"
-#include "Oni_Symbols.h"
+#include "Oni/Oni.h"
 
 void DDrConsole_Print(const char* text)
Index: Daodan/src/Daodan_GL.c
===================================================================
--- Daodan/src/Daodan_GL.c	(revision 990)
+++ Daodan/src/Daodan_GL.c	(revision 992)
@@ -1,14 +1,13 @@
 #include <windows.h>
 #include <math.h>
-
-#include "Oni.h"
+#include <GL/gl.h>
+#include <GL/glu.h>
+
+#include "Oni/Oni.h"
+
 #include "Daodan_Config.h"
 #include "Daodan_Utility.h"
-#include <GL/gl.h>
-#include <GL/glu.h>
 #include "Daodan_Win32.h"
-
 #include "Daodan_GL.h"
-#include "Oni_GL.h"
 
 static const M3tDisplayMode daodan_reslist[] =
Index: Daodan/src/Daodan_GL.h
===================================================================
--- Daodan/src/Daodan_GL.h	(revision 990)
+++ Daodan/src/Daodan_GL.h	(revision 992)
@@ -3,5 +3,5 @@
 
 #include "Daodan.h"
-#include "BFW_Motoko_Draw.h"
+#include "Oni/Oni.h"
 
 unsigned short ONICALL DD_GLrEnumerateDisplayModes(M3tDisplayMode* modes);
Index: Daodan/src/Daodan_Utility.c
===================================================================
--- Daodan/src/Daodan_Utility.c	(revision 990)
+++ Daodan/src/Daodan_Utility.c	(revision 992)
@@ -4,5 +4,5 @@
 
 #include "Daodan_Utility.h"
-#include "Oni.h"
+#include "Oni/Oni.h"
 
 const double fps = 60.0;
Index: Daodan/src/Daodan_Win32.c
===================================================================
--- Daodan/src/Daodan_Win32.c	(revision 990)
+++ Daodan/src/Daodan_Win32.c	(revision 992)
@@ -5,6 +5,5 @@
 #include "Daodan_Win32.h"
 
-#include "BFW_Utility.h"
-#include "Oni.h"
+#include "Oni/Oni.h"
 
 
Index: Daodan/src/Daodan_Win32.h
===================================================================
--- Daodan/src/Daodan_Win32.h	(revision 990)
+++ Daodan/src/Daodan_Win32.h	(revision 992)
@@ -3,5 +3,5 @@
 
 #include "Daodan.h"
-#include "Oni.h"
+#include "Oni/Oni.h"
 
 UUtError ONICALL DD_ONrPlatform_Initialize(ONtPlatformData *PlatformData);
Index: Daodan/src/Oni.h
===================================================================
--- Daodan/src/Oni.h	(revision 990)
+++ 	(revision )
@@ -1,68 +1,0 @@
-#ifndef ONI_H
-#define ONI_H
-
-#include "Daodan.h"
-#include "Oni_GL.h"
-#include <windows.h>
-#include "Oni_GameState.h"
-
-typedef unsigned char onibool;
-
-#define WMcMessage_Quit 0x39 // WM_QUIT equivalent.
-
-typedef struct {
-	HINSTANCE Instance;
-	HWND Window;
-} ONtPlatformData;
-
-typedef struct {
-	int16_t left;
-	int16_t top;
-	int16_t right;
-	int16_t bottom;
-} UUtRect;
-
-typedef struct OBJtMethods
-{
-	void*     rNew;
-	void*   rSetDefaults;
-	void*    rDelete;
-	void*   rIsInvalid;
-	void*   rLevelBegin;
-	void*    rLevelEnd;
-
-	void*     rDraw;
-	void*   rEnumerate;
-	void* rGetBoundingSphere;
-	void*   rOSDGetName;
-	void*   rOSDSetName;
-	void*  rIntersectsLine;
-	void*  rUpdatePosition;
-
-	void* rGetOSD;
-	void* rGetOSDWriteSize;
-	void* rSetOSD;
-
-	void* rWrite;
-	void* rRead;
-
-	void* rSearch;
-
-	void* rGetClassVisible;
-	void* rSetClassVisible;
-
-	void* rGetUniqueOSD;
-} OBJtMethods;
-
-void ONICALL TMrInstance_GetDataPtr_List( 
-	char Tag[4],		//as in 'ONWC'
-	int MaxCount,		//# of elements in PointerList
-	void** PointerList, //Where the found pointers go
-	int* FoundCount		//Where the number of pointers found go.
-);
-
-UUmType(WMtWindow);
-
-#include "Oni_Symbols.h"
-
-#endif
Index: Daodan/src/Oni/BFW_Motoko_Draw.h
===================================================================
--- Daodan/src/Oni/BFW_Motoko_Draw.h	(revision 992)
+++ Daodan/src/Oni/BFW_Motoko_Draw.h	(revision 992)
@@ -0,0 +1,155 @@
+#ifndef ONI_H
+#error Do not include this file directly, include Oni/Oni.h instead!
+#endif
+
+#ifndef BFW_MOTOKO_DRAW_H
+#define BFW_MOTOKO_DRAW_H
+
+typedef struct M3tDisplayMode
+{
+	unsigned short Width;
+	unsigned short Height;
+	unsigned short Depth;
+	unsigned short __unused;
+} M3tDisplayMode;						// 0x0010: (size).
+
+typedef struct M3tDisplayDevice
+{
+	unsigned int __unknown;				// 
+	unsigned short NumModes;			// 0x0004: number of valid display modes on this device.
+	M3tDisplayMode Modes[16];			// 0x0006: list of supported display modes.
+	unsigned short __padding;			// 0x0086: padding (not used).
+} M3tDisplayDevice;						// 0x0088: (size).
+ 
+typedef struct M3tDrawEngineCaps
+{
+	int Type;							// 0x0000:
+	char Name[64];						// 0x0004: draw engine name (eg. "OpenGL").
+	char Driver[64];					// 0x0044: driver name (always NULL string).
+	unsigned int Version;				// 0x0084: draw engine version (1 for OpenGL).
+	unsigned int NumDevices;			// 0x0088: number of valid DisplayDevice-s.
+	M3tDisplayDevice DisplayDevices[8];	// 0x008c: 1 or more display devices.
+	int __unknown;						// 0x04cc:
+} M3tDrawEngineCaps;					// 0x04d0: (size).
+
+typedef struct
+{
+	int Context_New;
+	int Context_Delete;
+	int Texture_ResetAll;
+	int PrivateState_Size;
+	int PrivateState_New;
+	int PrivateState_Delete;
+	int State_Update;
+} M3tDrawEngine;
+
+typedef struct
+{
+	int FrameStart;
+	int FrameEnd;
+	int FrameSync;
+	int Triangle;
+	int Quad;
+	int Pent;
+	int Line;
+	int Point;
+	int TriSprite;
+	int Sprite;
+	int SpriteArray;
+	int ScreenCapture;
+	int PointVisible;
+	int SupportsPointVisible;
+	int TextureFormatAvailable;
+	int SetResolution;
+	int ResetFog;
+	int TextureLoad;
+	int TextureUnload;
+	int SinglePassMultitextureCapable;
+} M3tDrawContext;
+
+typedef struct
+{
+	float *Position;
+	int *Color;
+	float *TexCoord0;
+	float *TexCoord1;
+	void *Texture0;
+	void *Texture1;
+	void *State6;
+	void *State7;
+	void *State8;
+} M3tDrawPtrState;
+
+typedef struct
+{
+	WORD data[3][256];
+} M3tWin32GammaRamp;
+
+typedef struct
+{
+	float	x;
+	float	y;
+	float	z;
+	float	invW;
+} M3tPointScreen;
+
+typedef struct
+{
+	char pad[8];
+		
+	UUtUns16 width;
+	UUtUns16 height;
+	int texelType; // enum IMtPixelType
+		
+	UUtUns16 num_x;
+	UUtUns16 num_y;
+
+	UUtUns32 num_textures;
+	void* textures[1]; // struct M3tTextureMap
+} M3tTextureMap_Big;
+
+#define M3cNumBoundingPoints 8// Do not change without changing references below
+#define M3cNumBoundingFaces 6// Do not change without changing references below
+
+typedef struct M3tPoint3D
+{
+	float x;
+	float y; 
+	float z;
+} M3tPoint3D;
+
+typedef struct M3tQuad
+{
+	uint32_t indices[4];
+} M3tQuad;
+
+typedef struct M3tPlaneEquation
+{
+	float a;
+	float b;
+	float c;
+	float d;
+} M3tPlaneEquation;
+
+typedef M3tPoint3D M3tVector3D;
+
+typedef struct M3tBoundingVolume
+{
+	M3tPoint3D worldPoints[8];// Must match M3cNumBoundingPoints above
+	M3tQuad faces[6];// Must match M3cNumBoundingFaces above
+	M3tVector3D normals[6];// Must match M3cNumBoundingFaces above- starting normals
+
+	M3tPlaneEquation curPlanes[6];// Must match M3cNumBoundingFaces above- current plane equs
+	uint16_t curProjections[6]; // Must match M3cNumBoundingFaces above
+} M3tBoundingVolume;
+
+typedef struct M3tBoundingSphere
+{
+	M3tPoint3D center;
+	float radius;
+} M3tBoundingSphere;
+
+
+extern char M3gResolutionSwitch;
+
+#endif
Index: Daodan/src/Oni/BFW_ScriptLang.h
===================================================================
--- Daodan/src/Oni/BFW_ScriptLang.h	(revision 992)
+++ Daodan/src/Oni/BFW_ScriptLang.h	(revision 992)
@@ -0,0 +1,37 @@
+#ifndef ONI_H
+#error Do not include this file directly, include Oni/Oni.h instead!
+#endif
+
+#ifndef BFW_SCRIPTLANG_H
+#define BFW_SCRIPTLANG_H
+
+typedef enum {
+	sl_int32,
+	sl_str32,
+	sl_float,
+	sl_bool,  /* Actually int32 0 or 1. */
+	sl_void,
+} sl_type;
+
+typedef struct {
+	sl_type type;
+	union {
+		void*   value;
+		int32_t value_int32;
+		char*   value_str32;
+		float   value_float;
+		char    value_bool;
+	} val;
+} sl_arg;
+
+typedef struct {
+	char*    name;
+	char*    calllocation; //maybe
+	int      linenumber;   //perhaps
+} sl_callinfo;
+
+// Method signature for script (BSL) functions
+typedef uint16_t	( ONICALL *sl_func)(sl_callinfo* callinfo, uint32_t numargs, sl_arg args[], int* dontuse1, int* dontuse2, sl_arg* ret);
+
+
+#endif
Index: Daodan/src/Oni/Character.h
===================================================================
--- Daodan/src/Oni/Character.h	(revision 992)
+++ Daodan/src/Oni/Character.h	(revision 992)
@@ -0,0 +1,72 @@
+#ifndef ONI_H
+#error Do not include this file directly, include Oni/Oni.h instead!
+#endif
+
+#ifndef CHARACTER_H
+#define CHARACTER_H
+
+enum {
+	team_konoko,
+	team_tctf,
+	team_syndicate,
+	team_neutral,
+	team_securityguard,
+	team_roguekonoko,
+	team_switzerland,
+	team_syndicateaccessory,
+};
+
+
+//We need a Oni_Structs #include file.
+
+typedef enum {
+	ONcCharacterFlag_Dead_1_Animating		=	0x00000001,	// health is 0
+	ONcCharacterFlag_Dead					=	ONcCharacterFlag_Dead_1_Animating,
+	ONcCharacterFlag_Dead_2_Moving			=	0x00000002,	// no longer animating
+	ONcCharacterFlag_Dead_3_Cosmetic		=	0x00000004,	// no longer moving
+	ONcCharacterFlag_Dead_4_Gone			=	0x00000008,	// dead except but still drawn
+
+	ONcCharacterFlag_HastyAnim				=	0x00000010,	// do this queued animation ASAP
+	ONcCharacterFlag_Unkillable				=	0x00000020,	// the character cannot be killed, only defeated
+	ONcCharacterFlag_InfiniteAmmo			=	0x00000040,	// the character always has infinite ammo
+	ONcCharacterFlag_PleaseBlock			=	0x00000080,	// set if the character should block, cleared once block begins
+	
+	ONcCharacterFlag_Unstoppable			=	0x00000100,	// this character cannot be knocked down, staggered, stunned, etc
+	ONcCharacterFlag_ScriptControl			=	0x00000200,	// set if the character is completely under script control
+	ONcCharacterFlag_DeathLock				=	0x00000400,	// this character should never die all the way
+	ONcCharacterFlag_WasUpdated				=	0x00000800,	// this character's animation was changed
+		
+	ONcCharacterFlag_BeingThrown			=	0x00001000,	// this character is being thrown
+	ONcCharacterFlag_DontUseGunVariant		=	0x00002000,	// this character should not use a weapon variant
+	ONcCharacterFlag_Draw					=	0x00004000,	// DoFrame has been executed for this character
+	ONcCharacterFlag_InUse					=	0x00008000,	// this character is active and in use
+
+	ONcCharacterFlag_DontUseFightVariant	=	0x00010000,
+	ONcCharacterFlag_NoCollision			=	0x00020000,	// no collision for this character
+	ONcCharacterFlag_Teleporting			=	0x00040000,	// this character is teleporting and does not accept collision
+	ONcCharacterFlag_NoCorpse				=	0x00080000,	// no corpse for this character
+
+	ONcCharacterFlag_ActiveLock				=	0x00100000,	// the character is locked active
+	ONcCharacterFlag_ChrAnimate				=	0x00200000,	// the character is currently runing a chr_animate command
+	ONcCharacterFlag_AIMovement				=	0x00400000,	// the character is using AI movement
+	ONcCharacterFlag_NeutralUninterruptible	=	0x00800000,	// running an uninterruptible neutral interaction
+
+	ONcCharacterFlag_NoShadow				=	0x01000000,	// 
+	ONcCharacterFlag_Invincible				=	0x02000000,	// character is invincible
+	ONcCharacterFlag_NoAutoDrop				=	0x04000000,	// character should not automatically drop items when killed (invisibility, shield, LSI)
+	ONcCharacterFlag_RestrictedMovement		=	0x08000000,	// character cannot move fast (used for player holding barabbas' gun)
+
+	ONcCharacterFlag_Boss					=	0x10000000,	// character is a boss (used for final muro group fight)
+	ONcCharacterFlag_FinalFlash				=	0x20000000,	// 'final flash' has been played for this character's death
+	ONcCharacterFlag_BossShield				=	0x40000000, // this character has the boss shield
+	ONcCharacterFlag_WeaponImmune			=	0x80000000	// this character is immune to weapon damage
+
+} ONtCharacterFlags;
+
+typedef enum {
+	ONcCharacterFlag2_WeaponEmpty			=	0x00000001, // character's weapon is empty, punch instead
+	ONcCharacterFlag2_UltraMode				=	0x00000002
+
+} ONtCharacterFlags2;
+
+#endif
Index: Daodan/src/Oni/GL.h
===================================================================
--- Daodan/src/Oni/GL.h	(revision 992)
+++ Daodan/src/Oni/GL.h	(revision 992)
@@ -0,0 +1,441 @@
+#ifndef ONI_H
+#error Do not include this file directly, include Oni/Oni.h instead!
+#endif
+
+#ifndef GL_H
+#define GL_H
+
+typedef struct 
+{
+	int a;
+	M3tDrawEngineCaps DrawEngineCaps;
+	M3tDrawEngine DrawEngine;
+	M3tDrawContext DrawContext;
+	M3tDisplayMode DisplayMode;
+	int b;
+	int Textures[2];
+	short c;
+	short d;
+	int IntState;
+	M3tDrawPtrState *PtrState;
+	int e;
+	int Color;
+	int MaxTextureSize;
+	int DoubleBufferSupported;
+	int MaxTextureUnits;
+	char *VendorString;
+	char *RendererString;
+	char *VersionString;
+	char *ExtensionsString;
+	int MultipassCapable;
+	int f_0588;
+	char f_058C;
+	char SupportsDepthReads;
+	char FogDisabled;
+	char f_058F;
+	int CompressedTextureFormats[16];
+	int NumCompressedTextureFormats;
+	int f_05D4;
+	float FogStart;
+	float FogEnd;
+	char FogStartChanged;
+	char FogEndChanged;
+	short f_05E2;
+	int f_05E4[4];
+	float FogColor_R;
+	float FogColor_G;
+	float FogColor_B;
+	int Fog_1_;
+	char Fog_2_;
+	char f_0605[3];
+	float ClearColor[4];
+	int LastError;
+	char *LastErrorString;
+	short RenderMode;
+	char BufferClear;
+	char DoubleBuffer;
+	int f_0624;
+	char *TextureBuffer;
+	HDC hDC;
+	HGLRC hGLRC;
+	char vsync;
+	char f_0635[3];
+	void (*DisplayBackBuffer)(void);
+} gl_engine_t;
+
+typedef struct
+{
+	void (WINAPI *glAccum)(GLenum op, GLfloat value);
+	void (WINAPI *glAlphaFunc)(GLenum func, GLclampf ref);
+	GLboolean (WINAPI *glAreTexturesResident)(GLsizei n, const GLuint *textures, GLboolean *residences);
+	void (WINAPI *glArrayElement)(GLint i);
+	void (WINAPI *glBegin)(GLenum mode);
+	void (WINAPI *glBindTexture)(GLenum target, GLuint texture);
+	void (WINAPI *glBitmap)(GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap);
+	void (WINAPI *glBlendFunc)(GLenum sfactor, GLenum dfactor);
+	void (WINAPI *glCallList)(GLuint list);
+	void (WINAPI *glCallLists)(GLsizei n, GLenum type, const GLvoid *lists);
+	void (WINAPI *glClear)(GLbitfield mask);
+	void (WINAPI *glClearAccum)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+	void (WINAPI *glClearColor)(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
+	void (WINAPI *glClearDepth)(GLclampd depth);
+	void (WINAPI *glClearIndex)(GLfloat c);
+	void (WINAPI *glClearStencil)(GLint s);
+	void (WINAPI *glClipPlane)(GLenum plane, const GLdouble *equation);
+	void (WINAPI *glColor3b)(GLbyte red, GLbyte green, GLbyte blue);
+	void (WINAPI *glColor3bv)(const GLbyte *v);
+	void (WINAPI *glColor3d)(GLdouble red, GLdouble green, GLdouble blue);
+	void (WINAPI *glColor3dv)(const GLdouble *v);
+	void (WINAPI *glColor3f)(GLfloat red, GLfloat green, GLfloat blue);
+	void (WINAPI *glColor3fv)(const GLfloat *v);
+	void (WINAPI *glColor3i)(GLint red, GLint green, GLint blue);
+	void (WINAPI *glColor3iv)(const GLint *v);
+	void (WINAPI *glColor3s)(GLshort red, GLshort green, GLshort blue);
+	void (WINAPI *glColor3sv)(const GLshort *v);
+	void (WINAPI *glColor3ub)(GLubyte red, GLubyte green, GLubyte blue);
+	void (WINAPI *glColor3ubv)(const GLubyte *v);
+	void (WINAPI *glColor3ui)(GLuint red, GLuint green, GLuint blue);
+	void (WINAPI *glColor3uiv)(const GLuint *v);
+	void (WINAPI *glColor3us)(GLushort red, GLushort green, GLushort blue);
+	void (WINAPI *glColor3usv)(const GLushort *v);
+	void (WINAPI *glColor4b)(GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha);
+	void (WINAPI *glColor4bv)(const GLbyte *v);
+	void (WINAPI *glColor4d)(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha);
+	void (WINAPI *glColor4dv)(const GLdouble *v);
+	void (WINAPI *glColor4f)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+	void (WINAPI *glColor4fv)(const GLfloat *v);
+	void (WINAPI *glColor4i)(GLint red, GLint green, GLint blue, GLint alpha);
+	void (WINAPI *glColor4iv)(const GLint *v);
+	void (WINAPI *glColor4s)(GLshort red, GLshort green, GLshort blue, GLshort alpha);
+	void (WINAPI *glColor4sv)(const GLshort *v);
+	void (WINAPI *glColor4ub)(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
+	void (WINAPI *glColor4ubv)(const GLubyte *v);
+	void (WINAPI *glColor4ui)(GLuint red, GLuint green, GLuint blue, GLuint alpha);
+	void (WINAPI *glColor4uiv)(const GLuint *v);
+	void (WINAPI *glColor4us)(GLushort red, GLushort green, GLushort blue, GLushort alpha);
+	void (WINAPI *glColor4usv)(const GLushort *v);
+	void (WINAPI *glColorMask)(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
+	void (WINAPI *glColorMaterial)(GLenum face, GLenum mode);
+	void (WINAPI *glColorPointer)(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
+	void (WINAPI *glCopyPixels)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum type);
+	void (WINAPI *glCopyTexImage1D)(GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border);
+	void (WINAPI *glCopyTexImage2D)(GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+	void (WINAPI *glCopyTexSubImage1D)(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
+	void (WINAPI *glCopyTexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+	void (WINAPI *glCullFace)(GLenum mode);
+	void (WINAPI *glDeleteLists)(GLuint list, GLsizei range);
+	void (WINAPI *glDeleteTextures)(GLsizei n, const GLuint *textures);
+	void (WINAPI *glDepthFunc)(GLenum func);
+	void (WINAPI *glDepthMask)(GLboolean flag);
+	void (WINAPI *glDepthRange)(GLclampd zNear, GLclampd zFar);
+	void (WINAPI *glDisable)(GLenum cap);
+	void (WINAPI *glDisableClientState)(GLenum array);
+	void (WINAPI *glDrawArrays)(GLenum mode, GLint first, GLsizei count);
+	void (WINAPI *glDrawBuffer)(GLenum mode);
+	void (WINAPI *glDrawElements)(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices);
+	void (WINAPI *glDrawPixels)(GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
+	void (WINAPI *glEdgeFlag)(GLboolean flag);
+	void (WINAPI *glEdgeFlagPointer)(GLsizei stride, const GLvoid *pointer);
+	void (WINAPI *glEdgeFlagv)(const GLboolean *flag);
+	void (WINAPI *glEnable)(GLenum cap);
+	void (WINAPI *glEnableClientState)(GLenum array);
+	void (WINAPI *glEnd)(void);
+	void (WINAPI *glEndList)(void);
+	void (WINAPI *glEvalCoord1d)(GLdouble u);
+	void (WINAPI *glEvalCoord1dv)(const GLdouble *u);
+	void (WINAPI *glEvalCoord1f)(GLfloat u);
+	void (WINAPI *glEvalCoord1fv)(const GLfloat *u);
+	void (WINAPI *glEvalCoord2d)(GLdouble u, GLdouble v);
+	void (WINAPI *glEvalCoord2dv)(const GLdouble *u);
+	void (WINAPI *glEvalCoord2f)(GLfloat u, GLfloat v);
+	void (WINAPI *glEvalCoord2fv)(const GLfloat *u);
+	void (WINAPI *glEvalMesh1)(GLenum mode, GLint i1, GLint i2);
+	void (WINAPI *glEvalMesh2)(GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2);
+	void (WINAPI *glEvalPoint1)(GLint i);
+	void (WINAPI *glEvalPoint2)(GLint i, GLint j);
+	void (WINAPI *glFeedbackBuffer)(GLsizei size, GLenum type, GLfloat *buffer);
+	void (WINAPI *glFinish)(void);
+	void (WINAPI *glFlush)(void);
+	void (WINAPI *glFogf)(GLenum pname, GLfloat param);
+	void (WINAPI *glFogfv)(GLenum pname, const GLfloat *params);
+	void (WINAPI *glFogi)(GLenum pname, GLint param);
+	void (WINAPI *glFogiv)(GLenum pname, const GLint *params);
+	void (WINAPI *glFrontFace)(GLenum mode);
+	void (WINAPI *glFrustum)(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
+	GLuint (WINAPI *glGenLists)(GLsizei range);
+	void (WINAPI *glGenTextures)(GLsizei n, GLuint *textures);
+	void (WINAPI *glGetBooleanv)(GLenum pname, GLboolean *params);
+	void (WINAPI *glGetClipPlane)(GLenum plane, GLdouble *equation);
+	void (WINAPI *glGetDoublev)(GLenum pname, GLdouble *params);
+	GLenum (WINAPI *glGetError)(void);
+	void (WINAPI *glGetFloatv)(GLenum pname, GLfloat *params);
+	void (WINAPI *glGetIntegerv)(GLenum pname, GLint *params);
+	void (WINAPI *glGetLightfv)(GLenum light, GLenum pname, GLfloat *params);
+	void (WINAPI *glGetLightiv)(GLenum light, GLenum pname, GLint *params);
+	void (WINAPI *glGetMapdv)(GLenum target, GLenum query, GLdouble *v);
+	void (WINAPI *glGetMapfv)(GLenum target, GLenum query, GLfloat *v);
+	void (WINAPI *glGetMapiv)(GLenum target, GLenum query, GLint *v);
+	void (WINAPI *glGetMaterialfv)(GLenum face, GLenum pname, GLfloat *params);
+	void (WINAPI *glGetMaterialiv)(GLenum face, GLenum pname, GLint *params);
+	void (WINAPI *glGetPixelMapfv)(GLenum map, GLfloat *values);
+	void (WINAPI *glGetPixelMapuiv)(GLenum map, GLuint *values);
+	void (WINAPI *glGetPixelMapusv)(GLenum map, GLushort *values);
+	void (WINAPI *glGetPointerv)(GLenum pname, GLvoid* *params);
+	void (WINAPI *glGetPolygonStipple)(GLubyte *mask);
+	const GLubyte * (WINAPI *glGetString)(GLenum name);
+	void (WINAPI *glGetTexEnvfv)(GLenum target, GLenum pname, GLfloat *params);
+	void (WINAPI *glGetTexEnviv)(GLenum target, GLenum pname, GLint *params);
+	void (WINAPI *glGetTexGendv)(GLenum coord, GLenum pname, GLdouble *params);
+	void (WINAPI *glGetTexGenfv)(GLenum coord, GLenum pname, GLfloat *params);
+	void (WINAPI *glGetTexGeniv)(GLenum coord, GLenum pname, GLint *params);
+	void (WINAPI *glGetTexImage)(GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels);
+	void (WINAPI *glGetTexLevelParameterfv)(GLenum target, GLint level, GLenum pname, GLfloat *params);
+	void (WINAPI *glGetTexLevelParameteriv)(GLenum target, GLint level, GLenum pname, GLint *params);
+	void (WINAPI *glGetTexParameterfv)(GLenum target, GLenum pname, GLfloat *params);
+	void (WINAPI *glGetTexParameteriv)(GLenum target, GLenum pname, GLint *params);
+	void (WINAPI *glHint)(GLenum target, GLenum mode);
+	void (WINAPI *glIndexMask)(GLuint mask);
+	void (WINAPI *glIndexPointer)(GLenum type, GLsizei stride, const GLvoid *pointer);
+	void (WINAPI *glIndexd)(GLdouble c);
+	void (WINAPI *glIndexdv)(const GLdouble *c);
+	void (WINAPI *glIndexf)(GLfloat c);
+	void (WINAPI *glIndexfv)(const GLfloat *c);
+	void (WINAPI *glIndexi)(GLint c);
+	void (WINAPI *glIndexiv)(const GLint *c);
+	void (WINAPI *glIndexs)(GLshort c);
+	void (WINAPI *glIndexsv)(const GLshort *c);
+	void (WINAPI *glIndexub)(GLubyte c);
+	void (WINAPI *glIndexubv)(const GLubyte *c);
+	void (WINAPI *glInitNames)(void);
+	void (WINAPI *glInterleavedArrays)(GLenum format, GLsizei stride, const GLvoid *pointer);
+	GLboolean (WINAPI *glIsEnabled)(GLenum cap);
+	GLboolean (WINAPI *glIsList)(GLuint list);
+	GLboolean (WINAPI *glIsTexture)(GLuint texture);
+	void (WINAPI *glLightModelf)(GLenum pname, GLfloat param);
+	void (WINAPI *glLightModelfv)(GLenum pname, const GLfloat *params);
+	void (WINAPI *glLightModeli)(GLenum pname, GLint param);
+	void (WINAPI *glLightModeliv)(GLenum pname, const GLint *params);
+	void (WINAPI *glLightf)(GLenum light, GLenum pname, GLfloat param);
+	void (WINAPI *glLightfv)(GLenum light, GLenum pname, const GLfloat *params);
+	void (WINAPI *glLighti)(GLenum light, GLenum pname, GLint param);
+	void (WINAPI *glLightiv)(GLenum light, GLenum pname, const GLint *params);
+	void (WINAPI *glLineStipple)(GLint factor, GLushort pattern);
+	void (WINAPI *glLineWidth)(GLfloat width);
+	void (WINAPI *glListBase)(GLuint base);
+	void (WINAPI *glLoadIdentity)(void);
+	void (WINAPI *glLoadMatrixd)(const GLdouble *m);
+	void (WINAPI *glLoadMatrixf)(const GLfloat *m);
+	void (WINAPI *glLoadName)(GLuint name);
+	void (WINAPI *glLogicOp)(GLenum opcode);
+	void (WINAPI *glMap1d)(GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points);
+	void (WINAPI *glMap1f)(GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points);
+	void (WINAPI *glMap2d)(GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points);
+	void (WINAPI *glMap2f)(GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points);
+	void (WINAPI *glMapGrid1d)(GLint un, GLdouble u1, GLdouble u2);
+	void (WINAPI *glMapGrid1f)(GLint un, GLfloat u1, GLfloat u2);
+	void (WINAPI *glMapGrid2d)(GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2);
+	void (WINAPI *glMapGrid2f)(GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2);
+	void (WINAPI *glMaterialf)(GLenum face, GLenum pname, GLfloat param);
+	void (WINAPI *glMaterialfv)(GLenum face, GLenum pname, const GLfloat *params);
+	void (WINAPI *glMateriali)(GLenum face, GLenum pname, GLint param);
+	void (WINAPI *glMaterialiv)(GLenum face, GLenum pname, const GLint *params);
+	void (WINAPI *glMatrixMode)(GLenum mode);
+	void (WINAPI *glMultMatrixd)(const GLdouble *m);
+	void (WINAPI *glMultMatrixf)(const GLfloat *m);
+	void (WINAPI *glNewList)(GLuint list, GLenum mode);
+	void (WINAPI *glNormal3b)(GLbyte nx, GLbyte ny, GLbyte nz);
+	void (WINAPI *glNormal3bv)(const GLbyte *v);
+	void (WINAPI *glNormal3d)(GLdouble nx, GLdouble ny, GLdouble nz);
+	void (WINAPI *glNormal3dv)(const GLdouble *v);
+	void (WINAPI *glNormal3f)(GLfloat nx, GLfloat ny, GLfloat nz);
+	void (WINAPI *glNormal3fv)(const GLfloat *v);
+	void (WINAPI *glNormal3i)(GLint nx, GLint ny, GLint nz);
+	void (WINAPI *glNormal3iv)(const GLint *v);
+	void (WINAPI *glNormal3s)(GLshort nx, GLshort ny, GLshort nz);
+	void (WINAPI *glNormal3sv)(const GLshort *v);
+	void (WINAPI *glNormalPointer)(GLenum type, GLsizei stride, const GLvoid *pointer);
+	void (WINAPI *glOrtho)(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
+	void (WINAPI *glPassThrough)(GLfloat token);
+	void (WINAPI *glPixelMapfv)(GLenum map, GLsizei mapsize, const GLfloat *values);
+	void (WINAPI *glPixelMapuiv)(GLenum map, GLsizei mapsize, const GLuint *values);
+	void (WINAPI *glPixelMapusv)(GLenum map, GLsizei mapsize, const GLushort *values);
+	void (WINAPI *glPixelStoref)(GLenum pname, GLfloat param);
+	void (WINAPI *glPixelStorei)(GLenum pname, GLint param);
+	void (WINAPI *glPixelTransferf)(GLenum pname, GLfloat param);
+	void (WINAPI *glPixelTransferi)(GLenum pname, GLint param);
+	void (WINAPI *glPixelZoom)(GLfloat xfactor, GLfloat yfactor);
+	void (WINAPI *glPointSize)(GLfloat size);
+	void (WINAPI *glPolygonMode)(GLenum face, GLenum mode);
+	void (WINAPI *glPolygonOffset)(GLfloat factor, GLfloat units);
+	void (WINAPI *glPolygonStipple)(const GLubyte *mask);
+	void (WINAPI *glPopAttrib)(void);
+	void (WINAPI *glPopClientAttrib)(void);
+	void (WINAPI *glPopMatrix)(void);
+	void (WINAPI *glPopName)(void);
+	void (WINAPI *glPrioritizeTextures)(GLsizei n, const GLuint *textures, const GLclampf *priorities);
+	void (WINAPI *glPushAttrib)(GLbitfield mask);
+	void (WINAPI *glPushClientAttrib)(GLbitfield mask);
+	void (WINAPI *glPushMatrix)(void);
+	void (WINAPI *glPushName)(GLuint name);
+	void (WINAPI *glRasterPos2d)(GLdouble x, GLdouble y);
+	void (WINAPI *glRasterPos2dv)(const GLdouble *v);
+	void (WINAPI *glRasterPos2f)(GLfloat x, GLfloat y);
+	void (WINAPI *glRasterPos2fv)(const GLfloat *v);
+	void (WINAPI *glRasterPos2i)(GLint x, GLint y);
+	void (WINAPI *glRasterPos2iv)(const GLint *v);
+	void (WINAPI *glRasterPos2s)(GLshort x, GLshort y);
+	void (WINAPI *glRasterPos2sv)(const GLshort *v);
+	void (WINAPI *glRasterPos3d)(GLdouble x, GLdouble y, GLdouble z);
+	void (WINAPI *glRasterPos3dv)(const GLdouble *v);
+	void (WINAPI *glRasterPos3f)(GLfloat x, GLfloat y, GLfloat z);
+	void (WINAPI *glRasterPos3fv)(const GLfloat *v);
+	void (WINAPI *glRasterPos3i)(GLint x, GLint y, GLint z);
+	void (WINAPI *glRasterPos3iv)(const GLint *v);
+	void (WINAPI *glRasterPos3s)(GLshort x, GLshort y, GLshort z);
+	void (WINAPI *glRasterPos3sv)(const GLshort *v);
+	void (WINAPI *glRasterPos4d)(GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+	void (WINAPI *glRasterPos4dv)(const GLdouble *v);
+	void (WINAPI *glRasterPos4f)(GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+	void (WINAPI *glRasterPos4fv)(const GLfloat *v);
+	void (WINAPI *glRasterPos4i)(GLint x, GLint y, GLint z, GLint w);
+	void (WINAPI *glRasterPos4iv)(const GLint *v);
+	void (WINAPI *glRasterPos4s)(GLshort x, GLshort y, GLshort z, GLshort w);
+	void (WINAPI *glRasterPos4sv)(const GLshort *v);
+	void (WINAPI *glReadBuffer)(GLenum mode);
+	void (WINAPI *glReadPixels)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels);
+	void (WINAPI *glRectd)(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2);
+	void (WINAPI *glRectdv)(const GLdouble *v1, const GLdouble *v2);
+	void (WINAPI *glRectf)(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2);
+	void (WINAPI *glRectfv)(const GLfloat *v1, const GLfloat *v2);
+	void (WINAPI *glRecti)(GLint x1, GLint y1, GLint x2, GLint y2);
+	void (WINAPI *glRectiv)(const GLint *v1, const GLint *v2);
+	void (WINAPI *glRects)(GLshort x1, GLshort y1, GLshort x2, GLshort y2);
+	void (WINAPI *glRectsv)(const GLshort *v1, const GLshort *v2);
+	GLint (WINAPI *glRenderMode)(GLenum mode);
+	void (WINAPI *glRotated)(GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
+	void (WINAPI *glRotatef)(GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
+	void (WINAPI *glScaled)(GLdouble x, GLdouble y, GLdouble z);
+	void (WINAPI *glScalef)(GLfloat x, GLfloat y, GLfloat z);
+	void (WINAPI *glScissor)(GLint x, GLint y, GLsizei width, GLsizei height);
+	void (WINAPI *glSelectBuffer)(GLsizei size, GLuint *buffer);
+	void (WINAPI *glShadeModel)(GLenum mode);
+	void (WINAPI *glStencilFunc)(GLenum func, GLint ref, GLuint mask);
+	void (WINAPI *glStencilMask)(GLuint mask);
+	void (WINAPI *glStencilOp)(GLenum fail, GLenum zfail, GLenum zpass);
+	void (WINAPI *glTexCoord1d)(GLdouble s);
+	void (WINAPI *glTexCoord1dv)(const GLdouble *v);
+	void (WINAPI *glTexCoord1f)(GLfloat s);
+	void (WINAPI *glTexCoord1fv)(const GLfloat *v);
+	void (WINAPI *glTexCoord1i)(GLint s);
+	void (WINAPI *glTexCoord1iv)(const GLint *v);
+	void (WINAPI *glTexCoord1s)(GLshort s);
+	void (WINAPI *glTexCoord1sv)(const GLshort *v);
+	void (WINAPI *glTexCoord2d)(GLdouble s, GLdouble t);
+	void (WINAPI *glTexCoord2dv)(const GLdouble *v);
+	void (WINAPI *glTexCoord2f)(GLfloat s, GLfloat t);
+	void (WINAPI *glTexCoord2fv)(const GLfloat *v);
+	void (WINAPI *glTexCoord2i)(GLint s, GLint t);
+	void (WINAPI *glTexCoord2iv)(const GLint *v);
+	void (WINAPI *glTexCoord2s)(GLshort s, GLshort t);
+	void (WINAPI *glTexCoord2sv)(const GLshort *v);
+	void (WINAPI *glTexCoord3d)(GLdouble s, GLdouble t, GLdouble r);
+	void (WINAPI *glTexCoord3dv)(const GLdouble *v);
+	void (WINAPI *glTexCoord3f)(GLfloat s, GLfloat t, GLfloat r);
+	void (WINAPI *glTexCoord3fv)(const GLfloat *v);
+	void (WINAPI *glTexCoord3i)(GLint s, GLint t, GLint r);
+	void (WINAPI *glTexCoord3iv)(const GLint *v);
+	void (WINAPI *glTexCoord3s)(GLshort s, GLshort t, GLshort r);
+	void (WINAPI *glTexCoord3sv)(const GLshort *v);
+	void (WINAPI *glTexCoord4d)(GLdouble s, GLdouble t, GLdouble r, GLdouble q);
+	void (WINAPI *glTexCoord4dv)(const GLdouble *v);
+	void (WINAPI *glTexCoord4f)(GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+	void (WINAPI *glTexCoord4fv)(const GLfloat *v);
+	void (WINAPI *glTexCoord4i)(GLint s, GLint t, GLint r, GLint q);
+	void (WINAPI *glTexCoord4iv)(const GLint *v);
+	void (WINAPI *glTexCoord4s)(GLshort s, GLshort t, GLshort r, GLshort q);
+	void (WINAPI *glTexCoord4sv)(const GLshort *v);
+	void (WINAPI *glTexCoordPointer)(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
+	void (WINAPI *glTexEnvf)(GLenum target, GLenum pname, GLfloat param);
+	void (WINAPI *glTexEnvfv)(GLenum target, GLenum pname, const GLfloat *params);
+	void (WINAPI *glTexEnvi)(GLenum target, GLenum pname, GLint param);
+	void (WINAPI *glTexEnviv)(GLenum target, GLenum pname, const GLint *params);
+	void (WINAPI *glTexGend)(GLenum coord, GLenum pname, GLdouble param);
+	void (WINAPI *glTexGendv)(GLenum coord, GLenum pname, const GLdouble *params);
+	void (WINAPI *glTexGenf)(GLenum coord, GLenum pname, GLfloat param);
+	void (WINAPI *glTexGenfv)(GLenum coord, GLenum pname, const GLfloat *params);
+	void (WINAPI *glTexGeni)(GLenum coord, GLenum pname, GLint param);
+	void (WINAPI *glTexGeniv)(GLenum coord, GLenum pname, const GLint *params);
+	void (WINAPI *glTexImage1D)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
+	void (WINAPI *glTexImage2D)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
+	void (WINAPI *glTexParameterf)(GLenum target, GLenum pname, GLfloat param);
+	void (WINAPI *glTexParameterfv)(GLenum target, GLenum pname, const GLfloat *params);
+	void (WINAPI *glTexParameteri)(GLenum target, GLenum pname, GLint param);
+	void (WINAPI *glTexParameteriv)(GLenum target, GLenum pname, const GLint *params);
+	void (WINAPI *glTexSubImage1D)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels);
+	void (WINAPI *glTexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
+	void (WINAPI *glTranslated)(GLdouble x, GLdouble y, GLdouble z);
+	void (WINAPI *glTranslatef)(GLfloat x, GLfloat y, GLfloat z);
+	void (WINAPI *glVertex2d)(GLdouble x, GLdouble y);
+	void (WINAPI *glVertex2dv)(const GLdouble *v);
+	void (WINAPI *glVertex2f)(GLfloat x, GLfloat y);
+	void (WINAPI *glVertex2fv)(const GLfloat *v);
+	void (WINAPI *glVertex2i)(GLint x, GLint y);
+	void (WINAPI *glVertex2iv)(const GLint *v);
+	void (WINAPI *glVertex2s)(GLshort x, GLshort y);
+	void (WINAPI *glVertex2sv)(const GLshort *v);
+	void (WINAPI *glVertex3d)(GLdouble x, GLdouble y, GLdouble z);
+	void (WINAPI *glVertex3dv)(const GLdouble *v);
+	void (WINAPI *glVertex3f)(GLfloat x, GLfloat y, GLfloat z);
+	void (WINAPI *glVertex3fv)(const GLfloat *v);
+	void (WINAPI *glVertex3i)(GLint x, GLint y, GLint z);
+	void (WINAPI *glVertex3iv)(const GLint *v);
+	void (WINAPI *glVertex3s)(GLshort x, GLshort y, GLshort z);
+	void (WINAPI *glVertex3sv)(const GLshort *v);
+	void (WINAPI *glVertex4d)(GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+	void (WINAPI *glVertex4dv)(const GLdouble *v);
+	void (WINAPI *glVertex4f)(GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+	void (WINAPI *glVertex4fv)(const GLfloat *v);
+	void (WINAPI *glVertex4i)(GLint x, GLint y, GLint z, GLint w);
+	void (WINAPI *glVertex4iv)(const GLint *v);
+	void (WINAPI *glVertex4s)(GLshort x, GLshort y, GLshort z, GLshort w);
+	void (WINAPI *glVertex4sv)(const GLshort *v);
+	void (WINAPI *glVertexPointer)(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
+	void (WINAPI *glViewport)(GLint x, GLint y, GLsizei width, GLsizei height);
+
+	BOOL  (WINAPI *wglCopyContext)(HGLRC, HGLRC, UINT);
+	HGLRC (WINAPI *wglCreateContext)(HDC);
+	HGLRC (WINAPI *wglCreateLayerContext)(HDC, int);
+	BOOL  (WINAPI *wglDeleteContext)(HGLRC);
+	HGLRC (WINAPI *wglGetCurrentContext)(VOID);
+	HDC   (WINAPI *wglGetCurrentDC)(VOID);
+	PROC  (WINAPI *wglGetProcAddress)(LPCSTR);
+	BOOL  (WINAPI *wglMakeCurrent)(HDC, HGLRC);
+	BOOL  (WINAPI *wglShareLists)(HGLRC, HGLRC);
+
+	int f_0564;
+
+	int glActiveTextureARB;
+	int glClientActiveTextureARB;
+	int glMultiTexCoord4fARB;
+	int glMultiTexCoord2fvARB;
+	int glBlendColor;
+	int f_057C;
+	int f_0580;
+	int f_0584;
+	int f_0588;
+	int glCompressedTexImaged3DARB;
+	int glCompressedTexImaged2DARB;
+	int glCompressedTexImage1DARB;
+	int glCompressedTexSubImage3DARB;
+	int glCompressedTexSubImage2DARB;
+	int glCompressedTexSubImage1DARB;
+	int glCompressedTexImageARB;
+
+	GLboolean (WINAPI *wglSwapIntervalEXT)(GLint interval);
+
+	GLint (WINAPI *wglSetDeviceGammaRamp3DFX)(HDC, M3tWin32GammaRamp*);
+	GLint (WINAPI *wglGetDeviceGammaRamp3DFX)(HDC, M3tWin32GammaRamp*);
+} gl_api_t;
+
+
+#endif
Index: Daodan/src/Oni/GameState.h
===================================================================
--- Daodan/src/Oni/GameState.h	(revision 992)
+++ Daodan/src/Oni/GameState.h	(revision 992)
@@ -0,0 +1,1464 @@
+#ifndef ONI_H
+#error Do not include this file directly, include Oni/Oni.h instead!
+#endif
+
+#ifndef GAMESTATE_H
+#define GAMESTATE_H
+
+typedef struct {
+	float X;
+	float Y;
+	float Z;	
+} Vector3; //probably move to utilities...
+
+typedef struct {
+	float X;
+	float Y;
+	float Z;
+	float W;
+} Quaternion;
+
+typedef struct {
+	float RotationScale[9];
+	Vector3 Translation;
+} Matrix4x3;
+
+typedef struct {
+	Vector3 Center;
+	float Radius;
+} Sphere;
+
+typedef struct 
+{
+  int StartTime;
+  int field_4;
+  char Active;
+  char field_9;
+} Letterbox;
+
+typedef struct 
+{
+  __int16 Count;
+  __int16 field_2;
+  int Memory;
+} DoorArray;
+
+typedef struct 
+{
+  int Count;
+  int Head;
+}PHNodeList;
+
+typedef struct
+{
+  PHNodeList OutList;
+  PHNodeList InList;
+  int AKVA;
+  int field_14;
+  int XTiles;
+  int ZTiles;
+  int GridSize;
+  char field_24;
+  char NoGrid;
+  char gap_26[2];
+  int GridData;
+  int field_2D;
+  __int16 field_31;
+  char gap_32[2];
+  int DynamicGrid;
+  int field_39;
+  int field_3D;
+  int field_41;
+  int field_45;
+  int field_49;
+  int field_4D;
+  int field_51;
+  int field_55;
+  int field_59;
+  int field_5D;
+  int field_61;
+  int field_65;
+  int field_69;
+  int field_6D;
+  int field_71;
+  int field_75;
+  __int16 Visited;
+  __int16 field_7A;
+  int TraverseQueueNext;
+  int field_81;
+  int field_85;
+  int field_89;
+  int field_8D;
+  int field_91;
+  int field_95;
+  int field_99;
+} PHGraphNode;
+typedef struct 
+{
+  int field_0;
+  int field_4;
+  int field_8;
+  int field_C;
+  int field_10;
+  int field_14;
+  int field_18;
+  int field_1C;
+  int field_20;
+  int field_24;
+  int field_28;
+  int field_2C;
+  int field_30;
+  int field_34;
+  int field_38;
+  int field_3C;
+  int field_40;
+} MotionBlur;
+
+typedef struct 
+{
+  char field_0[2052];
+} Shadow;
+
+typedef struct
+{
+  int ONSK;
+  Vector3 PlanetPositions[8];
+  int StarSpriteArray;
+  int Skybox;
+  int field_6C;
+  int field_70;
+  int field_74;
+  int field_78;
+  int field_7C;
+  int field_80;
+  int field_84;
+  int field_88;
+  int field_8C;
+  int field_90;
+  int field_94;
+  int field_98;
+  int field_9C;
+  int field_A0;
+  int field_A4;
+  int field_A8;
+  int field_AC;
+  int field_B0;
+  int field_B4;
+  int field_B8;
+  int field_BC;
+  int field_C0;
+  int field_C4;
+  int field_C8;
+  int field_CC;
+  int field_D0;
+  int field_D4;
+  int field_D8;
+  int field_DC;
+  float field_E0;
+  int field_E4;
+  int field_E8;
+  int field_EC;
+  int field_F0;
+  int field_F4;
+  int field_F8;
+  int field_FC;
+  int field_100;
+  int field_104;
+  int field_108;
+  int field_10C;
+  int field_110;
+  int field_114;
+  int field_118;
+  int field_11C;
+  int field_120;
+  int field_124;
+  int field_128;
+  int field_12C;
+  int field_130;
+  int field_134;
+  int field_138;
+  int field_13C;
+  int field_140;
+  int field_144;
+  int field_148;
+  int field_14C;
+  int field_150;
+  int field_154;
+  int field_158;
+  int field_15C;
+  int field_160;
+  float field_164;
+  int field_168;
+  int field_16C;
+  int field_170;
+  int field_174;
+  int field_178;
+  int field_17C;
+  int field_180;
+  int field_184;
+  int field_188;
+  int field_18C;
+  int field_190;
+  int field_194;
+  int field_198;
+  int field_19C;
+  int field_1A0;
+  int field_1A4;
+  int field_1A8;
+  int field_1AC;
+  int field_1B0;
+  int field_1B4;
+  int field_1B8;
+  int field_1BC;
+  int field_1C0;
+  int field_1C4;
+  int field_1C8;
+  int field_1CC;
+  int field_1D0;
+  int field_1D4;
+  int field_1D8;
+  int field_1DC;
+  int field_1E0;
+  int field_1E4;
+  int field_1E8;
+  int field_1EC;
+  int field_1F0;
+  int field_1F4;
+  int field_1F8;
+  int field_1FC;
+  int field_200;
+  float field_204;
+  int field_208;
+  int field_20C;
+  int field_210;
+  int field_214;
+  int field_218;
+  int field_21C;
+  int field_220;
+  int field_224;
+  int field_228;
+  int field_22C;
+  int field_230;
+  int field_234;
+  int field_238;
+  int field_23C;
+  int field_240;
+  int field_244;
+  int field_248;
+  Vector3 SunFlarePosition;
+  Vector3 field_258;
+  int field_264;
+  int field_268;
+  int field_26C;
+  int field_270;
+  Vector3 field_274;
+  int field_280;
+  int field_284;
+  int field_288;
+  int field_28C;
+} Sky;
+
+
+
+typedef struct {
+	Sphere Sphere_; //fix this name
+	int Child1;
+	int Child2;	
+} SphereTreeNode;
+
+typedef struct {
+	Vector3 Min;
+	Vector3 Max;
+} BoundingBox;
+
+
+/*  202 */ typedef struct 
+{
+  char Name[32];
+  __int16 Id;
+  __int16 field_22;
+  int Length;
+} PatrolPathOSD;
+
+/*  396 */ typedef struct 
+{
+  int Type;
+  int field_4;
+  int field_8;
+  int field_C;
+  int field_10;
+} PatrolPathPoint;
+
+enum { //action flags
+	Action_Escape                    = 1,
+	Action_Console                   = 2,
+	Action_PauseScreen               = 4,
+	Action_Cutscene_1                = 8,
+	Action_Cutscene_2                = 0x10,
+	Action_F4                        = 0x20,
+	Action_F5                        = 0x40,
+	Action_F6                        = 0x80,
+	Action_F7                        = 0x100,
+	Action_F8                        = 0x200,
+	Action_StartRecord               = 0x400,
+	Action_StopRecord                = 0x800,
+	Action_PlayRecord                = 0x1000,
+	Action_F12                       = 0x2000,
+	Action_Unknown1                  = 0x4000,
+	Action_LookMode                  = 0x8000,
+	Action_Screenshot                = 0x10000,
+	Action_Unknown2                  = 0x20000,
+	Action_Unknown3                  = 0x40000,
+	Action_Unknown4                  = 0x80000,
+	Action_Unknown5                  = 0x100000,
+	Action_Forward                   = 0x200000,
+	Action_Backward                  = 0x400000,
+	Action_TurnLeft                  = 0x800000,
+	Action_TurnRight                 = 0x1000000,
+	Action_StepLeft                  = 0x2000000,
+	Action_StepRight                 = 0x4000000,
+	Action_Jump                      = 0x8000000,
+	Action_Crouch                    = 0x10000000,
+	Action_Punch                     = 0x20000000,
+	Action_Kick                      = 0x40000000,
+	Action_Block                     = 0x80000000,
+	//used in second action field
+	Action2_Walk                     = 1,
+	Action2_Action                   = 2,
+	Action2_Hypo                     = 4,
+	Action2_Reload                   = 8,
+	Action2_Swap                     = 0x10,
+	Action2_Drop                     = 0x20,
+	Action2_Fire1                    = 0x40,
+	Action2_Fire2                    = 0x80,
+	Action2_Fire3                    = 0x100,
+};
+
+
+typedef struct {
+	int32_t Actions1;
+	int32_t Actions2;
+} InputAction;
+
+
+typedef struct {
+	float MouseDeltaX;
+	float MouseDeltaY;
+	float field_8;
+	float field_C;
+	InputAction Current;
+	InputAction Stopped;
+	InputAction Start;
+	InputAction Stop;
+} GameInput;
+
+typedef struct {
+	int Type;				//'CHAR' etc.
+	int ObjectId;			//not needed
+	int Flags;				//The flags of the object...not used for CHAR
+	Vector3 Position;		//Position of Object
+	Vector3 Rotation;		//Rotation of Object
+	int EditorCallbacks;	//Lets try not to mess with it for now. :P
+	int field_28;			//unknown
+} OSD_Header;
+
+typedef struct 
+{
+	short ID;	
+	short flags;
+
+	short keys;
+	short open_time;
+
+	float activate_radius_squared;
+
+	short state;	
+	short blocked_frames;						
+
+	short open_time_left;						
+	short some_timer;
+
+	Vector3 center_offset;						
+	char name[63];
+	char pad;
+	void *class;
+} DoorOSD;
+
+typedef struct {
+	OSD_Header OSD;
+	DoorOSD Door; //incomplete
+} DoorObject;
+
+typedef struct {
+	int32_t Flags;
+	int32_t Frame;
+	int32_t field_8;
+	int32_t field_C;
+	int32_t field_10;
+	int32_t field_14;
+	int32_t field_18;
+	int32_t field_1C;
+	int32_t FILMInstance;
+} PlayingFilm;
+
+typedef enum {
+	chr_isplayer          = 1 << 0,
+	chr_randomskin        = 1 << 1,
+	chr_notprespawned     = 1 << 2,
+	chr_noncombatant      = 1 << 3,
+	chr_multispawnable    = 1 << 4,
+	chr_unkillable        = 1 << 5,
+	chr_superammo         = 1 << 6,
+	chr_omniscient        = 1 << 8,
+	chr_haslsi            = 1 << 9,
+	chr_boss              = 1 << 10,
+	chr_upgradedifficulty = 1 << 11,
+	chr_noautodrop        = 1 << 12,
+	chr_dontaim           = 1 << 13,
+	chr_nocollision       = 1 << 17,
+	chr_noshadow          = 1 << 24,
+	chr_invincible        = 1 << 25,
+	chr_bossshield        = 1 << 30,
+	chr_weaponimmune      = 1 << 31,
+} chr_flags;
+
+
+typedef struct {
+	uint32_t Options;				//A bitset. Someone had better define these
+	char Class[64];					//Name of the ONCC we use. ONCCName in idb
+	char Name[32];					//Name of the character. ie: ai2_spawn Muro
+	char Weapon[64];				//Name of the weapon he holds. ONWCName in idb
+	char ScriptSpawn[32];			//Script function called when char spawns
+	char ScriptDie[32];				//Script function called when char dies
+	char ScriptAware[32];			//Script function called when char detects something
+	char ScriptAlarm[32];			//Script function called when char is alarmed at something
+	char ScriptHurt[32];			//Script function called when char is hurt for the first time
+	char ScriptDefeat[32];			//Script function called when char is at 1 HP
+	char ScriptNoPath[32];			//Script function called when char loses path. Broken.
+	char ScriptNoAmmo[32];			//Script function called when char is out of ammo for the first time. Char must have ammo at spawn.
+	int32_t AdditionalHealth;		//Additional Health given to the character
+	int16_t AmmoUsed;				//Ammo given for the char to use
+	int16_t AmmoDropped;			//Ammo the char drops
+	int16_t CellsUsed;				//Cells given for the char to use
+	int16_t CellsDropped;			//Cells the char drops
+	int16_t HypoUsed;				//Hypo given for the char to use
+	int16_t HypoDropped;			//Hypo the char drops
+	int16_t ShieldUsed;				//Bullet shield given for the char to use
+	int16_t ShieldDropped;			//Bullet shield the char drops
+	int16_t CloakUsed;				//Phase Cloak given for the char to use
+	int16_t CloakDropped;			//Phase Cloak the char drops
+	int16_t NCIUsed;				//Don't use this...
+	int16_t NCIDropped;				//Don't use this...
+	int32_t TeamID;					//Team ID
+	int32_t AmmoPercent;			//Percent of weapon ammo full
+	int32_t JobID;					//Job ID...
+									//0 - none 
+									//1 - idle 
+									//2 - guard (never used in Oni) 
+									//3 - patrol 
+									//4 - teambattle (never used in Oni)
+	int16_t PatrolID;				//patrol path ID (reference to the Patrol_Path.BINA file)
+	int16_t CombatID;				//combat ID (reference to the Combat.BINA file)
+	int16_t	MeleeID;				//melee ID (reference to the Melee Profile.BINA file)
+	int16_t NeutralID;				//neutral ID (reference to the Neutral.BINA file)
+	int32_t	AlarmGroups;			//Bitset. http://wiki.oni2.net/CHAR
+	int32_t InitialAlertLevel;		//0 - lull, 1 - low, 2 - medium, 3 - high, 4 - combat
+	int32_t MinimalAlertLevel;		//0 - lull, 1 - low, 2 - medium, 3 - high, 4 - combat
+	int32_t StartJobAlertLevel;		//0 - lull, 1 - low, 2 - medium, 3 - high, 4 - combat
+	int32_t InvestigatingAlertLevel;//0 - lull, 1 - low, 2 - medium, 3 - high, 4 - combat
+	int32_t PursuitStrongLow;
+	int32_t PursuitWeakLow;
+	int32_t PursuitStrongHigh;
+	int32_t PursuitWeakHigh;
+	int32_t Pursuit5;
+	int32_t field_1FC;
+} CharacterOSD;
+
+typedef struct {
+	OSD_Header Header;
+	CharacterOSD OSD;
+} CharacterObject;
+
+typedef struct {
+	Vector3 Center;
+	float Radius;
+} BoundingSphere;
+
+typedef struct {
+	int32_t ONCP; //probably pointer
+	int32_t field_4;	//who knows?
+	int32_t Instance; //probably link to actual particle
+	int32_t Bone; //duh
+} AttachedParticle;
+
+
+typedef struct 
+{
+  __int16 Index;
+  __int16 Flags;
+  int Class;
+  int Character;
+  Matrix4x3 Matrix;
+  int PhyContext;
+  int Facing;
+  __int16 FadeTimer;
+  __int16 TimeToFade;
+  int CreationTime;
+  __int16 ShotDelay1;
+  __int16 ShotDelay2;
+  __int16 PauseBeforeReload;
+  __int16 PauseAfterReload;
+  __int16 ActiveFireModeLength;
+  __int16 AmmoCount;
+  __int16 field_58;
+  __int16 FiringDelays[16];
+  char gap_7a[2];
+  int ParticleInstances[16];
+  int field_BC[16];
+  int field_FC;
+  int DodgeFiringSpreadPtr;
+  int field_104;
+  int field_108;
+  int field_10C;
+  char gap_110[20];
+  Vector3 Center;
+  int NodeList[16];
+} Weapon;
+
+typedef struct { //Inventory
+	Weapon* Weapons[3];
+	int8_t z_forced_holster;
+	int8_t z_forced_holster_is_magic;
+	int16_t AmmoUsed;				//Ammo given for the char to use
+	int16_t HypoUsed;				//Hypo given for the char to use
+	int16_t CellsUsed;				//Cells given for the char to use
+	int16_t AmmoDropped;			//Ammo the char drops
+	int16_t HypoDropped;			//Hypo the char drops
+	int16_t CellsDropped;			//Cells the char drops
+	int16_t hypoRemaining;	//who knows? InverseHypoRegenRate?
+	int16_t hypoTimer;	
+	int16_t pad;
+	char hasLSI;
+	char field_1B5;
+	int16_t	shieldDisplayAmount;
+	int16_t ShieldUsed;				//Bullet shield given for the char to use
+	int16_t CloakUsed;				//Phase Cloak given for the char to use
+	int32_t numInvisibleFrames;			//probably bullet shield dropped
+	int32_t DoorKeys;		//Lol. We can use this later for other sorts of items.
+} Inventory;
+
+typedef struct {
+	uint32_t SphereTree;
+	Vector3 ObBox[8];
+	Vector3 * ObBowPtr;
+	Vector3 Velocity;
+	Quaternion field_74;
+	Vector3 Position;
+	Quaternion Rotation;
+	float Scale;
+	Matrix4x3 Matrix;
+	Matrix4x3 InitMatrix;
+	float field_104;
+	float Gravity;
+	float field_10C;
+	float field_110;
+	float Friction_1;
+	float Friction_2;
+	Vector3 Force;
+	uint32_t Flags;
+	uint32_t Type;
+	char AnimState[0x18];
+	void* Callbacks;
+	void* Owner;
+} PhyContext;
+typedef struct
+{
+  int field_0;
+  int NumContacts;
+  int FirstContact;
+  int NotifyKnowledgeCallback;
+} AI2KnowledgeState;
+
+typedef struct 
+{
+  char Name[128];
+  __int16 ImpactId;
+} ONCCImpact;
+
+typedef struct 
+{
+  int RecoilCompensation;
+  int BestAimingAngle;
+  int ShotGroupError;
+  int ShotGroupDecay;
+  int ShotingInaccuracyMultiplier;
+  __int16 MinDelayBetweenShots;
+  __int16 MaxDelayBetweenShots;
+} ONCCWeaponSkill;
+
+typedef struct 
+{
+  __int16 field_0;
+  __int16 field_2;
+  __int16 field_4;
+  __int16 field_6;
+  __int16 field_8;
+  __int16 field_A;
+  __int16 field_C;
+  __int16 field_E;
+  __int16 field_10;
+  __int16 field_12;
+  __int16 field_14;
+  char Loaded;
+  char field_17;
+  int field_18;
+  char HurtLightSoundName[32];
+  char HurtMediumSoundName[32];
+  char HurtHeavySoundName[32];
+  char DeathSoundName[32];
+  int HurtLightSoundPtr;
+  int HurtMediumSoundPtr;
+  int HurtHeavySoundPtr;
+  int DeathSoundPtr;
+}HurtParams;
+
+
+typedef struct
+{
+  int field_0;
+  int Gravity;
+  float JumpStartVelocity;
+  float MaxFallingVelocity;
+  float JumpAcceleration;
+  __int16 field_14;
+  __int16 JetpackTimer;
+  float MaxFallingHeightWithoutDamage;
+  float MaxFallingHeightWithDamage;
+  int ShadowTexture;
+  float ShadowMaxHeight;
+  float ShadowFadeHeight;
+  float ShadowSize1;
+  float ShadowSize2;
+  float ShadowSize3;
+  __int16 field_38;
+  __int16 field_3A;
+  int field_3C;
+  char field_40;
+  char field_41;
+  __int16 field_42;
+  int field_44;
+  int field_48;
+  int field_4C;
+  int field_50;
+  int field_54;
+  int field_58;
+  __int16 InverseHypoRegenerationRate;
+  __int16 field_5E;
+  int field_60;
+  int field_64;
+  int field_68;
+  int field_6C;
+  int field_70;
+  HurtParams HurtParams;
+  int AIOptions;
+  int AIRotationSpeed;
+  __int16 MinimalDazeTime;
+  __int16 MaximalDazeTime;
+  __int16 MinimalRealiseFiringSpreadTime;
+  __int16 MaximalRealiseFiringSpreadTime;
+  int MinimalFiringSpreadDodge;
+  int MaximalFiringSpreadDodge;
+  int field_138;
+  int field_13C;
+  int field_140;
+  int field_144;
+  int field_148;
+  int field_14C;
+  int field_150;
+  ONCCWeaponSkill WeaponSkills[13];
+  int field_28C;
+  int field_290;
+  int field_294;
+  int TauntChance;
+  int GoForGunChance;
+  int RunPickupChance;
+  __int16 CombatId;
+  __int16 MeleeId;
+  char SoundProbabilities[10];
+  char gap_2b2[2];
+  char TauntSound[32];
+  char AlertSound[32];
+  char StartleSound[32];
+  char CheckBodySound[32];
+  char PursueSound[32];
+  char CoverSound[32];
+  char SuperpunchSound[32];
+  char SuperKickSound[32];
+  char Super3Sound[32];
+  char Super4Sound[32];
+  int CentralVisionRange;
+  int PeripheralVisionRange;
+  int HFov;
+  int CentralVisionCurve;
+  int CentralVFOV;
+  int PeripheralVisionCurve;
+  int PeripheralVFOV;
+  int HostileThreatDefiniteTimer;
+  int HostileThreatStrongTimer;
+  int HostileThreatWeakTimer;
+  int FriendlyThreadDefiniteTimer;
+  int FriendlyThreatStrongTimer;
+  int FriendlyThreatWeakTimer;
+  int EarshotRadius;
+  int ONCV;
+  int ONCP;
+  int ONIA;
+  char ImpactsLoaded;
+  char gap_439[1];
+  __int16 ImpactModifier;
+  char ImpactModifierName[16];
+  ONCCImpact Impacts[15];
+  char gap_bea[2];
+  char DeathParticleName[64];
+  int DeathParticlePtr;
+  int BodySurfaceCache;
+  int TRBS;
+  int TRMA;
+  int CBPM;
+  int CBPI;
+  int PeaceTimer;
+  int IdleTimer1;
+  int IdleTimer2;
+  int BaseHealth;
+  int field_C54;
+  int MinBodySizeFactor;
+  int MaxBodySizeFactor;
+  int field_C60[7];
+  int field_C7C;
+  int TRAC;
+  int TRSC;
+  char gap_c88[2];
+  __int16 DeathDeleteTimer;
+  char WeaponHand;
+  char HasDaodanPowers;
+  char HasSuperShield;
+  char CantTouchThis;
+} ONCC;
+
+
+/*  398 */ typedef struct 
+{
+  char Number;
+  char gap_1[1];
+  __int16 ActiveCharacterIndex;
+  int Flags;
+  int field_8;
+  ONCC* ONCC;
+  __int16 ONCCnumber;
+  __int16 Team;
+  char Name[32];
+  int BodySize;
+  int Health;
+  int MaxHealth;
+  __int16 AISA_ID;
+  char gap_42[2];
+  int field_44;
+  char ScriptNew[32];
+  char ScriptDie[32];
+  char ScriptSeen[32];
+  char ScriptAlarm[32];
+  char ScriptHurt[32];
+  char ScriptDefeat[32];
+  char ScriptLowAmmo[32];
+  //char ScriptNoPath[32];
+  char ScriptNoPath[28];
+  int RegenHax;
+  Vector3 Position;
+  Vector3 LastPosition;
+  Vector3 Location;
+  float Facing;
+  float DesiredFacing;
+  float CosmeticFacing;
+  int field_178;
+  int field_17C;
+  int field_180;
+  int BNV;
+  int GraphNode;
+  float PelvisHeight;
+  int field_190;
+  Inventory Inventory;
+  Vector3 Velocity;
+  int field_1D0;
+  int field_1D4;
+  int field_1D8;
+  int field_1DC;
+  int field_1E0;
+  int IdleDelay;
+  int charType;
+  char gap_1ec[4];
+  int CombatFlags;
+  int JobId;
+  int Goal;
+  int field_1FC;
+  __int16 field_200;
+  char gap_202[6];
+  int field_208;
+  char gap_20c[588];
+  char field_458;
+  char gap_459[352];
+  char field_5B9;
+  char gap_5ba[14];
+  char field_5C8;
+  char gap_5c9[359];
+  int field_730;
+  int field_734;
+  int field_738;
+  char gap_73c[380];
+  char CombatState;
+  char gap_8b9[7];
+  PatrolPathOSD PatrolPathOSD_;
+  PatrolPathPoint PatrolPathPoints[64];
+  char gap_de8[392];
+  int Combat_StatePtr;
+  AI2KnowledgeState KnowledgeState_;
+  char gap_f84[4];
+  int AlertDecayTimer;
+  int field_F8C;
+  int field_F90;
+  int AlertLevel;
+  int MinimalAlertLevel;
+  int StartJobAlertLevel;
+  int InvestigatingAlertLevel;
+  int StartleTime;
+  int field_FA8;
+  int field_FAC;
+  int field_FB0;
+  int Pursue1;
+  int Pursue2;
+  int Pursue3;
+  int Pursue4;
+  int Pursue5;
+  char field_FC8;
+  char gap_fc9[3];
+  int field_FCC;
+  char gap_fd0[8];
+  int AlarmGroups;
+  int field_FDC;
+  int field_FE0;
+  int field_FE4;
+  int field_FE8;
+  int field_FEC;
+  int field_FF0;
+  int field_FF4;
+  int field_FF8;
+  int field_FFC;
+  int field_1000;
+  int field_1004;
+  int field_1008;
+  __int16 field_100C;
+  __int16 field_100E;
+  int field_1010;
+  int field_1014;
+  int field_1018;
+  char field_101C;
+  char gap_101d[3];
+  int DazeTimer;
+  __int16 field_1024;
+  __int16 field_1026;
+  __int16 field_1028;
+  __int16 field_102A;
+  int field_102C;
+  int field_1030;
+  int field_1034;
+  char gap_1038[20];
+  int field_104C;
+  int field_1050;
+  int field_1054;
+  int field_1058;
+  int field_105C;
+  int field_1060;
+  int field_1064;
+  int MeleePtr;
+  int field_106C;
+  __int16 field_1070;
+  char gap_1072[126];
+  int Path_DestinationType;
+  int Path_TypeSpecificInfo;
+  char Path_MovementState;
+  char gap_10f9[3];
+  int Path_OrientTo;
+  Vector3 Path_DestinationPoint;
+  int field_110C;
+  int field_1110;
+  Vector3 field_1114;
+  Vector3 field_1120;
+  char Path_State;
+  char field_112D;
+  char field_112E;
+  char gap_112f[1];
+  Vector3 field_1130;
+  int field_113C;
+  int field_1140;
+  int field_1144;
+  char field_1148;
+  char gap_1149[3];
+  int Path_CurrentNodeNumber;
+  int Path_NumNodes;
+  Vector3 Path_From;
+  Vector3 Path_To;
+  int Path_GraphFromNodePtr;
+  int Path_GraphToNodePtr;
+  int field_1174;
+  char gap_1178[12];
+  int field_1184;
+  char gap_1188[776];
+  int Path_LastError;
+  int Path_RepathDelay;
+  int Path_Repaths;
+  int Path_RepathDecayTimer;
+  int field_14A0;
+  int MovementMode;
+  char field_14A8;
+  char gap_14a9[3];
+  int field_14AC;
+  int MovementModifiers;
+  int field_14B4;
+  char gap_14b8[188];
+  int field_1574;
+  int FacingState;
+  int FacingAt_Destination;
+  char field_1580;
+  char field_1581;
+  char gap_1582[2];
+  int Aiming_At_Type;
+  Vector3 Aiming_At;
+  int field_1594;
+  int field_1598;
+  int field_159C;
+  int GlancingState;
+  Vector3 GlancingDirOrPos;
+  char field_15B0;
+  char gap_15b1[3];
+  int field_15B4;
+  int field_15B8;
+  int field_15BC;
+  int field_15C0;
+  int field_15C4;
+  int field_15C8;
+  int field_15CC;
+  int field_15D0;
+  int field_15D4;
+  int field_15D8;
+  int field_15DC;
+  int field_15E0;
+  int field_15E4;
+  int field_15E8;
+  int AIBlockFunction;
+  char field_15F0;
+  char field_15F1;
+  char field_15F2;
+  char gap_15f3[1];
+  int field_15F4;
+  int field_15F8;
+  int field_15FC;
+  int field_1600;
+  char gap_1604[4];
+  int field_1608;
+  int field_160C;
+  char gap_1610[4];
+  int field_1614;
+  char gap_1618[20];
+  int field_162C;
+  int field_1630;
+  int field_1634;
+  int field_1638;
+  int field_163C;
+  int field_1640;
+  __int16 field_1644;
+  char gap_1646[2];
+  BoundingBox BoundingBox_;
+  char gap_1660[4];
+  int BossShieldPower;
+  int field_1668;
+  char gap_166c[4];
+  uint32_t Kills;
+  uint32_t Damage;
+  int field_1678;
+  int field_167C;
+  int CurrentConsoleActionMarker;
+  int field_1684;
+  __int16 field_1688;
+  __int16 field_168A;
+  int field_168C;
+  int field_1690;
+  char field_1694;
+  char field_1695;
+  __int16 field_1696;
+  int field_1698;
+  int field_169C;
+} Character;
+
+typedef struct 
+{
+  int Nodes;
+  int NodeCount;
+  int field_8;
+  int TraverseQueueHead;
+  int field_10;
+  int CacheLrar;
+  int CacheMem;
+  int field_1C;
+  int field_20;
+  int field_24;
+}PHGraph
+;
+
+/*  388 */ typedef struct //activecharacter
+{
+  __int16 Number;
+  __int16 field_2;
+  PhyContext* PhyContext;
+  SphereTreeNode SphereTree;
+  SphereTreeNode SphereTree3[4];
+  SphereTreeNode SphereTree2[2];
+  __int16 field_B0;
+  __int16 field_B2;
+  __int16 field_B4;
+  char field_B6;
+  char gap_b7[1];
+  Vector3 field_B8;
+  Vector3 AccelerateWith;
+  int field_D0;
+  Vector3 field_D4;
+  __int16 field_E0;
+  char gap_e2[2];
+  int field_E4;
+  int field_E8;
+  int field_EC;
+  int field_F0;
+  __int16 field_F4;
+  __int16 IsInAir;
+  Vector3 FallingVelocity;
+  Vector3 JumpVelocity;
+  char field_110;
+  char field_111;
+  __int16 field_112;
+  __int16 field_114;
+  char gap_116[2];
+  int field_118;
+  int field_11C;
+  int field_120;
+  int field_124;
+  int field_128;
+  int field_12C;
+  BoundingSphere BoundingSphere;
+  Vector3 field_140;
+  Vector3 field_14C;
+  int field_158;
+  int field_15C;
+  Vector3 Location;
+  char gap_16c[24];
+  int AkiraNode;
+  int GraphNode;
+  int PelvisHeight;
+  int Movement_StatePtr;
+  int ActiveWeapon;
+  int field_198;
+  int InventoryWeapon;
+  char gap_1a0[2];
+  __int16 RedAmmoClipCount;
+  __int16 HypoCount;
+  __int16 GreenAmmoClipCount;
+  __int16 RedAmmoClipDropCount;
+  __int16 HypoDropCount;
+  __int16 GreenAmmoClipDropCount;
+  __int16 field_1AE;
+  __int16 InverseHypoRegenerationRate;
+  char DropShield;
+  char DropPhaseCloack;
+  char field_1B4;
+  char gap_1b5[1];
+  __int16 field_1B6;
+  __int16 Shield;
+  __int16 PhaseCloacking;
+  int field_1BC;
+  char gap_1c0[4];
+  __int16 field_1C4;
+  char gap_1c6[10];
+  int field_1D0;
+  int field_1D4;
+  char gap_1d8[4];
+  int field_1DC;
+  int NotIdleStartTime;
+  int TimeToIdle;
+  int field_1E8;
+  char gap_1ec[4];
+  int field_1F0;
+  char gap_1f4[2048];
+  int field_9F4;
+  char gap_9f8[36];
+  int field_A1C;
+  char gap_a20[3020];
+  int field_15EC;
+  char gap_15f0[60];
+  int field_162C;
+  int field_1630;
+  int field_1634;
+  int field_1638;
+  int field_163C;
+  char gap_1640[8];
+  BoundingBox BoundingBox;
+  int field_1660;
+  char gap_1664[4];
+  int ShieldPower;
+  char gap_166c[4];
+  int NumberOfKills;
+  int InflictedDamage;
+  int field_1678;
+  int field_167C;
+  char gap_1680[8];
+  __int16 field_1688;
+  __int16 field_168A;
+  int field_168C;
+  int field_1690;
+  char field_1694;
+  char field_1695;
+  __int16 field_1696;
+  int field_1698;
+  int field_169C;
+  char gap_16a0[2];
+  int field_16A2;
+  char gap_16a6[994];
+  char field_1A88;
+  char field_1A89;
+  char field_1A8A;
+  char field_1A8B;
+  Vector3 Executor_AimingDirection;
+  int field_1A98;
+  int field_1A9C;
+  int Executor_ActualMovementMode;
+  int field_1AA4;
+  int field_1AA8;
+  int field_1AAC;
+  char Executor_HasFacingOverride;
+  char gap_1ab1[3];
+  int Executor_AimingSpeed;
+  char field_1AB8;
+  char Executor_HasMoveOverride;
+  char gap_1aba[6];
+  int field_1AC0;
+  int field_1AC4;
+  int Executor_FacingOverride;
+  char Executor_HasAttackOverride;
+  char gap_1acd[1];
+  __int16 field_1ACE;
+  __int16 field_1AD0;
+  char gap_1ad2[6];
+  int field_1AD8;
+  int field_1ADC;
+  int field_1AE0;
+  int field_1AE4;
+  char Executor_HasThrowOverride;
+  char gap_1ae9[3];
+  int field_1AEC;
+  int field_1AF0;
+  int field_1AF4;
+  void* Animation;
+  __int16 AnimationToState;
+  __int16 AnimationFromState;
+  __int16 AnimationType;
+  __int16 NextAnimationType;
+  __int16 PrevAnimationType;
+  __int16 field_1B06;
+  char Stitch;
+  char gap_1b09[3];
+  int StitchHeight;
+  __int16 InterpolationFromState;
+  char gap_1b12[2];
+  Vector3 StitchVelocity;
+  __int16 InterpolationCurrentFrame;
+  __int16 InterpolationLength;
+  Quaternion InterpolationStartRotations[19];
+  char gap_1c54[4];
+  int field_1C58;
+  int field_1C5C;
+  int field_1C60;
+  int Overlay;
+  __int16 field_1C68;
+  __int16 field_1C6A;
+  int field_1C6C;
+  int field_1C70;
+  __int16 field_1C74;
+  char gap_1c76[2];
+  int field_1C78;
+  char gap_1c7c[12];
+  __int16 Frame;
+  __int16 SoftPause;
+  __int16 HardPause;
+  __int16 field_1C8E;
+  int ForcedAnimationFrames;
+  __int16 HitStun;
+  __int16 BlockStun;
+  __int16 Dizzy;
+  __int16 field_1C9A;
+  int field_1C9C;
+  __int16 AnimationVariant;
+  __int16 TimeToPeace;
+  char NumAnimationAttachedParticles;
+  char gap_1ca5[1];
+  __int16 field_1CA6;
+  AttachedParticle AnimationAttachedParticles[16];
+  int TRAMParticles;
+  char FixedParticlesAttached;
+  char FixedParticlesStarted;
+  __int16 NumFixedParticles;
+  AttachedParticle FixedParticles[16];
+  __int16 CurrentAnimationType;
+  char gap_1eb2[2];
+  int field_1EB4;
+  char field_1EB8;
+  char gap_1eb9[30];
+  char field_1ED7;
+  __int16 throwing;
+  __int16 thrownBy;
+  Character* ThrowTargetCharacter;
+  void* targetThrow; //animation
+  int field_1EE4;
+  int field_1EE8;
+  int field_1EEC;
+  Quaternion Rotations[19];
+  Quaternion OverlayRotations[19];
+  int field_2150;
+  char gap_2154[4];
+  GameInput Input;
+  int PrevActions1;
+  int PrevActions2;
+  int SprintTimer;
+  char field_2194;
+  char field_2195;
+  char gap_2196[2];
+  Vector3 AimTarget;
+  Vector3 AimVector;
+  Vector3 CamVector;
+  float HeadFacing;
+  float HeadPitch;
+  int field_21C4;
+  int field_21C8;
+  int field_21CC;
+  int field_21D0;
+  char field_21D4;
+  char gap_21d5[3];
+  int field_21D8;
+  char field_21DC;
+  char field_21DD;
+  char field_21DE;
+  char field_21DF;
+  char field_21E0;
+  char HasAlternateTrigger;
+  char field_21E2;
+  char ReleaseTrigger;
+  char ReleaseAlternateTrigger;
+  char TurningLeft;
+  char TurningRight;
+  char gap_21e7[1];
+  int field_21E8;
+  int field_21EC;
+  __int16 field_21F0;
+  char gap_21f2[2];
+  PlayingFilm PlayingFilm;
+  char gap_2218[4];
+  int field_221C;
+  char gap_2220[8];
+  Matrix4x3  * ExtraBody;
+  char gap_222c[76];
+  Matrix4x3 BoneMatrices[19];
+  Matrix4x3 WeaponMatrix;
+  char gap_2638[432];
+  int field_27E8;
+  char gap_27ec[4];
+  __int16 field_27F0;
+  __int16 field_27F2;
+  int field_27F4;
+  int field_27F8;
+  __int16 ShadowIndex;
+  char field_27FE;
+  char gap_27ff[1];
+  char field_2800;
+  char field_2801;
+  char ShieldParts[19];
+  char field_2815;
+  char gap_2816[2];
+  int field_2818;
+  __int16 field_281C;
+  char gap_281e[2];
+  int field_2820;
+  int field_2824;
+  int field_2828;
+  int field_282C;
+  __int16 field_2830;
+  __int16 field_2832;
+  char gap_2834[1];
+  char field_2835;
+  char field_2836;
+  char field_2837;
+} ActiveCharacter;
+
+typedef struct
+{
+	char name[64];	// Must be same as ONcMaxLevelName above (for TE)
+	
+	void *env;
+	void *objectsetup;
+	void *markers;
+	void *flags;
+	void *triggers;
+	
+	void *Sky;
+	float	SkyHeight;
+
+
+} OniLevel;
+
+typedef struct
+{
+  int TimerMode;
+  char TimerName[32];
+  int TimerDuration;
+  char field_28;
+  char gap_29[3];
+  int field_2C;
+  Letterbox Letterbox;
+  char gap_3a[2];
+  char field_3C;
+  char gap_3d[3];
+  int field_40;
+  int CutsceneSyncMark;
+  char field_48;
+  char gap_49[3];
+  int field_4C;
+  int field_50;
+  int field_54;
+  int field_58;
+  int field_5C;
+  int field_60;
+  int field_64;
+  int field_68;
+  int field_6C;
+  int field_70;
+  int FadeStartTime;
+  int FadeEndTime;
+  char field_7C;
+  char gap_7d[3];
+  int Camera;
+  PHGraph PathFindingGraph;
+  Character* PlayerCharacter;
+  int field_B0;
+  char gap_b4[4];
+  GameInput Input;
+  int field_E8;
+  int field_EC;
+  char ScreenShotEveryFrame;
+  char gap_f1[7];
+  char field_F8;
+  char field_F9;
+  char field_FA;
+  char gap_fb[1];
+  int field_FC;
+  int field_100;
+  char field_104;
+  char gap_105[3];
+  int SlowMotion;
+  char gap_10c[4];
+  int field_110;
+  int field_114;
+  char SplashScreenTextureName[32];
+  char field_138;
+  char gap_139[7];
+  int field_140;
+  int GameTime;
+  int field_148;
+  int field_14C;
+  OniLevel* Level;
+  int field_154;
+  MotionBlur MotionBlur_[64];
+  int MotionBlurCount;
+  __int16 field_125C;
+  __int16 field_125E;
+  Character CharacterStorage[128];
+  __int16 CharacterCount;
+  char gap_b6262[2];
+  int field_B6264;
+  ActiveCharacter ActiveCharacters[64];
+  __int16 ActiveCharacterCount;
+  Shadow Shadows[32];
+  __int16 field_1670EA;
+  int ShadowCount;
+  int ActiveCharacterList[128];
+  int ActiveCharacterListCount;
+  int ActiveCharacterListLock;
+  int LivingCharacterList[128];
+  int LivingCharacterListCount;
+  int LivingCharacterListLock;
+  Character* PresentCharacterList[128];
+  int PresentCharacterListCount;
+  int PresentCharacterListLock;
+  int ObjectList;
+  DoorArray DoorArray_;
+  Sky Sky_;
+  int field_1679A4;
+  int Triggers;
+  char IsGamePaused;
+  char IsInputEnabled;
+  char field_1679AE;
+  char gap_1679af[1];
+  int LastInputActions1;
+  int LastInputActions2;
+  int field_1679B8;
+  int WinLose;
+  int field_1679C0;
+  int field_1679C4;
+  int field_1679C8;
+  int field_1679CC;
+  int field_1679D0;
+  int field_1679D4;
+  __int16 field_1679D8;
+  char gap_1679da[2];
+  int field_1679DC;
+} GameState;
+
+
+typedef struct 
+{
+	int			priority;
+	int timer;						// amount of time to display the text
+	char				prefix[10];	// prefix for the line
+	char				text[502];		// text on the line
+	const char			*identifier;
+	int			text_color;
+	int			text_shadow;
+} COtTextEntry;
+
+typedef struct 
+{
+	void		*font_family;
+	void *text_context;				// text context to do the drawing
+	short			formatting;
+	short			font_size;
+	char				scale_font;
+	char				bottom_justify;
+	char				display_completion;
+	char				fade_over_bounds;
+	char				use_formatting_commands;
+
+	short				bounds[4];
+	short			num_text_entries;
+	short max_text_entries;
+	char pad[3];
+	COtTextEntry		*text_entries;				// an array (num_text_entries long) of COtTextEntry
+		int blah;
+		int blah2;
+			int blah3;
+} COtTextArea;
+
+#endif
+
Index: Daodan/src/Oni/OBJt.h
===================================================================
--- Daodan/src/Oni/OBJt.h	(revision 992)
+++ Daodan/src/Oni/OBJt.h	(revision 992)
@@ -0,0 +1,109 @@
+#ifndef ONI_H
+#error Do not include this file directly, include Oni/Oni.h instead!
+#endif
+
+#ifndef OBJT_H
+#define OBJT_H
+
+// Used by function definition below: OBJrObjectType_EnumerateObjects
+typedef char		( ONICALL *OBJtEnumCallback_Object)(void *inObject, int inUserData);
+
+typedef struct OBJtMethods
+{
+	void* rNew;
+	void* rSetDefaults;
+	void* rDelete;
+	void* rIsInvalid;
+	void* rLevelBegin;
+	void* rLevelEnd;
+
+	void* rDraw;
+	void* rEnumerate;
+	void* rGetBoundingSphere;
+	void* rOSDGetName;
+	void* rOSDSetName;
+	void* rIntersectsLine;
+	void* rUpdatePosition;
+
+	void* rGetOSD;
+	void* rGetOSDWriteSize;
+	void* rSetOSD;
+
+	void* rWrite;
+	void* rRead;
+
+	void* rSearch;
+
+	void* rGetClassVisible;
+	void* rSetClassVisible;
+
+	void* rGetUniqueOSD;
+} OBJtMethods;
+
+//typedef OBJtObjectType;
+
+typedef struct OBJtObject
+{
+	uint32_t object_type;
+	uint32_t object_id;
+	uint32_t flags;
+	M3tPoint3D position;
+	M3tPoint3D rotation;
+	OBJtMethods* methods;
+	void* mechanics_class; //ONtMechanicsClass* mechanics_class;
+	uint32_t object_data[0];
+} OBJtObject;
+
+#define OBJcMaxNameLength 63
+#define OBJcMaxNoteChars 127
+#define SLcScript_MaxNameLength (32)
+
+typedef struct OBJtOSD_TriggerVolume
+{
+	char name[OBJcMaxNameLength];
+	char entry_script[SLcScript_MaxNameLength];
+	char inside_script[SLcScript_MaxNameLength];
+	char exit_script[SLcScript_MaxNameLength];
+
+	// TODO: +1 in orig, why do we have to shift here?
+	char note[OBJcMaxNoteChars + 2];
+
+	M3tPoint3D scale;
+	int32_t id;
+	int32_t parent_id;
+
+	M3tBoundingVolume volume;
+	M3tBoundingSphere sphere;// not written to disk
+	uint32_t team_mask;
+
+	uint32_t authored_flags;
+	uint32_t in_game_flags;// not written to disk
+	char cur_entry_script[SLcScript_MaxNameLength];// not written to disk
+	char cur_inside_script[SLcScript_MaxNameLength];// not written to disk
+	char cur_exit_script[SLcScript_MaxNameLength];// not written to disk
+} OBJtOSD_TriggerVolume;
+
+typedef struct OBJtOSD_All
+{
+	union
+	{
+		//OBJtOSD_Combat combat_osd;
+		//OBJtOSD_Character character_osd;
+		//OBJtOSD_PatrolPath patrolpath_osd;
+		//OBJtOSD_Flag flag_osd;
+		//OBJtOSD_Furniture furniture_osd;
+		//OBJtOSD_Particle particle_osd;
+		//OBJtOSD_PowerUp powerup_osd;
+		//OBJtOSD_Sound sound_osd;
+		OBJtOSD_TriggerVolume trigger_volume_osd;
+		//OBJtOSD_Weapon weapon_osd;
+		//OBJtOSD_Trigger trigger_osd;
+		//OBJtOSD_Turret turret_osd;
+		//OBJtOSD_Console console_osd;
+		//OBJtOSD_Door door_osd;
+		//OBJtOSD_Melee melee_osd;
+		//OBJtOSD_Neutral neutral_osd;
+	} osd;
+} OBJtOSD_All;
+
+#endif
Index: Daodan/src/Oni/Oni.h
===================================================================
--- Daodan/src/Oni/Oni.h	(revision 992)
+++ Daodan/src/Oni/Oni.h	(revision 992)
@@ -0,0 +1,39 @@
+#ifndef ONI_H
+#define ONI_H
+
+#include "stdint.h"
+#include <stdio.h>
+#include <windows.h>
+#include <GL/gl.h>
+
+#define ONICALL __fastcall
+
+
+#include "stdtypes.h"
+#include "BFW_Motoko_Draw.h"
+#include "BFW_ScriptLang.h"
+#include "Character.h"
+#include "GameState.h"
+#include "GL.h"
+#include "OBJt.h"
+
+#define DDmAssert(expr) assert(expr);
+
+#define WMcMessage_Quit 0x39 // WM_QUIT equivalent.
+
+typedef struct {
+	HINSTANCE Instance;
+	HWND Window;
+} ONtPlatformData;
+
+typedef struct {
+	int16_t left;
+	int16_t top;
+	int16_t right;
+	int16_t bottom;
+} UUtRect;
+
+#include "Symbols_Var.h"
+#include "Symbols_Func.h"
+
+#endif
Index: Daodan/src/Oni/Symbols_Func.h
===================================================================
--- Daodan/src/Oni/Symbols_Func.h	(revision 992)
+++ Daodan/src/Oni/Symbols_Func.h	(revision 992)
@@ -0,0 +1,192 @@
+#ifndef ONI_H
+#error Do not include this file directly, include Oni/Oni.h instead!
+#endif
+
+#ifndef SYMBOLS_FUNC_H
+#define SYMBOLS_FUNC_H
+
+
+#define DefFunc( type, name, callingconvention, args, address) typedef type ( callingconvention * _##name ) args; static const _##name name = (_##name)address
+
+// Orig timing functions, replaced by DDrMachineTime_* if option "usegettickcount" is enabled
+DefFunc(int64_t, UUrMachineTime_High, ONICALL, (), 0x04026480);
+DefFunc(double, UUrMachineTime_High_Frequency, ONICALL, (), 0x040264b0);
+DefFunc(int64_t, UUrMachineTime_Sixtieths, ONICALL, (), 0x040263e0);
+
+// Code to initialize platform stuff (like disabling system key combination Alt+Tab)
+DefFunc(void, UUrPlatform_Initialize, ONICALL, (), 0x04026010);
+DefFunc(void, UUrPlatform_Terminate, ONICALL, (), 0x04026310);
+
+// Oni's file access methods
+DefFunc(FILE*, oni_fopen, __cdecl, (const char*, const char*), 0x0051ea9f);
+DefFunc(int, oni_fprintf, __cdecl, (FILE*, const char*, ...), 0x0051ebbf);
+DefFunc(int, oni_fflush, __cdecl, (FILE*), 0x0051eab2);
+
+// Oni's main method?
+DefFunc(void, ONiMain, __cdecl, (int ArgCount, char *ArgList[]), 0x004d3280);
+
+DefFunc(uint16_t, CLrGetCommandLine, ONICALL, (int inArgc, const char* inArgv[], char*** outArgV), 0x0043ffd0);
+
+// Initialization code, used to hook in windowed modes
+DefFunc(short, ONrPlatform_Initialize, ONICALL, (ONtPlatformData *PlatformData), 0x0050f670);
+DefFunc(LRESULT, ONrPlatform_WindowProc, CALLBACK, (HWND Window, UINT Message, WPARAM WParam, LPARAM LParam), 0x0050f7a0);
+
+// Retrieves a list of resolutions, replaced by "daodan_enumerate_valid_display_modes"
+DefFunc(unsigned int, gl_enumerate_valid_display_modes, ONICALL, (M3tDisplayMode modes[16]), 0x004083a0);
+DefFunc(int, gl_platform_set_pixel_format, ONICALL, (HDC hdc), 0x00407b50);
+
+// Original graphics initialization/cleanup functions patched to use
+// DD_GLrPlatform_Initialize/DD_GLrPlatform_Dispoose instead if daodangl is used.
+DefFunc(UUtBool, gl_platform_initialize, ONICALL, (void), 0x00407da0);
+DefFunc(void, gl_platform_dispose, ONICALL, (void), 0x408210);
+
+// Retrieve gamma value from settings
+DefFunc(float, ONrPersist_GetGamma, ONICALL, (), 0x0050f450);
+
+// Retrieve if the game was completed
+DefFunc(uint8_t, ONrPersist_GetWonGame, ONICALL, (), 0x0050f660);
+
+// Print a message to the startup.txt log
+DefFunc(void, UUrStartupMessage, __cdecl, (const char* fmt, ...), 0x00424860);
+
+// Probably to spawn a new character
+DefFunc(int16_t, ONrGameState_NewCharacter, ONICALL, (void* CHAR, void* AISA, void* flag, uint32_t* list_location), 0x004dac50);
+
+// Remove character
+DefFunc(void, ONrGameState_DeleteCharacter, ONICALL, (Character *inCharacter), 0x004DC480);
+
+DefFunc(void, ONrGameState_Timer_Start, ONICALL, (char* function, int time), 0x004FD370);
+DefFunc(void, ONrGameState_HandleUtilityInput, ONICALL, (const void* inInput), 0x004f6200);
+DefFunc(uint8_t, ONrDebugKey_WentDown, ONICALL, (uint32_t inKey), 0x005050d0);
+
+// Get active (player?) character
+DefFunc(ActiveCharacter*, ONrGetActiveCharacter, ONICALL, (void* CharacterPtr), 0x004f1180);
+
+DefFunc(uint32_t, ONrCharacter_GetHealthShade, ONICALL, (uint32_t health, uint32_t maxhealth), 0x004EF450);
+DefFunc(void, ONrCharacter_NewAnimationHook, ONICALL, (Character *ioCharacter, ActiveCharacter *ioActiveCharacter), 0x004E97A0);
+DefFunc(void, ONrCharacter_SetAnimationExternal, ONICALL, (Character *ioCharacter, short state, void* animation, int interpolation), 0x004EB340);
+DefFunc(void, ONrCharacter_SetHitPoints, ONICALL, (Character *ioCharacter, uint32_t inHitPoints), 0x004EB220);
+DefFunc(void, ONrCharacter_SetCharacterClass, ONICALL, (Character* Char, ONCC* Class), 0x004D7C30);
+DefFunc(void, ONrCorpse_Create, ONICALL, (Character* Character), 0x004EF340);
+
+
+// Print message to console
+DefFunc(void, COrTextArea_Print, ONICALL, (void* area, uint32_t priority, uint32_t textshade, uint32_t textshadowshade, const char* text, uint32_t unk_alwaws_0, uint32_t fadetime), 0x00431340);
+DefFunc(int16_t, COrTextArea_Resize, ONICALL, (void* inTextArea, UUtRect* inBounds, int16_t inNumTextEntries), 0x00431460);
+
+// Original cheat function
+DefFunc(uint8_t, ONrCheater, ONICALL, (uint32_t cheat), 0x004f5c30);
+
+DefFunc(int16_t, ONrMechanics_Register, ONICALL, (uint32_t inObjectType, uint32_t inObjectTypeIndex, char* inGroupName,
+	uint32_t inSizeInMemory, OBJtMethods* inObjectMethods, uint32_t inFlags, void* inMechanicsMethods), 0x00507450);
+DefFunc(int16_t, OBJrTriggerVolume_IntersectsCharacter, ONICALL, (const OBJtObject* inObject, uint32_t inMask, const void* inCharacter), 0x004cc680);
+
+
+// ?
+DefFunc(int, AUrMessageBox, __cdecl, (int Buttons, char *Message, ...), 0x004378c0);
+DefFunc(char*, SSrMessage_Find, ONICALL, (char* message_key), 0x0047F550);
+DefFunc(void, ONiGameState_FindAutoPromptMessage, ONICALL, (char* Note, void* ptr), 0x004FDBE0);
+
+// Register a BSL function with a return type
+DefFunc(uint16_t, SLrScript_Command_Register_ReturnType, ONICALL, (char* name, char* desc, char* argfmt, sl_type type, sl_func callback), 0x00477b20);
+
+// Register a BSL function without a return value
+DefFunc(uint16_t, SLrScript_Command_Register_Void, ONICALL, (char* name, char* desc, char* argfmt, sl_func callback), 0x00477b40);
+
+// Register a global BSL variable
+DefFunc(uint16_t, SLrGlobalVariable_Register_Bool, ONICALL, (char* name, char* desc, UUtBool* data), 0x00477f50);
+DefFunc(uint16_t, SLrGlobalVariable_Register_Int32, ONICALL, (char* name, char* desc, int32_t* data), 0x00477e30);
+DefFunc(uint16_t, SLrGlobalVariable_Register_Float, ONICALL, (char* name, char* desc, float* data), 0x00477ec0);
+DefFunc(uint16_t, SLrGlobalVariable_Register_String, ONICALL, (char* name, char* desc, char* data), 0x00477fe0);
+
+// Print message to console ?
+DefFunc(int, COrMessage_Print, ONICALL, (char* Message, char* Key, void* noidea), 0x004304B0);
+DefFunc(UUtBool, COrCommand_Execute, ONICALL, (char* command), 0x004317D0);
+
+DefFunc(void, COrConsole_StatusLine_Display, ONICALL, (), 0x00431E70);
+
+// Get pointer to specified data instance
+DefFunc(int16_t, TMrInstance_GetDataPtr, ONICALL, (int tag, char* name, void* pointer), 0x004232E0);
+
+// Get name of data instance pointed to
+DefFunc(char*, TMrInstance_GetInstanceName, ONICALL, (void* InstancePointer), 0x00423D90);
+
+DefFunc(short, TMrInstance_GetDataPtr_ByNumber, ONICALL, (int tag, int number, void** out), 0x00423680);
+DefFunc(uint32_t, TMrInstance_GetTagCount, ONICALL, (int tag), 0x004236F0);
+
+// Draw text on the screen
+DefFunc(int16_t, TSrContext_DrawText, ONICALL, (void* TSrContext, char* Text, char alpha, uint32_t usuallyzero, void* pRect), 0x0042DF00);
+DefFunc(int16_t, TSrContext_New, ONICALL, (void* FontInstance, int size, int hthsik1,int hthsik2,int hthsik3, void* TSrContext), 0x0042EA30);
+DefFunc(int16_t, TSrContext_SetFontSize, ONICALL, (void* ioTextContext, uint16_t inSize), 0x0042ED50);
+DefFunc(int16_t, TSrContext_SetShade, ONICALL, (void* ioTextContext, uint32_t inShade), 0x0042EE50);
+
+DefFunc(uint16_t, TRrAnimation_GetDuration, ONICALL, (void* Animation), 0x00428740);
+DefFunc(uint16_t, TRrAnimation_GetTo, ONICALL, (void* Animation), 0x00428730);
+DefFunc(uint16_t, TRrAnimation_GetFrom, ONICALL, (void* Animation), 0x00428720);
+
+DefFunc(uint16_t, iSetCharacterClass, ONICALL, (sl_callinfo* callinfo, uint32_t numargs, sl_arg args[], int* dontuse1, int* dontuse2, sl_arg* ret), 0x004D99D0);
+DefFunc(uint16_t, AI2iScript_Spawn, ONICALL, (sl_callinfo* callinfo, uint32_t numargs, sl_arg args[], int* dontuse1, int* dontuse2, sl_arg* ret), 0x004B4780);
+DefFunc(void, AI2rSmite, ONICALL, (Character *inCharacter, UUtBool inSpareCharacter), 0x0048BDA0);
+//NOT USED: DefFunc(void*, OBJrObjectType_GetObject_ByNumber, ONICALL, (int inObjectType, int inIndex), );
+//NOT USED: DefFunc(int, OBJiObjectGroup_GetNumObjects, ONICALL, (void *inObjectGroup), );
+
+DefFunc(int, OBJrObjectType_EnumerateObjects, ONICALL, (int inObjectType, OBJtEnumCallback_Object inEnumCallback, int inUserData), 0x004D0080);
+//DefFunc(void, OBJrTriggerVolume_IntersectsCharacter, ONICALL, (), 0x004cc680);
+
+DefFunc(void, OBJrDoor_Open, ONICALL, (DoorObject *inObject, Character *inCharacter), 0x004C26C0);
+DefFunc(void, OBJrDoor_ForceOpen, ONICALL, (short id), 0x004C1EE0);
+DefFunc(short, OBJrConsole_OnActivate, ONICALL, (void *inObject, Character *inCharacter), 0x004C0880);
+DefFunc(void*, OBJrConsole_GetByID, ONICALL, (short ID), 0x004C0950);
+
+
+DefFunc(void, ONiDrawWeaponSight, ONICALL, (Character* Char), 0x004E1900);
+DefFunc(void, AI2rDisplayDebuggingInfo, ONICALL, (Character* Char), 0x0048C5F0);
+DefFunc(uint32_t, M3rTextureMap_New, ONICALL, (short width, short height, int type, int allocated, int flags, char* name, void** output), 0x0041EB00);
+DefFunc(void, M3rDraw_BigBitmap, ONICALL, (M3tTextureMap_Big* inBigBitmap, const M3tPointScreen *inDestPoint, UUtUns16 inWidth, UUtUns16 inHeight, UUtUns32 inShade, UUtUns16 inAlpha), 0x0041f6e0);
+DefFunc(void, M3rDraw_Bitmap, ONICALL, (void* inBitmap, const M3tPointScreen* inDestPoint, UUtUns16 inWidth, UUtUns16 inHeight, UUtUns32 inShade, UUtUns16 inAlpha), 0x0041f4a0);
+
+DefFunc(void, M3rGeom_Line_Light, ONICALL, (const M3tPoint3D *point1, const M3tPoint3D *point2, uint32_t shade), 0x0041f440);
+/*
+DefFunc(void, M3rGeom_Line_Light, ONICALL, (), 0x0041f440);
+DefFunc(void, M3rMatrixStack_Push, ONICALL, (), 0x0041baa0);
+DefFunc(void, M3rMatrixStack_Get, ONICALL, (), 0x0041bb20);
+DefFunc(void, M3rMatrixStack_Pop, ONICALL, (), 0x0041bb30);
+DefFunc(void, M3rMatrixStack_Identity, ONICALL, (), 0x0041bba0);
+DefFunc(void, M3rMatrixStack_Rotate, ONICALL, (), 0x0041bbe0);
+DefFunc(void, M3rMatrixStack_UniformScale, ONICALL, (), 0x0041bc20);
+DefFunc(void, M3rMatrixStack_Translate, ONICALL, (), 0x0041bc40);
+DefFunc(void, M3rMatrixStack_Multiply, ONICALL, (), 0x0041bc70);
+DefFunc(void, M3rGeom_State_Commit, ONICALL, (), 0x0041e870);
+
+DefFunc(void, MUrPoint_Distance, ONICALL, (), 0x00433270);
+*/
+
+// Make a dialog element (in)visible and change its position
+DefFunc(void, WMrWindow_SetVisible, ONICALL, (void* window, int visibility), 0x00475a10);
+DefFunc(void, WMrWindow_SetLocation, ONICALL, (void* window, int x, int y), 0x004756d0);
+
+// Plays movie using Bink blitting method (ie., non-OpenGL blitting).
+DefFunc(void, ONrMovie_Play, ONICALL, (const char* movie, int unknown), 0x004d5580);
+
+// Sets minimum and maximum values for a slider control.
+DefFunc(void, WMrSlider_SetRange, ONICALL, (void* window, int min_value, int max_value), 0x00472650);
+
+// Enables or disables window.
+DefFunc(void, WMrWindow_SetEnabled, ONICALL, (void* window, UUtBool enabled), 0x00475580);
+
+// Sets gamma to specified factor (0.0 .. 1.0).
+DefFunc(void, M3rSetGamma, ONICALL, (float factor), 0x00407a60);
+
+// Resets gl_api pointers, unloads OPENGL32.DLL.
+DefFunc(void, gl_unload_library, ONICALL, (void), 0x0040ac40);
+
+// Notifies platform-specific local input implementation about internal (ie.,
+// real) input mode change.
+DefFunc(void, LIrPlatform_Mode_Set, ONICALL, (unsigned int active_mode), 0x00402cf0);
+
+// Terminates platform-specific local-input.
+DefFunc(void, LIrPlatform_Terminate, ONICALL, (void), 0x00403620);
+
+#undef DefFunc
+
+#endif
Index: Daodan/src/Oni/Symbols_Var.h
===================================================================
--- Daodan/src/Oni/Symbols_Var.h	(revision 992)
+++ Daodan/src/Oni/Symbols_Var.h	(revision 992)
@@ -0,0 +1,86 @@
+#ifndef ONI_H
+#error Do not include this file directly, include Oni/Oni.h instead!
+#endif
+
+#ifndef SYMBOLS_VAR_H
+#define SYMBOLS_VAR_H
+
+//Define variables of Oni: #define VARNAME (*((TYPE*)ADDRESS))
+
+// AIs are deaf (ger: "taub")
+#define ai2_deaf			(*((onibool*)0x005ec0c1))
+
+// Option "debug" ... but what does it do?
+#define AKgDebug_DebugMaps	(*((char*)0x002b2204))
+
+// Option "debugfiles" ... but what does it do?
+#define BFgDebugFileEnable	(*((bool*)0x0055c8d0))
+
+// Command line instance
+#define COgCommandLine		(*((void**)0x00571b74))
+#define COgConsoleLines		(*((void**)0x005cb468))
+
+// Default console text color
+#define COgDefaultTextShade	(*((uint32_t*)0x00533f70))
+
+// Default console text shadow color
+#define COgDefaultTextShadow	(*((uint32_t*)0x00533f74))
+
+// Console text fade timeout
+#define COgFadeTimeValue	(*((uint32_t*)0x00533f68))
+
+// Game termination flag (ONiRunGame loops on it).
+#define ONgTerminateGame	(*((UUtBool*)0x00630ffd))
+
+// Window manager is running (drawing and updating windows).
+#define WMgActive			(*((UUtBool*)0x005e99a0))
+
+// Set by WinMain, used by UUrPlatform_Initialize and ONrPlatform_Initialize,
+// which copies it into ONgPlatformData.
+#define ONgInstance			(*((HINSTANCE*)0x0061f9e4))
+
+// Keeps initial gamma ramp value (before any change).
+#define GLgInitialGammaRamp	(((M3tWin32GammaRamp*)0x0055fdfc))
+
+// Nonzero when gamma ramp was successfully read into GLgInitialGammaRamp.
+#define GLgGammaRampValid	(*((int*)0x005603fc))
+
+// OpenGL: list of pointers to opengl32.dll functions (and a few functions from GL extensions)
+#define gl_api				(*((gl_api_t**)0x00560604))
+
+// OpenGL render engine descriptor (resolutions, flags, context methods)
+#define gl				(*((gl_engine_t**)0x00560600))
+
+// Initial display mode (saved by gl_library_is_loaded).
+#define GLgInitialMode		(*((DEVMODE*)0x0055fd60))
+
+// False to prevent Oni from changing display settings (however Bink
+// player does not respect this setting).
+#define M3gResolutionSwitch	(*((char*)0x00531634))
+
+// Startup.txt file handle
+#define ONgFileStartup		(*((FILE**)0x005711b8))
+
+// Current GameState
+#define ONgGameState		(*((GameState**)0x005ece7c))
+
+// Current ONtPlatformData
+#define ONgPlatformData		(*((ONtPlatformData*)0x00631008))
+
+// Load non levelX_final-files yes/no
+#define opt_ignore_private_data	(*((char*)0x006370f0))
+
+// Play sound yes/no
+#define opt_sound			(*((char*)0x006370fc))
+
+// Option "findsounds" ... but what does it do?
+#define SSgSearchOnDisk		(*((bool*)0x005eb758))
+
+// OBJgTriggerVolume_Visible - bsl var to show trigger volumes
+#define OBJgTriggerVolume_Visible	(*((bool*)0x005ec6c4))
+
+//#define OBJgFlag_DrawFlags	(*((void*)0x005ec624))
+//#define OBJgFlag_ViewPrefix	(*((void*)0x005ec650))
+//#define OBJgFlag_DrawNameDistance	(*((void*)0x005ec634))
+
+#endif
Index: Daodan/src/Oni/stdtypes.h
===================================================================
--- Daodan/src/Oni/stdtypes.h	(revision 992)
+++ Daodan/src/Oni/stdtypes.h	(revision 992)
@@ -0,0 +1,26 @@
+#ifndef ONI_H
+#error Do not include this file directly, include Oni/Oni.h instead!
+#endif
+
+#ifndef STDTYPES_H
+#define STDTYPES_H
+
+#define UUmType(t) typedef struct t t;
+
+typedef unsigned char UUtBool;
+#define UUcTrue  ((UUtBool) 1)
+#define UUcFalse ((UUtBool) 0)
+
+typedef unsigned short UUtError;
+#define UUcError_None ((UUtError) 0)
+
+typedef unsigned char UUtUns8;
+typedef unsigned short UUtUns16;
+typedef unsigned int UUtUns32;
+typedef char UUtInt8;
+typedef short UUtInt16;
+typedef int UUtInt32;
+
+typedef unsigned char onibool;
+
+#endif
Index: Daodan/src/Oni_Character.h
===================================================================
--- Daodan/src/Oni_Character.h	(revision 990)
+++ 	(revision )
@@ -1,70 +1,0 @@
-#ifndef ONI_CHARACTER_H
-#define ONI_CHARACTER_H
-
-#include "stdint.h"
-
-enum {
-	team_konoko,
-	team_tctf,
-	team_syndicate,
-	team_neutral,
-	team_securityguard,
-	team_roguekonoko,
-	team_switzerland,
-	team_syndicateaccessory,
-};
-
-
-//We need a Oni_Structs #include file.
-
-typedef enum {
-	ONcCharacterFlag_Dead_1_Animating		=	0x00000001,	// health is 0
-	ONcCharacterFlag_Dead					=	ONcCharacterFlag_Dead_1_Animating,
-	ONcCharacterFlag_Dead_2_Moving			=	0x00000002,	// no longer animating
-	ONcCharacterFlag_Dead_3_Cosmetic		=	0x00000004,	// no longer moving
-	ONcCharacterFlag_Dead_4_Gone			=	0x00000008,	// dead except but still drawn
-
-	ONcCharacterFlag_HastyAnim				=	0x00000010,	// do this queued animation ASAP
-	ONcCharacterFlag_Unkillable				=	0x00000020,	// the character cannot be killed, only defeated
-	ONcCharacterFlag_InfiniteAmmo			=	0x00000040,	// the character always has infinite ammo
-	ONcCharacterFlag_PleaseBlock			=	0x00000080,	// set if the character should block, cleared once block begins
-	
-	ONcCharacterFlag_Unstoppable			=	0x00000100,	// this character cannot be knocked down, staggered, stunned, etc
-	ONcCharacterFlag_ScriptControl			=	0x00000200,	// set if the character is completely under script control
-	ONcCharacterFlag_DeathLock				=	0x00000400,	// this character should never die all the way
-	ONcCharacterFlag_WasUpdated				=	0x00000800,	// this character's animation was changed
-		
-	ONcCharacterFlag_BeingThrown			=	0x00001000,	// this character is being thrown
-	ONcCharacterFlag_DontUseGunVariant		=	0x00002000,	// this character should not use a weapon variant
-	ONcCharacterFlag_Draw					=	0x00004000,	// DoFrame has been executed for this character
-	ONcCharacterFlag_InUse					=	0x00008000,	// this character is active and in use
-
-	ONcCharacterFlag_DontUseFightVariant	=	0x00010000,
-	ONcCharacterFlag_NoCollision			=	0x00020000,	// no collision for this character
-	ONcCharacterFlag_Teleporting			=	0x00040000,	// this character is teleporting and does not accept collision
-	ONcCharacterFlag_NoCorpse				=	0x00080000,	// no corpse for this character
-
-	ONcCharacterFlag_ActiveLock				=	0x00100000,	// the character is locked active
-	ONcCharacterFlag_ChrAnimate				=	0x00200000,	// the character is currently runing a chr_animate command
-	ONcCharacterFlag_AIMovement				=	0x00400000,	// the character is using AI movement
-	ONcCharacterFlag_NeutralUninterruptible	=	0x00800000,	// running an uninterruptible neutral interaction
-
-	ONcCharacterFlag_NoShadow				=	0x01000000,	// 
-	ONcCharacterFlag_Invincible				=	0x02000000,	// character is invincible
-	ONcCharacterFlag_NoAutoDrop				=	0x04000000,	// character should not automatically drop items when killed (invisibility, shield, LSI)
-	ONcCharacterFlag_RestrictedMovement		=	0x08000000,	// character cannot move fast (used for player holding barabbas' gun)
-
-	ONcCharacterFlag_Boss					=	0x10000000,	// character is a boss (used for final muro group fight)
-	ONcCharacterFlag_FinalFlash				=	0x20000000,	// 'final flash' has been played for this character's death
-	ONcCharacterFlag_BossShield				=	0x40000000, // this character has the boss shield
-	ONcCharacterFlag_WeaponImmune			=	0x80000000	// this character is immune to weapon damage
-
-} ONtCharacterFlags;
-
-typedef enum {
-	ONcCharacterFlag2_WeaponEmpty			=	0x00000001, // character's weapon is empty, punch instead
-	ONcCharacterFlag2_UltraMode				=	0x00000002
-
-} ONtCharacterFlags2;
-
-#endif
Index: Daodan/src/Oni_GL.h
===================================================================
--- Daodan/src/Oni_GL.h	(revision 990)
+++ 	(revision )
@@ -1,442 +1,0 @@
-#ifndef ONI_GL_H
-#define ONI_GL_H
-
-#include <windows.h>
-#include <GL/gl.h>
-
-#include "BFW_Motoko_Draw.h"
-
-typedef struct 
-{
-	int a;
-	M3tDrawEngineCaps DrawEngineCaps;
-	M3tDrawEngine DrawEngine;
-	M3tDrawContext DrawContext;
-	M3tDisplayMode DisplayMode;
-	int b;
-	int Textures[2];
-	short c;
-	short d;
-	int IntState;
-	M3tDrawPtrState *PtrState;
-	int e;
-	int Color;
-	int MaxTextureSize;
-	int DoubleBufferSupported;
-	int MaxTextureUnits;
-	char *VendorString;
-	char *RendererString;
-	char *VersionString;
-	char *ExtensionsString;
-	int MultipassCapable;
-	int f_0588;
-	char f_058C;
-	char SupportsDepthReads;
-	char FogDisabled;
-	char f_058F;
-	int CompressedTextureFormats[16];
-	int NumCompressedTextureFormats;
-	int f_05D4;
-	float FogStart;
-	float FogEnd;
-	char FogStartChanged;
-	char FogEndChanged;
-	short f_05E2;
-	int f_05E4[4];
-	float FogColor_R;
-	float FogColor_G;
-	float FogColor_B;
-	int Fog_1_;
-	char Fog_2_;
-	char f_0605[3];
-	float ClearColor[4];
-	int LastError;
-	char *LastErrorString;
-	short RenderMode;
-	char BufferClear;
-	char DoubleBuffer;
-	int f_0624;
-	char *TextureBuffer;
-	HDC hDC;
-	HGLRC hGLRC;
-	char vsync;
-	char f_0635[3];
-	void (*DisplayBackBuffer)(void);
-} gl_engine_t;
-
-typedef struct
-{
-	void (WINAPI *glAccum)(GLenum op, GLfloat value);
-	void (WINAPI *glAlphaFunc)(GLenum func, GLclampf ref);
-	GLboolean (WINAPI *glAreTexturesResident)(GLsizei n, const GLuint *textures, GLboolean *residences);
-	void (WINAPI *glArrayElement)(GLint i);
-	void (WINAPI *glBegin)(GLenum mode);
-	void (WINAPI *glBindTexture)(GLenum target, GLuint texture);
-	void (WINAPI *glBitmap)(GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap);
-	void (WINAPI *glBlendFunc)(GLenum sfactor, GLenum dfactor);
-	void (WINAPI *glCallList)(GLuint list);
-	void (WINAPI *glCallLists)(GLsizei n, GLenum type, const GLvoid *lists);
-	void (WINAPI *glClear)(GLbitfield mask);
-	void (WINAPI *glClearAccum)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
-	void (WINAPI *glClearColor)(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
-	void (WINAPI *glClearDepth)(GLclampd depth);
-	void (WINAPI *glClearIndex)(GLfloat c);
-	void (WINAPI *glClearStencil)(GLint s);
-	void (WINAPI *glClipPlane)(GLenum plane, const GLdouble *equation);
-	void (WINAPI *glColor3b)(GLbyte red, GLbyte green, GLbyte blue);
-	void (WINAPI *glColor3bv)(const GLbyte *v);
-	void (WINAPI *glColor3d)(GLdouble red, GLdouble green, GLdouble blue);
-	void (WINAPI *glColor3dv)(const GLdouble *v);
-	void (WINAPI *glColor3f)(GLfloat red, GLfloat green, GLfloat blue);
-	void (WINAPI *glColor3fv)(const GLfloat *v);
-	void (WINAPI *glColor3i)(GLint red, GLint green, GLint blue);
-	void (WINAPI *glColor3iv)(const GLint *v);
-	void (WINAPI *glColor3s)(GLshort red, GLshort green, GLshort blue);
-	void (WINAPI *glColor3sv)(const GLshort *v);
-	void (WINAPI *glColor3ub)(GLubyte red, GLubyte green, GLubyte blue);
-	void (WINAPI *glColor3ubv)(const GLubyte *v);
-	void (WINAPI *glColor3ui)(GLuint red, GLuint green, GLuint blue);
-	void (WINAPI *glColor3uiv)(const GLuint *v);
-	void (WINAPI *glColor3us)(GLushort red, GLushort green, GLushort blue);
-	void (WINAPI *glColor3usv)(const GLushort *v);
-	void (WINAPI *glColor4b)(GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha);
-	void (WINAPI *glColor4bv)(const GLbyte *v);
-	void (WINAPI *glColor4d)(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha);
-	void (WINAPI *glColor4dv)(const GLdouble *v);
-	void (WINAPI *glColor4f)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
-	void (WINAPI *glColor4fv)(const GLfloat *v);
-	void (WINAPI *glColor4i)(GLint red, GLint green, GLint blue, GLint alpha);
-	void (WINAPI *glColor4iv)(const GLint *v);
-	void (WINAPI *glColor4s)(GLshort red, GLshort green, GLshort blue, GLshort alpha);
-	void (WINAPI *glColor4sv)(const GLshort *v);
-	void (WINAPI *glColor4ub)(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
-	void (WINAPI *glColor4ubv)(const GLubyte *v);
-	void (WINAPI *glColor4ui)(GLuint red, GLuint green, GLuint blue, GLuint alpha);
-	void (WINAPI *glColor4uiv)(const GLuint *v);
-	void (WINAPI *glColor4us)(GLushort red, GLushort green, GLushort blue, GLushort alpha);
-	void (WINAPI *glColor4usv)(const GLushort *v);
-	void (WINAPI *glColorMask)(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
-	void (WINAPI *glColorMaterial)(GLenum face, GLenum mode);
-	void (WINAPI *glColorPointer)(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
-	void (WINAPI *glCopyPixels)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum type);
-	void (WINAPI *glCopyTexImage1D)(GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border);
-	void (WINAPI *glCopyTexImage2D)(GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
-	void (WINAPI *glCopyTexSubImage1D)(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
-	void (WINAPI *glCopyTexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
-	void (WINAPI *glCullFace)(GLenum mode);
-	void (WINAPI *glDeleteLists)(GLuint list, GLsizei range);
-	void (WINAPI *glDeleteTextures)(GLsizei n, const GLuint *textures);
-	void (WINAPI *glDepthFunc)(GLenum func);
-	void (WINAPI *glDepthMask)(GLboolean flag);
-	void (WINAPI *glDepthRange)(GLclampd zNear, GLclampd zFar);
-	void (WINAPI *glDisable)(GLenum cap);
-	void (WINAPI *glDisableClientState)(GLenum array);
-	void (WINAPI *glDrawArrays)(GLenum mode, GLint first, GLsizei count);
-	void (WINAPI *glDrawBuffer)(GLenum mode);
-	void (WINAPI *glDrawElements)(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices);
-	void (WINAPI *glDrawPixels)(GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
-	void (WINAPI *glEdgeFlag)(GLboolean flag);
-	void (WINAPI *glEdgeFlagPointer)(GLsizei stride, const GLvoid *pointer);
-	void (WINAPI *glEdgeFlagv)(const GLboolean *flag);
-	void (WINAPI *glEnable)(GLenum cap);
-	void (WINAPI *glEnableClientState)(GLenum array);
-	void (WINAPI *glEnd)(void);
-	void (WINAPI *glEndList)(void);
-	void (WINAPI *glEvalCoord1d)(GLdouble u);
-	void (WINAPI *glEvalCoord1dv)(const GLdouble *u);
-	void (WINAPI *glEvalCoord1f)(GLfloat u);
-	void (WINAPI *glEvalCoord1fv)(const GLfloat *u);
-	void (WINAPI *glEvalCoord2d)(GLdouble u, GLdouble v);
-	void (WINAPI *glEvalCoord2dv)(const GLdouble *u);
-	void (WINAPI *glEvalCoord2f)(GLfloat u, GLfloat v);
-	void (WINAPI *glEvalCoord2fv)(const GLfloat *u);
-	void (WINAPI *glEvalMesh1)(GLenum mode, GLint i1, GLint i2);
-	void (WINAPI *glEvalMesh2)(GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2);
-	void (WINAPI *glEvalPoint1)(GLint i);
-	void (WINAPI *glEvalPoint2)(GLint i, GLint j);
-	void (WINAPI *glFeedbackBuffer)(GLsizei size, GLenum type, GLfloat *buffer);
-	void (WINAPI *glFinish)(void);
-	void (WINAPI *glFlush)(void);
-	void (WINAPI *glFogf)(GLenum pname, GLfloat param);
-	void (WINAPI *glFogfv)(GLenum pname, const GLfloat *params);
-	void (WINAPI *glFogi)(GLenum pname, GLint param);
-	void (WINAPI *glFogiv)(GLenum pname, const GLint *params);
-	void (WINAPI *glFrontFace)(GLenum mode);
-	void (WINAPI *glFrustum)(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
-	GLuint (WINAPI *glGenLists)(GLsizei range);
-	void (WINAPI *glGenTextures)(GLsizei n, GLuint *textures);
-	void (WINAPI *glGetBooleanv)(GLenum pname, GLboolean *params);
-	void (WINAPI *glGetClipPlane)(GLenum plane, GLdouble *equation);
-	void (WINAPI *glGetDoublev)(GLenum pname, GLdouble *params);
-	GLenum (WINAPI *glGetError)(void);
-	void (WINAPI *glGetFloatv)(GLenum pname, GLfloat *params);
-	void (WINAPI *glGetIntegerv)(GLenum pname, GLint *params);
-	void (WINAPI *glGetLightfv)(GLenum light, GLenum pname, GLfloat *params);
-	void (WINAPI *glGetLightiv)(GLenum light, GLenum pname, GLint *params);
-	void (WINAPI *glGetMapdv)(GLenum target, GLenum query, GLdouble *v);
-	void (WINAPI *glGetMapfv)(GLenum target, GLenum query, GLfloat *v);
-	void (WINAPI *glGetMapiv)(GLenum target, GLenum query, GLint *v);
-	void (WINAPI *glGetMaterialfv)(GLenum face, GLenum pname, GLfloat *params);
-	void (WINAPI *glGetMaterialiv)(GLenum face, GLenum pname, GLint *params);
-	void (WINAPI *glGetPixelMapfv)(GLenum map, GLfloat *values);
-	void (WINAPI *glGetPixelMapuiv)(GLenum map, GLuint *values);
-	void (WINAPI *glGetPixelMapusv)(GLenum map, GLushort *values);
-	void (WINAPI *glGetPointerv)(GLenum pname, GLvoid* *params);
-	void (WINAPI *glGetPolygonStipple)(GLubyte *mask);
-	const GLubyte * (WINAPI *glGetString)(GLenum name);
-	void (WINAPI *glGetTexEnvfv)(GLenum target, GLenum pname, GLfloat *params);
-	void (WINAPI *glGetTexEnviv)(GLenum target, GLenum pname, GLint *params);
-	void (WINAPI *glGetTexGendv)(GLenum coord, GLenum pname, GLdouble *params);
-	void (WINAPI *glGetTexGenfv)(GLenum coord, GLenum pname, GLfloat *params);
-	void (WINAPI *glGetTexGeniv)(GLenum coord, GLenum pname, GLint *params);
-	void (WINAPI *glGetTexImage)(GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels);
-	void (WINAPI *glGetTexLevelParameterfv)(GLenum target, GLint level, GLenum pname, GLfloat *params);
-	void (WINAPI *glGetTexLevelParameteriv)(GLenum target, GLint level, GLenum pname, GLint *params);
-	void (WINAPI *glGetTexParameterfv)(GLenum target, GLenum pname, GLfloat *params);
-	void (WINAPI *glGetTexParameteriv)(GLenum target, GLenum pname, GLint *params);
-	void (WINAPI *glHint)(GLenum target, GLenum mode);
-	void (WINAPI *glIndexMask)(GLuint mask);
-	void (WINAPI *glIndexPointer)(GLenum type, GLsizei stride, const GLvoid *pointer);
-	void (WINAPI *glIndexd)(GLdouble c);
-	void (WINAPI *glIndexdv)(const GLdouble *c);
-	void (WINAPI *glIndexf)(GLfloat c);
-	void (WINAPI *glIndexfv)(const GLfloat *c);
-	void (WINAPI *glIndexi)(GLint c);
-	void (WINAPI *glIndexiv)(const GLint *c);
-	void (WINAPI *glIndexs)(GLshort c);
-	void (WINAPI *glIndexsv)(const GLshort *c);
-	void (WINAPI *glIndexub)(GLubyte c);
-	void (WINAPI *glIndexubv)(const GLubyte *c);
-	void (WINAPI *glInitNames)(void);
-	void (WINAPI *glInterleavedArrays)(GLenum format, GLsizei stride, const GLvoid *pointer);
-	GLboolean (WINAPI *glIsEnabled)(GLenum cap);
-	GLboolean (WINAPI *glIsList)(GLuint list);
-	GLboolean (WINAPI *glIsTexture)(GLuint texture);
-	void (WINAPI *glLightModelf)(GLenum pname, GLfloat param);
-	void (WINAPI *glLightModelfv)(GLenum pname, const GLfloat *params);
-	void (WINAPI *glLightModeli)(GLenum pname, GLint param);
-	void (WINAPI *glLightModeliv)(GLenum pname, const GLint *params);
-	void (WINAPI *glLightf)(GLenum light, GLenum pname, GLfloat param);
-	void (WINAPI *glLightfv)(GLenum light, GLenum pname, const GLfloat *params);
-	void (WINAPI *glLighti)(GLenum light, GLenum pname, GLint param);
-	void (WINAPI *glLightiv)(GLenum light, GLenum pname, const GLint *params);
-	void (WINAPI *glLineStipple)(GLint factor, GLushort pattern);
-	void (WINAPI *glLineWidth)(GLfloat width);
-	void (WINAPI *glListBase)(GLuint base);
-	void (WINAPI *glLoadIdentity)(void);
-	void (WINAPI *glLoadMatrixd)(const GLdouble *m);
-	void (WINAPI *glLoadMatrixf)(const GLfloat *m);
-	void (WINAPI *glLoadName)(GLuint name);
-	void (WINAPI *glLogicOp)(GLenum opcode);
-	void (WINAPI *glMap1d)(GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points);
-	void (WINAPI *glMap1f)(GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points);
-	void (WINAPI *glMap2d)(GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points);
-	void (WINAPI *glMap2f)(GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points);
-	void (WINAPI *glMapGrid1d)(GLint un, GLdouble u1, GLdouble u2);
-	void (WINAPI *glMapGrid1f)(GLint un, GLfloat u1, GLfloat u2);
-	void (WINAPI *glMapGrid2d)(GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2);
-	void (WINAPI *glMapGrid2f)(GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2);
-	void (WINAPI *glMaterialf)(GLenum face, GLenum pname, GLfloat param);
-	void (WINAPI *glMaterialfv)(GLenum face, GLenum pname, const GLfloat *params);
-	void (WINAPI *glMateriali)(GLenum face, GLenum pname, GLint param);
-	void (WINAPI *glMaterialiv)(GLenum face, GLenum pname, const GLint *params);
-	void (WINAPI *glMatrixMode)(GLenum mode);
-	void (WINAPI *glMultMatrixd)(const GLdouble *m);
-	void (WINAPI *glMultMatrixf)(const GLfloat *m);
-	void (WINAPI *glNewList)(GLuint list, GLenum mode);
-	void (WINAPI *glNormal3b)(GLbyte nx, GLbyte ny, GLbyte nz);
-	void (WINAPI *glNormal3bv)(const GLbyte *v);
-	void (WINAPI *glNormal3d)(GLdouble nx, GLdouble ny, GLdouble nz);
-	void (WINAPI *glNormal3dv)(const GLdouble *v);
-	void (WINAPI *glNormal3f)(GLfloat nx, GLfloat ny, GLfloat nz);
-	void (WINAPI *glNormal3fv)(const GLfloat *v);
-	void (WINAPI *glNormal3i)(GLint nx, GLint ny, GLint nz);
-	void (WINAPI *glNormal3iv)(const GLint *v);
-	void (WINAPI *glNormal3s)(GLshort nx, GLshort ny, GLshort nz);
-	void (WINAPI *glNormal3sv)(const GLshort *v);
-	void (WINAPI *glNormalPointer)(GLenum type, GLsizei stride, const GLvoid *pointer);
-	void (WINAPI *glOrtho)(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
-	void (WINAPI *glPassThrough)(GLfloat token);
-	void (WINAPI *glPixelMapfv)(GLenum map, GLsizei mapsize, const GLfloat *values);
-	void (WINAPI *glPixelMapuiv)(GLenum map, GLsizei mapsize, const GLuint *values);
-	void (WINAPI *glPixelMapusv)(GLenum map, GLsizei mapsize, const GLushort *values);
-	void (WINAPI *glPixelStoref)(GLenum pname, GLfloat param);
-	void (WINAPI *glPixelStorei)(GLenum pname, GLint param);
-	void (WINAPI *glPixelTransferf)(GLenum pname, GLfloat param);
-	void (WINAPI *glPixelTransferi)(GLenum pname, GLint param);
-	void (WINAPI *glPixelZoom)(GLfloat xfactor, GLfloat yfactor);
-	void (WINAPI *glPointSize)(GLfloat size);
-	void (WINAPI *glPolygonMode)(GLenum face, GLenum mode);
-	void (WINAPI *glPolygonOffset)(GLfloat factor, GLfloat units);
-	void (WINAPI *glPolygonStipple)(const GLubyte *mask);
-	void (WINAPI *glPopAttrib)(void);
-	void (WINAPI *glPopClientAttrib)(void);
-	void (WINAPI *glPopMatrix)(void);
-	void (WINAPI *glPopName)(void);
-	void (WINAPI *glPrioritizeTextures)(GLsizei n, const GLuint *textures, const GLclampf *priorities);
-	void (WINAPI *glPushAttrib)(GLbitfield mask);
-	void (WINAPI *glPushClientAttrib)(GLbitfield mask);
-	void (WINAPI *glPushMatrix)(void);
-	void (WINAPI *glPushName)(GLuint name);
-	void (WINAPI *glRasterPos2d)(GLdouble x, GLdouble y);
-	void (WINAPI *glRasterPos2dv)(const GLdouble *v);
-	void (WINAPI *glRasterPos2f)(GLfloat x, GLfloat y);
-	void (WINAPI *glRasterPos2fv)(const GLfloat *v);
-	void (WINAPI *glRasterPos2i)(GLint x, GLint y);
-	void (WINAPI *glRasterPos2iv)(const GLint *v);
-	void (WINAPI *glRasterPos2s)(GLshort x, GLshort y);
-	void (WINAPI *glRasterPos2sv)(const GLshort *v);
-	void (WINAPI *glRasterPos3d)(GLdouble x, GLdouble y, GLdouble z);
-	void (WINAPI *glRasterPos3dv)(const GLdouble *v);
-	void (WINAPI *glRasterPos3f)(GLfloat x, GLfloat y, GLfloat z);
-	void (WINAPI *glRasterPos3fv)(const GLfloat *v);
-	void (WINAPI *glRasterPos3i)(GLint x, GLint y, GLint z);
-	void (WINAPI *glRasterPos3iv)(const GLint *v);
-	void (WINAPI *glRasterPos3s)(GLshort x, GLshort y, GLshort z);
-	void (WINAPI *glRasterPos3sv)(const GLshort *v);
-	void (WINAPI *glRasterPos4d)(GLdouble x, GLdouble y, GLdouble z, GLdouble w);
-	void (WINAPI *glRasterPos4dv)(const GLdouble *v);
-	void (WINAPI *glRasterPos4f)(GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-	void (WINAPI *glRasterPos4fv)(const GLfloat *v);
-	void (WINAPI *glRasterPos4i)(GLint x, GLint y, GLint z, GLint w);
-	void (WINAPI *glRasterPos4iv)(const GLint *v);
-	void (WINAPI *glRasterPos4s)(GLshort x, GLshort y, GLshort z, GLshort w);
-	void (WINAPI *glRasterPos4sv)(const GLshort *v);
-	void (WINAPI *glReadBuffer)(GLenum mode);
-	void (WINAPI *glReadPixels)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels);
-	void (WINAPI *glRectd)(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2);
-	void (WINAPI *glRectdv)(const GLdouble *v1, const GLdouble *v2);
-	void (WINAPI *glRectf)(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2);
-	void (WINAPI *glRectfv)(const GLfloat *v1, const GLfloat *v2);
-	void (WINAPI *glRecti)(GLint x1, GLint y1, GLint x2, GLint y2);
-	void (WINAPI *glRectiv)(const GLint *v1, const GLint *v2);
-	void (WINAPI *glRects)(GLshort x1, GLshort y1, GLshort x2, GLshort y2);
-	void (WINAPI *glRectsv)(const GLshort *v1, const GLshort *v2);
-	GLint (WINAPI *glRenderMode)(GLenum mode);
-	void (WINAPI *glRotated)(GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
-	void (WINAPI *glRotatef)(GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
-	void (WINAPI *glScaled)(GLdouble x, GLdouble y, GLdouble z);
-	void (WINAPI *glScalef)(GLfloat x, GLfloat y, GLfloat z);
-	void (WINAPI *glScissor)(GLint x, GLint y, GLsizei width, GLsizei height);
-	void (WINAPI *glSelectBuffer)(GLsizei size, GLuint *buffer);
-	void (WINAPI *glShadeModel)(GLenum mode);
-	void (WINAPI *glStencilFunc)(GLenum func, GLint ref, GLuint mask);
-	void (WINAPI *glStencilMask)(GLuint mask);
-	void (WINAPI *glStencilOp)(GLenum fail, GLenum zfail, GLenum zpass);
-	void (WINAPI *glTexCoord1d)(GLdouble s);
-	void (WINAPI *glTexCoord1dv)(const GLdouble *v);
-	void (WINAPI *glTexCoord1f)(GLfloat s);
-	void (WINAPI *glTexCoord1fv)(const GLfloat *v);
-	void (WINAPI *glTexCoord1i)(GLint s);
-	void (WINAPI *glTexCoord1iv)(const GLint *v);
-	void (WINAPI *glTexCoord1s)(GLshort s);
-	void (WINAPI *glTexCoord1sv)(const GLshort *v);
-	void (WINAPI *glTexCoord2d)(GLdouble s, GLdouble t);
-	void (WINAPI *glTexCoord2dv)(const GLdouble *v);
-	void (WINAPI *glTexCoord2f)(GLfloat s, GLfloat t);
-	void (WINAPI *glTexCoord2fv)(const GLfloat *v);
-	void (WINAPI *glTexCoord2i)(GLint s, GLint t);
-	void (WINAPI *glTexCoord2iv)(const GLint *v);
-	void (WINAPI *glTexCoord2s)(GLshort s, GLshort t);
-	void (WINAPI *glTexCoord2sv)(const GLshort *v);
-	void (WINAPI *glTexCoord3d)(GLdouble s, GLdouble t, GLdouble r);
-	void (WINAPI *glTexCoord3dv)(const GLdouble *v);
-	void (WINAPI *glTexCoord3f)(GLfloat s, GLfloat t, GLfloat r);
-	void (WINAPI *glTexCoord3fv)(const GLfloat *v);
-	void (WINAPI *glTexCoord3i)(GLint s, GLint t, GLint r);
-	void (WINAPI *glTexCoord3iv)(const GLint *v);
-	void (WINAPI *glTexCoord3s)(GLshort s, GLshort t, GLshort r);
-	void (WINAPI *glTexCoord3sv)(const GLshort *v);
-	void (WINAPI *glTexCoord4d)(GLdouble s, GLdouble t, GLdouble r, GLdouble q);
-	void (WINAPI *glTexCoord4dv)(const GLdouble *v);
-	void (WINAPI *glTexCoord4f)(GLfloat s, GLfloat t, GLfloat r, GLfloat q);
-	void (WINAPI *glTexCoord4fv)(const GLfloat *v);
-	void (WINAPI *glTexCoord4i)(GLint s, GLint t, GLint r, GLint q);
-	void (WINAPI *glTexCoord4iv)(const GLint *v);
-	void (WINAPI *glTexCoord4s)(GLshort s, GLshort t, GLshort r, GLshort q);
-	void (WINAPI *glTexCoord4sv)(const GLshort *v);
-	void (WINAPI *glTexCoordPointer)(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
-	void (WINAPI *glTexEnvf)(GLenum target, GLenum pname, GLfloat param);
-	void (WINAPI *glTexEnvfv)(GLenum target, GLenum pname, const GLfloat *params);
-	void (WINAPI *glTexEnvi)(GLenum target, GLenum pname, GLint param);
-	void (WINAPI *glTexEnviv)(GLenum target, GLenum pname, const GLint *params);
-	void (WINAPI *glTexGend)(GLenum coord, GLenum pname, GLdouble param);
-	void (WINAPI *glTexGendv)(GLenum coord, GLenum pname, const GLdouble *params);
-	void (WINAPI *glTexGenf)(GLenum coord, GLenum pname, GLfloat param);
-	void (WINAPI *glTexGenfv)(GLenum coord, GLenum pname, const GLfloat *params);
-	void (WINAPI *glTexGeni)(GLenum coord, GLenum pname, GLint param);
-	void (WINAPI *glTexGeniv)(GLenum coord, GLenum pname, const GLint *params);
-	void (WINAPI *glTexImage1D)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
-	void (WINAPI *glTexImage2D)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
-	void (WINAPI *glTexParameterf)(GLenum target, GLenum pname, GLfloat param);
-	void (WINAPI *glTexParameterfv)(GLenum target, GLenum pname, const GLfloat *params);
-	void (WINAPI *glTexParameteri)(GLenum target, GLenum pname, GLint param);
-	void (WINAPI *glTexParameteriv)(GLenum target, GLenum pname, const GLint *params);
-	void (WINAPI *glTexSubImage1D)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels);
-	void (WINAPI *glTexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
-	void (WINAPI *glTranslated)(GLdouble x, GLdouble y, GLdouble z);
-	void (WINAPI *glTranslatef)(GLfloat x, GLfloat y, GLfloat z);
-	void (WINAPI *glVertex2d)(GLdouble x, GLdouble y);
-	void (WINAPI *glVertex2dv)(const GLdouble *v);
-	void (WINAPI *glVertex2f)(GLfloat x, GLfloat y);
-	void (WINAPI *glVertex2fv)(const GLfloat *v);
-	void (WINAPI *glVertex2i)(GLint x, GLint y);
-	void (WINAPI *glVertex2iv)(const GLint *v);
-	void (WINAPI *glVertex2s)(GLshort x, GLshort y);
-	void (WINAPI *glVertex2sv)(const GLshort *v);
-	void (WINAPI *glVertex3d)(GLdouble x, GLdouble y, GLdouble z);
-	void (WINAPI *glVertex3dv)(const GLdouble *v);
-	void (WINAPI *glVertex3f)(GLfloat x, GLfloat y, GLfloat z);
-	void (WINAPI *glVertex3fv)(const GLfloat *v);
-	void (WINAPI *glVertex3i)(GLint x, GLint y, GLint z);
-	void (WINAPI *glVertex3iv)(const GLint *v);
-	void (WINAPI *glVertex3s)(GLshort x, GLshort y, GLshort z);
-	void (WINAPI *glVertex3sv)(const GLshort *v);
-	void (WINAPI *glVertex4d)(GLdouble x, GLdouble y, GLdouble z, GLdouble w);
-	void (WINAPI *glVertex4dv)(const GLdouble *v);
-	void (WINAPI *glVertex4f)(GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-	void (WINAPI *glVertex4fv)(const GLfloat *v);
-	void (WINAPI *glVertex4i)(GLint x, GLint y, GLint z, GLint w);
-	void (WINAPI *glVertex4iv)(const GLint *v);
-	void (WINAPI *glVertex4s)(GLshort x, GLshort y, GLshort z, GLshort w);
-	void (WINAPI *glVertex4sv)(const GLshort *v);
-	void (WINAPI *glVertexPointer)(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
-	void (WINAPI *glViewport)(GLint x, GLint y, GLsizei width, GLsizei height);
-
-	BOOL  (WINAPI *wglCopyContext)(HGLRC, HGLRC, UINT);
-	HGLRC (WINAPI *wglCreateContext)(HDC);
-	HGLRC (WINAPI *wglCreateLayerContext)(HDC, int);
-	BOOL  (WINAPI *wglDeleteContext)(HGLRC);
-	HGLRC (WINAPI *wglGetCurrentContext)(VOID);
-	HDC   (WINAPI *wglGetCurrentDC)(VOID);
-	PROC  (WINAPI *wglGetProcAddress)(LPCSTR);
-	BOOL  (WINAPI *wglMakeCurrent)(HDC, HGLRC);
-	BOOL  (WINAPI *wglShareLists)(HGLRC, HGLRC);
-
-	int f_0564;
-
-	int glActiveTextureARB;
-	int glClientActiveTextureARB;
-	int glMultiTexCoord4fARB;
-	int glMultiTexCoord2fvARB;
-	int glBlendColor;
-	int f_057C;
-	int f_0580;
-	int f_0584;
-	int f_0588;
-	int glCompressedTexImaged3DARB;
-	int glCompressedTexImaged2DARB;
-	int glCompressedTexImage1DARB;
-	int glCompressedTexSubImage3DARB;
-	int glCompressedTexSubImage2DARB;
-	int glCompressedTexSubImage1DARB;
-	int glCompressedTexImageARB;
-
-	GLboolean (WINAPI *wglSwapIntervalEXT)(GLint interval);
-
-	GLint (WINAPI *wglSetDeviceGammaRamp3DFX)(HDC, M3tWin32GammaRamp*);
-	GLint (WINAPI *wglGetDeviceGammaRamp3DFX)(HDC, M3tWin32GammaRamp*);
-} gl_api_t;
-
-
-#endif
Index: Daodan/src/Oni_GameState.h
===================================================================
--- Daodan/src/Oni_GameState.h	(revision 990)
+++ 	(revision )
@@ -1,1462 +1,0 @@
-#ifndef ONI_GAMESTATE_H
-#define ONI_GAMESTATE_H
-
-#include "Oni_Character.h"
-
-typedef struct {
-	float X;
-	float Y;
-	float Z;	
-} Vector3; //probably move to utilities...
-
-typedef struct {
-	float X;
-	float Y;
-	float Z;
-	float W;
-} Quaternion;
-
-typedef struct {
-	float RotationScale[9];
-	Vector3 Translation;
-} Matrix4x3;
-
-typedef struct {
-	Vector3 Center;
-	float Radius;
-} Sphere;
-
-typedef struct 
-{
-  int StartTime;
-  int field_4;
-  char Active;
-  char field_9;
-} Letterbox;
-
-typedef struct 
-{
-  __int16 Count;
-  __int16 field_2;
-  int Memory;
-} DoorArray;
-
-typedef struct 
-{
-  int Count;
-  int Head;
-}PHNodeList;
-
-typedef struct
-{
-  PHNodeList OutList;
-  PHNodeList InList;
-  int AKVA;
-  int field_14;
-  int XTiles;
-  int ZTiles;
-  int GridSize;
-  char field_24;
-  char NoGrid;
-  char gap_26[2];
-  int GridData;
-  int field_2D;
-  __int16 field_31;
-  char gap_32[2];
-  int DynamicGrid;
-  int field_39;
-  int field_3D;
-  int field_41;
-  int field_45;
-  int field_49;
-  int field_4D;
-  int field_51;
-  int field_55;
-  int field_59;
-  int field_5D;
-  int field_61;
-  int field_65;
-  int field_69;
-  int field_6D;
-  int field_71;
-  int field_75;
-  __int16 Visited;
-  __int16 field_7A;
-  int TraverseQueueNext;
-  int field_81;
-  int field_85;
-  int field_89;
-  int field_8D;
-  int field_91;
-  int field_95;
-  int field_99;
-} PHGraphNode;
-typedef struct 
-{
-  int field_0;
-  int field_4;
-  int field_8;
-  int field_C;
-  int field_10;
-  int field_14;
-  int field_18;
-  int field_1C;
-  int field_20;
-  int field_24;
-  int field_28;
-  int field_2C;
-  int field_30;
-  int field_34;
-  int field_38;
-  int field_3C;
-  int field_40;
-} MotionBlur;
-
-typedef struct 
-{
-  char field_0[2052];
-} Shadow;
-
-typedef struct
-{
-  int ONSK;
-  Vector3 PlanetPositions[8];
-  int StarSpriteArray;
-  int Skybox;
-  int field_6C;
-  int field_70;
-  int field_74;
-  int field_78;
-  int field_7C;
-  int field_80;
-  int field_84;
-  int field_88;
-  int field_8C;
-  int field_90;
-  int field_94;
-  int field_98;
-  int field_9C;
-  int field_A0;
-  int field_A4;
-  int field_A8;
-  int field_AC;
-  int field_B0;
-  int field_B4;
-  int field_B8;
-  int field_BC;
-  int field_C0;
-  int field_C4;
-  int field_C8;
-  int field_CC;
-  int field_D0;
-  int field_D4;
-  int field_D8;
-  int field_DC;
-  float field_E0;
-  int field_E4;
-  int field_E8;
-  int field_EC;
-  int field_F0;
-  int field_F4;
-  int field_F8;
-  int field_FC;
-  int field_100;
-  int field_104;
-  int field_108;
-  int field_10C;
-  int field_110;
-  int field_114;
-  int field_118;
-  int field_11C;
-  int field_120;
-  int field_124;
-  int field_128;
-  int field_12C;
-  int field_130;
-  int field_134;
-  int field_138;
-  int field_13C;
-  int field_140;
-  int field_144;
-  int field_148;
-  int field_14C;
-  int field_150;
-  int field_154;
-  int field_158;
-  int field_15C;
-  int field_160;
-  float field_164;
-  int field_168;
-  int field_16C;
-  int field_170;
-  int field_174;
-  int field_178;
-  int field_17C;
-  int field_180;
-  int field_184;
-  int field_188;
-  int field_18C;
-  int field_190;
-  int field_194;
-  int field_198;
-  int field_19C;
-  int field_1A0;
-  int field_1A4;
-  int field_1A8;
-  int field_1AC;
-  int field_1B0;
-  int field_1B4;
-  int field_1B8;
-  int field_1BC;
-  int field_1C0;
-  int field_1C4;
-  int field_1C8;
-  int field_1CC;
-  int field_1D0;
-  int field_1D4;
-  int field_1D8;
-  int field_1DC;
-  int field_1E0;
-  int field_1E4;
-  int field_1E8;
-  int field_1EC;
-  int field_1F0;
-  int field_1F4;
-  int field_1F8;
-  int field_1FC;
-  int field_200;
-  float field_204;
-  int field_208;
-  int field_20C;
-  int field_210;
-  int field_214;
-  int field_218;
-  int field_21C;
-  int field_220;
-  int field_224;
-  int field_228;
-  int field_22C;
-  int field_230;
-  int field_234;
-  int field_238;
-  int field_23C;
-  int field_240;
-  int field_244;
-  int field_248;
-  Vector3 SunFlarePosition;
-  Vector3 field_258;
-  int field_264;
-  int field_268;
-  int field_26C;
-  int field_270;
-  Vector3 field_274;
-  int field_280;
-  int field_284;
-  int field_288;
-  int field_28C;
-} Sky;
-
-
-
-typedef struct {
-	Sphere Sphere_; //fix this name
-	int Child1;
-	int Child2;	
-} SphereTreeNode;
-
-typedef struct {
-	Vector3 Min;
-	Vector3 Max;
-} BoundingBox;
-
-
-/*  202 */ typedef struct 
-{
-  char Name[32];
-  __int16 Id;
-  __int16 field_22;
-  int Length;
-} PatrolPathOSD;
-
-/*  396 */ typedef struct 
-{
-  int Type;
-  int field_4;
-  int field_8;
-  int field_C;
-  int field_10;
-} PatrolPathPoint;
-
-enum { //action flags
-	Action_Escape                    = 1,
-	Action_Console                   = 2,
-	Action_PauseScreen               = 4,
-	Action_Cutscene_1                = 8,
-	Action_Cutscene_2                = 0x10,
-	Action_F4                        = 0x20,
-	Action_F5                        = 0x40,
-	Action_F6                        = 0x80,
-	Action_F7                        = 0x100,
-	Action_F8                        = 0x200,
-	Action_StartRecord               = 0x400,
-	Action_StopRecord                = 0x800,
-	Action_PlayRecord                = 0x1000,
-	Action_F12                       = 0x2000,
-	Action_Unknown1                  = 0x4000,
-	Action_LookMode                  = 0x8000,
-	Action_Screenshot                = 0x10000,
-	Action_Unknown2                  = 0x20000,
-	Action_Unknown3                  = 0x40000,
-	Action_Unknown4                  = 0x80000,
-	Action_Unknown5                  = 0x100000,
-	Action_Forward                   = 0x200000,
-	Action_Backward                  = 0x400000,
-	Action_TurnLeft                  = 0x800000,
-	Action_TurnRight                 = 0x1000000,
-	Action_StepLeft                  = 0x2000000,
-	Action_StepRight                 = 0x4000000,
-	Action_Jump                      = 0x8000000,
-	Action_Crouch                    = 0x10000000,
-	Action_Punch                     = 0x20000000,
-	Action_Kick                      = 0x40000000,
-	Action_Block                     = 0x80000000,
-	//used in second action field
-	Action2_Walk                     = 1,
-	Action2_Action                   = 2,
-	Action2_Hypo                     = 4,
-	Action2_Reload                   = 8,
-	Action2_Swap                     = 0x10,
-	Action2_Drop                     = 0x20,
-	Action2_Fire1                    = 0x40,
-	Action2_Fire2                    = 0x80,
-	Action2_Fire3                    = 0x100,
-};
-
-
-typedef struct {
-	int32_t Actions1;
-	int32_t Actions2;
-} InputAction;
-
-
-typedef struct {
-	float MouseDeltaX;
-	float MouseDeltaY;
-	float field_8;
-	float field_C;
-	InputAction Current;
-	InputAction Stopped;
-	InputAction Start;
-	InputAction Stop;
-} GameInput;
-
-typedef struct {
-	int Type;				//'CHAR' etc.
-	int ObjectId;			//not needed
-	int Flags;				//The flags of the object...not used for CHAR
-	Vector3 Position;		//Position of Object
-	Vector3 Rotation;		//Rotation of Object
-	int EditorCallbacks;	//Lets try not to mess with it for now. :P
-	int field_28;			//unknown
-} OSD_Header;
-
-typedef struct 
-{
-	short ID;	
-	short flags;
-
-	short keys;
-	short open_time;
-
-	float activate_radius_squared;
-
-	short state;	
-	short blocked_frames;						
-
-	short open_time_left;						
-	short some_timer;
-
-	Vector3 center_offset;						
-	char name[63];
-	char pad;
-	void *class;
-} DoorOSD;
-
-typedef struct {
-	OSD_Header OSD;
-	DoorOSD Door; //incomplete
-} DoorObject;
-
-typedef struct {
-	int32_t Flags;
-	int32_t Frame;
-	int32_t field_8;
-	int32_t field_C;
-	int32_t field_10;
-	int32_t field_14;
-	int32_t field_18;
-	int32_t field_1C;
-	int32_t FILMInstance;
-} PlayingFilm;
-
-typedef enum {
-	chr_isplayer          = 1 << 0,
-	chr_randomskin        = 1 << 1,
-	chr_notprespawned     = 1 << 2,
-	chr_noncombatant      = 1 << 3,
-	chr_multispawnable    = 1 << 4,
-	chr_unkillable        = 1 << 5,
-	chr_superammo         = 1 << 6,
-	chr_omniscient        = 1 << 8,
-	chr_haslsi            = 1 << 9,
-	chr_boss              = 1 << 10,
-	chr_upgradedifficulty = 1 << 11,
-	chr_noautodrop        = 1 << 12,
-	chr_dontaim           = 1 << 13,
-	chr_nocollision       = 1 << 17,
-	chr_noshadow          = 1 << 24,
-	chr_invincible        = 1 << 25,
-	chr_bossshield        = 1 << 30,
-	chr_weaponimmune      = 1 << 31,
-} chr_flags;
-
-
-typedef struct {
-	uint32_t Options;				//A bitset. Someone had better define these
-	char Class[64];					//Name of the ONCC we use. ONCCName in idb
-	char Name[32];					//Name of the character. ie: ai2_spawn Muro
-	char Weapon[64];				//Name of the weapon he holds. ONWCName in idb
-	char ScriptSpawn[32];			//Script function called when char spawns
-	char ScriptDie[32];				//Script function called when char dies
-	char ScriptAware[32];			//Script function called when char detects something
-	char ScriptAlarm[32];			//Script function called when char is alarmed at something
-	char ScriptHurt[32];			//Script function called when char is hurt for the first time
-	char ScriptDefeat[32];			//Script function called when char is at 1 HP
-	char ScriptNoPath[32];			//Script function called when char loses path. Broken.
-	char ScriptNoAmmo[32];			//Script function called when char is out of ammo for the first time. Char must have ammo at spawn.
-	int32_t AdditionalHealth;		//Additional Health given to the character
-	int16_t AmmoUsed;				//Ammo given for the char to use
-	int16_t AmmoDropped;			//Ammo the char drops
-	int16_t CellsUsed;				//Cells given for the char to use
-	int16_t CellsDropped;			//Cells the char drops
-	int16_t HypoUsed;				//Hypo given for the char to use
-	int16_t HypoDropped;			//Hypo the char drops
-	int16_t ShieldUsed;				//Bullet shield given for the char to use
-	int16_t ShieldDropped;			//Bullet shield the char drops
-	int16_t CloakUsed;				//Phase Cloak given for the char to use
-	int16_t CloakDropped;			//Phase Cloak the char drops
-	int16_t NCIUsed;				//Don't use this...
-	int16_t NCIDropped;				//Don't use this...
-	int32_t TeamID;					//Team ID
-	int32_t AmmoPercent;			//Percent of weapon ammo full
-	int32_t JobID;					//Job ID...
-									//0 - none 
-									//1 - idle 
-									//2 - guard (never used in Oni) 
-									//3 - patrol 
-									//4 - teambattle (never used in Oni)
-	int16_t PatrolID;				//patrol path ID (reference to the Patrol_Path.BINA file)
-	int16_t CombatID;				//combat ID (reference to the Combat.BINA file)
-	int16_t	MeleeID;				//melee ID (reference to the Melee Profile.BINA file)
-	int16_t NeutralID;				//neutral ID (reference to the Neutral.BINA file)
-	int32_t	AlarmGroups;			//Bitset. http://wiki.oni2.net/CHAR
-	int32_t InitialAlertLevel;		//0 - lull, 1 - low, 2 - medium, 3 - high, 4 - combat
-	int32_t MinimalAlertLevel;		//0 - lull, 1 - low, 2 - medium, 3 - high, 4 - combat
-	int32_t StartJobAlertLevel;		//0 - lull, 1 - low, 2 - medium, 3 - high, 4 - combat
-	int32_t InvestigatingAlertLevel;//0 - lull, 1 - low, 2 - medium, 3 - high, 4 - combat
-	int32_t PursuitStrongLow;
-	int32_t PursuitWeakLow;
-	int32_t PursuitStrongHigh;
-	int32_t PursuitWeakHigh;
-	int32_t Pursuit5;
-	int32_t field_1FC;
-} CharacterOSD;
-
-typedef struct {
-	OSD_Header Header;
-	CharacterOSD OSD;
-} CharacterObject;
-
-typedef struct {
-	Vector3 Center;
-	float Radius;
-} BoundingSphere;
-
-typedef struct {
-	int32_t ONCP; //probably pointer
-	int32_t field_4;	//who knows?
-	int32_t Instance; //probably link to actual particle
-	int32_t Bone; //duh
-} AttachedParticle;
-
-
-typedef struct 
-{
-  __int16 Index;
-  __int16 Flags;
-  int Class;
-  int Character;
-  Matrix4x3 Matrix;
-  int PhyContext;
-  int Facing;
-  __int16 FadeTimer;
-  __int16 TimeToFade;
-  int CreationTime;
-  __int16 ShotDelay1;
-  __int16 ShotDelay2;
-  __int16 PauseBeforeReload;
-  __int16 PauseAfterReload;
-  __int16 ActiveFireModeLength;
-  __int16 AmmoCount;
-  __int16 field_58;
-  __int16 FiringDelays[16];
-  char gap_7a[2];
-  int ParticleInstances[16];
-  int field_BC[16];
-  int field_FC;
-  int DodgeFiringSpreadPtr;
-  int field_104;
-  int field_108;
-  int field_10C;
-  char gap_110[20];
-  Vector3 Center;
-  int NodeList[16];
-} Weapon;
-
-typedef struct { //Inventory
-	Weapon* Weapons[3];
-	int8_t z_forced_holster;
-	int8_t z_forced_holster_is_magic;
-	int16_t AmmoUsed;				//Ammo given for the char to use
-	int16_t HypoUsed;				//Hypo given for the char to use
-	int16_t CellsUsed;				//Cells given for the char to use
-	int16_t AmmoDropped;			//Ammo the char drops
-	int16_t HypoDropped;			//Hypo the char drops
-	int16_t CellsDropped;			//Cells the char drops
-	int16_t hypoRemaining;	//who knows? InverseHypoRegenRate?
-	int16_t hypoTimer;	
-	int16_t pad;
-	char hasLSI;
-	char field_1B5;
-	int16_t	shieldDisplayAmount;
-	int16_t ShieldUsed;				//Bullet shield given for the char to use
-	int16_t CloakUsed;				//Phase Cloak given for the char to use
-	int32_t numInvisibleFrames;			//probably bullet shield dropped
-	int32_t DoorKeys;		//Lol. We can use this later for other sorts of items.
-} Inventory;
-
-typedef struct {
-	uint32_t SphereTree;
-	Vector3 ObBox[8];
-	Vector3 * ObBowPtr;
-	Vector3 Velocity;
-	Quaternion field_74;
-	Vector3 Position;
-	Quaternion Rotation;
-	float Scale;
-	Matrix4x3 Matrix;
-	Matrix4x3 InitMatrix;
-	float field_104;
-	float Gravity;
-	float field_10C;
-	float field_110;
-	float Friction_1;
-	float Friction_2;
-	Vector3 Force;
-	uint32_t Flags;
-	uint32_t Type;
-	char AnimState[0x18];
-	void* Callbacks;
-	void* Owner;
-} PhyContext;
-typedef struct
-{
-  int field_0;
-  int NumContacts;
-  int FirstContact;
-  int NotifyKnowledgeCallback;
-} AI2KnowledgeState;
-
-typedef struct 
-{
-  char Name[128];
-  __int16 ImpactId;
-} ONCCImpact;
-
-typedef struct 
-{
-  int RecoilCompensation;
-  int BestAimingAngle;
-  int ShotGroupError;
-  int ShotGroupDecay;
-  int ShotingInaccuracyMultiplier;
-  __int16 MinDelayBetweenShots;
-  __int16 MaxDelayBetweenShots;
-} ONCCWeaponSkill;
-
-typedef struct 
-{
-  __int16 field_0;
-  __int16 field_2;
-  __int16 field_4;
-  __int16 field_6;
-  __int16 field_8;
-  __int16 field_A;
-  __int16 field_C;
-  __int16 field_E;
-  __int16 field_10;
-  __int16 field_12;
-  __int16 field_14;
-  char Loaded;
-  char field_17;
-  int field_18;
-  char HurtLightSoundName[32];
-  char HurtMediumSoundName[32];
-  char HurtHeavySoundName[32];
-  char DeathSoundName[32];
-  int HurtLightSoundPtr;
-  int HurtMediumSoundPtr;
-  int HurtHeavySoundPtr;
-  int DeathSoundPtr;
-}HurtParams;
-
-
-typedef struct
-{
-  int field_0;
-  int Gravity;
-  float JumpStartVelocity;
-  float MaxFallingVelocity;
-  float JumpAcceleration;
-  __int16 field_14;
-  __int16 JetpackTimer;
-  float MaxFallingHeightWithoutDamage;
-  float MaxFallingHeightWithDamage;
-  int ShadowTexture;
-  float ShadowMaxHeight;
-  float ShadowFadeHeight;
-  float ShadowSize1;
-  float ShadowSize2;
-  float ShadowSize3;
-  __int16 field_38;
-  __int16 field_3A;
-  int field_3C;
-  char field_40;
-  char field_41;
-  __int16 field_42;
-  int field_44;
-  int field_48;
-  int field_4C;
-  int field_50;
-  int field_54;
-  int field_58;
-  __int16 InverseHypoRegenerationRate;
-  __int16 field_5E;
-  int field_60;
-  int field_64;
-  int field_68;
-  int field_6C;
-  int field_70;
-  HurtParams HurtParams;
-  int AIOptions;
-  int AIRotationSpeed;
-  __int16 MinimalDazeTime;
-  __int16 MaximalDazeTime;
-  __int16 MinimalRealiseFiringSpreadTime;
-  __int16 MaximalRealiseFiringSpreadTime;
-  int MinimalFiringSpreadDodge;
-  int MaximalFiringSpreadDodge;
-  int field_138;
-  int field_13C;
-  int field_140;
-  int field_144;
-  int field_148;
-  int field_14C;
-  int field_150;
-  ONCCWeaponSkill WeaponSkills[13];
-  int field_28C;
-  int field_290;
-  int field_294;
-  int TauntChance;
-  int GoForGunChance;
-  int RunPickupChance;
-  __int16 CombatId;
-  __int16 MeleeId;
-  char SoundProbabilities[10];
-  char gap_2b2[2];
-  char TauntSound[32];
-  char AlertSound[32];
-  char StartleSound[32];
-  char CheckBodySound[32];
-  char PursueSound[32];
-  char CoverSound[32];
-  char SuperpunchSound[32];
-  char SuperKickSound[32];
-  char Super3Sound[32];
-  char Super4Sound[32];
-  int CentralVisionRange;
-  int PeripheralVisionRange;
-  int HFov;
-  int CentralVisionCurve;
-  int CentralVFOV;
-  int PeripheralVisionCurve;
-  int PeripheralVFOV;
-  int HostileThreatDefiniteTimer;
-  int HostileThreatStrongTimer;
-  int HostileThreatWeakTimer;
-  int FriendlyThreadDefiniteTimer;
-  int FriendlyThreatStrongTimer;
-  int FriendlyThreatWeakTimer;
-  int EarshotRadius;
-  int ONCV;
-  int ONCP;
-  int ONIA;
-  char ImpactsLoaded;
-  char gap_439[1];
-  __int16 ImpactModifier;
-  char ImpactModifierName[16];
-  ONCCImpact Impacts[15];
-  char gap_bea[2];
-  char DeathParticleName[64];
-  int DeathParticlePtr;
-  int BodySurfaceCache;
-  int TRBS;
-  int TRMA;
-  int CBPM;
-  int CBPI;
-  int PeaceTimer;
-  int IdleTimer1;
-  int IdleTimer2;
-  int BaseHealth;
-  int field_C54;
-  int MinBodySizeFactor;
-  int MaxBodySizeFactor;
-  int field_C60[7];
-  int field_C7C;
-  int TRAC;
-  int TRSC;
-  char gap_c88[2];
-  __int16 DeathDeleteTimer;
-  char WeaponHand;
-  char HasDaodanPowers;
-  char HasSuperShield;
-  char CantTouchThis;
-} ONCC;
-
-
-/*  398 */ typedef struct 
-{
-  char Number;
-  char gap_1[1];
-  __int16 ActiveCharacterIndex;
-  int Flags;
-  int field_8;
-  ONCC* ONCC;
-  __int16 ONCCnumber;
-  __int16 Team;
-  char Name[32];
-  int BodySize;
-  int Health;
-  int MaxHealth;
-  __int16 AISA_ID;
-  char gap_42[2];
-  int field_44;
-  char ScriptNew[32];
-  char ScriptDie[32];
-  char ScriptSeen[32];
-  char ScriptAlarm[32];
-  char ScriptHurt[32];
-  char ScriptDefeat[32];
-  char ScriptLowAmmo[32];
-  //char ScriptNoPath[32];
-  char ScriptNoPath[28];
-  int RegenHax;
-  Vector3 Position;
-  Vector3 LastPosition;
-  Vector3 Location;
-  float Facing;
-  float DesiredFacing;
-  float CosmeticFacing;
-  int field_178;
-  int field_17C;
-  int field_180;
-  int BNV;
-  int GraphNode;
-  float PelvisHeight;
-  int field_190;
-  Inventory Inventory;
-  Vector3 Velocity;
-  int field_1D0;
-  int field_1D4;
-  int field_1D8;
-  int field_1DC;
-  int field_1E0;
-  int IdleDelay;
-  int charType;
-  char gap_1ec[4];
-  int CombatFlags;
-  int JobId;
-  int Goal;
-  int field_1FC;
-  __int16 field_200;
-  char gap_202[6];
-  int field_208;
-  char gap_20c[588];
-  char field_458;
-  char gap_459[352];
-  char field_5B9;
-  char gap_5ba[14];
-  char field_5C8;
-  char gap_5c9[359];
-  int field_730;
-  int field_734;
-  int field_738;
-  char gap_73c[380];
-  char CombatState;
-  char gap_8b9[7];
-  PatrolPathOSD PatrolPathOSD_;
-  PatrolPathPoint PatrolPathPoints[64];
-  char gap_de8[392];
-  int Combat_StatePtr;
-  AI2KnowledgeState KnowledgeState_;
-  char gap_f84[4];
-  int AlertDecayTimer;
-  int field_F8C;
-  int field_F90;
-  int AlertLevel;
-  int MinimalAlertLevel;
-  int StartJobAlertLevel;
-  int InvestigatingAlertLevel;
-  int StartleTime;
-  int field_FA8;
-  int field_FAC;
-  int field_FB0;
-  int Pursue1;
-  int Pursue2;
-  int Pursue3;
-  int Pursue4;
-  int Pursue5;
-  char field_FC8;
-  char gap_fc9[3];
-  int field_FCC;
-  char gap_fd0[8];
-  int AlarmGroups;
-  int field_FDC;
-  int field_FE0;
-  int field_FE4;
-  int field_FE8;
-  int field_FEC;
-  int field_FF0;
-  int field_FF4;
-  int field_FF8;
-  int field_FFC;
-  int field_1000;
-  int field_1004;
-  int field_1008;
-  __int16 field_100C;
-  __int16 field_100E;
-  int field_1010;
-  int field_1014;
-  int field_1018;
-  char field_101C;
-  char gap_101d[3];
-  int DazeTimer;
-  __int16 field_1024;
-  __int16 field_1026;
-  __int16 field_1028;
-  __int16 field_102A;
-  int field_102C;
-  int field_1030;
-  int field_1034;
-  char gap_1038[20];
-  int field_104C;
-  int field_1050;
-  int field_1054;
-  int field_1058;
-  int field_105C;
-  int field_1060;
-  int field_1064;
-  int MeleePtr;
-  int field_106C;
-  __int16 field_1070;
-  char gap_1072[126];
-  int Path_DestinationType;
-  int Path_TypeSpecificInfo;
-  char Path_MovementState;
-  char gap_10f9[3];
-  int Path_OrientTo;
-  Vector3 Path_DestinationPoint;
-  int field_110C;
-  int field_1110;
-  Vector3 field_1114;
-  Vector3 field_1120;
-  char Path_State;
-  char field_112D;
-  char field_112E;
-  char gap_112f[1];
-  Vector3 field_1130;
-  int field_113C;
-  int field_1140;
-  int field_1144;
-  char field_1148;
-  char gap_1149[3];
-  int Path_CurrentNodeNumber;
-  int Path_NumNodes;
-  Vector3 Path_From;
-  Vector3 Path_To;
-  int Path_GraphFromNodePtr;
-  int Path_GraphToNodePtr;
-  int field_1174;
-  char gap_1178[12];
-  int field_1184;
-  char gap_1188[776];
-  int Path_LastError;
-  int Path_RepathDelay;
-  int Path_Repaths;
-  int Path_RepathDecayTimer;
-  int field_14A0;
-  int MovementMode;
-  char field_14A8;
-  char gap_14a9[3];
-  int field_14AC;
-  int MovementModifiers;
-  int field_14B4;
-  char gap_14b8[188];
-  int field_1574;
-  int FacingState;
-  int FacingAt_Destination;
-  char field_1580;
-  char field_1581;
-  char gap_1582[2];
-  int Aiming_At_Type;
-  Vector3 Aiming_At;
-  int field_1594;
-  int field_1598;
-  int field_159C;
-  int GlancingState;
-  Vector3 GlancingDirOrPos;
-  char field_15B0;
-  char gap_15b1[3];
-  int field_15B4;
-  int field_15B8;
-  int field_15BC;
-  int field_15C0;
-  int field_15C4;
-  int field_15C8;
-  int field_15CC;
-  int field_15D0;
-  int field_15D4;
-  int field_15D8;
-  int field_15DC;
-  int field_15E0;
-  int field_15E4;
-  int field_15E8;
-  int AIBlockFunction;
-  char field_15F0;
-  char field_15F1;
-  char field_15F2;
-  char gap_15f3[1];
-  int field_15F4;
-  int field_15F8;
-  int field_15FC;
-  int field_1600;
-  char gap_1604[4];
-  int field_1608;
-  int field_160C;
-  char gap_1610[4];
-  int field_1614;
-  char gap_1618[20];
-  int field_162C;
-  int field_1630;
-  int field_1634;
-  int field_1638;
-  int field_163C;
-  int field_1640;
-  __int16 field_1644;
-  char gap_1646[2];
-  BoundingBox BoundingBox_;
-  char gap_1660[4];
-  int BossShieldPower;
-  int field_1668;
-  char gap_166c[4];
-  uint32_t Kills;
-  uint32_t Damage;
-  int field_1678;
-  int field_167C;
-  int CurrentConsoleActionMarker;
-  int field_1684;
-  __int16 field_1688;
-  __int16 field_168A;
-  int field_168C;
-  int field_1690;
-  char field_1694;
-  char field_1695;
-  __int16 field_1696;
-  int field_1698;
-  int field_169C;
-} Character;
-
-typedef struct 
-{
-  int Nodes;
-  int NodeCount;
-  int field_8;
-  int TraverseQueueHead;
-  int field_10;
-  int CacheLrar;
-  int CacheMem;
-  int field_1C;
-  int field_20;
-  int field_24;
-}PHGraph
-;
-
-/*  388 */ typedef struct //activecharacter
-{
-  __int16 Number;
-  __int16 field_2;
-  PhyContext* PhyContext;
-  SphereTreeNode SphereTree;
-  SphereTreeNode SphereTree3[4];
-  SphereTreeNode SphereTree2[2];
-  __int16 field_B0;
-  __int16 field_B2;
-  __int16 field_B4;
-  char field_B6;
-  char gap_b7[1];
-  Vector3 field_B8;
-  Vector3 AccelerateWith;
-  int field_D0;
-  Vector3 field_D4;
-  __int16 field_E0;
-  char gap_e2[2];
-  int field_E4;
-  int field_E8;
-  int field_EC;
-  int field_F0;
-  __int16 field_F4;
-  __int16 IsInAir;
-  Vector3 FallingVelocity;
-  Vector3 JumpVelocity;
-  char field_110;
-  char field_111;
-  __int16 field_112;
-  __int16 field_114;
-  char gap_116[2];
-  int field_118;
-  int field_11C;
-  int field_120;
-  int field_124;
-  int field_128;
-  int field_12C;
-  BoundingSphere BoundingSphere;
-  Vector3 field_140;
-  Vector3 field_14C;
-  int field_158;
-  int field_15C;
-  Vector3 Location;
-  char gap_16c[24];
-  int AkiraNode;
-  int GraphNode;
-  int PelvisHeight;
-  int Movement_StatePtr;
-  int ActiveWeapon;
-  int field_198;
-  int InventoryWeapon;
-  char gap_1a0[2];
-  __int16 RedAmmoClipCount;
-  __int16 HypoCount;
-  __int16 GreenAmmoClipCount;
-  __int16 RedAmmoClipDropCount;
-  __int16 HypoDropCount;
-  __int16 GreenAmmoClipDropCount;
-  __int16 field_1AE;
-  __int16 InverseHypoRegenerationRate;
-  char DropShield;
-  char DropPhaseCloack;
-  char field_1B4;
-  char gap_1b5[1];
-  __int16 field_1B6;
-  __int16 Shield;
-  __int16 PhaseCloacking;
-  int field_1BC;
-  char gap_1c0[4];
-  __int16 field_1C4;
-  char gap_1c6[10];
-  int field_1D0;
-  int field_1D4;
-  char gap_1d8[4];
-  int field_1DC;
-  int NotIdleStartTime;
-  int TimeToIdle;
-  int field_1E8;
-  char gap_1ec[4];
-  int field_1F0;
-  char gap_1f4[2048];
-  int field_9F4;
-  char gap_9f8[36];
-  int field_A1C;
-  char gap_a20[3020];
-  int field_15EC;
-  char gap_15f0[60];
-  int field_162C;
-  int field_1630;
-  int field_1634;
-  int field_1638;
-  int field_163C;
-  char gap_1640[8];
-  BoundingBox BoundingBox;
-  int field_1660;
-  char gap_1664[4];
-  int ShieldPower;
-  char gap_166c[4];
-  int NumberOfKills;
-  int InflictedDamage;
-  int field_1678;
-  int field_167C;
-  char gap_1680[8];
-  __int16 field_1688;
-  __int16 field_168A;
-  int field_168C;
-  int field_1690;
-  char field_1694;
-  char field_1695;
-  __int16 field_1696;
-  int field_1698;
-  int field_169C;
-  char gap_16a0[2];
-  int field_16A2;
-  char gap_16a6[994];
-  char field_1A88;
-  char field_1A89;
-  char field_1A8A;
-  char field_1A8B;
-  Vector3 Executor_AimingDirection;
-  int field_1A98;
-  int field_1A9C;
-  int Executor_ActualMovementMode;
-  int field_1AA4;
-  int field_1AA8;
-  int field_1AAC;
-  char Executor_HasFacingOverride;
-  char gap_1ab1[3];
-  int Executor_AimingSpeed;
-  char field_1AB8;
-  char Executor_HasMoveOverride;
-  char gap_1aba[6];
-  int field_1AC0;
-  int field_1AC4;
-  int Executor_FacingOverride;
-  char Executor_HasAttackOverride;
-  char gap_1acd[1];
-  __int16 field_1ACE;
-  __int16 field_1AD0;
-  char gap_1ad2[6];
-  int field_1AD8;
-  int field_1ADC;
-  int field_1AE0;
-  int field_1AE4;
-  char Executor_HasThrowOverride;
-  char gap_1ae9[3];
-  int field_1AEC;
-  int field_1AF0;
-  int field_1AF4;
-  void* Animation;
-  __int16 AnimationToState;
-  __int16 AnimationFromState;
-  __int16 AnimationType;
-  __int16 NextAnimationType;
-  __int16 PrevAnimationType;
-  __int16 field_1B06;
-  char Stitch;
-  char gap_1b09[3];
-  int StitchHeight;
-  __int16 InterpolationFromState;
-  char gap_1b12[2];
-  Vector3 StitchVelocity;
-  __int16 InterpolationCurrentFrame;
-  __int16 InterpolationLength;
-  Quaternion InterpolationStartRotations[19];
-  char gap_1c54[4];
-  int field_1C58;
-  int field_1C5C;
-  int field_1C60;
-  int Overlay;
-  __int16 field_1C68;
-  __int16 field_1C6A;
-  int field_1C6C;
-  int field_1C70;
-  __int16 field_1C74;
-  char gap_1c76[2];
-  int field_1C78;
-  char gap_1c7c[12];
-  __int16 Frame;
-  __int16 SoftPause;
-  __int16 HardPause;
-  __int16 field_1C8E;
-  int ForcedAnimationFrames;
-  __int16 HitStun;
-  __int16 BlockStun;
-  __int16 Dizzy;
-  __int16 field_1C9A;
-  int field_1C9C;
-  __int16 AnimationVariant;
-  __int16 TimeToPeace;
-  char NumAnimationAttachedParticles;
-  char gap_1ca5[1];
-  __int16 field_1CA6;
-  AttachedParticle AnimationAttachedParticles[16];
-  int TRAMParticles;
-  char FixedParticlesAttached;
-  char FixedParticlesStarted;
-  __int16 NumFixedParticles;
-  AttachedParticle FixedParticles[16];
-  __int16 CurrentAnimationType;
-  char gap_1eb2[2];
-  int field_1EB4;
-  char field_1EB8;
-  char gap_1eb9[30];
-  char field_1ED7;
-  __int16 throwing;
-  __int16 thrownBy;
-  Character* ThrowTargetCharacter;
-  void* targetThrow; //animation
-  int field_1EE4;
-  int field_1EE8;
-  int field_1EEC;
-  Quaternion Rotations[19];
-  Quaternion OverlayRotations[19];
-  int field_2150;
-  char gap_2154[4];
-  GameInput Input;
-  int PrevActions1;
-  int PrevActions2;
-  int SprintTimer;
-  char field_2194;
-  char field_2195;
-  char gap_2196[2];
-  Vector3 AimTarget;
-  Vector3 AimVector;
-  Vector3 CamVector;
-  float HeadFacing;
-  float HeadPitch;
-  int field_21C4;
-  int field_21C8;
-  int field_21CC;
-  int field_21D0;
-  char field_21D4;
-  char gap_21d5[3];
-  int field_21D8;
-  char field_21DC;
-  char field_21DD;
-  char field_21DE;
-  char field_21DF;
-  char field_21E0;
-  char HasAlternateTrigger;
-  char field_21E2;
-  char ReleaseTrigger;
-  char ReleaseAlternateTrigger;
-  char TurningLeft;
-  char TurningRight;
-  char gap_21e7[1];
-  int field_21E8;
-  int field_21EC;
-  __int16 field_21F0;
-  char gap_21f2[2];
-  PlayingFilm PlayingFilm;
-  char gap_2218[4];
-  int field_221C;
-  char gap_2220[8];
-  Matrix4x3  * ExtraBody;
-  char gap_222c[76];
-  Matrix4x3 BoneMatrices[19];
-  Matrix4x3 WeaponMatrix;
-  char gap_2638[432];
-  int field_27E8;
-  char gap_27ec[4];
-  __int16 field_27F0;
-  __int16 field_27F2;
-  int field_27F4;
-  int field_27F8;
-  __int16 ShadowIndex;
-  char field_27FE;
-  char gap_27ff[1];
-  char field_2800;
-  char field_2801;
-  char ShieldParts[19];
-  char field_2815;
-  char gap_2816[2];
-  int field_2818;
-  __int16 field_281C;
-  char gap_281e[2];
-  int field_2820;
-  int field_2824;
-  int field_2828;
-  int field_282C;
-  __int16 field_2830;
-  __int16 field_2832;
-  char gap_2834[1];
-  char field_2835;
-  char field_2836;
-  char field_2837;
-} ActiveCharacter;
-
-typedef struct
-{
-	char name[64];	// Must be same as ONcMaxLevelName above (for TE)
-	
-	void *env;
-	void *objectsetup;
-	void *markers;
-	void *flags;
-	void *triggers;
-	
-	void *Sky;
-	float	SkyHeight;
-
-
-} OniLevel;
-
-typedef struct
-{
-  int TimerMode;
-  char TimerName[32];
-  int TimerDuration;
-  char field_28;
-  char gap_29[3];
-  int field_2C;
-  Letterbox Letterbox;
-  char gap_3a[2];
-  char field_3C;
-  char gap_3d[3];
-  int field_40;
-  int CutsceneSyncMark;
-  char field_48;
-  char gap_49[3];
-  int field_4C;
-  int field_50;
-  int field_54;
-  int field_58;
-  int field_5C;
-  int field_60;
-  int field_64;
-  int field_68;
-  int field_6C;
-  int field_70;
-  int FadeStartTime;
-  int FadeEndTime;
-  char field_7C;
-  char gap_7d[3];
-  int Camera;
-  PHGraph PathFindingGraph;
-  Character* PlayerCharacter;
-  int field_B0;
-  char gap_b4[4];
-  GameInput Input;
-  int field_E8;
-  int field_EC;
-  char ScreenShotEveryFrame;
-  char gap_f1[7];
-  char field_F8;
-  char field_F9;
-  char field_FA;
-  char gap_fb[1];
-  int field_FC;
-  int field_100;
-  char field_104;
-  char gap_105[3];
-  int SlowMotion;
-  char gap_10c[4];
-  int field_110;
-  int field_114;
-  char SplashScreenTextureName[32];
-  char field_138;
-  char gap_139[7];
-  int field_140;
-  int GameTime;
-  int field_148;
-  int field_14C;
-  OniLevel* Level;
-  int field_154;
-  MotionBlur MotionBlur_[64];
-  int MotionBlurCount;
-  __int16 field_125C;
-  __int16 field_125E;
-  Character CharacterStorage[128];
-  __int16 CharacterCount;
-  char gap_b6262[2];
-  int field_B6264;
-  ActiveCharacter ActiveCharacters[64];
-  __int16 ActiveCharacterCount;
-  Shadow Shadows[32];
-  __int16 field_1670EA;
-  int ShadowCount;
-  int ActiveCharacterList[128];
-  int ActiveCharacterListCount;
-  int ActiveCharacterListLock;
-  int LivingCharacterList[128];
-  int LivingCharacterListCount;
-  int LivingCharacterListLock;
-  Character* PresentCharacterList[128];
-  int PresentCharacterListCount;
-  int PresentCharacterListLock;
-  int ObjectList;
-  DoorArray DoorArray_;
-  Sky Sky_;
-  int field_1679A4;
-  int Triggers;
-  char IsGamePaused;
-  char IsInputEnabled;
-  char field_1679AE;
-  char gap_1679af[1];
-  int LastInputActions1;
-  int LastInputActions2;
-  int field_1679B8;
-  int WinLose;
-  int field_1679C0;
-  int field_1679C4;
-  int field_1679C8;
-  int field_1679CC;
-  int field_1679D0;
-  int field_1679D4;
-  __int16 field_1679D8;
-  char gap_1679da[2];
-  int field_1679DC;
-} GameState;
-
-
-typedef struct 
-{
-	int			priority;
-	int timer;						// amount of time to display the text
-	char				prefix[10];	// prefix for the line
-	char				text[502];		// text on the line
-	const char			*identifier;
-	int			text_color;
-	int			text_shadow;
-} COtTextEntry;
-
-typedef struct 
-{
-	void		*font_family;
-	void *text_context;				// text context to do the drawing
-	short			formatting;
-	short			font_size;
-	char				scale_font;
-	char				bottom_justify;
-	char				display_completion;
-	char				fade_over_bounds;
-	char				use_formatting_commands;
-
-	short				bounds[4];
-	short			num_text_entries;
-	short max_text_entries;
-	char pad[3];
-	COtTextEntry		*text_entries;				// an array (num_text_entries long) of COtTextEntry
-		int blah;
-		int blah2;
-			int blah3;
-} COtTextArea;
-
-#endif
-
Index: Daodan/src/Oni_Symbols.h
===================================================================
--- Daodan/src/Oni_Symbols.h	(revision 990)
+++ 	(revision )
@@ -1,281 +1,0 @@
-#ifndef ONI_SYMBOLS_H
-#define ONI_SYMBOLS_H
-#include "stdint.h"
-#include <stdio.h>
-#include "Oni.h"
-#include "Oni_GL.h"
-#include "Oni_Character.h"
-#include "BFW_ScriptLang.h"
-
-#include "patches/objt.h"
-
-//Define variables of Oni: #define VARNAME (*((TYPE*)ADDRESS))
-
-// AIs are deaf (ger: "taub")
-#define ai2_deaf			(*((onibool*)0x005ec0c1))
-
-// Option "debug" ... but what does it do?
-#define AKgDebug_DebugMaps	(*((char*)0x002b2204))
-
-// Option "debugfiles" ... but what does it do?
-#define BFgDebugFileEnable	(*((bool*)0x0055c8d0))
-
-// Command line instance
-#define COgCommandLine		(*((void**)0x00571b74))
-#define COgConsoleLines		(*((void**)0x005cb468))
-
-// Default console text color
-#define COgDefaultTextShade	(*((uint32_t*)0x00533f70))
-
-// Default console text shadow color
-#define COgDefaultTextShadow	(*((uint32_t*)0x00533f74))
-
-// Console text fade timeout
-#define COgFadeTimeValue	(*((uint32_t*)0x00533f68))
-
-// Game termination flag (ONiRunGame loops on it).
-#define ONgTerminateGame	(*((UUtBool*)0x00630ffd))
-
-// Window manager is running (drawing and updating windows).
-#define WMgActive			(*((UUtBool*)0x005e99a0))
-
-// Set by WinMain, used by UUrPlatform_Initialize and ONrPlatform_Initialize,
-// which copies it into ONgPlatformData.
-#define ONgInstance			(*((HINSTANCE*)0x0061f9e4))
-
-// Keeps initial gamma ramp value (before any change).
-#define GLgInitialGammaRamp	(((M3tWin32GammaRamp*)0x0055fdfc))
-
-// Nonzero when gamma ramp was successfully read into GLgInitialGammaRamp.
-#define GLgGammaRampValid	(*((int*)0x005603fc))
-
-// OpenGL: list of pointers to opengl32.dll functions (and a few functions from GL extensions)
-#define gl_api				(*((gl_api_t**)0x00560604))
-
-// OpenGL render engine descriptor (resolutions, flags, context methods)
-#define gl				(*((gl_engine_t**)0x00560600))
-
-// Initial display mode (saved by gl_library_is_loaded).
-#define GLgInitialMode		(*((DEVMODE*)0x0055fd60))
-
-// False to prevent Oni from changing display settings (however Bink
-// player does not respect this setting).
-#define M3gResolutionSwitch	(*((char*)0x00531634))
-
-// Startup.txt file handle
-#define ONgFileStartup		(*((FILE**)0x005711b8))
-
-// Current GameState
-#define ONgGameState		(*((GameState**)0x005ece7c))
-
-// Current ONtPlatformData
-#define ONgPlatformData		(*((ONtPlatformData*)0x00631008))
-
-// Load non levelX_final-files yes/no
-#define opt_ignore_private_data	(*((char*)0x006370f0))
-
-// Play sound yes/no
-#define opt_sound			(*((char*)0x006370fc))
-
-// Option "findsounds" ... but what does it do?
-#define SSgSearchOnDisk		(*((bool*)0x005eb758))
-
-// OBJgTriggerVolume_Visible - bsl var to show trigger volumes
-#define OBJgTriggerVolume_Visible	(*((bool*)0x005ec6c4))
-
-//#define OBJgFlag_DrawFlags	(*((void*)0x005ec624))
-//#define OBJgFlag_ViewPrefix	(*((void*)0x005ec650))
-//#define OBJgFlag_DrawNameDistance	(*((void*)0x005ec634))
-
-// Method signature for script (BSL) functions
-typedef uint16_t	( ONICALL *sl_func)(sl_callinfo* callinfo, uint32_t numargs, sl_arg args[], int* dontuse1, int* dontuse2, sl_arg* ret);
-
-// Used by function definition below: OBJrObjectType_EnumerateObjects
-typedef char		( ONICALL *OBJtEnumCallback_Object)(void *inObject, int inUserData);
-
-
-
-#define DefFunc( type, name, callingconvention, args, address) typedef type ( callingconvention * _##name ) args; static const _##name name = (_##name)address
-
-// Orig timing functions, replaced by DDrMachineTime_* if option "usegettickcount" is enabled
-DefFunc(int64_t, UUrMachineTime_High, ONICALL, (), 0x04026480);
-DefFunc(double, UUrMachineTime_High_Frequency, ONICALL, (), 0x040264b0);
-DefFunc(int64_t, UUrMachineTime_Sixtieths, ONICALL, (), 0x040263e0);
-
-// Code to initialize platform stuff (like disabling system key combination Alt+Tab)
-DefFunc(void, UUrPlatform_Initialize, ONICALL, (), 0x04026010);
-DefFunc(void, UUrPlatform_Terminate, ONICALL, (), 0x04026310);
-
-// Oni's file access methods
-DefFunc(FILE*, oni_fopen, __cdecl, (const char*, const char*), 0x0051ea9f);
-DefFunc(int, oni_fprintf, __cdecl, (FILE*, const char*, ...), 0x0051ebbf);
-DefFunc(int, oni_fflush, __cdecl, (FILE*), 0x0051eab2);
-
-// Oni's main method?
-DefFunc(void, ONiMain, __cdecl, (int ArgCount, char *ArgList[]), 0x004d3280);
-
-DefFunc(uint16_t, CLrGetCommandLine, ONICALL, (int inArgc, const char* inArgv[], char*** outArgV), 0x0043ffd0);
-
-// Initialization code, used to hook in windowed modes
-DefFunc(short, ONrPlatform_Initialize, ONICALL, (ONtPlatformData *PlatformData), 0x0050f670);
-DefFunc(LRESULT, ONrPlatform_WindowProc, CALLBACK, (HWND Window, UINT Message, WPARAM WParam, LPARAM LParam), 0x0050f7a0);
-
-// Retrieves a list of resolutions, replaced by "daodan_enumerate_valid_display_modes"
-DefFunc(unsigned int, gl_enumerate_valid_display_modes, ONICALL, (M3tDisplayMode modes[16]), 0x004083a0);
-DefFunc(int, gl_platform_set_pixel_format, ONICALL, (HDC hdc), 0x00407b50);
-
-// Original graphics initialization/cleanup functions patched to use
-// DD_GLrPlatform_Initialize/DD_GLrPlatform_Dispoose instead if daodangl is used.
-DefFunc(UUtBool, gl_platform_initialize, ONICALL, (void), 0x00407da0);
-DefFunc(void, gl_platform_dispose, ONICALL, (void), 0x408210);
-
-// Retrieve gamma value from settings
-DefFunc(float, ONrPersist_GetGamma, ONICALL, (), 0x0050f450);
-
-// Retrieve if the game was completed
-DefFunc(uint8_t, ONrPersist_GetWonGame, ONICALL, (), 0x0050f660);
-
-// Print a message to the startup.txt log
-DefFunc(void, UUrStartupMessage, __cdecl, (const char* fmt, ...), 0x00424860);
-
-// Probably to spawn a new character
-DefFunc(int16_t, ONrGameState_NewCharacter, ONICALL, (void* CHAR, void* AISA, void* flag, uint32_t* list_location), 0x004dac50);
-
-// Remove character
-DefFunc(void, ONrGameState_DeleteCharacter, ONICALL, (Character *inCharacter), 0x004DC480);
-
-DefFunc(void, ONrGameState_Timer_Start, ONICALL, (char* function, int time), 0x004FD370);
-DefFunc(void, ONrGameState_HandleUtilityInput, ONICALL, (const void* inInput), 0x004f6200);
-DefFunc(uint8_t, ONrDebugKey_WentDown, ONICALL, (uint32_t inKey), 0x005050d0);
-
-// Get active (player?) character
-DefFunc(ActiveCharacter*, ONrGetActiveCharacter, ONICALL, (void* CharacterPtr), 0x004f1180);
-
-DefFunc(uint32_t, ONrCharacter_GetHealthShade, ONICALL, (uint32_t health, uint32_t maxhealth), 0x004EF450);
-DefFunc(void, ONrCharacter_NewAnimationHook, ONICALL, (Character *ioCharacter, ActiveCharacter *ioActiveCharacter), 0x004E97A0);
-DefFunc(void, ONrCharacter_SetAnimationExternal, ONICALL, (Character *ioCharacter, short state, void* animation, int interpolation), 0x004EB340);
-DefFunc(void, ONrCharacter_SetHitPoints, ONICALL, (Character *ioCharacter, uint32_t inHitPoints), 0x004EB220);
-DefFunc(void, ONrCharacter_SetCharacterClass, ONICALL, (Character* Char, ONCC* Class), 0x004D7C30);
-DefFunc(void, ONrCorpse_Create, ONICALL, (Character* Character), 0x004EF340);
-
-
-// Print message to console
-DefFunc(void, COrTextArea_Print, ONICALL, (void* area, uint32_t priority, uint32_t textshade, uint32_t textshadowshade, const char* text, uint32_t unk_alwaws_0, uint32_t fadetime), 0x00431340);
-DefFunc(int16_t, COrTextArea_Resize, ONICALL, (void* inTextArea, UUtRect* inBounds, int16_t inNumTextEntries), 0x00431460);
-
-// Original cheat function
-DefFunc(uint8_t, ONrCheater, ONICALL, (uint32_t cheat), 0x004f5c30);
-
-DefFunc(int16_t, ONrMechanics_Register, ONICALL, (uint32_t inObjectType, uint32_t inObjectTypeIndex, char* inGroupName,
-	uint32_t inSizeInMemory, OBJtMethods* inObjectMethods, uint32_t inFlags, void* inMechanicsMethods), 0x00507450);
-DefFunc(int16_t, OBJrTriggerVolume_IntersectsCharacter, ONICALL, (const OBJtObject* inObject, uint32_t inMask, const void* inCharacter), 0x004cc680);
-
-
-// ?
-DefFunc(int, AUrMessageBox, __cdecl, (int Buttons, char *Message, ...), 0x004378c0);
-DefFunc(char*, SSrMessage_Find, ONICALL, (char* message_key), 0x0047F550);
-DefFunc(void, ONiGameState_FindAutoPromptMessage, ONICALL, (char* Note, void* ptr), 0x004FDBE0);
-
-// Register a BSL function with a return type
-DefFunc(uint16_t, SLrScript_Command_Register_ReturnType, ONICALL, (char* name, char* desc, char* argfmt, sl_type type, sl_func callback), 0x00477b20);
-
-// Register a BSL function without a return value
-DefFunc(uint16_t, SLrScript_Command_Register_Void, ONICALL, (char* name, char* desc, char* argfmt, sl_func callback), 0x00477b40);
-
-// Register a global BSL variable
-DefFunc(uint16_t, SLrGlobalVariable_Register_Bool, ONICALL, (char* name, char* desc, UUtBool* data), 0x00477f50);
-DefFunc(uint16_t, SLrGlobalVariable_Register_Int32, ONICALL, (char* name, char* desc, int32_t* data), 0x00477e30);
-DefFunc(uint16_t, SLrGlobalVariable_Register_Float, ONICALL, (char* name, char* desc, float* data), 0x00477ec0);
-DefFunc(uint16_t, SLrGlobalVariable_Register_String, ONICALL, (char* name, char* desc, char* data), 0x00477fe0);
-
-// Print message to console ?
-DefFunc(int, COrMessage_Print, ONICALL, (char* Message, char* Key, void* noidea), 0x004304B0);
-DefFunc(UUtBool, COrCommand_Execute, ONICALL, (char* command), 0x004317D0);
-
-DefFunc(void, COrConsole_StatusLine_Display, ONICALL, (), 0x00431E70);
-
-// Get pointer to specified data instance
-DefFunc(int16_t, TMrInstance_GetDataPtr, ONICALL, (int tag, char* name, void* pointer), 0x004232E0);
-
-// Get name of data instance pointed to
-DefFunc(char*, TMrInstance_GetInstanceName, ONICALL, (void* InstancePointer), 0x00423D90);
-
-DefFunc(short, TMrInstance_GetDataPtr_ByNumber, ONICALL, (int tag, int number, void** out), 0x00423680);
-DefFunc(uint32_t, TMrInstance_GetTagCount, ONICALL, (int tag), 0x004236F0);
-
-// Draw text on the screen
-DefFunc(int16_t, TSrContext_DrawText, ONICALL, (void* TSrContext, char* Text, char alpha, uint32_t usuallyzero, void* pRect), 0x0042DF00);
-DefFunc(int16_t, TSrContext_New, ONICALL, (void* FontInstance, int size, int hthsik1,int hthsik2,int hthsik3, void* TSrContext), 0x0042EA30);
-DefFunc(int16_t, TSrContext_SetFontSize, ONICALL, (void* ioTextContext, uint16_t inSize), 0x0042ED50);
-DefFunc(int16_t, TSrContext_SetShade, ONICALL, (void* ioTextContext, uint32_t inShade), 0x0042EE50);
-
-DefFunc(uint16_t, TRrAnimation_GetDuration, ONICALL, (void* Animation), 0x00428740);
-DefFunc(uint16_t, TRrAnimation_GetTo, ONICALL, (void* Animation), 0x00428730);
-DefFunc(uint16_t, TRrAnimation_GetFrom, ONICALL, (void* Animation), 0x00428720);
-
-DefFunc(uint16_t, iSetCharacterClass, ONICALL, (sl_callinfo* callinfo, uint32_t numargs, sl_arg args[], int* dontuse1, int* dontuse2, sl_arg* ret), 0x004D99D0);
-DefFunc(uint16_t, AI2iScript_Spawn, ONICALL, (sl_callinfo* callinfo, uint32_t numargs, sl_arg args[], int* dontuse1, int* dontuse2, sl_arg* ret), 0x004B4780);
-DefFunc(void, AI2rSmite, ONICALL, (Character *inCharacter, UUtBool inSpareCharacter), 0x0048BDA0);
-//NOT USED: DefFunc(void*, OBJrObjectType_GetObject_ByNumber, ONICALL, (int inObjectType, int inIndex), );
-//NOT USED: DefFunc(int, OBJiObjectGroup_GetNumObjects, ONICALL, (void *inObjectGroup), );
-
-DefFunc(int, OBJrObjectType_EnumerateObjects, ONICALL, (int inObjectType, OBJtEnumCallback_Object inEnumCallback, int inUserData), 0x004D0080);
-//DefFunc(void, OBJrTriggerVolume_IntersectsCharacter, ONICALL, (), 0x004cc680);
-
-DefFunc(void, OBJrDoor_Open, ONICALL, (DoorObject *inObject, Character *inCharacter), 0x004C26C0);
-DefFunc(void, OBJrDoor_ForceOpen, ONICALL, (short id), 0x004C1EE0);
-DefFunc(short, OBJrConsole_OnActivate, ONICALL, (void *inObject, Character *inCharacter), 0x004C0880);
-DefFunc(void*, OBJrConsole_GetByID, ONICALL, (short ID), 0x004C0950);
-
-
-DefFunc(void, ONiDrawWeaponSight, ONICALL, (Character* Char), 0x004E1900);
-DefFunc(void, AI2rDisplayDebuggingInfo, ONICALL, (Character* Char), 0x0048C5F0);
-DefFunc(uint32_t, M3rTextureMap_New, ONICALL, (short width, short height, int type, int allocated, int flags, char* name, void** output), 0x0041EB00);
-DefFunc(void, M3rDraw_BigBitmap, ONICALL, (M3tTextureMap_Big* inBigBitmap, const M3tPointScreen *inDestPoint, UUtUns16 inWidth, UUtUns16 inHeight, UUtUns32 inShade, UUtUns16 inAlpha), 0x0041f6e0);
-DefFunc(void, M3rDraw_Bitmap, ONICALL, (void* inBitmap, const M3tPointScreen* inDestPoint, UUtUns16 inWidth, UUtUns16 inHeight, UUtUns32 inShade, UUtUns16 inAlpha), 0x0041f4a0);
-
-DefFunc(void, M3rGeom_Line_Light, ONICALL, (const M3tPoint3D *point1, const M3tPoint3D *point2, uint32_t shade), 0x0041f440);
-/*
-DefFunc(void, M3rGeom_Line_Light, ONICALL, (), 0x0041f440);
-DefFunc(void, M3rMatrixStack_Push, ONICALL, (), 0x0041baa0);
-DefFunc(void, M3rMatrixStack_Get, ONICALL, (), 0x0041bb20);
-DefFunc(void, M3rMatrixStack_Pop, ONICALL, (), 0x0041bb30);
-DefFunc(void, M3rMatrixStack_Identity, ONICALL, (), 0x0041bba0);
-DefFunc(void, M3rMatrixStack_Rotate, ONICALL, (), 0x0041bbe0);
-DefFunc(void, M3rMatrixStack_UniformScale, ONICALL, (), 0x0041bc20);
-DefFunc(void, M3rMatrixStack_Translate, ONICALL, (), 0x0041bc40);
-DefFunc(void, M3rMatrixStack_Multiply, ONICALL, (), 0x0041bc70);
-DefFunc(void, M3rGeom_State_Commit, ONICALL, (), 0x0041e870);
-
-DefFunc(void, MUrPoint_Distance, ONICALL, (), 0x00433270);
-*/
-
-// Make a dialog element (in)visible and change its position
-DefFunc(void, WMrWindow_SetVisible, ONICALL, (WMtWindow* window, int visibility), 0x00475a10);
-DefFunc(void, WMrWindow_SetLocation, ONICALL, (WMtWindow* window, int x, int y), 0x004756d0);
-
-// Plays movie using Bink blitting method (ie., non-OpenGL blitting).
-DefFunc(void, ONrMovie_Play, ONICALL, (const char* movie, int unknown), 0x004d5580);
-
-// Sets minimum and maximum values for a slider control.
-DefFunc(void, WMrSlider_SetRange, ONICALL, (WMtWindow* window, int min_value, int max_value), 0x00472650);
-
-// Enables or disables window.
-DefFunc(void, WMrWindow_SetEnabled, ONICALL, (WMtWindow* window, UUtBool enabled), 0x00475580);
-
-// Sets gamma to specified factor (0.0 .. 1.0).
-DefFunc(void, M3rSetGamma, ONICALL, (float factor), 0x00407a60);
-
-// Resets gl_api pointers, unloads OPENGL32.DLL.
-DefFunc(void, gl_unload_library, ONICALL, (void), 0x0040ac40);
-
-// Notifies platform-specific local input implementation about internal (ie.,
-// real) input mode change.
-DefFunc(void, LIrPlatform_Mode_Set, ONICALL, (unsigned int active_mode), 0x00402cf0);
-
-// Terminates platform-specific local-input.
-DefFunc(void, LIrPlatform_Terminate, ONICALL, (void), 0x00403620);
-
-#undef DefFunc
-
-#endif
Index: Daodan/src/guitest.c
===================================================================
--- Daodan/src/guitest.c	(revision 990)
+++ Daodan/src/guitest.c	(revision 992)
@@ -3,5 +3,5 @@
 LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
 
-guitest(HMODULE hInstance, int nCmdShow)
+void guitest(HMODULE hInstance, int nCmdShow)
 {
 	MSG  msg;    
@@ -31,6 +31,4 @@
 		DispatchMessage(&msg);
 	}
-
-	return (int) msg.wParam;
 }
 
Index: Daodan/src/patches/Patches.c
===================================================================
--- Daodan/src/patches/Patches.c	(revision 990)
+++ Daodan/src/patches/Patches.c	(revision 992)
@@ -10,8 +10,6 @@
 #include "../Daodan_Utility.h"
 #include "../Daodan_Win32.h"
-#include "../flatline/Flatline_BSL.h"
-#include "../flatline/Flatline_Hooks.h"
-#include "../Oni.h"
-#include "objt.h"
+
+#include "../Oni/Oni.h"
 
 typedef int (__cdecl *CHINESEPROC)(DWORD ThreadId); 
@@ -19,5 +17,5 @@
 // Hooked WMrSlider_SetRange() in ONiOGU_Options_InitDialog. Disables a gamma
 // slider in windowed mode.
-static void ONICALL DD_ONiOGU_GammaSlider_SetRange(WMtWindow* window, int min_value, int max_value)
+static void ONICALL DD_ONiOGU_GammaSlider_SetRange(void* window, int min_value, int max_value)
 {
 	WMrWindow_SetEnabled(window, M3gResolutionSwitch && opt_gamma);
@@ -65,5 +63,5 @@
 
 
-void ONICALL DDrShowResumeButton(WMtWindow* window, int visibility)
+void ONICALL DDrShowResumeButton(void* window, int visibility)
 {
 	if (visibility)
@@ -74,5 +72,5 @@
 
 /* Options always visible patch */
-void ONICALL DDrShowOptionsButton(WMtWindow* window, int visibility)
+void ONICALL DDrShowOptionsButton(void* window, int visibility)
 {
 	WMrWindow_SetVisible(window, 1);
@@ -83,6 +81,4 @@
 	if (opt_usedaodanbsl)
 		SLrDaodan_Initialize();
-	if (patch_flatline)
-		SLrFlatline_Initialize();
 }
 
@@ -354,20 +350,4 @@
 	// Replace start of OniParseCommandLine with XOR eax,eax; RET
 	DDrPatch_Int32 ((int*)(OniExe + 0x000d3570), 0x00c3c033);
-}
-
-// Enable flatline multiplayer code
-void DD_Patch_Flatline()
-{
-	DDrPatch_MakeCall((void*)(OniExe + 0x000E17F6), FLrHook_Lasers );
-	
-	//Flatline related stuff
-	DDrPatch_MakeCall((void*)(OniExe + 0x000FBCEA), DDrText_Hook);
-	
-	DDrPatch_Int32((int*)(OniExe + 0x000B24D2), (unsigned int)FLrSpawnHack);
-
-	DDrPatch_NOOP((char*)(OniExe + 0x000C26CB), 6);
-
-	DDrPatch_MakeCall((void*)(OniExe + 0x000C26CB), FLrHook_DoorOpen); 
-	DDrPatch_MakeCall((void*)(OniExe + 0x000EE3CF), FLrHook_ConsoleActivate);
 }
 
@@ -737,12 +717,5 @@
 	DD_Patch_PrintWarning();
 
-
 	DD_Patch_ShowNames();
-/*
-	DD_Patch_ShowTriggerVolumes();
-	DD_Patch_ShowFlags();
-*/
-	if (patch_flatline)
-		DD_Patch_Flatline();
 
 	return true;
Index: Daodan/src/patches/objt.h
===================================================================
--- Daodan/src/patches/objt.h	(revision 990)
+++ 	(revision )
@@ -1,111 +1,0 @@
-#ifndef _OBJT_H_
-#define _OBJT_H_
-
-#define M3cNumBoundingPoints 8// Do not change without changing references below
-#define M3cNumBoundingFaces 6// Do not change without changing references below
-
-typedef struct M3tPoint3D
-{
-	float x;
-	float y; 
-	float z;
-} M3tPoint3D;
-
-typedef struct M3tQuad
-{
-	uint32_t indices[4];
-} M3tQuad;
-
-typedef struct M3tPlaneEquation
-{
-	float a;
-	float b;
-	float c;
-	float d;
-} M3tPlaneEquation;
-
-typedef M3tPoint3D M3tVector3D;
-
-typedef struct M3tBoundingVolume
-{
-	M3tPoint3D worldPoints[8];// Must match M3cNumBoundingPoints above
-	M3tQuad faces[6];// Must match M3cNumBoundingFaces above
-	M3tVector3D normals[6];// Must match M3cNumBoundingFaces above- starting normals
-
-	M3tPlaneEquation curPlanes[6];// Must match M3cNumBoundingFaces above- current plane equs
-	uint16_t curProjections[6]; // Must match M3cNumBoundingFaces above
-} M3tBoundingVolume;
-
-typedef struct M3tBoundingSphere
-{
-	M3tPoint3D center;
-	float radius;
-} M3tBoundingSphere;
-
-typedef uint32_t OBJtObjectType;
-
-typedef struct OBJtObject
-{
-	OBJtObjectType object_type;
-	uint32_t object_id;
-	uint32_t flags;
-	M3tPoint3D position;
-	M3tPoint3D rotation;
-	OBJtMethods* methods;
-	void* mechanics_class; //ONtMechanicsClass* mechanics_class;
-	uint32_t object_data[0];
-} OBJtObject;
-
-#define OBJcMaxNameLength 63
-#define OBJcMaxNoteChars 127
-#define SLcScript_MaxNameLength (32)
-
-typedef struct OBJtOSD_TriggerVolume
-{
-	char name[OBJcMaxNameLength];
-	char entry_script[SLcScript_MaxNameLength];
-	char inside_script[SLcScript_MaxNameLength];
-	char exit_script[SLcScript_MaxNameLength];
-
-	// TODO: +1 in orig, why do we have to shift here?
-	char note[OBJcMaxNoteChars + 2];
-
-	M3tPoint3D scale;
-	int32_t id;
-	int32_t parent_id;
-
-	M3tBoundingVolume volume;
-	M3tBoundingSphere sphere;// not written to disk
-	uint32_t team_mask;
-
-	uint32_t authored_flags;
-	uint32_t in_game_flags;// not written to disk
-	char cur_entry_script[SLcScript_MaxNameLength];// not written to disk
-	char cur_inside_script[SLcScript_MaxNameLength];// not written to disk
-	char cur_exit_script[SLcScript_MaxNameLength];// not written to disk
-} OBJtOSD_TriggerVolume;
-
-typedef struct OBJtOSD_All
-{
-	union
-	{
-		//OBJtOSD_Combat combat_osd;
-		//OBJtOSD_Character character_osd;
-		//OBJtOSD_PatrolPath patrolpath_osd;
-		//OBJtOSD_Flag flag_osd;
-		//OBJtOSD_Furniture furniture_osd;
-		//OBJtOSD_Particle particle_osd;
-		//OBJtOSD_PowerUp powerup_osd;
-		//OBJtOSD_Sound sound_osd;
-		OBJtOSD_TriggerVolume trigger_volume_osd;
-		//OBJtOSD_Weapon weapon_osd;
-		//OBJtOSD_Trigger trigger_osd;
-		//OBJtOSD_Turret turret_osd;
-		//OBJtOSD_Console console_osd;
-		//OBJtOSD_Door door_osd;
-		//OBJtOSD_Melee melee_osd;
-		//OBJtOSD_Neutral neutral_osd;
-	} osd;
-} OBJtOSD_All;
-
-#endif
