Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/* game stuff */
/* GaMe struct */ typedef struct _gm { LRESULT (FAR *lpfnGmProc)(GM, INT, WPARAM, LPARAM); /* our illustrious gameproc */ UDR udr; /* undo record */ BOOL fDealt; /* TRUE if cards have been dealt */ BOOL fInput; /* TRUE if input has been recieved after dealing */ BOOL fWon; /* TRUE if game is won (and in win sequence) */ INT sco; /* da sco */ INT iqsecScore; /* # of quarter seconds since first input */ INT dqsecScore; /* # of quarter seconds betweeen decrementing score */ INT ccrdDeal; /* # of cards to deal from deck */ INT irep; /* # of times thru the deck */ PT ptMousePrev; /* cache of previous mouse position */ BOOL fButtonDown; /* TRUE if mouse button down or kbd sel */ INT icolKbd; /* Current cursor position via kbd */ INT icrdKbd; INT icolSel; /* Current selection */ INT icolHilight; /* Column currently hilighted (while draggin) */ DY dyDragMax; /* maximum height of column (for dragging) */ INT icolMac; INT icolMax; COL *rgpcol[1]; } GM;
// Constants - earlier they were generated in the game.msg file.
#define icolNil -1
#define msggInit 0
#define msggEnd 1
#define msggKeyHit 2
#define msggMouseDown 3
#define msggMouseUp 4
#define msggMouseMove 5
#define msggMouseDblClk 6
#define msggPaint 7
#define msggDeal 8
#define msggUndo 9
#define msggSaveUndo 10
#define msggKillUndo 11
#define msggIsWinner 12
#define msggWinner 13
#define msggScore 14
#define msggChangeScore 15
#define msggDrawStatus 16
#define msggTimer 17
#define msggForceWin 18
#define msggMouseRightClk 19
#define ID_ICON_MAIN 500
HICON hIconMain; // the main freecell icon.
HICON hImageMain; // the main freecell image.
/* Score MoDe */ typedef INT SMD; #define smdStandard ideScoreStandard
#define smdVegas ideScoreVegas
#define smdNone ideScoreNone
#define FSelOfGm(pgm) ((pgm)->icolSel != icolNil)
#define FHilightOfGm(pgm) ((pgm)->icolHilight != icolNil)
BOOL FInitKlondGm( VOID ); VOID FreeGm(GM *pgm);
#ifdef DEBUG
LRESULT SendGmMsg(GM *pgm, INT msgg, WPARAM wp1, LPARAM wp2); #else
#define SendGmMsg(pgm, msgg, wp1, wp2) \
(*((pgm)->lpfnGmProc))((pgm), (msgg), (wp1), (wp2)) #endif
INT DefGmProc(GM *pgm, INT msgg, WPARAM wp1, LPARAM wp2);
/* standard change score notification codes */ /* instance specific codes should be positive */ #define csNil -1 /* no score change */
#define csAbs -2 /* change score to an absolute # */
#define csDel -3 /* change score by an absolute # */
#define csDelPos -4 /* change score by an absolute #, but don't let it get negative */
// define the virtual key constant for key a
#define VK_A (INT) 'A'
|