1 
2 /*
3     xskat - a card game for 1 to 3 players.
4     Copyright (C) 2004  Gunter Gerhardt
5 
6     This program is free software; you can redistribute it freely.
7     Use it at your own risk; there is NO WARRANTY.
8 
9     Redistribution of modified versions is permitted
10     provided that the following conditions are met:
11     1. All copyright & permission notices are preserved.
12     2.a) Only changes required for packaging or porting are made.
13       or
14     2.b) It is clearly stated who last changed the program.
15          The program is renamed or
16          the version number is of the form x.y.z,
17          where x.y is the version of the original program
18          and z is an arbitrary suffix.
19 */
20 
21 #ifndef SKAT_H
22 #define SKAT_H
23 
24 #undef EXTERN
25 #ifdef SKAT_C
26 #define EXTERN
27 #else
28 #define EXTERN extern
29 #endif
30 
31 #define AS 0
32 #define ZEHN 1
33 #define KOENIG 2
34 #define DAME 3
35 #define BUBE 4
36 #define NEUN 5
37 #define ACHT 6
38 #define SIEBEN 7
39 
40 #define BOCK_BEI_60         1
41 #define BOCK_BEI_GRANDHAND  2
42 #define BOCK_BEI_KONTRA     4
43 #define BOCK_BEI_RE         8
44 #define BOCK_BEI_NNN       16
45 #define BOCK_BEI_N00       32
46 #define BOCK_BEI_72        64
47 #define BOCK_BEI_96       128
48 #define BOCK_BEI_LAST     128
49 
50 enum {
51  GEBEN,
52  REIZEN,
53  HANDSPIEL,
54  DRUECKEN,
55  ANSAGEN,
56  REVOLUTION,
57  SPIELEN,
58  SCHENKEN,
59  NIMMSTICH,
60  SPIELDICHT,
61  WEITER,
62  RESULT
63 };
64 
65 EXTERN int nullw[]
66 #ifdef SKAT_C
67 =
68 {
69   23,35,46,59,92
70 }
71 #endif
72 ;
73 
74 EXTERN int rwert[]
75 #ifdef SKAT_C
76 =
77 {
78   9,10,11,12,24
79 }
80 #endif
81 ;
82 
83 EXTERN int reizw[]
84 #ifdef SKAT_C
85 =
86 {
87   18,20,22,23,24,27,30,33,35,36,40,44,45,46,48,50,
88   54,55,59,60,63,66,70,72,77,80,81,84,88,90,96,99,
89   100,108,110,117,120,121,126,130,132,135,140,143,
90   144,150,153,154,156,160,162,165,168,170,171,176,
91   180,187,189,190,192,198,200,204,207,209,210,216,
92   220,228,240,264,999
93 }
94 #endif
95 ;
96 
97 EXTERN int cardw[]
98 #ifdef SKAT_C
99 =
100 {
101   11,10,4,3,2,0,0,0
102 }
103 #endif
104 ;
105 
106 EXTERN int sortw[]
107 #ifdef SKAT_C
108 =
109 {
110   0,1,2,3
111 }
112 #endif
113 ;
114 
115 EXTERN int numsp,numgames;
116 EXTERN int strateg[3],stgset[3];
117 EXTERN int hints[3],hintsset[3],hintcard[2];
118 EXTERN int blatt[3],blattset[3];
119 EXTERN int lang[3],langset[3];
120 EXTERN int maxrw[3],sort1[3],sort2[3],alternate[3],splfirst[3];
121 EXTERN int downupset[3],altseqset[3],tdelayset[3],alistset[3];
122 EXTERN int mbutton[3],mbuttonset[3];
123 EXTERN int keyboard[3],keyboardset[3];
124 EXTERN int abkuerz[3],abkuerzset[3];
125 EXTERN int briefmsg[3],briefmsgset[3];
126 EXTERN int trickl2r[3],trickl2rset[3];
127 EXTERN int useoptfile[3];
128 EXTERN int lastmsaho[3],protsort[3],hatnfb[3][5];
129 EXTERN int splsum[3][3],sum[3][3],prevsum[3][3],alist[3];
130 EXTERN int sgewoverl[3][2],cgewoverl[3][2];
131 EXTERN int nimmstich[3][2],playramsch,ramschset;
132 EXTERN int playsramsch,sramschset,sramschstufe;
133 EXTERN int rskatloser,rskatloserset,rskatsum;
134 EXTERN int playkontra,kontraset,kontrastufe;
135 EXTERN int playbock,bockset,bockevents,bockeventsset;
136 EXTERN int bockspiele,ramschspiele,bockinc;
137 EXTERN int resumebock,resumebockset;
138 EXTERN int spitzezaehlt,spitzezaehltset;
139 EXTERN int revolution,revolutionset;
140 EXTERN int klopfen,klopfenset;
141 EXTERN int schenken,schenkenset,schenkstufe;
142 EXTERN int oldrules,oldrulesset;
143 EXTERN int fastdeal,fastdealset;
144 EXTERN int sagte18[3];
145 EXTERN int cards[32],gespcd[32];
146 EXTERN int quit,phase,geber,hoerer,sager,spieler;
147 EXTERN int saho,reizp,gedr,vmh,stich,ausspl;
148 EXTERN int possi[10],possc,stcd[3];
149 EXTERN int trumpf,handsp,stsum,astsum,gstsum,spcards[12],kannspitze;
150 EXTERN int spgew,spwert,schwz,nullv,spitzeok,nspwert;
151 EXTERN int schnang,schwang,ouveang,spitzeang,revolang;
152 EXTERN struct { int s,r,d,e,g; } splist[360];
153 EXTERN int splstp,splres;
154 EXTERN int gespfb[4],high[5],shigh[5];
155 EXTERN int inhand[4][8];
156 EXTERN int playcd,drkcd;
157 EXTERN int mes1,mes2,mes3,mes4;
158 EXTERN int butternok,sptruempfe;
159 EXTERN int predef,logging,unformatted;
160 EXTERN long seed[2],savseed,gamenr,rotateby;
161 EXTERN char *list_file,*game_file,*prot_file,*opt_file,*cards_file;
162 EXTERN int wieder,vorhandwn;
163 EXTERN int karobubeanz;
164 EXTERN int ndichtw;
165 EXTERN int firstgame,dlhintseen;
166 EXTERN int drbut,umdrueck;
167 EXTERN int pkoption;
168 EXTERN char lanip[3][40];
169 EXTERN int laninvite[2];
170 EXTERN char irc_hostname[40];
171 EXTERN int irc_hostset;
172 EXTERN int theargc;
173 EXTERN char **theargv;
174 EXTERN struct
175 {
176   int stichgem,spieler,trumpf,gereizt,gewonn,augen,ehsso,predef,sramsch;
177   int stiche[10][3],anspiel[10],gemacht[10],skat[4][2],verdopp[3];
178   long savseed,gamenr;
179   int rotateby,spitze,revolution,schenken,handsp;
180 } prot1,prot2;
181 
182 #endif /* SKAT_H */
183