25#define GAME_ASSERT(boolexp,str) \
29 sprintf(s,"Game fatal error:\n\n%s\n\nFile: %s\n\nLine: %d" \
30 "\n\n(Press Retry to debug the application, " \
31 "if it is executed in debug mode.)" \
32 "\n(Press Cancel otherwise.)", \
33 str , __FILE__,__LINE__); \
34 id = AfxMessageBox(s, MB_RETRYCANCEL); \
52 static void Delay(DWORD ms);
56 static int ctimeCount;
72 static void Init(
int,
int);
78 static void BltBitmapToBack(
unsigned SurfaceID,
int x,
int y);
79 static void BltBitmapToBack(
unsigned SurfaceID,
int x,
int y,
double factor);
80 static void BltBitmapToBitmap(
unsigned SourceID,
unsigned TargetID,
int x,
int y);
81 static void CheckDDFail(
char *s);
82 static bool CreateSurface();
83 static bool CreateSurfaceFullScreen();
84 static bool CreateSurfaceWindowed();
85 static void LoadBitmap(
int i,
int IDB_BITMAP);
86 static void LoadBitmap(
int i,
char *filename);
87 static void LoadBitmapFromExistHBITMAP(
int i, HBITMAP bitmap);
88 static DWORD MatchColorKey(LPDIRECTDRAWSURFACE lpDDSurface, COLORREF color);
89 static int RegisterBitmap(
int IDB_BITMAP, COLORREF ColorKey);
90 static int RegisterBitmap(
char *filename, COLORREF ColorKey);
91 static int RegisterBitmapWithHBITMAP(HBITMAP hbitmap);
92 static void ReleaseSurface();
93 static void RestoreSurface();
94 static void SetColorKey(
unsigned SurfaceID, COLORREF color);
98 static LPDIRECTDRAW2 lpDD;
99 static LPDIRECTDRAWCLIPPER lpClipperPrimary;
100 static LPDIRECTDRAWCLIPPER lpClipperBack;
101 static LPDIRECTDRAWSURFACE lpDDSPrimary;
102 static LPDIRECTDRAWSURFACE lpDDSBack;
103 static vector<LPDIRECTDRAWSURFACE> lpDDS;
104 static HRESULT ddrval;
105 static vector<int> BitmapID;
106 static vector<string> BitmapName;
107 static vector<CRect> BitmapRect;
108 static vector<COLORREF> BitmapColorKey;
109 static bool fullscreen;
111 static int size_x, size_y;
174 void OnKeyUp(UINT, UINT, UINT);
189 const int NUM_GAME_STATES;
192 static CGame instance;
Definition: gamecore.h:64
static void GetClientRect(CRect &r)
Definition: gamecore.cpp:590
static void BltBackColor(DWORD)
Definition: gamecore.cpp:329
static bool SetFullScreen(bool)
Definition: gamecore.cpp:876
static void Init(int, int)
Definition: gamecore.cpp:595
~CDDraw()
Definition: gamecore.cpp:318
static CDC * GetBackCDC()
Definition: gamecore.cpp:756
static void BltBackToPrimary()
Definition: gamecore.cpp:342
static void ReleaseBackCDC()
Definition: gamecore.cpp:820
static bool IsFullScreen()
Definition: gamecore.cpp:616
Definition: gamecore.h:163
void OnDraw()
Definition: gamecore.cpp:59
void OnKeyUp(UINT, UINT, UINT)
Definition: gamecore.cpp:164
~CGame()
Definition: gamecore.cpp:43
void OnResume()
Definition: gamecore.cpp:210
void OnKillFocus()
Definition: gamecore.cpp:170
void OnMouseMove(UINT nFlags, CPoint point)
Definition: gamecore.cpp:198
CGame()
Definition: gamecore.cpp:32
void OnRButtonDown(UINT nFlags, CPoint point)
Definition: gamecore.cpp:186
void OnLButtonUp(UINT nFlags, CPoint point)
Definition: gamecore.cpp:192
void OnSetFocus()
Definition: gamecore.cpp:217
void SetGameState(int)
Definition: gamecore.cpp:234
bool IsRunning()
Definition: gamecore.cpp:54
void OnInitStates()
Definition: gamecore.cpp:143
void OnInit()
Definition: gamecore.cpp:119
static CGame * Instance()
Definition: gamecore.cpp:49
void OnKeyDown(UINT, UINT, UINT)
Definition: gamecore.cpp:152
bool OnIdle()
Definition: gamecore.cpp:90
void OnFilePause()
Definition: gamecore.cpp:75
void OnLButtonDown(UINT nFlags, CPoint point)
Definition: gamecore.cpp:179
void OnSuspend()
Definition: gamecore.cpp:225
void OnRButtonUp(UINT nFlags, CPoint point)
Definition: gamecore.cpp:204
Definition: gamecore.h:128
void OnCycle()
Definition: gamecore.cpp:1030
virtual void OnKeyUp(UINT, UINT, UINT)
Definition: gamecore.h:140
virtual void OnMove()
Definition: gamecore.h:152
void ShowInitProgress(int percent, string message)
Definition: gamecore.cpp:967
virtual void OnBeginState()
Definition: gamecore.h:137
virtual void OnLButtonUp(UINT nFlags, CPoint point)
Definition: gamecore.h:142
virtual void OnInit()
Definition: gamecore.h:138
virtual void OnMouseMove(UINT nFlags, CPoint point)
Definition: gamecore.h:143
void OnDraw()
Definition: gamecore.cpp:1025
virtual void OnKeyDown(UINT, UINT, UINT)
Definition: gamecore.h:139
virtual void OnRButtonDown(UINT nFlags, CPoint point)
Definition: gamecore.h:144
virtual void OnLButtonDown(UINT nFlags, CPoint point)
Definition: gamecore.h:141
virtual ~CGameState()
Definition: gamecore.h:136
virtual void OnRButtonUp(UINT nFlags, CPoint point)
Definition: gamecore.h:145
CMovingBitmap loadingBitmap
Definition: gamecore.h:155
void GotoGameState(int state)
Definition: gamecore.cpp:962
CGame * game
Definition: gamecore.h:154
Definition: gameutil.h:81
Definition: gamecore.h:47
static void DelayFromSetCurrentTime(DWORD ms)
Definition: gamecore.cpp:261
static int GetCurrentTimeCount()
Definition: gamecore.cpp:280
static DWORD GetEllipseTime()
Definition: gamecore.cpp:275
static void Delay(DWORD ms)
Definition: gamecore.cpp:252
static void SetCurrentTime()
Definition: gamecore.cpp:269
GAME_STATES
Definition: gamecore.h:5
@ GAME_STATE_RUN
Definition: gamecore.h:7
@ GAME_STATE_INIT
Definition: gamecore.h:6
@ GAME_STATE_OVER
Definition: gamecore.h:8