200 lines
5.1 KiB
C
200 lines
5.1 KiB
C
/*==========================================================================
|
|
*
|
|
* 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
|