147 lines
4.2 KiB
C
147 lines
4.2 KiB
C
|
#include "win1632.h"
|
||
|
|
||
|
#ifdef __WINDOWS_386__
|
||
|
#define _EXPORT
|
||
|
#else
|
||
|
#define _EXPORT __export
|
||
|
#endif
|
||
|
|
||
|
/* Child window control messages */
|
||
|
|
||
|
#define IDW_DICE1 91
|
||
|
#define IDW_DICE2 92
|
||
|
#define IDW_DICE3 93
|
||
|
#define IDW_DICE4 94
|
||
|
#define IDW_DICE5 95
|
||
|
#define IDW_ROLL 96
|
||
|
#define IDW_OK 97
|
||
|
|
||
|
|
||
|
/* Menu messages */
|
||
|
|
||
|
#define IDM_NEWGAME 101
|
||
|
#define IDM_OPTIONS 102
|
||
|
#define IDM_EXIT 103
|
||
|
#define IDM_SCORING 104
|
||
|
#define IDM_ABOUT 105
|
||
|
|
||
|
|
||
|
/* Dialog messages */
|
||
|
|
||
|
#define IDD_CLEAR 99
|
||
|
#define IDD_PC 100
|
||
|
#define IDD_OK 101
|
||
|
#define IDD_CANCEL 105
|
||
|
#define IDD_ROLL 106
|
||
|
#define IDD_KEEP 107
|
||
|
#define IDD_RESET 108
|
||
|
|
||
|
|
||
|
/* Internal user messages */
|
||
|
|
||
|
#define WMW_START_NEW_GAME WM_USER+1
|
||
|
#define WMW_SCORE_CHECK WM_USER+3
|
||
|
#define WMW_DIE_CHECK WM_USER+4
|
||
|
#define WMW_ROLL WM_USER+5
|
||
|
#define WMW_OK WM_USER+6
|
||
|
#define WMW_GAME_OVER WM_USER+7
|
||
|
|
||
|
|
||
|
#define ID_TIMER 1
|
||
|
#define TIMER_INTERVAL 2500
|
||
|
|
||
|
#define MAX_PLAYERS 4
|
||
|
#define PLAYER_DATA_ELEMENTS 19
|
||
|
#define UNDEFINED 32767
|
||
|
|
||
|
|
||
|
/* Player data elements */
|
||
|
|
||
|
#define IS_COMPUTER 0
|
||
|
#define ACES 1
|
||
|
#define TWOS 2
|
||
|
#define THREES 3
|
||
|
#define FOURS 4
|
||
|
#define FIVES 5
|
||
|
#define SIXES 6
|
||
|
#define THREE_KIND 7
|
||
|
#define FOUR_KIND 8
|
||
|
#define FULL_HOUSE 9
|
||
|
#define SMALL_STRAIGHT 10
|
||
|
#define LARGE_STRAIGHT 11
|
||
|
#define WATZEE 12
|
||
|
#define CHANCE 13
|
||
|
#define WATZEE_BONUS 14
|
||
|
#define BONUS 15
|
||
|
#define UPPER_TOTAL 16
|
||
|
#define LOWER_TOTAL 17
|
||
|
#define GRAND_TOTAL 18
|
||
|
|
||
|
#define SCORE_OPTIONS_WIDTH 8 /* widths represent # of characters */
|
||
|
#define SCORE_CARD_WIDTH 20
|
||
|
|
||
|
|
||
|
typedef struct die_info { /* data structure for a single die */
|
||
|
short value;
|
||
|
BOOL is_checked;
|
||
|
} die_info;
|
||
|
|
||
|
|
||
|
typedef struct dice_info { /* data structure for dice stats */
|
||
|
short sum;
|
||
|
short count[7];
|
||
|
BOOL got_three_kind;
|
||
|
BOOL got_four_kind;
|
||
|
BOOL got_full_house;
|
||
|
BOOL got_small_straight;
|
||
|
BOOL got_large_straight;
|
||
|
BOOL got_watzee;
|
||
|
} dice_info;
|
||
|
|
||
|
|
||
|
|
||
|
/* global variables */
|
||
|
|
||
|
extern short NumberOfPlayers;
|
||
|
extern short Player[ MAX_PLAYERS ] [ PLAYER_DATA_ELEMENTS ];
|
||
|
extern char PlayerName[ MAX_PLAYERS ][ 4 ];
|
||
|
extern BOOL GotTimer;
|
||
|
extern BOOL PCTurn;
|
||
|
extern BOOL PlayingGameYet;
|
||
|
extern BOOL DieCheckMeansRoll;
|
||
|
extern BOOL ResetDieChecks;
|
||
|
extern die_info Dice[5];
|
||
|
extern dice_info DiceInfo;
|
||
|
extern short CharWidth;
|
||
|
extern short CharHeight;
|
||
|
extern short SysHeight;
|
||
|
extern short CurrentPlayer;
|
||
|
extern short CurrentTurn;
|
||
|
extern short CurrentRoll;
|
||
|
extern short LastScoreSelection;
|
||
|
extern LOGFONT SmallNormalFont;
|
||
|
extern LOGFONT SmallBoldFont;
|
||
|
|
||
|
|
||
|
/* function prototypes */
|
||
|
|
||
|
extern void CreateFonts( void );
|
||
|
extern void DrawScoreCard( HDC );
|
||
|
extern void DrawDice( HWND, HDC );
|
||
|
extern void GetDiceInfo( void );
|
||
|
extern void GetDiceBitmaps( HWND );
|
||
|
extern void GetFontInfo( void );
|
||
|
extern BOOL _EXPORT FAR PASCAL AboutDialogProc( HWND, UINT, WPARAM, LPARAM );
|
||
|
extern BOOL _EXPORT FAR PASCAL GetNumPlayersDialogProc(HWND,UINT, WPARAM, LPARAM );
|
||
|
extern BOOL _EXPORT FAR PASCAL GetInitialsDialogProc(HWND,UINT, WPARAM, LPARAM );
|
||
|
extern BOOL _EXPORT FAR PASCAL HelpDialogProc(HWND,UINT, WPARAM, LPARAM );
|
||
|
extern BOOL _EXPORT FAR PASCAL OptionsDialogProc(HWND,UINT, WPARAM, LPARAM );
|
||
|
extern void HighliteName( HDC, short );
|
||
|
extern BOOL PCPlay( HWND );
|
||
|
extern void RollDice( HWND, HDC );
|
||
|
extern void SelectFont( HDC, short );
|
||
|
extern void WriteInitials( HDC );
|
||
|
extern void WriteScore( HDC, short, short );
|
||
|
extern void WriteScoreOptions( HDC );
|
||
|
extern void WriteScores( HDC );
|