/*========================================================================== * * Copyright (c) 1995 - 1997 Microsoft Corporation. All Rights Reserved. * Copyright (C) 1994-1995 ATI Technologies Inc. All Rights Reserved. * * File: gameproc.h * Content: include file for game processing info * ***************************************************************************/ #ifndef __GAMEPROC_INCLUDED__ #define __GAMEPROC_INCLUDED__ typedef enum enum_POSITION { P_ABSOLUTE, P_RELATIVE, P_AUTOMATIC } POSITION; typedef enum enum_SWITCHING { HOR, VER, TIMESWITCH } SWITCHING; typedef enum enum_DIRECTION { SAME, RIGHT, LEFT } DIRECTION; typedef enum enum_ACTION { NONE, STILL, WALK, RUN, JUMP, THROW, CROUCH, STOP, STUNNED, JUMPTHROW, CROUCHWALK, BLURR, STRIKE, MISS, CHEW, } ACTION; typedef SHORT HPOSLIST; typedef BOOL HSURFACELIST; typedef struct struct_HPLANE { GFX_HBM *hBM; BOOL *surface; LONG x; LONG y; USHORT width; USHORT height; LONG xv; LONG xslide; LONG xincrem; USHORT denom; } HPLANE, FAR *LPHPLANE; typedef struct struct_HSPRITE_BM { GFX_HBM hBM; ACTION action; DIRECTION direction; SHORT x; SHORT y; USHORT width; USHORT height; } HSPRITE_BM; typedef struct struct_HSPRITE { HSPRITE_BM *hSBM; USHORT bitmapCount; ACTION currentAction; DIRECTION currentDirection; USHORT currentBitmap; BOOL active; LONG x; LONG y; USHORT width; USHORT height; LONG xv; LONG yv; LONG xa; LONG ya; SHORT xmax; SHORT ymax; LONG absSwitch; LONG relSwitch; SWITCHING switchType; BOOL switchForward; BOOL switchDone; } HSPRITE, FAR *LPHSPRITE, FAR * FAR *LPLPHSPRITE; typedef struct struct_HBITMAPLIST { GFX_HBM *hBM; } HBITMAPLIST, FAR *LPHBITMAPLIST; #include "tile.h" #include "plane.h" #include "sprite.h" #define C_UNIT (LONG) 65536 #define C_TILE_W 32 #define C_TILE_H 32 #define C_SCREEN_W 640 #define C_SCREEN_H 480 #define C_FORE_W 80 #define C_FORE_H 15 #define C_MID_W 40 #define C_MID_H 15 #define C_BACK_W 25 #define C_BACK_H 15 #define C_WORLD_W 20 #define C_WORLD_H 15 #define C_BACK_DENOM 12 #define C_MID_DENOM 3 #define C_FORE_DENOM 1 #define C_TILETOTAL 123 // TILE BITMAP TOTAL #define C_FBT 112 // FOX BITMAP TOTAL #define C_BBT 26 // BEAR BITMAP TOTAL #define C_FOXSTILL 1 // NUMBER OF BITMAPS #define C_FOXWALK 12 #define C_FOXRUN 16 #define C_FOXJUMP 4 #define C_FOXTHROW 2 #define C_FOXCROUCH 1 #define C_FOXSTOP 1 #define C_FOXSTUNNED 1 #define C_FOXJUMPTHROW 2 #define C_FOXCROUCHWALK 12 #define C_FOXBLURR 4 #define C_BEARMISS 2 #define C_BEARWALK 12 #define C_BEARSTRIKE 12 #define C_FOX_XMOVE (LONG) C_UNIT / 4 #define C_BOUNDINCREM (LONG) 5 * C_UNIT #define C_BOUNDDIF (LONG) 240 * C_UNIT #define C_FOX_STARTX (LONG) 150 * C_UNIT #define C_FOX_STARTY (LONG) 318 * C_UNIT #define C_FOX_WALKMOVE (LONG) 6 * C_UNIT #define C_FOX_RUNMOVE (LONG) 18 * C_UNIT #define C_FOX_JUMPMOVE (LONG) 9 * C_UNIT #define C_FOX_WALKSWITCH (LONG) 6 * C_UNIT #define C_FOX_JUMPSWITCH (LONG) 9 * C_UNIT #define C_FOX_THROWSWITCH (LONG) 15 * C_UNIT #define C_FOX_RUNSWITCH (LONG) 18 * C_UNIT #define C_FOX_BLURRSWITCH (LONG) 18 * C_UNIT #define C_FOX_WALKTORUN (LONG) 4 * C_UNIT #define C_FOX_RUNTOBLURR (LONG) 14 * C_UNIT #define C_BEAR_STARTX (LONG) 600 * C_UNIT #define C_BEAR_STARTY (LONG) 329 * C_UNIT #define C_BEAR_WALKMOVE (LONG) 1 * C_UNIT #define C_BEAR_WALKSWITCH (LONG) 6 * C_UNIT #define C_BEAR_STRIKESWITCH (LONG) 8 * C_UNIT #define C_BEAR_MISSSWITCH (LONG) 10 * C_UNIT extern void ErrorMessage( LPSTR ); extern BOOL InitBuffer( GFX_HBM* ); extern void DestroyBuffer( GFX_HBM ); extern HBITMAPLIST *LoadBitmaps( void ); extern void InitTiles( HBITMAPLIST**, HBITMAPLIST*, USHORT ); extern void InitPlane( HPLANE**, HPOSLIST**, CHAR*, USHORT, USHORT, USHORT ); extern void InitSurface( HSURFACELIST**, CHAR*, USHORT, USHORT ); extern void InitFox( HSPRITE**, HBITMAPLIST* ); extern void InitBear( HSPRITE**, HBITMAPLIST* ); extern void InitApple( HSPRITE**, HBITMAPLIST* ); extern BOOL PreInitializeGame( void ); extern BOOL InitializeGame( void ); extern BOOL GetInput( void ); extern BOOL ProcessInput ( SHORT input ); extern int NewGameFrame( void ); extern void DestroyGame( void ); #endif