1#
2#   Copyright <=2004 by Immanuel Halupczok
3#   Modified 2005,2010,2014 by Mark Weyer
4#   Maintenance modifications 2005,2011 by the cuyo developers
5#
6#   This program is free software; you can redistribute it and/or modify
7#   it under the terms of the GNU General Public License as published by
8#   the Free Software Foundation; either version 2 of the License, or
9#   (at your option) any later version.
10#
11#   This program is distributed in the hope that it will be useful,
12#   but WITHOUT ANY WARRANTY; without even the implied warranty of
13#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14#   GNU General Public License for more details.
15#
16#   You should have received a copy of the GNU General Public License
17#   along with this program; if not, write to the Free Software
18#   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19#
20
21# This file contains all the definitions which are useful for more than
22# one level: the schemas and the defaults
23
24# It also mentions pics and sounds which cuyo always needs:
25# border.xpm
26# borderh.xpm
27# borderv.xpm
28# dbgZiffern.xpm
29# font-big.xpm
30# explosion.xpm
31# highlight.xpm
32# infoicons.xpm
33# menupics.xpm
34# pause.xpm
35# pktZiffern.xpm
36# pktZiffern2.xpm
37# scroll.xpm
38# titel.xpm
39# down.wav
40# explode.wav
41# land.wav
42# leftright.wav
43# levelloose.wav
44# levelwin.wav
45# menuclick.wav
46# menuscroll.wav
47# turn.wav
48# cuyo.it
49
50
51<<
52
53# The whole icon depends on the four neighbours
54schema16={
55  switch {
56    0?0?0?0? -> A;
57    0?1?0?0? -> B;
58    0?1?0?1? -> C;
59    0?0?0?1? -> D;
60    0?0?1?0? -> E;
61    0?1?1?0? -> F;
62    0?1?1?1? -> G;
63    0?0?1?1? -> H;
64    1?0?1?0? -> I;
65    1?1?1?0? -> J;
66    1?1?1?1? -> K;
67    1?0?1?1? -> L;
68    1?0?0?0? -> M;
69    1?1?0?0? -> N;
70    1?1?0?1? -> O;
71    1?0?0?1? -> P;
72  };
73  *
74};
75
76# Each quarter depends on its three neighbours - but it may only depend
77# on the diagonal neighbour if at least one of the two other neighbours
78# exist... Not yet defined.
79#schema7={
80#};
81
82# Each quarter normally depends on its two neighbours.
83# If both are present, the diagonal neighbor counts, too.
84# This schema is useful for blobs that are surrounded by "walls":
85# If a quarter has at least one missing neighbour, there is a wall.
86# Otherwise there may or may not be a wall corner,
87# which has some effect on the picture.
88schema5={
89  [qu=Q_TL] {switch {
90    0?????0? -> C;
91    1?????0? -> D;
92    0?????1? -> A;
93    1?????10 -> B;
94    1?????11 -> E;
95  };*};
96  [qu=Q_TR] {switch {
97    0?0????? -> C;
98    0?1????? -> A;
99    1?0????? -> B;
100    101????? -> E;
101    111????? -> D;
102  };*};
103  [qu=Q_BL] {switch {
104    ????0?0? -> C;
105    ????0?1? -> E;
106    ????1?0? -> D;
107    ????101? -> A;
108    ????111? -> B;
109  };*};
110  [qu=Q_BR] {switch {
111    ??0?0??? -> C;
112    ??0?1??? -> B;
113    ??1?0??? -> E;
114    ??101??? -> D;
115    ??111??? -> A;
116  };*}
117};
118
119
120
121# Each quarter depends on its two neighbours
122schema4={
123  [qu=Q_TL] {switch {
124    0?????0? -> A;
125    0?????1? -> B;
126    1?????0? -> C;
127    1?????1? -> D;
128  };*};
129  [qu=Q_TR] {switch {
130    0?1????? -> A;
131    0?0????? -> B;
132    1?1????? -> C;
133    1?0????? -> D;
134  };*};
135  [qu=Q_BL] {switch {
136    ????1?0? -> A;
137    ????1?1? -> B;
138    ????0?0? -> C;
139    ????0?1? -> D;
140  };*};
141  [qu=Q_BR] {switch {
142    ??1?1??? -> A;
143    ??0?1??? -> B;
144    ??1?0??? -> C;
145    ??0?0??? -> D;
146  };*}
147};
148
149
150
151# Each Quarter depends on its three neighbours.
152schemaDiag16={
153  [qu=Q_TL] {switch {
154    0?????00 -> E;
155    0?????10 -> F;
156    1?????00 -> N;
157    1?????10 -> G;
158    0?????01 -> C;
159    0?????11 -> L;
160    1?????01 -> J;
161    1?????11 -> K;
162  };*};
163  [qu=Q_TR] {switch {
164    000????? -> C;
165    100????? -> G;
166    001????? -> E;
167    101????? -> K;
168    010????? -> L;
169    110????? -> N;
170    011????? -> F;
171    111????? -> J;
172  };*};
173  [qu=Q_BL] {switch {
174    ????000? -> N;
175    ????100? -> J;
176    ????001? -> L;
177    ????101? -> F;
178    ????010? -> E;
179    ????110? -> C;
180    ????011? -> K;
181    ????111? -> G;
182  };*};
183  [qu=Q_BR] {switch {
184    ??000??? -> L;
185    ??100??? -> K;
186    ??001??? -> C;
187    ??101??? -> J;
188    ??010??? -> N;
189    ??110??? -> E;
190    ??011??? -> G;
191    ??111??? -> F;
192  };*}
193};
194
195
196# Each Quarter only depends on its diagonal neighbour.
197schemaDiag2={
198  [qu=Q_TL] {switch {
199    ???????0 -> A;
200    ???????1 -> B;
201  };*};
202  [qu=Q_TR] {switch {
203    ?0?????? -> A;
204    ?1?????? -> B;
205  };*};
206  [qu=Q_BL] {switch {
207    ?????0?? -> A;
208    ?????1?? -> B;
209  };*};
210  [qu=Q_BR] {switch {
211    ???0???? -> A;
212    ???1???? -> B;
213  };*}
214};
215
216
217# For hex mode. Each Quarter depends on its two neighbours.
218schemaHex4={
219  [qu=Q_TL_TL] {switch {
220    0????0 -> A*;
221    1????0 -> C*;
222  }};
223  [qu=Q_BL_TL] {switch {
224    0????1 -> B*;
225    1????1 -> D*;
226  }};
227  [qu=Q_TR_TR] {switch {
228    01???? -> A*;
229    11???? -> C*;
230  }};
231  [qu=Q_BR_TR] {switch {
232    00???? -> B*;
233    10???? -> D*;
234  }};
235  [qu=Q_BL_BL] {switch {
236    ???10? -> A*;
237    ???00? -> C*;
238  }};
239  [qu=Q_TL_BL] {switch {
240    ???01? -> B*;
241    ???11? -> D*;
242  }};
243  [qu=Q_BR_BR] {switch {
244    ??11?? -> A*;
245    ??10?? -> C*;
246  }};
247  [qu=Q_TR_BR] {switch {
248    ??00?? -> B*;
249    ??01?? -> D*;
250  }};
251};
252
253
254# For hex mode. Each Quarter depends on its three neighbours.
255schemaHex8={
256  [qu=Q_TL_TL] {switch {
257    0???00 -> A*;
258    1???00 -> E*;
259    0???10 -> C*;
260    1???10 -> G*;
261  }};
262  [qu=Q_BL_TL] {switch {
263    0???01 -> D*;
264    1???01 -> H*;
265    0???11 -> B*;
266    1???11 -> F*;
267  }};
268  [qu=Q_TR_TR] {switch {
269    001??? -> C*;
270    101??? -> G*;
271    011??? -> A*;
272    111??? -> E*;
273  }};
274  [qu=Q_BR_TR] {switch {
275    000??? -> D*;
276    100??? -> H*;
277    010??? -> B*;
278    110??? -> F*;
279  }};
280  [qu=Q_BL_BL] {switch {
281    ???100 -> A*;
282    ???000 -> E*;
283    ???110 -> C*;
284    ???010 -> G*;
285  }};
286  [qu=Q_TL_BL] {switch {
287    ???001 -> D*;
288    ???101 -> H*;
289    ???011 -> B*;
290    ???111 -> F*;
291  }};
292  [qu=Q_BR_BR] {switch {
293    ?011?? -> C*;
294    ?010?? -> G*;
295    ?111?? -> A*;
296    ?110?? -> E*;
297  }};
298  [qu=Q_TR_BR] {switch {
299    ?000?? -> D*;
300    ?001?? -> H*;
301    ?100?? -> B*;
302    ?101?? -> F*;
303  }}
304};
305
306# Default when there's one file with one icon
307default1 = *;
308
309# Default when there's one file with more than one icon (except for
310# the grass)
311default2 = {schema16};
312
313# Same as default2, but for the grass
314default2g = {pos=version;*};
315
316# Default when there are multiple files
317default3 = {file=version;schema16};
318
319# Default for the icon depicting the value of neighbours
320default_info = default2g;
321
322>>
323