home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
World of Shareware - Software Farm 2
/
wosw_2.zip
/
wosw_2
/
CPROG
/
BAGOSRC.ZIP
/
BAGO.H
< prev
next >
Wrap
Text File
|
1992-02-12
|
10KB
|
356 lines
#define VERSION "Version 3.19"
/* My own Button IDs, for edit dialog box */
#define ID_OK 1
#define ID_CANCEL 2
#define ID_SUFS 100
#define ID_SUFED 101
#define ID_SUFER 102
#define ID_SUFING 103
#define ID_SUFEN 104
#define ID_SUFY 105
#define ID_SUFLY 106
#define ID_SUFEST 107
#define ID_SUFISH 108
#define ID_SUFERS 109
#define ID_SUFINGS 110
#define ID_SUF111 111
#define ID_SUF112 112
#define ID_SUF113 113
#define ID_SUF114 114
#define ID_SUF115 115
#define ID_FIRSTSUF ID_SUFS
#define ID_LASTSUF ID_SUFINGS
#define ID_DELETE 116
#define ID_FREQ 117
#define ID_PREV 118
#define ID_NEXT 119
#define ID_WMSG 120
#define ID_FMSG 121
#define ID_RMSG 140
#define ID_WORD 141
#define ID_VIRGIN 142
#define ID_FIRSTEDIT ID_SUFS
#define ID_LASTEDIT ID_FMSG
/* General input dialog box */
#define ID_INPUT 100
#define ID_IMSG 101
/* ID's for my windows */
#define ID_USERWORDS (WM_USER)
#define ID_CPLAY (WM_USER+1)
#define ID_GT (WM_USER+2)
#define ID_PLIST (WM_USER+3)
#define ID_PROBOX (WM_USER+4)
#define ID_ENTER (WM_USER+5)
#define ID_STOP (WM_USER+6)
#define ID_FIRSTCUBE (WM_USER+8)
/* must leave enough space for 25 cubes */
#define ID_LASTCUBE (WM_USER+33)
/* My own messages */
#define EGGM_SET (WM_USER+35)
#define EGGM_START (WM_USER+36)
#define EGGM_STOP (WM_USER+37)
#define BAGOM_ENDGAME (WM_USER+38)
#define BAGOM_INIT (WM_USER+39)
#define BAGOM_CUBEDN (WM_USER+40)
#define BAGOM_CUBEUP (WM_USER+41)
#define BAGOM_TAB (WM_USER+42)
#define PRO_INIT (WM_USER+50)
#define PRO_SETPOS (WM_USER+51)
#define MN_DD_GAME (WM_USER+100)
#define MN_DD_OPTIONS (WM_USER+200)
#define MN_DD_DICT (WM_USER+300)
#define MN_DD_HELP (WM_USER+400)
#define MN_REWARDS (WM_USER+500)
#define MN_SEL_0 0
#define MN_SEL_1 1
#define MN_SEL_2 2
#define MN_SEL_3 3
#define MN_SEL_4 4
#define MN_SEL_5 5
#define MN_SEL_6 6
#define MN_SEL_7 7
#define MN_SEL_8 8
#define MN_SEL_9 9
/* Game menu */
#define MN_GAM_PLAY 0
#define MN_GAM_END 1
#define MN_GAM_STATS 2
#define MN_GAM_CSTATS 3
#define MN_GAM_LOAD 4
#define MN_GAM_SAVE 5
#define MN_GAM_TOURN 6
#define MN_GAM_QUIT 7
/* Option menu */
#define MN_OPT_LEVEL 0
#define MN_OPT_SOUND 1
#define MN_OPT_GTIME 2
#define MN_OPT_TIMER 3
#define MN_OPT_LEARN 4
#define MN_OPT_CPLAY 5
#define MN_OPT_ROTATE 6
#define MN_OPT_REWARDS 7
/* Dictionary menu */
#define MN_DIC_LOAD 0
#define MN_DIC_SAVE 1
#define MN_DIC_SHOW 2
#define MN_DIC_EDIT 3
#define MN_DIC_OPT 4
#define MN_DIC_CULL 5
#define MN_DIC_RFREQ 6
/* Help menu */
#define MN_HLP_REFCARD 0
#define MN_HLP_INDEX 1
#define MN_HLP_ABOUT 2
/* Resource numbers */
#define STARBMP 100
#define A0BMP 101
#define B0BMP 102
#define C0BMP 103
#define D0BMP 104
#define E0BMP 105
#define F0BMP 106
#define G0BMP 107
#define H0BMP 108
#define I0BMP 109
#define J0BMP 110
#define K0BMP 111
#define L0BMP 112
#define M0BMP 113
#define N0BMP 114
#define O0BMP 115
#define P0BMP 116
#define Q0BMP 117
#define R0BMP 118
#define S0BMP 119
#define T0BMP 120
#define U0BMP 121
#define V0BMP 122
#define W0BMP 123
#define X0BMP 124
#define Y0BMP 125
#define Z0BMP 126
#define A1BMP 127
#define B1BMP 128
#define C1BMP 129
#define D1BMP 130
#define E1BMP 131
#define F1BMP 132
#define G1BMP 133
#define H1BMP 134
#define I1BMP 135
#define J1BMP 136
#define K1BMP 137
#define L1BMP 138
#define M1BMP 139
#define N1BMP 140
#define O1BMP 141
#define P1BMP 142
#define Q1BMP 143
#define R1BMP 144
#define S1BMP 145
#define T1BMP 146
#define U1BMP 147
#define V1BMP 148
#define W1BMP 149
#define X1BMP 150
#define Y1BMP 151
#define Z1BMP 152
#define A2BMP 153
#define B2BMP 154
#define C2BMP 155
#define D2BMP 156
#define E2BMP 157
#define F2BMP 158
#define G2BMP 159
#define H2BMP 160
#define I2BMP 161
#define J2BMP 162
#define K2BMP 163
#define L2BMP 164
#define M2BMP 165
#define N2BMP 166
#define O2BMP 167
#define P2BMP 168
#define Q2BMP 169
#define R2BMP 170
#define S2BMP 171
#define T2BMP 172
#define U2BMP 173
#define V2BMP 174
#define W2BMP 175
#define X2BMP 176
#define Y2BMP 177
#define Z2BMP 178
#define A3BMP 179
#define B3BMP 180
#define C3BMP 181
#define D3BMP 182
#define E3BMP 183
#define F3BMP 184
#define G3BMP 185
#define H3BMP 186
#define I3BMP 187
#define J3BMP 188
#define K3BMP 189
#define L3BMP 190
#define M3BMP 191
#define N3BMP 192
#define O3BMP 193
#define P3BMP 194
#define Q3BMP 195
#define R3BMP 196
#define S3BMP 197
#define T3BMP 198
#define U3BMP 199
#define V3BMP 200
#define W3BMP 201
#define X3BMP 202
#define Y3BMP 203
#define Z3BMP 204
#define UPBMP 300
#define DOWNBMP 301
#define EYESBMP 302
#define ENTERUPBMP 303
#define ENTERDNBMP 304
#define STOPUPBMP 305
#define STOPDNBMP 306
#define SHADEBMP 307
#define REWARD1BMP 309
#define REWARD2BMP 310
#define REWARD3BMP 311
#define REWARD4BMP 312
#define BAGOCUR 400
#define BAGOICON 500
#define BIKINIICON 501
#define BAGOMENU 600
#define BAGOACCEL 601
#define ABOUTBOX 700
#define INPUTDIALOG 701
#define EDITWORDBOX 702
/* RGB values */
#define BLACK (LONG)0x00000000
#define RED (LONG)0x000000FF
#define GREEN (LONG)0x0000FF00
#define BLUE (LONG)0x00FF0000
#define YELLOW (LONG)0x0000FFFF
#define MAGENTA (LONG)0x00FF00FF
#define CYAN (LONG)0x00FFFF00
#define WHITE (LONG)0x00FFFFFF
#define GRAY0 (LONG)0x00C0C0C0
#define GRAY1 (LONG)0x00808080
#define GRAY2 (LONG)0x00404040
#define CR 0x0D
#define LF 0x0A
/* game related items */
/* dimensions of board */
#define NROWS 5
#define NCOLS 5
/* number of dice equals NROWS*NCOLS */
#define NDICE 25
#define NFACES 6 /* faces on a die */
#define NORIENT 4 /* number of orientations of die face: upside-down, etc */
#define USERWORDLEN 1000 /* initial size of buffer for user words */
#define LINELEN 30 /* maximum string size */
#define BAGODIC "BAGO.DIC" /* the dictionary file */
#define BAGOINI "BAGO.INI" /* init file */
#define BAGONEW "BAGO.NEW" /* cull output file */
#define BAGOSAVE "BAGOSAVE.TXT" /* default save file */
#define BAGOHLP "BAGO.HLP" /* win format help file */
/* the playing board is an array of these records */
typedef struct tagBOARD {
char val; /* the character on top face of die */
char orient; /* its orientation (0, 90, 180, 270 degree rotation) */
BOOL Cused; /* true if die was used in trying to make a word */
/* used only by computer in trying to find words */
BOOL Uused; /* true if player used letter by pushing button in */
HWND hWindow; /* handle of control corresponding to this die */
char r, c; /* row and column of this die */
struct tagBOARD *link[8]; /* links to neighboring dice, some may be NULL */
} BOARD;
/* This record type defines a word in the program's dictionary. It is one
* leaf of the dictionary tree. Note that the links to other leaves are
* Windows memory handles, NOT pointers.
*/
typedef struct tagDW {
char w[10]; /* the word itself */
/* bits in the following are equal to 1 if the program knows how to apply */
/* a particular suffix to this word */
unsigned Suffix1;
HANDLE gt; /* link to word after this in collating order */
HANDLE lt; /* link to word before this one */
HANDLE up; /* up link to superior leaf in tree */
int Freq; /* incremented on each usage */
} DW;
/* This is sent to the InputBox upon initialization */
typedef struct tagInputStruct {
LPSTR Prompt;
LPSTR OutString;
LPINT OutI;
BOOL IntMode;
} INPUTSTRUCT;
/* Sent to the Pic display window upon initialization */
typedef struct tagPicStruct {
LPSTR PicMsg;
int PicNumber; /* resource number of bitmap for display */
} PICSTRUCT;
typedef DW *PDW; /* pointer to dictionary word structure */
typedef DW FAR *LPDW;
typedef INPUTSTRUCT FAR *LPINPUTSTRUCT;
typedef PICSTRUCT FAR *LPPICSTRUCT;
/* This is used to pass a cube's coordinates in a single word */
typedef struct tagCUBELOC {
char row;
char col;
} CUBELOC;
int PASCAL WinMain(HANDLE, HANDLE, LPSTR, int);
BOOL BagoInit(HANDLE);
int FAR PASCAL EnumFunc(LPLOGFONT, LPTEXTMETRIC, short, LPSTR);
long FAR PASCAL BagoWndProc(HWND, unsigned, WORD, LONG);
BOOL FAR PASCAL About(HWND, unsigned, WORD, LONG);
BOOL FAR PASCAL EditWord(HWND, unsigned, WORD, LONG);
long FAR PASCAL EggWndProc(HWND, unsigned, WORD, LONG);
long FAR PASCAL ProWndProc(HWND, unsigned, WORD, LONG);
long FAR PASCAL CubeWndProc(HWND, unsigned, WORD, LONG);
long FAR PASCAL PicWndProc(HWND, unsigned, WORD, LONG);
WORD InputBox(HWND, LPSTR, LPSTR, LPINT, BOOL);
BOOL FAR PASCAL InputDiag(HWND, unsigned, WORD, LONG);
unsigned GetButtons(HWND);
int isword(char *);
HWND CreateProBox(HWND);
CreatePicBox(HWND, int, LPSTR);
CUBELOC PopCube();