summaryrefslogtreecommitdiff
path: root/3dc/win95/platform.h
diff options
context:
space:
mode:
Diffstat (limited to '3dc/win95/platform.h')
-rw-r--r--3dc/win95/platform.h939
1 files changed, 0 insertions, 939 deletions
diff --git a/3dc/win95/platform.h b/3dc/win95/platform.h
deleted file mode 100644
index 7cab03d..0000000
--- a/3dc/win95/platform.h
+++ /dev/null
@@ -1,939 +0,0 @@
-#ifndef PLATFORM_INCLUDED
-
-/*
-
- Platform Specific Header Include
-
-*/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- Minimise header files to
- speed compiles...
-*/
-
-#define WIN32_LEAN_AND_MEAN
-
-/*
- Standard windows functionality
-*/
-
-#include <windows.h>
-#include <windowsx.h>
-#include <winuser.h>
-#include <mmsystem.h>
-#include <stdlib.h>
-#include <stdarg.h>
-#include <stdio.h>
-
-/*
- DirectX functionality
-*/
-
-#include "ddraw.h"
-#include "d3d.h"
-#include "dsound.h"
-#include "dplay.h"
-#include "dinput.h"
-#include "dplobby.h"
-//#include "fastfile.h"
-
-
-#define platform_pc Yes
-
-#define Saturn No
-
-#define Hardware2dTextureClipping No
-
-
-/*
-
- Types
-
-*/
-
-typedef RECT RECT_AVP;
-
-
-/* Watcom C 64-bit values */
-
-typedef struct LONGLONGCH {
-
- unsigned int lo32;
- int hi32;
-
-} LONGLONGCH;
-
-
-/*
-
- Sine and Cosine
-
-*/
-
-#define GetSin(a) sine[a]
-#define GetCos(a) cosine[a]
-
-/*
- Available processor types
-*/
-
-typedef enum {
-
- PType_OffBottomOfScale,
- PType_486,
- PType_Pentium,
- PType_P6,
- PType_PentiumMMX,
- PType_Klamath,
- PType_OffTopOfScale
-
-} PROCESSORTYPES;
-
-
-/*
-
- VGA Palette Entry
-
-*/
-
-typedef struct vgapaletteentry {
-
- unsigned char vga_r;
- unsigned char vga_g;
- unsigned char vga_b;
-
-} VGAPALETTEENTRY;
-
-
-extern void LoadAndChangeToPalette(char*);
-
-/*
- Video mode decsription (to be filled
- in by DirectDraw callback).
-*/
-
-typedef struct videomodeinfo {
-
- int Width; /* in pixels */
- int Height; /* in pixels */
- int ColourDepth; /* in bits per pixel */
-
-} VIDEOMODEINFO;
-
-/*
- Maximum number of display modes
- that could be detected on unknown
- hardware.
-*/
-
-#define MaxAvailableVideoModes 100
-
-/*
- #defines, structures etc for
- textprint system
-*/
-
-#define MaxMsgChars 100
-#define MaxMessages 20
-
-/* Font description */
-
-#define CharWidth 8 /* In PIXELS, not bytes */
-#define CharHeight 10 /* In PIXELS, not bytes */
-#define CharVertSep (CharHeight + 0) /* In PIXELS, not bytes */
-
-#define FontStart 33 // random squiggle in standard ASCII
-#define FontEnd 127 // different random squiggle in standard ASCII
-
-#define FontInvisValue 0x00 // value to be colour keyed out of font blit
-
-typedef struct printqueueitem {
-
- char text[MaxMsgChars];
- int text_length;
- int x;
- int y;
-
-} PRINTQUEUEITEM;
-
-
-
-/* KJL 12:30:05 9/9/97 - new keyboard, mouse etc. enum */
-enum KEY_ID
-{
- KEY_ESCAPE,
-
- KEY_0,
- KEY_1,
- KEY_2,
- KEY_3,
- KEY_4,
- KEY_5,
- KEY_6,
- KEY_7,
- KEY_8,
- KEY_9,
-
- KEY_A,
- KEY_B,
- KEY_C,
- KEY_D,
- KEY_E,
- KEY_F,
- KEY_G,
- KEY_H,
- KEY_I,
- KEY_J,
- KEY_K,
- KEY_L,
- KEY_M,
- KEY_N,
- KEY_O,
- KEY_P,
- KEY_Q,
- KEY_R,
- KEY_S,
- KEY_T,
- KEY_U,
- KEY_V,
- KEY_W,
- KEY_X,
- KEY_Y,
- KEY_Z,
-
- KEY_LEFT,
- KEY_RIGHT,
- KEY_UP,
- KEY_DOWN,
- KEY_CR,
- KEY_TAB,
- KEY_INS,
- KEY_DEL,
- KEY_END,
- KEY_HOME,
- KEY_PAGEUP,
- KEY_PAGEDOWN,
- KEY_BACKSPACE,
- KEY_COMMA,
- KEY_FSTOP,
- KEY_SPACE,
-
- KEY_LEFTSHIFT,
- KEY_RIGHTSHIFT,
- KEY_LEFTALT,
- KEY_RIGHTALT,
- KEY_LEFTCTRL,
- KEY_RIGHTCTRL,
-
- KEY_CAPS,
- KEY_NUMLOCK,
- KEY_SCROLLOK,
-
- KEY_NUMPAD0,
- KEY_NUMPAD1,
- KEY_NUMPAD2,
- KEY_NUMPAD3,
- KEY_NUMPAD4,
- KEY_NUMPAD5,
- KEY_NUMPAD6,
- KEY_NUMPAD7,
- KEY_NUMPAD8,
- KEY_NUMPAD9,
- KEY_NUMPADSUB,
- KEY_NUMPADADD,
- KEY_NUMPADDEL,
- KEY_NUMPADENTER,
- KEY_NUMPADDIVIDE,
- KEY_NUMPADMULTIPLY,
-
- KEY_LBRACKET,
- KEY_RBRACKET,
- KEY_SEMICOLON,
- KEY_APOSTROPHE,
- KEY_GRAVE,
- KEY_BACKSLASH,
- KEY_SLASH,
- KEY_CAPITAL,
- KEY_MINUS,
- KEY_EQUALS,
- KEY_LWIN,
- KEY_RWIN,
- KEY_APPS,
-
-
- KEY_F1,
- KEY_F2,
- KEY_F3,
- KEY_F4,
- KEY_F5,
- KEY_F6,
- KEY_F7,
- KEY_F8,
- KEY_F9,
- KEY_F10,
- KEY_F11,
- KEY_F12,
-
- KEY_JOYSTICK_BUTTON_1,
- KEY_JOYSTICK_BUTTON_2,
- KEY_JOYSTICK_BUTTON_3,
- KEY_JOYSTICK_BUTTON_4,
- KEY_JOYSTICK_BUTTON_5,
- KEY_JOYSTICK_BUTTON_6,
- KEY_JOYSTICK_BUTTON_7,
- KEY_JOYSTICK_BUTTON_8,
- KEY_JOYSTICK_BUTTON_9,
- KEY_JOYSTICK_BUTTON_10,
- KEY_JOYSTICK_BUTTON_11,
- KEY_JOYSTICK_BUTTON_12,
- KEY_JOYSTICK_BUTTON_13,
- KEY_JOYSTICK_BUTTON_14,
- KEY_JOYSTICK_BUTTON_15,
- KEY_JOYSTICK_BUTTON_16,
-
- KEY_LMOUSE,
- KEY_MMOUSE,
- KEY_RMOUSE,
-
- KEY_MOUSEBUTTON4,
- KEY_MOUSEWHEELUP,
- KEY_MOUSEWHEELDOWN,
-
- // Dutch
- KEY_ORDINAL,
- KEY_LESSTHAN,
- KEY_PLUS,
-
- // French
- KEY_RIGHTBRACKET,
- KEY_ASTERISK,
- KEY_DOLLAR,
- KEY_U_GRAVE,
- KEY_EXCLAMATION,
- KEY_COLON,
-
- // German
- KEY_BETA,
- KEY_A_UMLAUT,
- KEY_O_UMLAUT,
- KEY_U_UMLAUT,
- KEY_HASH,
-
- // Spanish
- KEY_UPSIDEDOWNEXCLAMATION,
- KEY_C_CEDILLA,
- KEY_N_TILDE,
-
- // accents & diacritics
- KEY_DIACRITIC_GRAVE,
- KEY_DIACRITIC_ACUTE,
- KEY_DIACRITIC_CARET,
- KEY_DIACRITIC_UMLAUT,
-
-
- KEY_VOID=255, // used to indicate a blank spot in the key config
- MAX_NUMBER_OF_INPUT_KEYS,
-
-};
-/*
- Mouse handler modes (velocity mode is for
- interfacing to input functions that need
- to read the mouse velocity, e.g. WeRequest
- functions, while poistion mode is for menus
- and similar problems).
-
- The initial mode is defined as a compiled in
- global in game.c
-*/
-
-typedef enum {
-
- MouseVelocityMode,
- MousePositionMode
-
-} MOUSEMODES;
-
-
-/* Defines for the purpose of familiarity of name only */
-
-#define LeftButton 0x0001
-#define RightButton 0x0002
-#define MiddleButton 0x0004
-
-
-
-
-/*
- Video Modes
-*/
-
-typedef enum {
-
- VideoMode_DX_320x200x8,
- VideoMode_DX_320x200x8T,
- VideoMode_DX_320x200x15,
- VideoMode_DX_320x240x8,
-
- VideoMode_DX_640x480x8,
- VideoMode_DX_640x480x8T,
- VideoMode_DX_640x480x15,
- VideoMode_DX_640x480x24,
-
- VideoMode_DX_800x600x8,
- VideoMode_DX_800x600x8T,
- VideoMode_DX_800x600x15,
- VideoMode_DX_800x600x24,
-
- VideoMode_DX_1024x768x8,
- VideoMode_DX_1024x768x8T,
- VideoMode_DX_1024x768x15,
- VideoMode_DX_1024x768x24,
-
- VideoMode_DX_1280x1024x8,
- VideoMode_DX_1280x1024x8T,
- VideoMode_DX_1280x1024x15,
- VideoMode_DX_1280x1024x24,
-
- VideoMode_DX_1600x1200x8,
- VideoMode_DX_1600x1200x8T,
- VideoMode_DX_1600x1200x15,
- VideoMode_DX_1600x1200x24,
-
- MaxVideoModes
-
-} VIDEOMODES;
-
-
-#define MaxScreenWidth 1600 /* Don't get this wrong! */
-
-
-/*
- Max no of palettes -- at present there is NO
- code for palette switching and ALL palette
- calls within the DirectDraw interface system
- run on palette 0
-*/
-
-#define MaxPalettes 4
-
-/*
-
- Video Mode Types
-
-*/
-
-typedef enum {
-
- VideoModeType_8,
- VideoModeType_15,
- VideoModeType_24,
- VideoModeType_8T
-
-} VIDEOMODETYPES;
-
-
-/*
- Windows modes
-*/
-
-typedef enum {
-
- WindowModeFullScreen,
- WindowModeSubWindow
-
-} WINDOWMODES;
-
-typedef struct WinScaleXY {
-
- float x;
- float y;
-
-} WINSCALEXY;
-
-
-/*
- Dubious hack for dubious
- aspects of DirectDraw initialisation
-*/
-
-typedef enum {
-
- /* Default */
- NoRestartRequired,
- /*
- Characteristic of driver which
- will not support changing to a different
- bit depth without rebooting
- */
- RestartDisplayModeNotAvailable,
- /*
- Characteristic of ModeX emulation leading
- to no video memory being available because
- of the need to cooperate with a large existing
- GDI surface which cannot be reduced without a
- reboot
- */
- RestartOutOfVidMemForPrimary
-
-} VIDEORESTARTMODES;
-
-/*
- Load modes for putting an image
- in a DirectDraw surface --- either
- do or do not deallocate the
- system memory image, but always
- keep the DirectDraw one
-*/
-
-typedef enum {
-
- LoadModeDirectDrawOnly,
- LoadModeFull
-
-} IMAGELOADMODES;
-
-
-/*
- Direct3D driver modes
-*/
-
-typedef enum {
-
- D3DSoftwareRGBDriver,
- D3DSoftwareRampDriver,
- D3DHardwareRGBDriver
-
-} D3DMODES;
-
-/*
- Software scan draw request modes
-*/
-
-typedef enum {
-
- RequestScanDrawDirectDraw,
- RequestScanDrawSoftwareRGB,
- RequestScanDrawRamp,
- RequestScanDrawDefault
-
-} SOFTWARESCANDRAWREQUESTMODES;
-
-/*
- Rasterisation request modes
-*/
-
-typedef enum {
-
- RequestSoftwareRasterisation,
- RequestDefaultRasterisation
-
-} RASTERREQUESTMODES;
-
-
-/*
- Actual scan draw mode
-*/
-
-typedef enum {
-
- ScanDrawDirectDraw,
- ScanDrawD3DRamp,
- ScanDrawD3DSoftwareRGB,
- ScanDrawD3DHardwareRGB
-
-} SCANDRAWMODES;
-
-
-/*
- Z buffering request modes
-*/
-
-typedef enum {
-
- RequestZBufferNever,
- RequestZBufferAlways,
- RequestZBufferDefault
-
-} ZBUFFERREQUESTMODES;
-
-/*
- Z buffering modes
-*/
-
-typedef enum {
-
- ZBufferOn,
- ZBufferWriteOnly,
- ZBufferOff
-
-} ZBUFFERMODES;
-
-/*
- Request modes for DirectX
- memory usage
-*/
-
-typedef enum {
-
- RequestSystemMemoryAlways,
- RequestDefaultMemoryAllocation
-
-} DXMEMORYREQUESTMODES;
-
-
-/*
- DirectX memory usage modes
-*/
-
-typedef enum {
-
- SystemMemoryPreferred,
- VideoMemoryPreferred
-
-} DXMEMORYMODES;
-
-/*
-
- .BMP File header
-
-*/
-
-/*
- Pack the header to 1 byte alignment so that the
- loader works (John's code, still under test).
-*/
-
-#ifdef __WATCOMC__
-#pragma pack (1)
-#endif
-
-typedef struct bmpheader {
-
- unsigned short BMP_ID; /* Contains 'BM' */
- int BMP_Size;
-
- short BMP_Null1;
- short BMP_Null2;
-
- int BMP_Image; /* Byte offset of image start relative to offset 14 */
- int BMP_HeadSize; /* Size of header (40 for Windows, 12 for OS/2) */
- int BMP_Width; /* Width of image in pixels */
- int BMP_Height; /* Height of image in pixels */
-
- short BMP_Planes; /* Number of image planes (must be 1) */
- short BMP_Bits; /* Number of bits per pixel (1,4,8 or 24) */
-
- int BMP_Comp; /* Compression type */
- int BMP_CSize; /* Size in bytes of compressed image */
- int BMP_Hres; /* Horizontal resolution in pixels/meter */
- int BMP_Vres; /* Vertical resolution in pixels/meter */
- int BMP_Colours; /* Number of colours used, below (N) */
- int BMP_ImpCols; /* Number of important colours */
-
-} BMPHEADER;
-
-#ifdef __WATCOMC__
-#pragma pack (4)
-#endif
-
-/*
- Types of texture files that can be
- requested from the main D3D texture
- loader.
-*/
-
-typedef enum {
-
- TextureTypePGM,
- TextureTypePPM
-
-} TEXTUREFILETYPE;
-
-/*
- Windows initialisation modes.
- See InitialiseWindowsSystem
- in the default win_proj.cpp
- for a full description.
-*/
-
-typedef enum {
-
- WinInitFull,
- WinInitChange
-
-} WININITMODES;
-
-/*
-
- Triangle Array Limits etc.
-
-*/
-
-#define maxarrtriangles 7 /* Could be 6 if all shape data in triangles */
-#define trianglesize (1 + 1 + 1 + 1 + (6 * 3) + 1) /* largest, could be 5*3 if no 3d texturing */
-#define pta_max 9 /* Could be 8 if all shape data in triangles */
-
-/* header + xy + terminator */
-#define item_polygon_trianglesize (1 + 1 + 1 + 1 + (2 * 3) + 1)
-/* header + xyi + terminator */
-#define item_gouraudpolygon_trianglesize (1 + 1 + 1 + 1 + (3 * 3) + 1)
-/* header + xyuv + terminator */
-#define item_2dtexturedpolygon_trianglesize (1 + 1 + 1 + 1 + (4 * 3) + 1)
-/* header + xyuvi + terminator */
-#define item_gouraud2dtexturedpolygon_trianglesize (1 + 1 + 1 + 1 + (5 * 3) + 1)
-/* header + xyuvw + terminator */
-#define item_3dtexturedpolygon_trianglesize (1 + 1 + 1 + 1 + (5 * 3) + 1)
-/* header + xyuvwi + terminator */
-#define item_gouraud3dtexturedpolygon_trianglesize (1 + 1 + 1 + 1 + (6 * 3) + 1)
-
-/*
-
- Vertex sizes
-
- For copying vertices from item list polygons to triangles
-
- e.g.
-
- Vertex 2 (x component) of the quad would be (for Item_Polygon)
-
- q[2 * i_poly_vsize + i_vstart + ix]
-
- WARNING: If the item format changes these MUST be updated
-
-*/
-
-#define vstart 4
-
-#define poly_vsize 2
-#define gpoly_vsize 3
-#define t2poly_vsize 4
-#define gt2poly_vsize 5
-#define t3poly_vsize 5
-#define gt3poly_vsize 6
-
-
-
-/*
-
- Triangle Array Structure
-
-*/
-
-typedef struct trianglearray {
-
- int TA_NumTriangles;
- int *TA_ItemPtr;
- int *TA_TriangleArray[maxarrtriangles];
-
-} TRIANGLEARRAY;
-
-/*
- Function prototypes
-*/
-
-/*
- Windows functionality. Note current
- DirectInput functions are also here since
- they are really part of the Win32 multimedia
- library.
-*/
-
-long GetWindowsTickCount(void);
-void CheckForWindowsMessages(void);
-BOOL ExitWindowsSystem(void);
-BOOL InitialiseWindowsSystem(HANDLE hInstance, int nCmdShow, int WinInitMode);
-void KeyboardHandlerKeyDown(WPARAM wParam);
-void KeyboardHandlerKeyUp(WPARAM wParam);
-void MouseVelocityHandler(UINT message, LPARAM lParam);
-void MousePositionHandler(UINT message, LPARAM lParam);
-int ReadJoystick(void);
-int CheckForJoystick(void);
-BOOL SpawnRasterThread();
-BOOL WaitForRasterThread();
-
-
-/* DirectDraw */
-void finiObjects(void);
-void GenerateDirectDrawSurface(void);
-void LockSurfaceAndGetBufferPointer(void);
-void UnlockSurface(void);
-void finiObjects(void);
-void ColourFillBackBuffer(int FillColour);
-void ColourFillBackBufferQuad(int FillColour, int LeftX,
- int TopY, int RightX, int BotY);
-void FlipBuffers(void);
-void BlitToBackBuffer(void* lpBackground, RECT* destRectPtr, RECT* srcRectPtr);
-void BlitToBackBufferWithoutTearing(void* lpBackground, RECT* destRectPtr, RECT* srcRectPtr);
-void BlitWin95Char(int x, int y, unsigned char toprint);
-void ReleaseDDSurface(void* DDSurface);
-BOOL InitialiseDirectDrawObject(void);
-BOOL ChangeDirectDrawObject(void);
-BOOL CheckForVideoModes(int TestVideoMode);
-void finiObjectsExceptDD(void);
-BOOL TestMemoryAccess(void);
-int ChangePalette (unsigned char* NewPalette);
-int GetAvailableVideoMemory(void);
-void HandleVideoModeRestarts(HINSTANCE hInstance, int nCmdShow);
-void* MakeBackdropSurface(void);
-void ReleaseBackdropSurface(void);
-void LockBackdropSurface(void);
-void UnlockBackdropSurface(void);
-void ComposeBackdropBackBuffer(void);
-int GetSingleColourForPrimary(int Colour);
-
-/*
- DirectX functionality only available in
- C++ under Watcom at present
-*/
-#ifdef __cplusplus
-HRESULT CALLBACK EnumDisplayModesCallback(LPDDSURFACEDESC pddsd, LPVOID Context);
-BOOL FAR PASCAL EnumDDObjectsCallback(GUID FAR* lpGUID, LPSTR lpDriverDesc,
- LPSTR lpDriverName, LPVOID lpContext);
-#if triplebuffer
-/*
- must be WINAPI to support Windows FAR PASCAL
- calling convention. Must be HRESULT to support
- enumeration return value. NOTE THIS FUNCTION
- DOESN'T WORK (DOCS WRONG) AND TRIPLE BUFFERING
- HAS BEEN REMOVED ANYWAY 'COS IT'S USELESS...
-*/
-HRESULT WINAPI InitTripleBuffers(LPDIRECTDRAWSURFACE lpdd,
- LPDDSURFACEDESC lpsd, LPVOID lpc);
-#endif
-#endif
-
-/* Direct 3D Immediate Mode Rasterisation Module */
-BOOL InitialiseDirect3DImmediateMode(void);
-BOOL LockExecuteBuffer(void);
-BOOL UnlockExecuteBufferAndPrepareForUse(void);
-BOOL BeginD3DScene(void);
-BOOL EndD3DScene(void);
-BOOL ExecuteBuffer(void);
-BOOL RenderD3DScene(void);
-void ReleaseDirect3D(void);
-void WritePolygonToExecuteBuffer(int* itemptr);
-void WriteGouraudPolygonToExecuteBuffer(int* itemptr);
-void Write2dTexturedPolygonToExecuteBuffer(int* itemptr);
-void WriteGouraud2dTexturedPolygonToExecuteBuffer(int* itemptr);
-void Write3dTexturedPolygonToExecuteBuffer(int* itemptr);
-void WriteGouraud3dTexturedPolygonToExecuteBuffer(int* itemptr);
-void WriteBackdrop2dTexturedPolygonToExecuteBuffer(int* itemptr);
-void WriteBackdrop3dTexturedPolygonToExecuteBuffer(int* itemptr);
-void WriteEndCodeToExecuteBuffer(void);
-void ReleaseD3DTexture(void* D3DTexture);
-void ReleaseDirect3DNotDD(void);
-void ReleaseDirect3DNotDDOrImages(void);
-BOOL SetExecuteBufferDefaults(void);
-void SelectD3DDriverAndDrawMode(void);
-#if SUPPORT_MMX
-void SelectMMXOptions(void);
-#endif
-BOOL TestInitD3DObject(void);
-
-#if SupportZBuffering
-BOOL CreateD3DZBuffer(void);
-void FlushD3DZBuffer(void);
-void WriteZBPolygonToExecuteBuffer(int* itemptr);
-void WriteZBGouraudPolygonToExecuteBuffer(int* itemptr);
-void WriteZB2dTexturedPolygonToExecuteBuffer(int* itemptr);
-void WriteZBGouraud2dTexturedPolygonToExecuteBuffer(int* itemptr);
-void WriteZB3dTexturedPolygonToExecuteBuffer(int* itemptr);
-void WriteZBGouraud3dTexturedPolygonToExecuteBuffer(int* itemptr);
-#endif
-
-#ifdef __cplusplus
-HRESULT WINAPI DeviceEnumerator(LPGUID lpGuid,
- LPSTR lpDeviceDescription, LPSTR lpDeviceName,
- LPD3DDEVICEDESC lpHWDesc, LPD3DDEVICEDESC lpHELDesc, LPVOID lpContext);
-HRESULT CALLBACK TextureFormatsEnumerator
- (LPDDSURFACEDESC lpDDSD, LPVOID lpContext);
-#endif
-
-/* KJL 11:28:31 9/9/97 - Direct Input prototypes */
-BOOL InitialiseDirectInput(void);
-void ReleaseDirectInput(void);
-BOOL InitialiseDirectKeyboard();
-void DirectReadKeyboard(void);
-void ReleaseDirectKeyboard(void);
-BOOL InitialiseDirectMouse();
-void DirectReadMouse(void);
-void ReleaseDirectMouse(void);
-
-/*
- Internal
-*/
-#ifdef AVP_DEBUG_VERSION
-int textprint(const char* t, ...);
-#else
-#define textprint(ignore)
-#endif
-
-
-void MakePaletteShades(VGAPALETTEENTRY *vga_palptr, int hue, int pal_shades_per_hue);
-void ConvertToDDPalette(unsigned char* src, unsigned char* dst, int length, int flags);
-int textprintXY(int x, int y, const char* t, ...);
-void LoadSystemFonts(char* fname);
-void DisplayWin95String(int x, int y, unsigned char *buffer);
-void WriteStringToTextBuffer(int x, int y, unsigned char *buffer);
-void FlushTextprintBuffer(void);
-void InitPrintQueue(void);
-void InitJoysticks(void);
-void ReadJoysticks(void);
-int ChangeDisplayModes(HINSTANCE hInst, int nCmd,
- int NewVideoMode, int NewWindowMode,
- int NewZBufferMode, int NewRasterisationMode,
- int NewSoftwareScanDrawMode, int NewDXMemoryMode);
-int DeallocateAllImages(void);
-int MinimizeAllImages(void);
-int RestoreAllImages(void);
-void ConvertDDToInternalPalette(unsigned char* src, unsigned char* dst, int length);
-PROCESSORTYPES ReadProcessorType(void);
-
-/* EXTERNS FOR GLOBALS GO HERE !!!!!! */
-extern DDCAPS direct_draw_caps;
-
-/*
-
- Jake's image functions
-
-*/
-
-void * CopyD3DTexture(struct imageheader *iheader);
-
-#ifdef MaxImageGroups
-
- #if (MaxImageGroups > 1)
-
- void SetCurrentImageGroup(unsigned int group);
- int DeallocateCurrentImages(void);
-
- #endif /* MaxImageGroups > 1 */
-
-#endif /* defined(MaxImageGroups) */
-
-
-/*
- Project callbacks
-*/
-
-void ExitGame(void);
-
-void ProjectSpecificBufferFlipPostProcessing();
-
-void ProjectSpecificItemListPostProcessing();
-
-#if optimiseflip
-void ProcessProjectWhileWaitingToBeFlippable();
-#endif
-
-#ifdef __cplusplus
-};
-#endif
-
-#define PLATFORM_INCLUDED
-
-#endif