home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / msdn_vcb / samples / vc98 / sdk / graphics / directx / foxbear / foxbear.h < prev    next >
C/C++ Source or Header  |  1997-07-14  |  4KB  |  123 lines

  1. /*==========================================================================
  2.  *
  3.  *  Copyright (C) 1995-1997 Microsoft Corporation. All Rights Reserved.
  4.  *  Copyright (C) 1994-1995 ATI Technologies Inc. All Rights Reserved.
  5.  *
  6.  *  File:    foxbear.h
  7.  *  Content:    main include file
  8.  *
  9.  ***************************************************************************/
  10. #ifndef __FOXBEAR_INCLUDED__
  11. #define __FOXBEAR_INCLUDED__
  12.  
  13. #define WIN32_LEAN_AND_MEAN
  14. #include <windows.h>
  15. #include <windowsx.h> 
  16. #include <mmsystem.h>
  17. #include <ddraw.h>
  18. #include <dsound.h>
  19. #include "gfx.h"
  20. #include "fbsound.h"
  21. #include "gameproc.h"
  22. #include "fastfile.h"
  23. #include "dsutil.h"
  24.  
  25. int getint(char**p, int def);
  26.  
  27. #define QUOTE(x) #x
  28. #define QQUOTE(y) QUOTE(y)
  29. #define REMIND(str) __FILE__ "(" QQUOTE(__LINE__) "):" str
  30.  
  31. /*
  32.  * keyboard commands
  33.  */
  34. enum
  35. {
  36.     KEY_STOP = 1,
  37.     KEY_DOWN,
  38.     KEY_LEFT,
  39.     KEY_RIGHT,
  40.     KEY_UP,
  41.     KEY_JUMP,
  42.     KEY_THROW
  43. };
  44.  
  45. /*
  46.  * global data
  47.  */
  48. extern LPDIRECTDRAW        lpDD;
  49. extern LPDIRECTDRAW2    lpDD2;
  50. extern LPDIRECTDRAWSURFACE    lpFrontBuffer;
  51. extern LPDIRECTDRAWSURFACE    lpBackBuffer;
  52. extern LPDIRECTDRAWSURFACE      lpStretchBuffer;
  53. extern LPDIRECTDRAWCLIPPER      lpClipper;
  54. extern DWORD            lastKey;
  55. extern BOOL                     bModeX;         // we are in a modex mode
  56. extern BOOL                     bColorFill;     // device supports color fill
  57. extern BOOL                     bTransDest;     // we should use dest color key
  58. extern BOOL                     bColorFill;     // device supports color fill
  59. extern int                      nBufferCount;   // buffer count
  60. extern int                      CmdLineBufferCount;   // buffer count
  61. extern BOOL                     bStretch;       // stretch
  62. extern BOOL                     bFullscreen;    // run in fullscreen mode
  63. extern BOOL                     bStress;        // just keep running
  64. extern BOOL                     bUseEmulation;  // dont use HW use SW
  65. extern RECT                     GameRect;       // game is here
  66. extern SIZE                     GameSize;       // game is this size
  67. extern SIZE                     GameMode;       // display mode size
  68. extern UINT                     GameBPP;        // the bpp we want
  69. extern DWORD                    dwColorKey;     // the color key
  70. extern HWND                     hWndMain;       // the foxbear window
  71. extern RECT                     rcWindow;       // where the FoxBear window is.
  72. extern BOOL                     bIsActive;      // we are the active app.
  73. extern BOOL                     bPaused;        //
  74. extern BOOL                        bWantSound;     // Set the default action in DSEnable
  75.  
  76. /*
  77.  * list of display modes
  78.  */
  79. struct {int w,
  80.             h,
  81.             bpp; 
  82.         DWORD dwFlags;
  83. } ModeList[100];
  84.  
  85. int NumModes;
  86.  
  87. /*
  88.  * map a point that assumes 640x480 to the current game size.
  89.  */
  90. #define MapDX(x) (((x) * GameSize.cx) / C_SCREEN_W)
  91. #define MapDY(y) (((y) * GameSize.cy) / C_SCREEN_H)
  92. #define MapX(x)  (GameRect.left + MapDX(x))
  93. #define MapY(y)  (GameRect.top  + MapDY(y))
  94. #define MapRX(x) ((GameSize.cx == C_SCREEN_W) ? x : MapDX(x)+1)
  95. #define MapRY(y) ((GameSize.cy == C_SCREEN_H) ? y : MapDY(y)+1)
  96.  
  97. void PauseGame(void);
  98. void UnPauseGame(void);
  99.  
  100.  
  101. /*
  102.  * fn prototypes
  103.  */
  104. /* ddraw.c */
  105. extern BOOL DDInit( void );
  106. extern BOOL DDEnable( void );
  107. extern BOOL DDDisable( BOOL );
  108. extern LPDIRECTDRAWSURFACE DDCreateSurface( DWORD width, DWORD height, BOOL sysmem, BOOL trans );
  109. extern BOOL DDCreateFlippingSurface( void );
  110. extern BOOL DDClear( void );
  111. extern DWORD DDColorMatch(IDirectDrawSurface *pdds, COLORREF rgb);
  112. extern void Splash( void );
  113.  
  114. extern LPVOID CMemAlloc( UINT cnt, UINT isize );
  115. extern LPVOID MemAlloc( UINT size );
  116. extern void   MemFree( LPVOID ptr );
  117.  
  118. extern void __cdecl Msg( LPSTR fmt, ... );
  119.  
  120. LPDIRECTDRAWPALETTE ReadPalFile( char *fname );
  121.  
  122. #endif
  123.