Crossfire JXClient, Trunk
MapUpdaterStateTest.java
Go to the documentation of this file.
1 /*
2  * This file is part of JXClient, the Fullscreen Java Crossfire Client.
3  *
4  * JXClient is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; either version 2 of the License, or
7  * (at your option) any later version.
8  *
9  * JXClient is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with JXClient; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17  *
18  * Copyright (C) 2005-2008 Yann Chachkoff
19  * Copyright (C) 2006-2017,2019-2023 Andreas Kirschbaum
20  * Copyright (C) 2010-2012,2014-2018,2020-2023 Nicolas Weeger
21  */
22 
23 package com.realtime.crossfire.jxclient.map;
24 
34 import javax.swing.ImageIcon;
35 import org.jetbrains.annotations.NotNull;
36 import org.junit.Assert;
37 import org.junit.Test;
38 
43 public class MapUpdaterStateTest {
44 
48  private static final byte @NotNull [] PNG32X32 = { //
49  (byte)0x89, (byte)0x50, (byte)0x4e, (byte)0x47, (byte)0x0d, (byte)0x0a, (byte)0x1a, (byte)0x0a, //
50  (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x0d, (byte)0x49, (byte)0x48, (byte)0x44, (byte)0x52, //
51  (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x20, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x20, //
52  (byte)0x08, (byte)0x06, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x73, (byte)0x7a, (byte)0x7a, //
53  (byte)0xf4, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x01, (byte)0x73, (byte)0x52, (byte)0x47, //
54  (byte)0x42, (byte)0x00, (byte)0xae, (byte)0xce, (byte)0x1c, (byte)0xe9, (byte)0x00, (byte)0x00, //
55  (byte)0x00, (byte)0x1a, (byte)0x49, (byte)0x44, (byte)0x41, (byte)0x54, (byte)0x58, (byte)0xc3, //
56  (byte)0xed, (byte)0xc1, (byte)0x01, (byte)0x01, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x82, //
57  (byte)0x20, (byte)0xff, (byte)0xaf, (byte)0x6e, (byte)0x48, (byte)0x40, (byte)0x01, (byte)0x00, //
58  (byte)0x00, (byte)0x00, (byte)0xef, (byte)0x06, (byte)0x10, (byte)0x20, (byte)0x00, (byte)0x01, //
59  (byte)0x97, (byte)0xf7, (byte)0x57, (byte)0xd7, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, //
60  (byte)0x49, (byte)0x45, (byte)0x4e, (byte)0x44, (byte)0xae, (byte)0x42, (byte)0x60, (byte)0x82, //
61  };
62 
66  private static final byte @NotNull [] PNG64X64 = { //
67  (byte)0x89, (byte)0x50, (byte)0x4e, (byte)0x47, (byte)0x0d, (byte)0x0a, (byte)0x1a, (byte)0x0a, //
68  (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x0d, (byte)0x49, (byte)0x48, (byte)0x44, (byte)0x52, //
69  (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x40, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x40, //
70  (byte)0x08, (byte)0x06, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0xaa, (byte)0x69, (byte)0x71, //
71  (byte)0xde, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x01, (byte)0x73, (byte)0x52, (byte)0x47, //
72  (byte)0x42, (byte)0x00, (byte)0xae, (byte)0xce, (byte)0x1c, (byte)0xe9, (byte)0x00, (byte)0x00, //
73  (byte)0x00, (byte)0x27, (byte)0x49, (byte)0x44, (byte)0x41, (byte)0x54, (byte)0x78, (byte)0xda, //
74  (byte)0xed, (byte)0xc1, (byte)0x01, (byte)0x0d, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0xc2, //
75  (byte)0xa0, (byte)0xf7, (byte)0x4f, (byte)0x6d, (byte)0x0e, (byte)0x37, (byte)0xa0, (byte)0x00, //
76  (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, //
77  (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x80, (byte)0x77, //
78  (byte)0x03, (byte)0x40, (byte)0x40, (byte)0x00, (byte)0x01, (byte)0xaf, (byte)0x7a, (byte)0x0e, //
79  (byte)0xe8, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x49, (byte)0x45, (byte)0x4e, //
80  (byte)0x44, (byte)0xae, (byte)0x42, (byte)0x60, (byte)0x82, //
81  };
82 
86  private static final byte @NotNull [] PNG128X256 = { //
87  (byte)0x89, (byte)0x50, (byte)0x4e, (byte)0x47, (byte)0x0d, (byte)0x0a, (byte)0x1a, (byte)0x0a, //
88  (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x0d, (byte)0x49, (byte)0x48, (byte)0x44, (byte)0x52, //
89  (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x80, (byte)0x00, (byte)0x00, (byte)0x01, (byte)0x00, //
90  (byte)0x08, (byte)0x06, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x7b, (byte)0xf9, (byte)0x7e, //
91  (byte)0xa7, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x01, (byte)0x73, (byte)0x52, (byte)0x47, //
92  (byte)0x42, (byte)0x00, (byte)0xae, (byte)0xce, (byte)0x1c, (byte)0xe9, (byte)0x00, (byte)0x00, //
93  (byte)0x00, (byte)0x95, (byte)0x49, (byte)0x44, (byte)0x41, (byte)0x54, (byte)0x78, (byte)0xda, //
94  (byte)0xed, (byte)0xc1, (byte)0x01, (byte)0x01, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x80, //
95  (byte)0x90, (byte)0xfe, (byte)0xaf, (byte)0xee, (byte)0x08, (byte)0x0a, (byte)0x00, (byte)0x00, //
96  (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, //
97  (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, //
98  (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, //
99  (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, //
100  (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, //
101  (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, //
102  (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, //
103  (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, //
104  (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, //
105  (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, //
106  (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, //
107  (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, //
108  (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, //
109  (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, //
110  (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, //
111  (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x80, (byte)0xaa, (byte)0x01, (byte)0x01, //
112  (byte)0x1e, (byte)0x00, (byte)0x01, (byte)0xbc, (byte)0x1b, (byte)0xb9, (byte)0x6f, (byte)0x00, //
113  (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x49, (byte)0x45, (byte)0x4e, (byte)0x44, (byte)0xae, //
114  (byte)0x42, (byte)0x60, (byte)0x82, //
115  };
116 
121  @Test
122  public void testFogOfWar1() {
123  final FaceCache faceCache = new FaceCache();
124  final FacesManager facesManager = new TestFacesManager(faceCache);
125  defineFace(faceCache, 1, "M", PNG64X64);
126  defineFace(faceCache, 2, "_", PNG32X32);
127 
128  final MapUpdaterState mapUpdaterState = new MapUpdaterState(facesManager, new Animations(null), new CfAnimations(new ItemSet(), facesManager, new Animations(null)));
129 
130  mapUpdaterState.newMap(5, 5);
131  synchronized (mapUpdaterState.mapBegin()) {
132  mapUpdaterState.mapFace(new Location(0, 0, 0), 2, true);
133  mapUpdaterState.mapFace(new Location(1, 0, 0), 2, true);
134  mapUpdaterState.mapFace(new Location(0, 1, 0), 2, true);
135  mapUpdaterState.mapFace(new Location(1, 1, 0), 2, true);
136  mapUpdaterState.mapFace(new Location(1, 1, 6), 1, true);
137  mapUpdaterState.mapEnd(true);
138  }
139  Assert.assertEquals(""+"[H0=_,T6=M][H0=_,T6=M]\n"+"[H0=_,T6=M][H0=_,H6=M]\n", toString(mapUpdaterState.getMap(), 0, 0, 2, 2));
140 
141  synchronized (mapUpdaterState.mapBegin()) {
142  mapUpdaterState.mapClear(1, 0);
143  mapUpdaterState.mapEnd(true);
144  }
145  Assert.assertEquals(""+"[H0=_,T6=M][#,H0=_,T6=M]\n"+"[H0=_,T6=M][H0=_,H6=M]\n", toString(mapUpdaterState.getMap(), 0, 0, 2, 2));
146 
147  synchronized (mapUpdaterState.mapBegin()) {
148  mapUpdaterState.mapClear(1, 1);
149  mapUpdaterState.mapEnd(true);
150  }
151  Assert.assertEquals(""+"[H0=_][#,H0=_,T6=M]\n"+"[H0=_][#,H0=_,H6=M]\n", toString(mapUpdaterState.getMap(), 0, 0, 2, 2));
152  }
153 
157  @Test
158  public void testDisplayArtifacts1() {
159  final FaceCache faceCache = new FaceCache();
160  final FacesManager facesManager = new TestFacesManager(faceCache);
161  defineFace(faceCache, 307, "behemoth.x31", PNG64X64);
162  defineFace(faceCache, 308, "behemoth.x32", PNG64X64);
163  defineFace(faceCache, 309, "behemoth.x33", PNG64X64);
164  defineFace(faceCache, 310, "behemoth.x71", PNG64X64);
165  defineFace(faceCache, 932, "charwoman.132", PNG32X32);
166  defineFace(faceCache, 4607, "woodfloor.111", PNG32X32);
167  defineFace(faceCache, 312, "behemoth.x73", PNG64X64);
168 
169  final MapUpdaterState mapUpdaterState = new MapUpdaterState(facesManager, new Animations(null), new CfAnimations(new ItemSet(), facesManager, new Animations(null)));
170 
171  mapUpdaterState.newMap(10, 10);
172  synchronized (mapUpdaterState.mapBegin()) {
173  mapUpdaterState.mapFace(new Location(7, 8, 0), 4607, true);
174  mapUpdaterState.mapFace(new Location(8, 8, 0), 4607, true);
175  mapUpdaterState.mapFace(new Location(9, 8, 0), 4607, true);
176  mapUpdaterState.mapFace(new Location(7, 9, 0), 4607, true);
177  mapUpdaterState.mapFace(new Location(8, 9, 0), 4607, true);
178  mapUpdaterState.mapFace(new Location(9, 9, 0), 4607, true);
179  mapUpdaterState.mapFace(new Location(9, 9, 6), 312, true);
180  mapUpdaterState.mapEnd(true);
181  }
182 
183  mapUpdaterState.tick(26);
184  synchronized (mapUpdaterState.mapBegin()) {
185  mapUpdaterState.mapFace(new Location(9, 9, 6), 307, true);
186  mapUpdaterState.mapEnd(true);
187  }
188 
189  mapUpdaterState.tick(27);
190  mapUpdaterState.tick(28);
191  synchronized (mapUpdaterState.mapBegin()) {
192  mapUpdaterState.mapFace(new Location(9, 9, 6), 308, true);
193  mapUpdaterState.mapEnd(true);
194  }
195 
196  mapUpdaterState.tick(29);
197  synchronized (mapUpdaterState.mapBegin()) {
198  mapUpdaterState.mapFace(new Location(0, 5, 6), 0, true);
199  mapUpdaterState.mapEnd(true);
200  }
201 
202  mapUpdaterState.tick(30);
203  synchronized (mapUpdaterState.mapBegin()) {
204  mapUpdaterState.mapFace(new Location(9, 9, 6), 309, true);
205  mapUpdaterState.mapEnd(true);
206  }
207 
208  mapUpdaterState.tick(31);
209  mapUpdaterState.tick(32);
210  synchronized (mapUpdaterState.mapBegin()) {
211  mapUpdaterState.mapFace(new Location(9, 9, 6), 308, true);
212  mapUpdaterState.mapEnd(true);
213  }
214 
215  mapUpdaterState.tick(33);
216  mapUpdaterState.tick(34);
217  synchronized (mapUpdaterState.mapBegin()) {
218  mapUpdaterState.mapFace(new Location(9, 9, 6), 0, true);
219  mapUpdaterState.mapFace(new Location(10, 9, 6), 307, true);
220  mapUpdaterState.mapEnd(true);
221  }
222 
223  mapUpdaterState.tick(35);
224  mapUpdaterState.tick(36);
225  synchronized (mapUpdaterState.mapBegin()) {
226  mapUpdaterState.mapFace(new Location(0, 6, 6), 932, true);
227  mapUpdaterState.mapFace(new Location(9, 9, 6), 312, true);
228  mapUpdaterState.mapClear(10, 9);
229  mapUpdaterState.mapEnd(true);
230  }
231 
232  mapUpdaterState.tick(37);
233  mapUpdaterState.tick(38);
234  synchronized (mapUpdaterState.mapBegin()) {
235  mapUpdaterState.mapFace(new Location(8, 9, 6), 310, true);
236  mapUpdaterState.mapFace(new Location(9, 9, 6), 0, true);
237  mapUpdaterState.mapEnd(true);
238  }
239 
240  mapUpdaterState.tick(39);
241 
242  Assert.assertEquals(""+"[H0=woodfloor.111,T6=behemoth.x71][H0=woodfloor.111,T6=behemoth.x71][H0=woodfloor.111][]\n"+"[H0=woodfloor.111,T6=behemoth.x71][H0=woodfloor.111,H6=behemoth.x71][H0=woodfloor.111][#,H6=behemoth.x31]\n", toString(mapUpdaterState.getMap(), 7, 8, 4, 2));
243  }
244 
248  @Test
249  public void testDisplayArtifacts2() {
250  final FaceCache faceCache = new FaceCache();
251  final FacesManager facesManager = new TestFacesManager(faceCache);
252  defineFace(faceCache, 7, "a.x11", PNG64X64);
253  defineFace(faceCache, 8, "b.x12", PNG64X64);
254 
255  final MapUpdaterState mapUpdaterState = new MapUpdaterState(facesManager, new Animations(null), new CfAnimations(new ItemSet(), facesManager, new Animations(null)));
256 
257  mapUpdaterState.newMap(10, 10);
258  synchronized (mapUpdaterState.mapBegin()) {
259  mapUpdaterState.mapFace(new Location(5, 10, 6), 7, true);
260  mapUpdaterState.mapEnd(true);
261  }
262 
263  synchronized (mapUpdaterState.mapBegin()) {
264  mapUpdaterState.mapFace(new Location(4, 10, 6), 8, true);
265  mapUpdaterState.mapClear(5, 10);
266  mapUpdaterState.mapEnd(true);
267  }
268 
269  Assert.assertEquals(""+"[T6=b.x12][T6=b.x12][]\n"+"[T6=b.x12][H6=b.x12][#,H6=a.x11]\n", toString(mapUpdaterState.getMap(), 3, 9, 3, 2));
270  }
271 
275  @Test
276  public void testDisplayArtifacts3() {
277  final FaceCache faceCache = new FaceCache();
278  final FacesManager facesManager = new TestFacesManager(faceCache);
279  final MapUpdaterState mapUpdaterState = new MapUpdaterState(facesManager, new Animations(null), new CfAnimations(new ItemSet(), facesManager, new Animations(null)));
280 
281  mapUpdaterState.newMap(23, 16);
282  defineFace(faceCache, 1316, "demon_lord.x11", PNG128X256);
283 
284  synchronized (mapUpdaterState.mapBegin()) {
285  mapUpdaterState.mapFace(new Location(4, 17, 6), 1316, true);
286  mapUpdaterState.mapEnd(true);
287  }
288 
289  synchronized (mapUpdaterState.mapBegin()) {
290  mapUpdaterState.mapScroll(-1, 0);
291  mapUpdaterState.mapFace(new Location(5, 17, 6), 1316, true);
292  mapUpdaterState.mapEnd(true);
293  }
294 
295  synchronized (mapUpdaterState.mapBegin()) {
296  mapUpdaterState.mapClear(5, 17);
297  mapUpdaterState.mapFace(new Location(6, 17, 6), 1316, true);
298  mapUpdaterState.mapEnd(true);
299  }
300 
301  synchronized (mapUpdaterState.mapBegin()) {
302  mapUpdaterState.mapScroll(-1, 0);
303  mapUpdaterState.mapFace(new Location(7, 17, 6), 1316, true);
304  mapUpdaterState.mapEnd(true);
305  }
306 
307  synchronized (mapUpdaterState.mapBegin()) {
308  mapUpdaterState.mapScroll(-1, 0);
309  mapUpdaterState.mapFace(new Location(8, 17, 6), 1316, true);
310  mapUpdaterState.mapEnd(true);
311  }
312 
313  synchronized (mapUpdaterState.mapBegin()) {
314  mapUpdaterState.mapScroll(-1, 0);
315  mapUpdaterState.mapFace(new Location(9, 17, 6), 1316, true);
316  mapUpdaterState.mapEnd(true);
317  }
318  Assert.assertEquals(""+"[][T6=demon_lord.x11][T6=demon_lord.x11][T6=demon_lord.x11][T6=demon_lord.x11][][][][]\n", toString(mapUpdaterState.getMap(), 5, 10, 9, 1));
319 
320  synchronized (mapUpdaterState.mapBegin()) {
321  mapUpdaterState.mapScroll(-1, 0);
322  mapUpdaterState.mapFace(new Location(11, 17, 6), 1316, true);
323  mapUpdaterState.mapEnd();
324  }
325  Assert.assertEquals(""+"[][][][T6=demon_lord.x11][T6=demon_lord.x11][T6=demon_lord.x11][T6=demon_lord.x11][][]\n", toString(mapUpdaterState.getMap(), 5, 10, 9, 1));
326  }
327 
338  @NotNull
339  private static String toString(@NotNull final CfMap map, final int x0, final int y0, final int w, final int h) {
340  final StringBuilder sb = new StringBuilder();
341  //noinspection SynchronizationOnLocalVariableOrMethodParameter
342  synchronized (map) {
343  for (int y = y0; y < y0+h; y++) {
344  for (int x = x0; x < x0+w; x++) {
345  sb.append('[');
346 
347  boolean firstFace = true;
348 
349  if (map.isFogOfWar(x, y)) {
350  sb.append('#');
351  firstFace = false;
352  }
353 
354  for (int l = 0; l < Map2.NUM_LAYERS; l++) {
355  final Face face = map.getFace(x, y, l);
356  if (face != null) {
357  if (!firstFace) {
358  sb.append(',');
359  }
360  sb.append('H');
361  sb.append(l);
362  sb.append('=');
363  sb.append(face.getFaceName());
364  firstFace = false;
365  }
366 
367  final CfMapSquare headMapSquare = map.getHeadMapSquare(x, y, l);
368  if (headMapSquare != null) {
369  final Face headFace = headMapSquare.getFace(l);
370  if (!firstFace) {
371  sb.append(',');
372  }
373  sb.append('T');
374  sb.append(l);
375  sb.append('=');
376  sb.append(headFace == null ? "null" : headFace.getFaceName());
377  firstFace = false;
378  }
379  }
380  sb.append(']');
381  }
382  sb.append('\n');
383  }
384  }
385  return sb.toString();
386  }
387 
395  private static void defineFace(@NotNull final FaceCache faceCache, final int faceNum, @NotNull final String faceName, final byte @NotNull [] data) {
396  final Face face = new Face(faceNum, faceName, 0);
397  faceCache.addFace(face);
398 
399  final ImageIcon originalImageIcon;
400  try {
401  originalImageIcon = new ImageIcon(data);
402  } catch (final IllegalArgumentException ex) {
403  Assert.fail("Invalid .png data for face "+face+": "+ex.getMessage());
404  throw new AssertionError(ex);
405  }
406 
407  if (originalImageIcon.getIconWidth() <= 0 || originalImageIcon.getIconHeight() <= 0) {
408  Assert.fail("Invalid .png size for face "+face);
409  throw new AssertionError();
410  }
411 
412  final FaceImages faceImages = FaceImagesUtils.newFaceImages(originalImageIcon);
413  face.setFaceImages(faceImages);
414  }
415 
416 }
com.realtime.crossfire.jxclient
com.realtime.crossfire.jxclient.faces.Face.getFaceName
String getFaceName()
Definition: Face.java:124
com.realtime.crossfire.jxclient.faces.FaceImagesUtils.newFaceImages
static FaceImages newFaceImages(@NotNull final ImageIcon originalImageIcon)
Definition: FaceImagesUtils.java:51
com.realtime.crossfire.jxclient.map.CfAnimations
Definition: CfAnimations.java:46
com.realtime.crossfire.jxclient.map.MapUpdaterState.mapEnd
void mapEnd()
Definition: MapUpdaterState.java:319
com.realtime.crossfire.jxclient.map.MapUpdaterState.newMap
void newMap(final int mapWidth, final int mapHeight)
Definition: MapUpdaterState.java:377
com.realtime.crossfire.jxclient.map.MapUpdaterState.mapScroll
void mapScroll(final int dx, final int dy)
Definition: MapUpdaterState.java:344
com.realtime.crossfire.jxclient.map.MapUpdaterStateTest.testDisplayArtifacts2
void testDisplayArtifacts2()
Definition: MapUpdaterStateTest.java:249
com.realtime.crossfire.jxclient.items.ItemSet
Definition: ItemSet.java:44
com.realtime.crossfire.jxclient.map.MapUpdaterStateTest
Definition: MapUpdaterStateTest.java:43
com.realtime.crossfire.jxclient.map.CfMap
Definition: CfMap.java:46
com.realtime.crossfire.jxclient.faces
Definition: AbstractFaceQueue.java:23
com.realtime.crossfire.jxclient.map.MapUpdaterStateTest.testDisplayArtifacts3
void testDisplayArtifacts3()
Definition: MapUpdaterStateTest.java:276
com.realtime.crossfire.jxclient.protocol
Definition: MagicMap.java:23
com.realtime.crossfire.jxclient.map.Location
Definition: Location.java:32
com.realtime.crossfire.jxclient.map.MapUpdaterStateTest.defineFace
static void defineFace(@NotNull final FaceCache faceCache, final int faceNum, @NotNull final String faceName, final byte @NotNull[] data)
Definition: MapUpdaterStateTest.java:395
com.realtime.crossfire.jxclient.protocol.Map2.NUM_LAYERS
int NUM_LAYERS
Definition: Map2.java:34
com.realtime.crossfire.jxclient.faces.Face.toString
String toString()
Definition: Face.java:138
com.realtime.crossfire.jxclient.map.MapUpdaterStateTest.PNG32X32
static final byte[] PNG32X32
Definition: MapUpdaterStateTest.java:48
com.realtime.crossfire.jxclient.map.MapUpdaterStateTest.testFogOfWar1
void testFogOfWar1()
Definition: MapUpdaterStateTest.java:122
com.realtime.crossfire.jxclient.map.MapUpdaterStateTest.toString
static String toString(@NotNull final CfMap map, final int x0, final int y0, final int w, final int h)
Definition: MapUpdaterStateTest.java:339
com.realtime.crossfire.jxclient.animations
Definition: Animation.java:23
com.realtime.crossfire.jxclient.map.MapUpdaterState
Definition: MapUpdaterState.java:49
com.realtime.crossfire.jxclient.map.MapUpdaterState.tick
void tick(final int tickNo)
Definition: MapUpdaterState.java:431
com.realtime.crossfire.jxclient.protocol.Map2
Definition: Map2.java:29
com.realtime.crossfire.jxclient.map.MapUpdaterStateTest.testDisplayArtifacts1
void testDisplayArtifacts1()
Definition: MapUpdaterStateTest.java:158
com.realtime.crossfire.jxclient.map.CfMapSquare.getFace
Face getFace(final int layer)
Definition: CfMapSquare.java:278
com.realtime.crossfire.jxclient.faces.TestFacesManager
Definition: TestFacesManager.java:34
com.realtime.crossfire.jxclient.faces.Face.setFaceImages
void setFaceImages(@NotNull final FaceImages faceImages)
Definition: Face.java:92
com.realtime.crossfire.jxclient.map.CfMapSquare.getHeadMapSquare
CfMapSquare getHeadMapSquare(final int layer)
Definition: CfMapSquare.java:307
com.realtime.crossfire.jxclient.faces.FacesManager
Definition: FacesManager.java:40
com.realtime.crossfire.jxclient.map.MapUpdaterState.mapFace
void mapFace(@NotNull final Location location, final int faceNum)
Definition: MapUpdaterState.java:243
com.realtime.crossfire
com.realtime
com.realtime.crossfire.jxclient.map.MapUpdaterState.mapBegin
Object mapBegin()
Definition: MapUpdaterState.java:228
com
com.realtime.crossfire.jxclient.map.MapUpdaterStateTest.PNG128X256
static final byte[] PNG128X256
Definition: MapUpdaterStateTest.java:86
com.realtime.crossfire.jxclient.map.MapUpdaterState.mapClear
void mapClear(final int x, final int y)
Definition: MapUpdaterState.java:233
com.realtime.crossfire.jxclient.animations.Animations
Definition: Animations.java:38
com.realtime.crossfire.jxclient.items
Definition: AbstractItemView.java:23
com.realtime.crossfire.jxclient.faces.FaceCache
Definition: FaceCache.java:33
com.realtime.crossfire.jxclient.faces.FaceImagesUtils
Definition: FaceImagesUtils.java:36
com.realtime.crossfire.jxclient.faces.Face
Definition: Face.java:37
com.realtime.crossfire.jxclient.map.CfMapSquare
Definition: CfMapSquare.java:40
com.realtime.crossfire.jxclient.faces.FaceImages
Definition: FaceImages.java:32
com.realtime.crossfire.jxclient.map.MapUpdaterState.getMap
CfMap getMap()
Definition: MapUpdaterState.java:406
com.realtime.crossfire.jxclient.map.MapUpdaterStateTest.PNG64X64
static final byte[] PNG64X64
Definition: MapUpdaterStateTest.java:66