├── .gitattributes ├── .gitignore ├── LICENSE ├── README.md ├── example ├── Makefile ├── maps │ ├── door.tx │ ├── raytmx-example.tiled-project │ └── raytmx-example.tmx ├── raytmx-example.c ├── raytmx-example.gif ├── raytmx-example.sln ├── raytmx-example.vcxproj ├── raytmx-example.vcxproj.filters ├── tests │ ├── MagicLand.tmx │ ├── MagicLand_uncompressed.tmx │ ├── collection_of_images_tileset.tmx │ ├── desert.tmx │ ├── gameart2d-desert.png │ ├── gameart2d-desert.tmx │ ├── gameart2d-desert_grouped.tmx │ ├── image_layers.tmx │ ├── image_layers_no_repeat.png │ ├── image_layers_repeat_both.png │ ├── image_layers_repeat_x.png │ ├── image_layers_repeat_y.png │ ├── jb-32-Tileset.png │ ├── jb-32.tmx │ ├── jb-32_grouped.tmx │ ├── level25-Tileset.png │ ├── level25.tmx │ ├── level25_unencoded.tmx │ ├── magiclanddizzy_tiles.gif │ ├── text.tmx │ └── tmw_desert_spacing.png └── tilesets │ ├── fade.png │ ├── grass.png │ ├── ruins.png │ ├── shadows.png │ ├── shadows.tsx │ ├── trees.png │ └── trees.tsx ├── external └── hoxml.h └── raytmx.h /.gitattributes: -------------------------------------------------------------------------------- 1 | *.h linguist-language=C 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Binaries 2 | *.o 3 | *.so 4 | *.a 5 | *.bin 6 | *.dll 7 | *.exe 8 | # Extension-less binary on *nix: 9 | example/raytmx-example 10 | 11 | # Visual Studio artifacts 12 | .vs/ 13 | .vscode/ 14 | *.rsuser 15 | *.suo 16 | *.user 17 | *.userosscache 18 | *.sln.docstates 19 | [Dd]ebug/ 20 | [Rr]elease/ 21 | x64/ 22 | x86/ 23 | [Bb]in/ 24 | [Oo]bj/ 25 | 26 | # Tiled artifacts 27 | *.tiled-session 28 | 29 | # OS thumbnail files 30 | [Tt]humbs.db 31 | *.DS_Store 32 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2024-2025 Luke Philipsen 2 | 3 | Permission to use, copy, modify, and/or distribute this software for 4 | any purpose with or without fee is hereby granted. 5 | 6 | THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL 7 | WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES 8 | OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE 9 | FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY 10 | DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN 11 | AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT 12 | OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # raytmx 2 | 3 | Header-only raylib library for loading and drawing Tiled's TMX tilemap documents. 4 | 5 | ![example/raytmx-example.gif](example/raytmx-example.gif) 6 | 7 | 8 | ## Features 9 | 10 | - Portable C99, tested with GCC (Windows and Linux) and MSVC 11 | - Supports external tilesets and object templates 12 | - Supports animations 13 | - Supports ZLIB and GZIP compression for tile layer data 14 | - Supports collision checks with Tile Collision Editor objects 15 | - Supports collision checks with object groups 16 | - Supports parallaxed scrolling of layers when a Camera2D is used 17 | - Supports unencoded tile layer data and Base64- and CSV-encoded data 18 | - Supports tile flipping flags and applies correct transforms 19 | - Supports single-image and collection of images tilesets 20 | - Supports drawing of all object types: ellipse, point, polygon, polyline, text, and tile objects 21 | - Supports word wrapping and all alignment options, including horizontal justification, of text objects 22 | 23 | 24 | ## Limitations 25 | 26 | - Only the orthogonal orientation is supported; isometric, staggered, and hexagonal are not 27 | - JSON, which can optionally be used by Tiled, is not currently implemented 28 | - ZStandard-compressed layer data decompression is not implemented 29 | - Ellipses are currently treated as rectangles when doing collision checks 30 | - Wangsets are not implemented 31 | - Infinite maps are not supported and are treated as fixed-size 32 | - Object rotations are parsed but currently ignored when drawing 33 | - Tile object alignment (i.e. placement of tiles when used as objects) is parsed but currently ignored when drawing 34 | - Text drawing is limited to raylib's default font although the desired font is available as a string 35 | - Text drawing does not support bold, italics, underline, or strikeout styling 36 | - Polygon objects currently may fail to draw if their vertices are not defined in counter-clockwise order 37 | - Concave polygon objects may not be drawn correctly due to drawing with fan triangulation from the centroid 38 | - Image transparency colors are parsed but their use is not implemented 39 | - Nested `` are not supported; they are merged into a single list of properties 40 | 41 | 42 | ## Usage 43 | 44 | Define the implementation before including *raytmx*. 45 | ``` c 46 | #define RAYTMX_IMPLEMENTATION 47 | #include "raytmx.h" 48 | ``` 49 | As usual with header-only libraries, the implementation's definition can be limited to just a single file. This will depend on your specific build configuration. 50 | 51 | Loading and unloading follows raylib's patterns. 52 | ```c 53 | TmxMap* LoadTMX(const char* fileName); 54 | void UnloadTMX(TmxMap* map); 55 | ``` 56 | 57 | Drawing also follows raylib's patterns. 58 | ```c 59 | void DrawTMX(const TmxMap* map, const Camera2D* camera, int posX, int posY, Color tint); 60 | void DrawTMXLayers(const TmxMap* map, const Camera2D* camera, const TmxLayer* layers, uint32_t layersLength, int posX, 61 | int posY, Color tint); 62 | ``` 63 | 64 | Animating a TMX is done by calling a specific function once per frame. 65 | ```c 66 | void AnimateTMX(TmxMap* map); 67 | ``` 68 | 69 | Collision checks also follow raylib's patterns. 70 | ```c 71 | bool CheckCollisionTMXObjects(TmxObject object1, TmxObject object2); 72 | bool CheckCollisionTMXTileLayersRec(const TmxMap* map, const TmxLayer* layers, uint32_t layersLength, Rectangle rec, 73 | TmxObject* outputObject); 74 | bool CheckCollisionTMXTileLayersCircle(const TmxMap* map, const TmxLayer* layers, uint32_t layersLength, Vector2 center, 75 | float radius, TmxObject* outputObject); 76 | bool CheckCollisionTMXTileLayersPoint(const TmxMap* map, const TmxLayer* layers, uint32_t layersLength, Vector2 point, 77 | TmxObject* outputObject); 78 | bool CheckCollisionTMXLayersPoly(const TmxMap* map, const TmxLayer* layers, uint32_t layersLength, Vector2* points, 79 | int pointCount, TmxObject* outputObject); 80 | bool CheckCollisionTMXLayersPolyEx(const TmxMap* map, const TmxLayer* layers, uint32_t layersLength, Vector2* points, 81 | int pointCount, Rectangle aabb, TmxObject* outputObject); 82 | bool CheckCollisionTMXObjectGroupRec(TmxObjectGroup group, Rectangle rec, TmxObject* outputObject); 83 | bool CheckCollisionTMXObjectGroupCircle(TmxObjectGroup group, Vector2 center, float radius, TmxObject* outputObject); 84 | bool CheckCollisionTMXObjectGroupPoint(TmxObjectGroup group, Vector2 point, TmxObject* outputObject); 85 | bool CheckCollisionTMXObjectGroupPoly(TmxObjectGroup group, Vector2* points, int pointCount, TmxObject* outputObject); 86 | bool CheckCollisionTMXObjectGroupPolyEx(TmxObjectGroup group, Vector2* points, int pointCount, Rectangle aabb, 87 | TmxObject* outputObject); 88 | ``` 89 | Although raytmx doesn't do anything that would be considered collision response, the objects collided with are provided 90 | as optional output variables, *outputObject*, to allow for it. 91 | 92 | An example program that uses all of the above features is included. 93 | 94 | A more minimal example program would look like: 95 | ```c 96 | #include /* NULL */ 97 | #include /* EXIT_FAILURE, EXIT_SUCCESS */ 98 | 99 | #include "raylib.h" 100 | 101 | #define RAYTMX_IMPLEMENTATION 102 | #include "raytmx.h" 103 | 104 | int main(int argc, char **argv) { 105 | /* This map makes use of many TMX features making it useful for demonstrations. It will be adjacent to the */ 106 | /* executable once built. */ 107 | const char* tmx = "maps/raytmx-example.tmx"; 108 | 109 | /* Configure the window with a resolution and title. This example will also target 60 frames per second. */ 110 | const int screenWidth = 1024, screenHeight = 768; 111 | const float panSpeed = 150.0f; 112 | InitWindow(screenWidth, screenHeight, "raytmx example"); 113 | SetTargetFPS(60); 114 | 115 | /* Load the map. If loading fails, NULL will be returned and details will be TraceLog()'d. */ 116 | TmxMap* map = LoadTMX(tmx); 117 | if (map == NULL) { 118 | TraceLog(LOG_ERROR, "Failed to load TMX \"%s\"", tmx); 119 | return EXIT_FAILURE; 120 | } 121 | 122 | /* Create a camera for efficient panning and zooming. The initial target will be the center of the map. */ 123 | Camera2D camera; 124 | camera.zoom = 6.0f; 125 | camera.target.x = (float)(map->width * map->tileWidth) / 2.0f; 126 | camera.target.y = (float)(map->height * map->tileHeight) / 2.0f; 127 | camera.offset.x = (float)screenWidth / 2.0f; 128 | camera.offset.y = (float)screenHeight / 2.0f; 129 | camera.rotation = 0.0f; 130 | 131 | while (WindowShouldClose() == false) { 132 | if (IsKeyDown(KEY_RIGHT)) 133 | camera.target.x += panSpeed * GetFrameTime(); 134 | if (IsKeyDown(KEY_LEFT)) 135 | camera.target.x -= panSpeed * GetFrameTime(); 136 | if (IsKeyDown(KEY_DOWN)) 137 | camera.target.y += panSpeed * GetFrameTime(); 138 | if (IsKeyDown(KEY_UP)) 139 | camera.target.y -= panSpeed * GetFrameTime(); 140 | if (IsKeyDown(KEY_KP_ADD)) 141 | camera.zoom += camera.zoom < 10.0f ? 0.25f : 0.0f; 142 | if (IsKeyDown(KEY_KP_SUBTRACT)) 143 | camera.zoom -= camera.zoom > 1.0f ? 0.25f : 0.0f; 144 | 145 | BeginDrawing(); 146 | { 147 | ClearBackground(BLACK); 148 | BeginMode2D(camera); 149 | { 150 | AnimateTMX(map); 151 | DrawTMX(map, &camera, 0, 0, WHITE); 152 | } 153 | EndMode2D(); 154 | DrawFPS(10, 10); 155 | } 156 | EndDrawing(); 157 | } 158 | 159 | UnloadTMX(map); 160 | CloseWindow(); 161 | 162 | return EXIT_SUCCESS; 163 | } 164 | 165 | ``` 166 | 167 | 168 | ## Dependency 169 | 170 | *raytmx* depends on [hoxml](https://github.com/luphi/hoxml) for XML parsing and raylib for its graphical, file system, and time utilities. 171 | -------------------------------------------------------------------------------- /example/Makefile: -------------------------------------------------------------------------------- 1 | # Define required environment variables 2 | #----------------------------------------------------------------------------------------------------------------------- 3 | # Path to raylib's folder with headers and binaries 4 | RAYLIB_PATH ?= C:/raylib/raylib 5 | # Define target platform: PLATFORM_DESKTOP, PLATFORM_RPI, PLATFORM_DRM, PLATFORM_ANDROID, PLATFORM_WEB 6 | PLATFORM ?= PLATFORM_DESKTOP 7 | # Library type compilation: STATIC (.a) or SHARED (.so/.dll) 8 | RAYLIB_LIBTYPE ?= STATIC 9 | # Build mode for project: DEBUG or RELEASE 10 | BUILD_MODE ?= DEBUG 11 | # Define raylib release directory for compiled library 12 | RAYLIB_RELEASE_PATH ?= $(RAYLIB_PATH)/src 13 | # Define the C(++) standard: c99 or c++11 expected 14 | STD ?= c99 15 | 16 | # Determine the OS: PLATFORM_OS 17 | #----------------------------------------------------------------------------------------------------------------------- 18 | ifeq ($(OS),Windows_NT) 19 | PLATFORM_OS = WINDOWS 20 | else 21 | # Use the 'uname' tool to get the kernel's name 22 | UNAMEOS = $(shell uname) 23 | # If one of the many flavors of Linux 24 | ifeq ($(UNAMEOS),Linux) 25 | PLATFORM_OS = LINUX 26 | # If macOS 10+ 27 | else ifeq ($(UNAMEOS),Darwin) 28 | PLATFORM_OS = OSX 29 | endif 30 | endif 31 | 32 | # Name of the resulting executable: EXE 33 | #----------------------------------------------------------------------------------------------------------------------- 34 | # *.exe for Windows, extensionless for everything else 35 | ifeq ($(PLATFORM_OS),WINDOWS) 36 | EXE = raytmx-example.exe 37 | else 38 | EXE = raytmx-example 39 | endif 40 | 41 | # Define default C compiler: CC 42 | #----------------------------------------------------------------------------------------------------------------------- 43 | ifeq ($(STD),c99) 44 | CC = gcc 45 | else ifeq ($(STD),c++11) 46 | CC = g++ 47 | endif 48 | 49 | # Define compiler flags: CFLAGS 50 | #----------------------------------------------------------------------------------------------------------------------- 51 | # -std=$(STD) defines the C or C++ language mode ( 52 | # -Wall turns on most, but not all, compiler warnings 53 | # -Wno-missing-braces ignore invalid warning (GCC bug 53119) 54 | # -O0, -O2 defines optimization level 55 | CFLAGS = -std=$(STD) -Wall -Wno-missing-braces 56 | 57 | ifeq ($(STD),c99) 58 | # -D_DEFAULT_SOURCE use with -std=c99 on Linux and PLATFORM_WEB, required for timespec 59 | CFLAGS += -D_DEFAULT_SOURCE 60 | endif 61 | 62 | ifeq ($(BUILD_MODE),DEBUG) 63 | # -g include debug symbols 64 | # -DDEBUG equivalent to "#define DEBUG" 65 | CFLAGS += -O0 -g -DDEBUG 66 | else 67 | # -s strip unnecessary data from build 68 | CFLAGS += -O2 -s 69 | endif 70 | 71 | # Define include paths for required headers: INCLUDE_PATHS 72 | #----------------------------------------------------------------------------------------------------------------------- 73 | INCLUDE_PATHS = -I$(RAYLIB_PATH)/src \ 74 | -I$(RAYLIB_PATH)/src/external \ 75 | -I$(RAYLIB_PATH)/src/extras \ 76 | -I../external \ 77 | -I.. 78 | 79 | # Define library paths containing required libs: LDFLAGS 80 | #----------------------------------------------------------------------------------------------------------------------- 81 | LDFLAGS = -L. -L$(RAYLIB_RELEASE_PATH) -L$(RAYLIB_PATH)/src 82 | ifeq ($(PLATFORM_OS),WINDOWS) 83 | # NOTE: The resource .rc file contains windows executable icon and properties 84 | #LDFLAGS += $(RAYLIB_PATH)/src/raylib.rc.data 85 | ifeq ($(BUILD_MODE),RELEASE) 86 | # -Wl,--subsystem,windows hides the console window 87 | LDFLAGS += -Wl,--subsystem,windows 88 | endif 89 | endif 90 | 91 | # Define libraries required on linking: LDLIBS 92 | # NOTE: To link libraries (lib.so or lib.a), use -l 93 | #----------------------------------------------------------------------------------------------------------------------- 94 | ifeq ($(PLATFORM_OS),WINDOWS) 95 | # Libraries for Windows desktop compilation 96 | # NOTE: WinMM library required to set high-res timer resolution 97 | LDLIBS = -lraylib -lopengl32 -lgdi32 -lwinmm 98 | else ifeq ($(PLATFORM_OS),LINUX) 99 | # Libraries for Debian GNU/Linux desktop compiling 100 | # NOTE: Required packages: libegl1-mesa-dev 101 | LDLIBS = -lraylib -lGL -lm -lpthread -ldl -lrt -lX11 102 | # On Wayland windowing system, additional libraries are required 103 | ifeq ($(USE_WAYLAND_DISPLAY),TRUE) 104 | LDLIBS += -lwayland-client -lwayland-cursor -lwayland-egl -lxkbcommon 105 | endif 106 | else ifeq ($(PLATFORM_OS),OSX) 107 | # Libraries for macOS 10+ desktop compiling 108 | # NOTE: Required packages: libopenal-dev libegl1-mesa-dev 109 | LDLIBS = -lraylib -framework OpenGL -framework Cocoa -framework IOKit -framework CoreAudio -framework CoreVideo 110 | endif 111 | 112 | # Define source files and the object files to build from them 113 | #----------------------------------------------------------------------------------------------------------------------- 114 | SRCS = raytmx-example.c 115 | OBJS = $(SRCS:.c=.o) 116 | 117 | # Targets 118 | #----------------------------------------------------------------------------------------------------------------------- 119 | # Default target entry 120 | all: $(EXE) 121 | 122 | # Executable, depends on objects 123 | $(EXE): $(OBJS) 124 | $(CC) -o $(EXE) $(OBJS) $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) 125 | 126 | # Compile source file(s) 127 | # NOTE: This pattern will compile every module defined on $(OBJS) 128 | %.o: %.c 129 | $(CC) -c $< -o $@ $(CFLAGS) $(INCLUDE_PATHS) -D$(PLATFORM) 130 | 131 | # Remove the products of this build script 132 | clean: 133 | rm -fv *.o $(EXE) 134 | -------------------------------------------------------------------------------- /example/maps/door.tx: -------------------------------------------------------------------------------- 1 | 2 | 12 | -------------------------------------------------------------------------------- /example/maps/raytmx-example.tiled-project: -------------------------------------------------------------------------------- 1 | { 2 | "automappingRulesFile": "", 3 | "commands": [ 4 | ], 5 | "compatibilityVersion": 1100, 6 | "extensionsPath": "extensions", 7 | "folders": [ 8 | "." 9 | ], 10 | "propertyTypes": [ 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /example/maps/raytmx-example.tmx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | raytmx 220 | 221 | 222 | 223 | 224 | 225 | eJztzsEJACAMBMHrH3zYUUqzhjwEMTOw/00AgOl2Up1u/6xmfvz48ePHzws/AAAA/OEAXzNfHQ== 226 | 227 | 228 | 229 | 230 | eJzt1OEJgzAQQOGT6690CUfpKB0toziKo3jXGBULQpF6Ed4HB4KCjyREBAAA4D6eIoOWEZ+HPUf2JJFRS5e3fCaC/Tdbi6/J4E1BGQtdW5own5Uc3VFZS6/BZ3fL9ilrW+szWlMf3VH5+UltrY/v1yu6o0rlTn5Hd1TzXYgGdZs5880/evb/PHp3Zc/R0EPPLz1Xo+dePQAA4NsEpjkNmw== 231 | 232 | 233 | 234 | 235 | eJzt0kEKgDAQQ9Ee1aPkUha8nQUpzKJWZpFx8x90NYEEsTUAAAAAAACvM5eVa0foyGTl2hE6Mlm5doSOTFauHaEjk5VrR+h4dY3+cT/m6z/vqfgei87dTVU7QufupqodU396j9Wr+F8AAMC3G12lHh4= 236 | 237 | 238 | 239 | 240 | eJztzssJgEAQRMHNcv0kM6HbooIJyHiogoaF2cMbAwAAAPjCzJbuiJfunjXbsv1eWmpe7zqXW+VPdXU9PV0dAADAPxzUzwr1 241 | 242 | 243 | 244 | 245 | eJzt1MsNgzAQBNAtJaVQCqVQCn0AkfkoSVkZFEAWApMLnj3MkyzL+OCR14uZiIiIiD8jxpRY5/bG+EQ51jWblxzeXL2X3O/pqk6sOrL7apXqK0bGVD2YPee9Xqx8ZzXx8n/szUp2hlhLzNOZ1e0vwzbCsod7qvZ7d8MZdYZj/qY8aU9/eUKDecDbjb/h3gLmIneeuV7osbmXNq+orxh5MB6Eow95yyMiIiL+fQFwAERb 246 | 247 | 248 | 249 | 250 | eJzt0TEKACAMBMH8/1sK+iwt7S3CwQxcvyRVAADwb9zN7ojHutvdEaH8MusGSa0AAACQ4AD0ZAxZ 251 | 252 | 253 | 254 | 255 | 256 | 257 | eJztzjEKgDAQRcHcwINopZV6/3uZRoQgiykSkMzAb7JFXkoAwOjmvKVira0d/qjx556tWcVDT0xPTE9MT2zPO4rdyvezQ8/0si+3UXoAAAD+4gLS4Alx 258 | 259 | 260 | 261 | 262 | eJzt0ksKgDAMRVGX4A/8DawTdf8rtIMUSikVIikO7oGQkmYUXtMAAAAAAICvnNGu1mW0q+WMdrW4T9nf7nP46nyN0WyQ2S69z+xYuX3NvrZotsrslL5kdqw45Z+VUiZq5CUVstJKj9818pIKWZmkx+8aeQEAAO8eLy0Fbw== 263 | 264 | 265 | 266 | 267 | 268 | 269 | eJzt1DEOACEIRFHvf721ddv1GNKQ2IDFJozFfwkFHXHA1gAAgMJj1ZO+2rB6tzm8V/ms5jaH92q3zHHal+p9Ou1L9T55TtE7VOeY3ZXi9rO7Utx+lpfi5qK8VP90lJfqn44yueV/BAAAAADgrwUVRDkc 270 | 271 | 272 | 273 | 274 | eJzt0zEKwDAMA8D8/3vp2qztM+oxk8kmKHeg3Uh4DAAATszKlT5ic1dW+ojNU3nTRxyyZd9BYsuug8ReXQd+DwAAAP7tA/IPFMU= 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | 332 | -------------------------------------------------------------------------------- /example/raytmx-example.c: -------------------------------------------------------------------------------- 1 | #include /* atan2f(), cosf(), sinf() */ 2 | #include /* NULL */ 3 | #include /* EXIT_FAILURE, EXIT_SUCCESS */ 4 | #include /* strcmp() */ 5 | 6 | #include "raylib.h" 7 | 8 | #define RAYTMX_IMPLEMENTATION 9 | #include "raytmx.h" 10 | 11 | /* Collision checks can either be done with the objects associated with a tile via the Tile Collision Editor or, if */ 12 | /* this preprocessor is set to true, the object group within the TMX with the following name */ 13 | #define CHECK_COLLISION_OBJECT_GROUP false 14 | #define COLLISION_OBJECT_GROUP_NAME "Walls" 15 | 16 | /* The example TMX has an object group for doors, portals, etc. typical for games and within it is a spawn door. That */ 17 | /* object group and spawn object have the following names. */ 18 | #define DOORS_OBJECT_GROUP_NAME "Doors" 19 | #define SPAWN_DOOR_NAME "spawn" 20 | 21 | #define SCREEN_WIDTH_IN_PIXELS 1024 22 | #define SCREEN_HEIGHT_IN_PIXELS 768 23 | #define PLAYER_SPEED_IN_PIXELS_PER_SECOND 50.0f 24 | #define POLYGON_POINTS_COUNT 6 25 | 26 | Vector2 polygonCenter = {0.0f}; 27 | Vector2 polygonPoints[POLYGON_POINTS_COUNT] = {{0.0f}}; 28 | Rectangle polygonAabb = {0.0f}; 29 | float polygonRadius = 0.0f; 30 | 31 | void CreatePolygon(Vector2 center, float radius) { 32 | polygonCenter = center; /* Global variable */ 33 | polygonRadius = radius; /* Global variable */ 34 | polygonAabb = (Rectangle) { /* Global variable */ 35 | .x = center.x - radius, 36 | .y = center.y - radius, 37 | .width = 2.0f * radius, 38 | .height = 2.0f * radius 39 | }; 40 | float theta = 0.0f; 41 | float dTheta = 2.0f * PI / (float)POLYGON_POINTS_COUNT; 42 | for (int i = 0; i < POLYGON_POINTS_COUNT; i++) { 43 | polygonPoints[i].x = center.x + (radius * cosf(theta)); 44 | polygonPoints[i].y = center.y + (radius * sinf(theta)); 45 | theta += dTheta; 46 | } 47 | } 48 | 49 | void TranslatePolygon(float dx, float dy) { 50 | /* Translate the center point */ 51 | polygonCenter.x += dx; 52 | polygonCenter.y += dy; 53 | /* Translate each vertex */ 54 | for (int i = 0; i < POLYGON_POINTS_COUNT; i++) { 55 | polygonPoints[i].x += dx; 56 | polygonPoints[i].y += dy; 57 | } 58 | /* Translate the AABB */ 59 | polygonAabb.x += dx; 60 | polygonAabb.y += dy; 61 | } 62 | 63 | int main(int argc, char **argv) { 64 | /* This map makes use of many TMX features making it useful for demonstrations. It will be adjacent to the */ 65 | /* executable once built. */ 66 | const char* tmx = "maps/raytmx-example.tmx"; 67 | 68 | /* Configure the window with a resolution and title. This example will also target 60 frames per second. */ 69 | InitWindow(SCREEN_WIDTH_IN_PIXELS, SCREEN_HEIGHT_IN_PIXELS, "raytmx example"); 70 | SetTargetFPS(60); 71 | 72 | /* Load the map. If loading fails, NULL will be returned and details will be TraceLog()'d. */ 73 | TmxMap* map = LoadTMX(tmx); 74 | if (map == NULL) { 75 | TraceLog(LOG_ERROR, "Failed to load TMX \"%s\"", tmx); 76 | return EXIT_FAILURE; 77 | } 78 | 79 | /* Create a camera for efficient panning and zooming. The initial target will be the center of the map. */ 80 | Camera2D camera; 81 | camera.zoom = 6.0f; 82 | camera.target.x = (float)(map->width * map->tileWidth) / 2.0f; 83 | camera.target.y = (float)(map->height * map->tileHeight) / 2.0f; 84 | camera.offset.x = (float)SCREEN_WIDTH_IN_PIXELS / 2.0f; 85 | camera.offset.y = (float)SCREEN_HEIGHT_IN_PIXELS / 2.0f; 86 | camera.rotation = 0.0f; 87 | 88 | #if CHECK_COLLISION_OBJECT_GROUP 89 | /* Loop through the layers to look for two things: 1) The object group that will determine where we can and */ 90 | /* cannot go, and 2) the "spawn" door within the "Doors" object group where the player should spawn. */ 91 | TmxObjectGroup wallsObjectGroup = {}; 92 | for (size_t i = 0; i < map->layersLength; i++) { 93 | TmxLayer layer = map->layers[i]; 94 | if (strcmp(layer.name, COLLISION_OBJECT_GROUP_NAME) == 0 && layer.type == LAYER_TYPE_OBJECT_GROUP) { 95 | wallsObjectGroup = layer.exact.objectGroup; 96 | break; 97 | } 98 | } 99 | #endif 100 | 101 | /* Create a default player at the center of the map in case the expected layer doesn't exist */ 102 | Vector2 mapCenter = { 103 | .x = (float)(map->width * map->tileWidth) / 2.0f, 104 | .y = (float)(map->height * map->tileHeight) / 2.0f 105 | }; 106 | CreatePolygon(/* center: */ mapCenter, /* radius: */ (float)map->tileWidth / 3.0f); 107 | 108 | /* Loop through layers to look for the spawn door of the appropriate object group. The player will spawn there. */ 109 | for (size_t i = 0; i < map->layersLength; i++) { 110 | TmxLayer layer = map->layers[i]; 111 | if (strcmp(layer.name, DOORS_OBJECT_GROUP_NAME) == 0 && layer.type == LAYER_TYPE_OBJECT_GROUP) { 112 | TmxObjectGroup group = layer.exact.objectGroup; 113 | for (size_t j = 0; j < group.objectsLength; j++) { 114 | TmxObject object = group.objects[j]; 115 | for (size_t k = 0; k < object.propertiesLength; k++) { 116 | TmxProperty property = object.properties[k]; 117 | if (strcmp(property.name, "name") == 0 && property.type == PROPERTY_TYPE_STRING && 118 | strcmp(property.stringValue, SPAWN_DOOR_NAME) == 0) { 119 | polygonCenter = (Vector2){(float)(object.x + (object.width / 2.0)), 120 | (float)(object.y + (object.height / 2.0))}; 121 | CreatePolygon(/* center: */ polygonCenter, /* radius: */ polygonRadius); 122 | camera.target = polygonCenter; /* Point the camera at the polygon's center */ 123 | break; /* Break from the innermost loop */ 124 | } 125 | } 126 | } 127 | } 128 | } 129 | 130 | while (WindowShouldClose() == false) { 131 | /* If one or more arrow key is pressed */ 132 | if (IsKeyDown(KEY_RIGHT) || IsKeyDown(KEY_LEFT) || IsKeyDown(KEY_DOWN) || IsKeyDown(KEY_UP)) { 133 | /* Create a velocity vector with a magnitude equal to the player's allowed speed */ 134 | Vector2 velocityVector = {0.0f}; 135 | if (IsKeyDown(KEY_RIGHT)) 136 | velocityVector.x += 1.0f; 137 | if (IsKeyDown(KEY_LEFT)) 138 | velocityVector.x -= 1.0f; 139 | if (IsKeyDown(KEY_DOWN)) 140 | velocityVector.y += 1.0f; 141 | if (IsKeyDown(KEY_UP)) 142 | velocityVector.y -= 1.0f; 143 | float theta = atan2f(velocityVector.y, velocityVector.x); /* Angle, in radians, of the velocity vector */ 144 | velocityVector.x = cosf(theta) * PLAYER_SPEED_IN_PIXELS_PER_SECOND * GetFrameTime(); 145 | velocityVector.y = sinf(theta) * PLAYER_SPEED_IN_PIXELS_PER_SECOND * GetFrameTime(); 146 | 147 | /* Translate the player one axis at a time. If this movement leads the player to hit a wall, revert the */ 148 | /* player's position for just that axis. */ 149 | TranslatePolygon(velocityVector.x, 0.0f); 150 | #if CHECK_COLLISION_OBJECT_GROUP 151 | if (CheckCollisionTMXObjectGroupPoly(wallsObjectGroup, polygonPoints, POLYGON_POINTS_COUNT, NULL)) 152 | #else 153 | if (CheckCollisionTMXLayersPolyEx(map, map->layers, map->layersLength, polygonPoints, POLYGON_POINTS_COUNT, 154 | polygonAabb, NULL)) 155 | #endif 156 | TranslatePolygon(-velocityVector.x, 0.0f); /* Undo the X translation */ 157 | TranslatePolygon(0.0f, velocityVector.y); 158 | #if CHECK_COLLISION_OBJECT_GROUP 159 | if (CheckCollisionTMXObjectGroupPoly(wallsObjectGroup, polygonPoints, POLYGON_POINTS_COUNT, NULL)) 160 | #else 161 | if (CheckCollisionTMXLayersPolyEx(map, map->layers, map->layersLength, polygonPoints, POLYGON_POINTS_COUNT, 162 | polygonAabb, NULL)) 163 | #endif 164 | TranslatePolygon(0.0f, -velocityVector.y); /* Undo the Y translation */ 165 | /* Move the camera such that the player's center is in the center of the screen */ 166 | camera.target = polygonCenter; 167 | } 168 | 169 | if (IsKeyDown(KEY_KP_ADD)) 170 | camera.zoom += camera.zoom < 10.0f ? 0.25f : 0.0f; 171 | if (IsKeyDown(KEY_KP_SUBTRACT)) 172 | camera.zoom -= camera.zoom > 1.0f ? 0.25f : 0.0f; 173 | 174 | BeginDrawing(); 175 | { 176 | ClearBackground(BLACK); 177 | BeginMode2D(camera); 178 | { 179 | /* Progress the animated tiles */ 180 | AnimateTMX(map); 181 | /* Draw the visible part of the map */ 182 | DrawTMX(map, &camera, 0, 0, WHITE); 183 | /* Draw the "player" */ 184 | DrawPoly(/* center: */ polygonCenter, /* sides: */ POLYGON_POINTS_COUNT, /* radius: */ polygonRadius, 185 | /* rotation: */ 0.0f, /* color: */ DARKBLUE); 186 | } 187 | EndMode2D(); 188 | DrawFPS(10, 10); 189 | } 190 | EndDrawing(); 191 | } 192 | 193 | UnloadTMX(map); 194 | CloseWindow(); 195 | 196 | return EXIT_SUCCESS; 197 | } 198 | -------------------------------------------------------------------------------- /example/raytmx-example.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luphi/raytmx/af926330f2f917c630f436ab37c5591568d54f39/example/raytmx-example.gif -------------------------------------------------------------------------------- /example/raytmx-example.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 17 4 | VisualStudioVersion = 17.8.34316.72 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "raytmx-example", "raytmx-example.vcxproj", "{B0459A2A-AE34-4B58-B106-1606073E9454}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|x64 = Debug|x64 11 | Debug|x86 = Debug|x86 12 | Release|x64 = Release|x64 13 | Release|x86 = Release|x86 14 | EndGlobalSection 15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 16 | {B0459A2A-AE34-4B58-B106-1606073E9454}.Debug|x64.ActiveCfg = Debug|x64 17 | {B0459A2A-AE34-4B58-B106-1606073E9454}.Debug|x64.Build.0 = Debug|x64 18 | {B0459A2A-AE34-4B58-B106-1606073E9454}.Debug|x86.ActiveCfg = Debug|Win32 19 | {B0459A2A-AE34-4B58-B106-1606073E9454}.Debug|x86.Build.0 = Debug|Win32 20 | {B0459A2A-AE34-4B58-B106-1606073E9454}.Release|x64.ActiveCfg = Release|x64 21 | {B0459A2A-AE34-4B58-B106-1606073E9454}.Release|x64.Build.0 = Release|x64 22 | {B0459A2A-AE34-4B58-B106-1606073E9454}.Release|x86.ActiveCfg = Release|Win32 23 | {B0459A2A-AE34-4B58-B106-1606073E9454}.Release|x86.Build.0 = Release|Win32 24 | EndGlobalSection 25 | GlobalSection(SolutionProperties) = preSolution 26 | HideSolutionNode = FALSE 27 | EndGlobalSection 28 | GlobalSection(ExtensibilityGlobals) = postSolution 29 | SolutionGuid = {B12E1F43-885F-41EB-BAE5-B69AA6CBE7EC} 30 | EndGlobalSection 31 | EndGlobal 32 | -------------------------------------------------------------------------------- /example/raytmx-example.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | Win32 7 | 8 | 9 | Release 10 | Win32 11 | 12 | 13 | Debug 14 | x64 15 | 16 | 17 | Release 18 | x64 19 | 20 | 21 | 22 | 17.0 23 | Win32Proj 24 | {b0459a2a-ae34-4b58-b106-1606073e9454} 25 | raytmxexample 26 | 10.0 27 | 28 | 29 | 30 | Application 31 | true 32 | v143 33 | Unicode 34 | 35 | 36 | Application 37 | false 38 | v143 39 | true 40 | Unicode 41 | 42 | 43 | Application 44 | true 45 | v143 46 | Unicode 47 | 48 | 49 | Application 50 | false 51 | v143 52 | true 53 | Unicode 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | D:\Code\raytmx;D:\Code\raytmx\external;$(IncludePath) 75 | true 76 | $(LibraryPath) 77 | 78 | 79 | 80 | Level3 81 | true 82 | WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) 83 | true 84 | 85 | 86 | Console 87 | true 88 | 89 | 90 | 91 | 92 | Level3 93 | true 94 | true 95 | true 96 | WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) 97 | true 98 | 99 | 100 | Console 101 | true 102 | true 103 | true 104 | 105 | 106 | 107 | 108 | Level3 109 | true 110 | _DEBUG;_CONSOLE;%(PreprocessorDefinitions) 111 | true 112 | 113 | 114 | Console 115 | true 116 | 117 | 118 | 119 | 120 | Level3 121 | true 122 | true 123 | true 124 | NDEBUG;_CONSOLE;%(PreprocessorDefinitions) 125 | true 126 | 127 | 128 | Console 129 | true 130 | true 131 | true 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | -------------------------------------------------------------------------------- /example/raytmx-example.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | 23 | 24 | Header Files 25 | 26 | 27 | 28 | 29 | Resource Files 30 | 31 | 32 | Resource Files 33 | 34 | 35 | Resource Files 36 | 37 | 38 | Resource Files 39 | 40 | 41 | Resource Files 42 | 43 | 44 | 45 | 46 | Resource Files 47 | 48 | 49 | Resource Files 50 | 51 | 52 | Resource Files 53 | 54 | 55 | Resource Files 56 | 57 | 58 | -------------------------------------------------------------------------------- /example/tests/MagicLand.tmx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 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 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | 332 | 333 | 334 | 335 | 336 | 337 | 338 | 339 | 340 | 341 | 342 | 343 | 344 | 345 | 346 | 347 | 348 | 349 | 350 | 351 | 352 | 353 | 354 | 355 | 356 | 357 | 358 | 359 | 360 | 361 | 362 | 363 | 364 | 365 | 366 | 367 | 368 | 369 | 370 | 371 | 372 | 373 | 374 | 375 | 376 | 377 | 378 | 379 | 380 | 381 | 382 | 383 | 384 | 385 | 386 | 387 | 388 | 389 | 390 | 391 | 392 | 393 | 394 | 395 | 396 | 397 | 398 | 399 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 419 | 420 | 421 | 422 | 423 | 424 | 425 | 426 | 427 | 428 | 429 | 430 | 431 | 432 | 433 | 434 | 435 | 436 | 437 | 438 | 439 | 440 | 441 | 442 | 443 | 444 | 445 | 446 | 447 | 448 | 449 | 450 | 451 | 452 | 453 | 454 | 455 | 456 | 457 | 458 | 459 | 460 | 461 | 462 | 463 | 464 | 465 | 466 | 467 | 468 | 469 | 470 | 471 | 472 | 473 | 474 | 475 | 476 | 477 | 478 | 479 | 480 | 481 | 482 | 483 | 484 | 485 | 486 | 487 | 488 | 489 | 490 | 491 | 492 | 493 | 494 | 495 | 496 | 497 | 498 | 499 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 509 | 510 | 511 | 512 | 513 | 514 | 515 | 516 | 517 | 518 | 519 | -------------------------------------------------------------------------------- /example/tests/collection_of_images_tileset.tmx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 21 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 22 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 23 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 24 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 25 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 26 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 27 | 22,0,0,0,0,0,0,0,23,0,0,0,0,0,0,0,23,0,0,0,0,0,0,0,23,0,0,0,0,0,0,0,23,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0, 28 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 29 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 30 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 31 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 32 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 33 | 0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 34 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 35 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 36 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 37 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 38 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 39 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 40 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 41 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 42 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 43 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 44 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 45 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 46 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 47 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 48 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 49 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 50 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 51 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 52 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 53 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 54 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 55 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 56 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 57 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 58 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 59 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 60 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 61 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 62 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 63 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 64 | 0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 65 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 66 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 67 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 68 | 69 | 70 | 71 | -------------------------------------------------------------------------------- /example/tests/desert.tmx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,14,15,16,30,30,30,30,30,30,30,30,30,30,30,30,30, 76 | 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,14,15,16,30,30,30,30,30,30,30,30,30,30,30,30,30, 77 | 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,14,15,16,30,30,30,30,30,30,30,30,30,30,30,30,30, 78 | 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,22,23,24,30,30,30,30,30,30,30,30,30,30,30,30,30, 79 | 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,1,2,3,30,30,30,30,30,30,30,30,30,30,30,30,30, 80 | 30,30,30,30,30,30,30,30,30,30,30,25,26,26,26,26,26,26,26,26,26,26,26,27,9,10,11,30,30,30,30,30,30,30,30,30,30,30,30,30, 81 | 30,30,30,30,30,30,30,30,30,30,30,33,34,34,34,34,34,34,34,34,34,34,34,35,9,10,11,30,30,30,30,30,30,30,30,30,30,30,30,30, 82 | 30,30,30,30,30,30,30,30,30,30,30,33,34,36,42,37,34,34,34,34,34,34,34,35,9,10,11,30,30,30,30,30,30,30,30,30,30,30,30,30, 83 | 30,30,30,30,30,30,30,30,30,30,30,33,34,35,30,33,34,34,34,34,34,34,34,35,9,10,11,30,30,30,30,30,30,30,30,30,30,30,30,30, 84 | 30,30,30,30,30,30,30,30,30,30,30,33,34,35,30,33,34,34,34,34,34,34,34,35,9,10,11,30,30,30,30,30,30,30,30,30,30,30,30,30, 85 | 30,30,30,30,30,30,30,30,30,30,30,33,34,44,26,45,34,34,34,34,34,34,34,35,9,10,11,30,30,30,30,30,30,30,30,30,30,30,30,30, 86 | 30,30,30,30,30,30,30,30,30,30,30,33,34,34,34,34,34,34,34,36,42,37,34,35,9,10,11,30,30,30,30,30,30,30,30,30,30,30,30,30, 87 | 30,30,30,30,30,30,30,30,30,30,30,33,34,34,34,34,34,34,34,44,26,45,34,35,9,10,11,30,30,30,30,30,30,30,30,30,30,30,30,30, 88 | 30,30,30,30,30,30,30,30,30,30,30,33,34,34,34,34,34,34,34,34,34,34,34,35,9,10,11,30,30,30,30,30,30,30,30,30,30,30,30,30, 89 | 30,30,30,30,30,30,30,30,30,30,30,41,42,42,42,42,42,42,42,42,42,42,42,43,9,10,11,30,30,30,30,30,30,30,30,30,30,30,30,30, 90 | 7,7,8,1,2,2,2,2,2,2,2,2,3,1,2,2,2,2,2,2,2,2,2,2,29,10,11,30,30,30,30,30,30,30,30,30,30,30,30,30, 91 | 15,15,16,9,10,10,10,10,10,10,10,10,11,9,10,10,10,10,10,10,10,10,10,10,10,10,11,30,30,30,30,30,30,30,30,30,30,30,30,30, 92 | 23,23,24,17,18,18,18,18,18,18,18,18,19,17,18,18,18,18,18,18,18,18,18,18,18,18,19,30,30,30,30,30,30,30,30,30,30,30,30,30, 93 | 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30, 94 | 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30, 95 | 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,25,26,26,26,26,26,26,26,26,26,26,26,27,30, 96 | 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,33,34,34,34,34,34,34,34,34,36,42,37,35,30, 97 | 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,33,34,34,34,34,34,34,34,34,35,30,33,35,30, 98 | 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,33,34,34,34,34,34,34,34,34,35,30,33,35,30, 99 | 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,33,34,34,34,34,34,34,34,34,35,30,33,35,30, 100 | 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,33,34,34,34,34,34,34,34,34,44,26,45,35,30, 101 | 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,33,34,34,34,34,34,34,34,34,34,34,34,35,30, 102 | 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,33,34,34,34,34,34,34,34,34,34,34,34,35,30, 103 | 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,33,34,34,34,34,34,34,34,34,34,34,34,35,30, 104 | 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,41,42,42,42,42,42,42,42,42,42,42,42,43,30, 105 | 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30, 106 | 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30, 107 | 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30, 108 | 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30, 109 | 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30, 110 | 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30, 111 | 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30, 112 | 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30, 113 | 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30, 114 | 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30 115 | 116 | 117 | 118 | 119 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 120 | 0,0,0,0,0,0,39,0,0,0,0,38,0,0,0,0,0,0,0,0,32,0,0,39,0,47,0,0,0,0,0,0,0,0,0,0,31,0,0,0, 121 | 0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,47,0,0,0,0,0,0,0, 122 | 0,0,0,0,0,0,0,0,0,0,0,40,0,0,0,0,38,0,0,0,47,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 123 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 124 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48,0,0,0, 125 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48,0,0,0,0,0,0,0,0,0, 126 | 0,0,0,0,0,47,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 127 | 0,0,31,0,0,0,0,0,48,0,0,0,0,0,47,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 128 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,40,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 129 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,0,0,0,0,0,0,0,48,0,0, 130 | 0,0,0,0,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 131 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,47,0,0,40,0,0,0,0,0, 132 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 133 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 134 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,38,0,0,0,0,0,0,47,0,0,0,0, 135 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 136 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40,0,0,0,0,0,0,0,39,0, 137 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 138 | 0,0,0,0,39,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,38,0,0,0,0,0,0,0,0,0,0,0, 139 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 140 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 141 | 0,0,0,0,0,0,0,0,38,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,47,0,0,0, 142 | 0,0,0,0,0,0,0,0,0,0,0,39,0,0,0,0,38,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48,0,0,0, 143 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48,0,0,0,0,0,0,0,0,0,0,0,0,40,0,0,0, 144 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 145 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 146 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 147 | 0,0,0,0,32,0,0,0,0,32,0,0,0,0,0,0,0,0,0,48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 148 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 149 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,39,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 150 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 151 | 0,0,0,0,0,0,32,0,0,0,0,48,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 152 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,47,0,0,0,0,0,0,0, 153 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 154 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,47,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 155 | 0,0,0,0,0,39,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 156 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 157 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 158 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 159 | 160 | 161 | 162 | 163 | Hello, from TMX! 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | -------------------------------------------------------------------------------- /example/tests/gameart2d-desert.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luphi/raytmx/af926330f2f917c630f436ab37c5591568d54f39/example/tests/gameart2d-desert.png -------------------------------------------------------------------------------- /example/tests/gameart2d-desert.tmx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 19 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23,25,25,36,37,36,23,23,37,25,23,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 20 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 21 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 22 | 0,0,0,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,36,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 23 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 24 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,33,34,35,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 25 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,33,34,35,0,0,0,0,0,0,0,0,0,0,0,0,36,37,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 26 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,38,39,40,37,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 27 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8,8,8,8,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 28 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,33,34,35,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8,8,8,8,8,8,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 29 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,38,39,40,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,33,34,35,0,0,0,0,0,0,0,0,0,0,0,8,8,8,8,8,8,8,8,8,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 30 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,38,39,40,0,0,0,0,0,0,0,0,0,8,8,8,8,8,8,8,8,8,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 31 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8,0,0,8,8,8,8,8,8,8,8,8,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 32 | 0,0,0,0,0,0,0,0,0,0,0,0,36,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8,8,8,8,8,8,8,8,8,0,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 33 | 0,0,0,0,0,33,34,35,0,0,0,21,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,22,0,0,0,0,0,0,0,0,33,34,35,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8,8,8,8,8,8,8,8,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,29,30,0,0,0,0, 34 | 0,0,0,0,36,0,39,40,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,38,39,40,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8,8,8,8,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,33,34,35,33,34,35,33,34,35,23,0,0,0,0,0,0,0, 35 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,38,39,40,38,39,40,38,39,40,40,0,0,0,0,0,0,0 36 | 37 | 38 | 39 | 40 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 41 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,0,0,0,0,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 42 | 31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,18,18,18,18,18,18,18,18,18,18,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,22,21,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 43 | 18,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,19,0,0,0,0,0,0,0,0,0,0,33,34,35,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,22,2,3,3,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 44 | 0,0,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,19,0,0,0,0,0,0,0,0,0,0,0,38,39,40,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,11,12,8,8,9,0,17,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 45 | 0,0,0,2,3,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,19,0,0,0,0,0,0,0,0,0,17,18,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,11,12,8,8,8,8,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 46 | 0,0,0,7,8,9,0,17,19,0,0,36,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,18,19,0,25,26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,19,0,0,0,0,0,0,33,34,35,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,33,34,35,0,0,2,11,12,8,8,8,8,8,8,9,0,17,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 47 | 0,0,0,16,13,20,0,0,0,0,17,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,4,0,24,37,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,19,0,0,0,0,0,38,39,40,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,38,39,40,2,11,12,8,8,8,8,8,8,8,8,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 48 | 0,0,0,0,0,0,0,0,0,0,0,0,0,17,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,14,15,3,4,0,29,30,32,36,0,0,0,0,0,0,0,0,0,0,0,17,19,0,0,0,0,0,0,0,17,18,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,22,2,11,12,8,8,8,8,8,8,8,8,8,8,9,0,0,17,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 49 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,19,0,36,0,0,0,0,0,0,0,0,0,0,0,16,13,13,13,20,0,17,18,18,19,0,21,22,0,0,0,0,0,0,0,0,0,17,19,0,0,0,0,0,0,0,0,0,0,33,34,35,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,11,12,8,8,8,8,8,8,8,8,13,13,13,13,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 50 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,4,0,0,23,0,0,0,0,0,17,19,0,0,0,0,0,0,0,0,0,0,0,38,39,40,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,11,12,8,8,8,8,8,8,8,13,13,20,0,0,0,0,0,0,0,0,0,17,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 51 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,19,0,0,37,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,14,15,3,3,4,0,21,22,0,0,17,19,0,0,0,0,0,0,0,0,0,17,18,19,0,0,0,0,0,0,0,0,33,34,35,0,0,2,11,12,8,8,8,8,8,8,8,13,13,20,0,0,0,29,30,0,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 52 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,13,13,13,13,20,0,17,18,19,0,0,0,0,0,0,0,0,33,34,35,0,0,0,0,0,0,0,0,0,0,0,0,38,39,40,2,11,12,8,8,8,8,8,8,8,13,13,20,0,0,0,0,2,3,3,3,4,0,0,17,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 53 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40,2,3,4,0,0,0,0,38,39,40,0,0,0,0,0,0,0,0,0,0,0,0,0,2,11,12,8,8,8,8,8,8,8,13,13,20,0,0,0,32,2,11,12,8,8,8,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 54 | 0,0,0,0,0,0,0,0,0,0,0,0,37,0,26,0,0,0,0,17,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,29,30,0,0,0,0,0,0,0,0,0,0,0,0,40,2,3,11,12,8,9,0,0,0,0,0,2,3,4,0,0,0,0,0,0,0,0,0,0,2,11,12,8,8,8,8,8,13,13,13,13,20,0,0,0,0,2,11,12,8,8,8,8,8,9,0,0,0,17,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 55 | 0,0,0,0,0,0,0,0,0,0,0,1,2,3,3,3,3,4,5,0,0,0,0,0,0,0,0,0,0,0,23,1,2,3,3,3,3,4,0,0,0,33,34,35,0,0,40,2,3,11,12,8,8,8,8,9,0,0,0,0,0,7,8,9,0,33,34,35,0,0,0,0,2,11,12,8,8,8,8,8,8,8,9,0,0,0,0,0,0,2,11,12,8,8,8,8,8,8,8,9,0,0,0,0,33,34,35,33,34,35,33,34,35,0,0,0,0,0,27,0, 56 | 27,0,0,37,37,0,0,0,0,2,3,11,12,8,8,8,8,9,10,0,0,0,0,0,25,0,0,0,0,2,3,11,12,8,8,8,8,9,0,0,0,38,39,40,2,3,11,12,8,8,8,8,8,8,8,9,0,0,0,0,0,7,8,9,0,38,39,40,0,0,2,11,12,8,8,8,8,8,8,8,8,8,9,0,0,32,0,2,11,12,8,8,8,8,8,8,8,8,8,9,0,0,0,31,37,39,37,32,39,21,22,39,37,0,2,3,3,3,3,3, 57 | 3,3,3,3,3,3,3,3,11,12,8,8,8,8,8,8,8,14,15,3,3,3,3,3,3,3,3,3,11,12,8,8,8,8,8,8,8,9,0,0,2,3,3,11,12,8,8,8,8,8,8,8,8,8,8,9,0,0,0,0,0,7,8,14,15,3,3,3,3,11,12,8,8,8,8,8,8,8,8,8,8,8,14,15,3,3,11,12,8,8,8,8,8,8,8,8,8,8,8,9,0,0,0,17,18,18,18,18,18,18,18,18,19,0,7,8,8,8,8,8 58 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /example/tests/gameart2d-desert_grouped.tmx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 19 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23,25,25,36,37,36,23,23,37,25,23,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 20 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 21 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 22 | 0,0,0,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,36,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 23 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 24 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,33,34,35,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 25 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,33,34,35,0,0,0,0,0,0,0,0,0,0,0,0,36,37,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 26 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,38,39,40,37,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 27 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8,8,8,8,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 28 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,33,34,35,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8,8,8,8,8,8,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 29 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,38,39,40,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,33,34,35,0,0,0,0,0,0,0,0,0,0,0,8,8,8,8,8,8,8,8,8,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 30 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,38,39,40,0,0,0,0,0,0,0,0,0,8,8,8,8,8,8,8,8,8,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 31 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8,0,0,8,8,8,8,8,8,8,8,8,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 32 | 0,0,0,0,0,0,0,0,0,0,0,0,36,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8,8,8,8,8,8,8,8,8,0,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 33 | 0,0,0,0,0,33,34,35,0,0,0,21,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,22,0,0,0,0,0,0,0,0,33,34,35,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8,8,8,8,8,8,8,8,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,29,30,0,0,0,0, 34 | 0,0,0,0,36,0,39,40,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,38,39,40,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8,8,8,8,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,33,34,35,33,34,35,33,34,35,23,0,0,0,0,0,0,0, 35 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,38,39,40,38,39,40,38,39,40,40,0,0,0,0,0,0,0 36 | 37 | 38 | 39 | 40 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 41 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,0,0,0,0,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 42 | 31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,18,18,18,18,18,18,18,18,18,18,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,22,21,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 43 | 18,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,19,0,0,0,0,0,0,0,0,0,0,33,34,35,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,22,2,3,3,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 44 | 0,0,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,19,0,0,0,0,0,0,0,0,0,0,0,38,39,40,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,11,12,8,8,9,0,17,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 45 | 0,0,0,2,3,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,19,0,0,0,0,0,0,0,0,0,17,18,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,11,12,8,8,8,8,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 46 | 0,0,0,7,8,9,0,17,19,0,0,36,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,18,19,0,25,26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,19,0,0,0,0,0,0,33,34,35,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,33,34,35,0,0,2,11,12,8,8,8,8,8,8,9,0,17,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 47 | 0,0,0,16,13,20,0,0,0,0,17,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,4,0,24,37,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,19,0,0,0,0,0,38,39,40,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,38,39,40,2,11,12,8,8,8,8,8,8,8,8,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 48 | 0,0,0,0,0,0,0,0,0,0,0,0,0,17,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,14,15,3,4,0,29,30,32,36,0,0,0,0,0,0,0,0,0,0,0,17,19,0,0,0,0,0,0,0,17,18,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,22,2,11,12,8,8,8,8,8,8,8,8,8,8,9,0,0,17,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 49 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,19,0,36,0,0,0,0,0,0,0,0,0,0,0,16,13,13,13,20,0,17,18,18,19,0,21,22,0,0,0,0,0,0,0,0,0,17,19,0,0,0,0,0,0,0,0,0,0,33,34,35,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,11,12,8,8,8,8,8,8,8,8,13,13,13,13,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 50 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,4,0,0,23,0,0,0,0,0,17,19,0,0,0,0,0,0,0,0,0,0,0,38,39,40,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,11,12,8,8,8,8,8,8,8,13,13,20,0,0,0,0,0,0,0,0,0,17,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 51 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,19,0,0,37,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,14,15,3,3,4,0,21,22,0,0,17,19,0,0,0,0,0,0,0,0,0,17,18,19,0,0,0,0,0,0,0,0,33,34,35,0,0,2,11,12,8,8,8,8,8,8,8,13,13,20,0,0,0,29,30,0,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 52 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,13,13,13,13,20,0,17,18,19,0,0,0,0,0,0,0,0,33,34,35,0,0,0,0,0,0,0,0,0,0,0,0,38,39,40,2,11,12,8,8,8,8,8,8,8,13,13,20,0,0,0,0,2,3,3,3,4,0,0,17,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 53 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40,2,3,4,0,0,0,0,38,39,40,0,0,0,0,0,0,0,0,0,0,0,0,0,2,11,12,8,8,8,8,8,8,8,13,13,20,0,0,0,32,2,11,12,8,8,8,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 54 | 0,0,0,0,0,0,0,0,0,0,0,0,37,0,26,0,0,0,0,17,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,29,30,0,0,0,0,0,0,0,0,0,0,0,0,40,2,3,11,12,8,9,0,0,0,0,0,2,3,4,0,0,0,0,0,0,0,0,0,0,2,11,12,8,8,8,8,8,13,13,13,13,20,0,0,0,0,2,11,12,8,8,8,8,8,9,0,0,0,17,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 55 | 0,0,0,0,0,0,0,0,0,0,0,1,2,3,3,3,3,4,5,0,0,0,0,0,0,0,0,0,0,0,23,1,2,3,3,3,3,4,0,0,0,33,34,35,0,0,40,2,3,11,12,8,8,8,8,9,0,0,0,0,0,7,8,9,0,33,34,35,0,0,0,0,2,11,12,8,8,8,8,8,8,8,9,0,0,0,0,0,0,2,11,12,8,8,8,8,8,8,8,9,0,0,0,0,33,34,35,33,34,35,33,34,35,0,0,0,0,0,27,0, 56 | 27,0,0,37,37,0,0,0,0,2,3,11,12,8,8,8,8,9,10,0,0,0,0,0,25,0,0,0,0,2,3,11,12,8,8,8,8,9,0,0,0,38,39,40,2,3,11,12,8,8,8,8,8,8,8,9,0,0,0,0,0,7,8,9,0,38,39,40,0,0,2,11,12,8,8,8,8,8,8,8,8,8,9,0,0,32,0,2,11,12,8,8,8,8,8,8,8,8,8,9,0,0,0,31,37,39,37,32,39,21,22,39,37,0,2,3,3,3,3,3, 57 | 3,3,3,3,3,3,3,3,11,12,8,8,8,8,8,8,8,14,15,3,3,3,3,3,3,3,3,3,11,12,8,8,8,8,8,8,8,9,0,0,2,3,3,11,12,8,8,8,8,8,8,8,8,8,8,9,0,0,0,0,0,7,8,14,15,3,3,3,3,11,12,8,8,8,8,8,8,8,8,8,8,8,14,15,3,3,11,12,8,8,8,8,8,8,8,8,8,8,8,9,0,0,0,17,18,18,18,18,18,18,18,18,19,0,7,8,8,8,8,8 58 | 59 | 60 | 61 | 62 | 63 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 64 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 65 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 66 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 67 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 68 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 69 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 70 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 71 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 72 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 73 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 74 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 75 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 76 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 77 | 0,0,0,0,0,0,0,0,0,0,0,0,37,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 78 | 0,0,0,0,0,0,0,0,0,0,0,0,2,3,3,3,3,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 79 | 0,0,0,0,0,0,0,0,0,0,0,0,12,8,8,8,8,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 80 | 0,0,0,0,0,0,0,0,0,0,0,0,8,8,8,8,8,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 81 | 82 | 83 | 84 | 85 | 86 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 87 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 88 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 89 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 90 | 0,0,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 91 | 0,0,0,2,3,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 92 | 0,0,0,7,8,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 93 | 0,0,0,12,13,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 94 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 95 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 96 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 97 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 98 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 99 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 100 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 101 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 102 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 103 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 104 | 105 | 106 | 107 | 108 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 109 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 110 | 31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 111 | 18,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 112 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 113 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 114 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 115 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 116 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 117 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 118 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 119 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 120 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 121 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 122 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 123 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 124 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 125 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 126 | 127 | 128 | 129 | 130 | 131 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 132 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 133 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 134 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 135 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 136 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 137 | 0,0,0,0,0,0,0,17,19,0,0,36,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 138 | 0,0,0,0,0,0,0,0,0,0,17,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 139 | 0,0,0,0,0,0,0,0,0,0,0,0,0,17,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 140 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 141 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 142 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 143 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 144 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 145 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 146 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 147 | 27,0,0,37,37,0,0,0,0,2,3,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 148 | 3,3,3,3,3,3,3,3,3,12,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | -------------------------------------------------------------------------------- /example/tests/image_layers.tmx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /example/tests/image_layers_no_repeat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luphi/raytmx/af926330f2f917c630f436ab37c5591568d54f39/example/tests/image_layers_no_repeat.png -------------------------------------------------------------------------------- /example/tests/image_layers_repeat_both.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luphi/raytmx/af926330f2f917c630f436ab37c5591568d54f39/example/tests/image_layers_repeat_both.png -------------------------------------------------------------------------------- /example/tests/image_layers_repeat_x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luphi/raytmx/af926330f2f917c630f436ab37c5591568d54f39/example/tests/image_layers_repeat_x.png -------------------------------------------------------------------------------- /example/tests/image_layers_repeat_y.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luphi/raytmx/af926330f2f917c630f436ab37c5591568d54f39/example/tests/image_layers_repeat_y.png -------------------------------------------------------------------------------- /example/tests/jb-32-Tileset.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luphi/raytmx/af926330f2f917c630f436ab37c5591568d54f39/example/tests/jb-32-Tileset.png -------------------------------------------------------------------------------- /example/tests/jb-32.tmx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | QQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQAAAAD8AAAA+AAAAQAAAAD8AAAA+AAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAPQAAAEEAAABBAAAAPQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAAA9AAAAQQAAAEEAAAA9AAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAD0AAABBAAAAQQAAAD0AAABBAAAAQQAAAEEAAAA7AAAAOwAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAD4AAABAAAAAPgAAAEAAAAA+AAAAQAAAAD4AAABAAAAAPgAAAEAAAAA+AAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQAAAAD4AAABAAAAAPgAAAEAAAAA+AAAAQAAAAD4AAABAAAAAPgAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABAAAAAPwAAAD8AAAA+AAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAD0AAABBAAAAQQAAAD0AAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAPQAAAEEAAABBAAAAPQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAAA9AAAAQQAAAEEAAAA9AAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAAA7AAAAOwAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQAAAAD8AAAA/AAAAPwAAAD8AAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQAAAAD8AAAA/AAAAPwAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAADcAAAA4AAAAOQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAPAAAADQAAAA6AAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAAA7AAAAQQAAAEEAAAA8AAAANAAAADoAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAADwAAAA0AAAAOgAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAXwAAADUAAAA2AAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAAA8AAAANAAAADoAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAADwAAAA0AAAAOgAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAAA3AAAAOAAAADkAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAXwAAADUAAAA2AAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAADwAAAA0AAAAOgAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAAA7AAAAQQAAAEEAAAA8AAAANAAAADoAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAPAAAADQAAAA6AAAAQQAAADsAAAA7AAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAADsAAABBAAAAQQAAADwAAAA0AAAAOgAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAAA8AAAANAAAADoAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAPAAAADQAAAA6AAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAADwAAAA0AAAAOgAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAAA8AAAANAAAADoAAABBAAAAQQAAAEEAAABBAAAAQQAAAEAAAAA+AAAAQAAAAD4AAABAAAAAPgAAAEAAAAA+AAAAQAAAAD4AAABAAAAAPgAAAEAAAAA+AAAAQAAAAD4AAABBAAAAQQAAAEEAAABBAAAAQQAAADsAAABBAAAAQQAAAF8AAAA1AAAANgAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEAAAAA+AAAAQAAAAD4AAABAAAAAPgAAAEAAAAA+AAAAQAAAAD4AAABAAAAAPgAAAEAAAAA+AAAAQAAAAEEAAABBAAAAQQAAAEEAAABBAAAAOwAAAEEAAABBAAAAPAAAADQAAAA6AAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAAA8AAAANAAAADoAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAF8AAAA1AAAANgAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAPAAAADQAAAA6AAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAAA7AAAAQQAAAEEAAAA8AAAANAAAADoAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAADsAAABBAAAAQQAAADwAAAA0AAAAOgAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAXwAAADUAAAA2AAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAAA8AAAANAAAADoAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAADwAAAA0AAAAOgAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABAAAAAPgAAAEAAAAA+AAAAQAAAAD4AAABAAAAAPgAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAXwAAADUAAAA2AAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABAAAAAPgAAAEAAAAA+AAAAQAAAAD4AAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAAA8AAAANAAAADoAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAAA3AAAAOAAAADkAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAADwAAAA0AAAAOgAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAADwAAAA0AAAAOgAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAPAAAADQAAAA6AAAAQQAAAEEAAABBAAAAQQAAADsAAAA7AAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAXwAAADUAAAA2AAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAAA8AAAANAAAADoAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAAA8AAAANAAAADoAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABAAAAAPgAAAEAAAAA+AAAAQAAAAD4AAABAAAAAPgAAAEAAAAA+AAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAF8AAAA1AAAANgAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABAAAAAPgAAAEAAAAA+AAAAQAAAAD4AAABAAAAAPgAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAPAAAADQAAAA6AAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAANwAAADgAAAA5AAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAAA8AAAANAAAADoAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAAA8AAAANAAAADoAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAAA3AAAAOAAAADkAAABBAAAAQQAAAEEAAABBAAAAQQAAADwAAAA0AAAAOgAAAEEAAAA3AAAAOAAAADkAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAADwAAAA0AAAAOgAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAADwAAAA0AAAAOgAAAEEAAABBAAAAQQAAAEEAAABBAAAAXwAAADUAAAA2AAAAQQAAADwAAAA0AAAAOgAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAXwAAADUAAAA2AAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAPAAAADQAAAA6AAAAQQAAAEEAAABBAAAAQQAAAEEAAAA8AAAANAAAADoAAABBAAAAPAAAADQAAAA6AAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAAA8AAAANAAAADoAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAAA8AAAANAAAADoAAABBAAAAQQAAAEEAAABBAAAAQQAAADwAAAA0AAAAOgAAAEEAAABfAAAANQAAADYAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAADwAAAA0AAAAOgAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAADwAAAA0AAAAOgAAAEEAAABBAAAAQQAAAEEAAABBAAAAPAAAADQAAAA6AAAAQQAAADwAAAA0AAAAOgAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAPAAAADQAAAA6AAAAQQAAAEEAAABBAAAAOwAAAEEAAABBAAAAXwAAADUAAAA2AAAAQQAAAEEAAABBAAAAQQAAAEEAAABfAAAANQAAADYAAABBAAAAXwAAADUAAAA2AAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAAA8AAAANAAAADoAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAAA8AAAANAAAADoAAABBAAAAQQAAAEEAAABBAAAAQQAAADwAAAA0AAAAOgAAAEEAAAA8AAAANAAAADoAAABBAAAAQQAAAEEAAABBAAAAQAAAAD4AAABAAAAAPgAAAEAAAAA+AAAAQAAAAD4AAABAAAAAPgAAAEAAAAA+AAAAQAAAAD4AAABAAAAAPgAAAEAAAAA+AAAAQAAAAD4AAABBAAAAPAAAADQAAAA6AAAAQQAAAF8AAAA1AAAANgAAAEEAAABBAAAAQQAAAEEAAABBAAAAQAAAAD4AAABAAAAAPgAAAEAAAAA+AAAAQAAAAD4AAABAAAAAPgAAAEAAAAA+AAAAQAAAAD4AAABAAAAAPgAAAEAAAAA+AAAAQQAAAEEAAABfAAAANQAAADYAAABBAAAAPAAAADQAAAA6AAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAADcAAAA4AAAAOQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAAA3AAAAOAAAADkAAABBAAAAOwAAADwAAAA0AAAAOgAAAEEAAABfAAAANQAAADYAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAPAAAADQAAAA6AAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAADwAAAA0AAAAOgAAAEEAAABBAAAAXwAAADUAAAA2AAAAQQAAADwAAAA0AAAAOgAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAAA8AAAANAAAADoAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAPAAAABcAAAAVAAAAFgAAAEEAAAA8AAAANAAAADoAAABBAAAAXwAAADUAAAA2AAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAF8AAAA1AAAANgAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAAA8AAAAGAAAAFwAAABdAAAAQQAAADwAAAA0AAAAOgAAAEEAAAA8AAAANAAAADoAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAPAAAADQAAAA6AAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQAAAAD4AAABAAAAAPgAAAEAAAAA/AAAAPgAAAEAAAAA+AAAAQAAAAD4AAABAAAAAPgAAAEEAAABBAAAAQQAAAEEAAAA7AAAAOwAAAEEAAAA8AAAANAAAADoAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQAAAAD8AAAA/AAAAPgAAAEAAAAA/AAAAPwAAAD4AAABAAAAAPwAAAD4AAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAF8AAAA1AAAANgAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAADcAAAA4AAAAOQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAPAAAADQAAAA6AAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAPAAAADQAAAA6AAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAAA8AAAANAAAADoAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABfAAAANQAAADYAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAF8AAAA1AAAANgAAAEEAAAA7AAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAADwAAAA0AAAAOgAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEAAAAA+AAAAPgAAAEEAAABBAAAAPAAAADQAAAA6AAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAPAAAADQAAAA6AAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAAA9AAAAQQAAAEEAAAA8AAAANAAAADoAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABfAAAANQAAADYAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAD0AAABBAAAAQQAAADwAAAA0AAAAOgAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAADwAAAA0AAAAOgAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAD4AAABAAAAAPgAAAEAAAAA+AAAAQAAAAD4AAABAAAAAPgAAAEAAAAA+AAAAQAAAAD4AAABAAAAAPgAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAPAAAADQAAAA6AAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQAAAAD4AAABAAAAAPgAAAEAAAAA+AAAAQAAAAD4AAABAAAAAPgAAAEAAAAA+AAAAQAAAAD4AAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABfAAAANQAAADYAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAADcAAAA4AAAAOQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAADwAAAA0AAAAOgAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAADsAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAPAAAADQAAAA6AAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAPAAAADQAAAA6AAAAQQAAAEEAAABBAAAAQQAAADsAAABBAAAAOwAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAOwAAAEEAAAA8AAAANAAAADoAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAAA8AAAANAAAADoAAABBAAAAQQAAAEEAAABBAAAAOwAAAEEAAAA7AAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAADwAAAA0AAAAOgAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAF8AAAA1AAAANgAAAEEAAABBAAAAQQAAAEEAAAA7AAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAXwAAADUAAAA2AAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAPAAAADQAAAA6AAAAQQAAAEEAAABBAAAAQQAAADsAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAAA8AAAANAAAADoAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAAA8AAAANAAAADoAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAANwAAADgAAAA5AAAAQQAAADwAAAA0AAAAOgAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAADwAAAA0AAAAOgAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAAA8AAAANAAAADoAAABBAAAAXwAAADUAAAA2AAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAXwAAADUAAAA2AAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAADwAAAA0AAAAOgAAAEEAAAA8AAAANAAAADoAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAAA8AAAANAAAADoAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAXwAAADUAAAA2AAAAQQAAADwAAAA0AAAAOgAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAADwAAAA0AAAAOgAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAAA7AAAAQQAAAEEAAAA8AAAANAAAADoAAABBAAAAXwAAADUAAAA2AAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAXwAAADUAAAA2AAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAADwAAAA0AAAAOgAAAEEAAAA8AAAANAAAADoAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAAA8AAAANAAAADoAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAPAAAADQAAAA6AAAAQQAAADwAAAA0AAAAOgAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAADwAAAA0AAAAOgAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABfAAAANQAAADYAAABBAAAAXwAAADUAAAA2AAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAPAAAADQAAAA6AAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAANwAAADgAAAA5AAAAQQAAADwAAAA0AAAAOgAAAEEAAAA8AAAANAAAADoAAABBAAAAQQAAAEEAAAA3AAAAOAAAADkAAABBAAAAQQAAAEEAAABfAAAANQAAADYAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAAA8AAAANAAAADoAAABBAAAAPAAAADQAAAA6AAAAQQAAADwAAAA0AAAAOgAAAEEAAABBAAAAQQAAADwAAAA0AAAAOgAAAEEAAABBAAAAQQAAADwAAAA0AAAAOgAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAADwAAAA0AAAAOgAAAEEAAABfAAAANQAAADYAAABBAAAAPAAAADQAAAA6AAAAQQAAAEEAAABBAAAAPAAAADQAAAA6AAAAQQAAAEEAAABBAAAAPAAAADQAAAA6AAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAXwAAADUAAAA2AAAAQQAAADwAAAA0AAAAOgAAAEEAAABfAAAANQAAADYAAABBAAAAQQAAAEEAAABfAAAANQAAADYAAABBAAAAQQAAAEEAAAA8AAAANAAAADoAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAAA8AAAANAAAADoAAABBAAAAPAAAADQAAAA6AAAAQQAAADwAAAA0AAAAOgAAAEEAAABBAAAAQQAAADwAAAA0AAAAOgAAAEEAAABBAAAAQQAAAF8AAAA1AAAANgAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAADwAAAA0AAAAOgAAADsAAAA8AAAANAAAADoAAABBAAAAPAAAADQAAAA6AAAAQQAAAEEAAABBAAAAPAAAADQAAAA6AAAAQQAAAEEAAABBAAAAPAAAADQAAAA6AAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAPAAAADQAAAA6AAAAOwAAADwAAAA0AAAAOgAAAEEAAAA8AAAANAAAADoAAABBAAAAQQAAAEEAAAA8AAAANAAAADoAAABBAAAAQQAAAEEAAAA8AAAANAAAADoAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABfAAAANQAAADYAAABBAAAAXwAAADUAAAA2AAAAQQAAAF8AAAA1AAAANgAAAEEAAABBAAAAQQAAAF8AAAA1AAAANgAAAEEAAABBAAAAQQAAAF8AAAA1AAAANgAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAADwAAAA0AAAAOgAAAEEAAAA8AAAANAAAADoAAABBAAAAPAAAADQAAAA6AAAAQQAAAEEAAABBAAAAPAAAADQAAAA6AAAAQQAAAEEAAABBAAAAPAAAADQAAAA6AAAANwAAADgAAAA5AAAAQQAAAEEAAABBAAAAQQAAAEEAAABAAAAAPgAAAEAAAAA+AAAAQAAAAD4AAABAAAAAPgAAAEEAAAA8AAAANAAAADoAAABBAAAAQQAAAEEAAAA8AAAANAAAADoAAABBAAAAQQAAAEEAAAA8AAAANAAAADoAAAA8AAAANAAAADoAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABAAAAAPgAAAEAAAAA+AAAAQAAAAD4AAABBAAAAQQAAADwAAAA0AAAAOgAAAEEAAABBAAAAQQAAADwAAAA0AAAAOgAAAEEAAABBAAAAQQAAADwAAAA0AAAAOgAAADwAAAA0AAAAOgAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAANwAAADgAAAA5AAAAQQAAAEEAAABBAAAAXwAAADUAAAA2AAAAQQAAAEEAAABBAAAAXwAAADUAAAA2AAAAQQAAAEEAAABBAAAAPAAAADQAAAA6AAAAPAAAADQAAAA6AAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAAA8AAAANAAAADoAAABBAAAAQQAAAEEAAAA8AAAANAAAADoAAABBAAAAOwAAAEEAAAA8AAAANAAAADoAAABBAAAAQQAAAEEAAABfAAAANQAAADYAAABfAAAANQAAADYAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAADwAAAA0AAAAOgAAAEEAAABBAAAAQQAAADwAAAA0AAAAOgAAAEEAAABBAAAAQQAAADwAAAA0AAAAOgAAAEEAAABBAAAAQQAAADwAAAA0AAAAOgAAADwAAAA0AAAAOgAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAPAAAADQAAAA6AAAAQQAAAEEAAABBAAAAXwAAADUAAAA2AAAAQQAAAEEAAABBAAAAXwAAADUAAAA2AAAAQQAAAEEAAABBAAAAPAAAADQAAAA6AAAAPAAAADQAAAA6AAAAQQAAAEEAAABBAAAAQQAAADsAAABBAAAAQQAAAEEAAABfAAAANQAAADYAAABBAAAAQQAAAEEAAAA8AAAANAAAADoAAABBAAAAQQAAAEEAAAA8AAAANAAAADoAAABBAAAAQQAAAEEAAABfAAAANQAAADYAAABfAAAANQAAADYAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAADwAAAA0AAAAOgAAAEEAAABBAAAAQQAAADwAAAA0AAAAOgAAAEEAAABBAAAAQQAAAF8AAAA1AAAANgAAAEEAAABBAAAAQQAAADwAAAA0AAAAOgAAADwAAAA0AAAAOgAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAPAAAADQAAAA6AAAAQQAAAEEAAABBAAAAXwAAADUAAAA2AAAANwAAADgAAAA5AAAAPAAAADQAAAA6AAAANwAAADgAAAA5AAAAPAAAADQAAAA6AAAAPAAAADQAAAA6AAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAAA8AAAANAAAADoAAABBAAAAQQAAAEEAAAA8AAAANAAAADoAAAA8AAAANAAAADoAAAA8AAAANAAAADoAAAA8AAAANAAAADoAAABfAAAANQAAADYAAAA8AAAANAAAADoAAABBAAAAQQAAAEEAAABAAAAAPgAAAEAAAAA+AAAAQQAAAF8AAAA1AAAANgAAADsAAABBAAAAQQAAADwAAAA0AAAAOgAAAF8AAAA1AAAANgAAADwAAAA0AAAAOgAAADwAAAA0AAAAOgAAADwAAAA0AAAAOgAAAF8AAAA1AAAANgAAAEEAAABBAAAAQQAAAD4AAABAAAAAPgAAAEEAAABBAAAAPAAAADQAAAA6AAAAQQAAAEEAAABBAAAAPAAAADQAAAA6AAAAPAAAADQAAAA6AAAAXwAAADUAAAA2AAAAXwAAADUAAAA2AAAAPAAAADQAAAA6AAAAPAAAADQAAAA6AAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAAA8AAAANAAAADoAAABBAAAAQQAAAEEAAABfAAAANQAAADYAAABfAAAANQAAADYAAAA8AAAANAAAADoAAAA8AAAANAAAADoAAABfAAAANQAAADYAAAA8AAAANAAAADoAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAADwAAAA0AAAAOgAAAEEAAABBAAAAQQAAADwAAAA0AAAAOgAAADwAAAA0AAAAOgAAADwAAAA0AAAAOgAAADwAAAA0AAAAOgAAADwAAAA0AAAAOgAAADwAAAA0AAAAOgAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAXwAAADUAAAA2AAAAQQAAAEEAAABBAAAAPAAAADQAAAA6AAAAPAAAADQAAAA6AAAAPAAAADQAAAA6AAAAPAAAADQAAAA6AAAAPAAAADQAAAA6AAAAXwAAADUAAAA2AAAAQQAAAEEAAABBAAAAOwAAAEEAAABBAAAAQQAAAEEAAAA8AAAANAAAADoAAAA3AAAAOAAAADkAAAA8AAAANAAAADoAAAA8AAAANAAAADoAAABfAAAANQAAADYAAABfAAAANQAAADYAAAA8AAAANAAAADoAAAA8AAAANAAAADoAAABBAAAAQQAAADsAAAA7AAAAQQAAAEEAAABBAAAAQQAAADwAAAA0AAAAOgAAADwAAAA0AAAAOgAAAF8AAAA1AAAANgAAAF8AAAA1AAAANgAAADwAAAA0AAAAOgAAADwAAAA0AAAAOgAAAF8AAAA1AAAANgAAAF8AAAA1AAAANgAAAEEAAABBAAAAOwAAAEEAAABBAAAAQQAAAEEAAABBAAAAPAAAADQAAAA6AAAAPAAAADQAAAA6AAAAPAAAADQAAAA6AAAAPAAAADQAAAA6AAAAPAAAADQAAAA6AAAAPAAAADQAAAA6AAAAPAAAADQAAAA6AAAAPAAAADQAAAA6AAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABfAAAANQAAADYAAABfAAAANQAAADYAAABfAAAANQAAADYAAAA8AAAANAAAADoAAAA8AAAANAAAADoAAAA8AAAANAAAADoAAAA8AAAANAAAADoAAAA8AAAANAAAADoAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAADwAAAA0AAAAOgAAADwAAAA0AAAAOgAAADwAAAA0AAAAOgAAADwAAAA0AAAAOgAAAF8AAAA1AAAANgAAAF8AAAA1AAAANgAAADwAAAA0AAAAOgAAADwAAAA0AAAAOgAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAPAAAADQAAAA6AAAAXwAAADUAAAA2AAAAPAAAAEAAAAA+AAAAawAAAGwAAABAAAAAPgAAADQAAAA6AAAAPAAAADQAAAA6AAAAXwAAADUAAAA2AAAAXwAAADUAAAA2AAAAQQAAAEEAAABBAAAAQQAAAEEAAAA7AAAAQQAAAEEAAABfAAAANQAAADYAAAA8AAAANAAAADoAAAA8AAAAPQAAAGsAAABsAAAAawAAAGwAAAA9AAAANAAAADoAAAA8AAAANAAAADoAAAA8AAAANAAAADoAAAA8AAAANAAAADoAAAA7AAAAQQAAAEEAAABBAAAAQQAAADsAAABBAAAAQQAAADwAAAA0AAAAOgAAADwAAAA0AAAAOgAAADwAAABAAAAAPgAAAGsAAABsAAAAQAAAAD4AAAA0AAAAOgAAADwAAAA0AAAAOgAAADwAAAA0AAAAOgAAADwAAAA0AAAAOgAAADsAAABBAAAAQQAAAAoAAABBAAAAQQAAABcAAAAWAAAAFwAAABYAAAAXAAAAFgAAABcAAAAWAAAAFwAAABYAAAAXAAAAFgAAABcAAAAWAAAAFwAAABYAAAAXAAAAFgAAABcAAAAWAAAAFwAAABYAAAAXAAAAFgAAABcAAAAWAAAAQQAAAEEAAABBAAAACwAAAIEAAACCAAAAGAAAAF0AAAAYAAAAXQAAABgAAABdAAAAGAAAAF0AAAAYAAAAXQAAABgAAABdAAAAGAAAAF0AAAAYAAAAXQAAABgAAABdAAAAGAAAAF0AAAAYAAAAXQAAABgAAABdAAAAGAAAAF0AAABCAAAAggAAAEIAAAAMAAAAQwAAABoAAAAZAAAAGgAAAEQAAABDAAAAGQAAABkAAAAaAAAARAAAAEMAAAAZAAAAGQAAABoAAABEAAAAQwAAABkAAAAZAAAAGgAAAEQAAABDAAAAGQAAABkAAAAaAAAARAAAAEMAAAAZAAAARAAAAEMAAABEAAAAQwAAAA== 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /example/tests/level25-Tileset.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luphi/raytmx/af926330f2f917c630f436ab37c5591568d54f39/example/tests/level25-Tileset.png -------------------------------------------------------------------------------- /example/tests/level25.tmx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | CAAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAByAAAAcQAAAHAAAABxAAAAcAAAAHEAAABxAAAAbgAAAGoAAABuAAAAagAAAG4AAABqAAAAbgAAAGoAAABuAAAAagAAAG4AAABqAAAAbgAAAGoAAABuAAAAagAAAG4AAABqAAAAbgAAAGoAAABuAAAAagAAAG4AAABqAAAAbgAAAGoAAABuAAAAagAAAG4AAABqAAAAbgAAAGoAAABuAAAAbwAAAHMAAABvAAAAcwAAAG8AAABzAAAAbwAAAHMAAABvAAAAcwAAAG8AAABzAAAAbwAAAHUAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAByAAAAcAAAAG4AAABqAAAAbgAAAGoAAABuAAAAagAAAG4AAABqAAAAbgAAAGoAAABuAAAAagAAAG4AAABvAAAAcwAAAG8AAABzAAAAbwAAAHMAAABvAAAAcwAAAG8AAABzAAAAcwAAAGUAAAABAAAAAQAAAGQAAABvAAAAcwAAAG8AAABzAAAAbwAAAHMAAABlAAAAAQAAAHIAAABwAAAAcQAAAHAAAABxAAAAcAAAAHEAAABwAAAAcQAAAHAAAABxAAAAcAAAAHEAAABwAAAAcQAAAHAAAABxAAAAcwAAAGoAAABuAAAAagAAAG4AAABqAAAAbgAAAG8AAABzAAAAbwAAAHMAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAABnAAAAaAAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAGQAAABvAAAAcwAAAG8AAABzAAAAbwAAAGUAAABrAAAAYwAAAGsAAABjAAAAawAAAGMAAABrAAAAYwAAAGsAAABjAAAAawAAAGMAAABrAAAAYwAAAGsAAABjAAAAawAAAGMAAABrAAAAYwAAAGsAAABjAAAAawAAAGMAAABrAAAAYwAAAGsAAABjAAAAawAAAGMAAABrAAAAYwAAAGsAAABkAAAAbwAAAHMAAABvAAAAcwAAAG8AAABzAAAAbwAAAHMAAABvAAAAcwAAAG8AAABzAAAAZQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAGQAAABlAAAAawAAAGMAAABrAAAAYwAAAGsAAABjAAAAawAAAGMAAABrAAAAYwAAAGsAAABjAAAAawAAAHIAAABxAAAAcAAAAHEAAABxAAAAcAAAAHEAAABwAAAAcQAAAHEAAABwAAAAdQAAAAEAAAABAAAAcgAAAHEAAABwAAAAcQAAAHAAAABxAAAAcAAAAHUAAAABAAAAcgAAAHMAAABvAAAAcwAAAG8AAABzAAAAbwAAAHMAAABvAAAAcwAAAG8AAABzAAAAbwAAAHMAAABvAAAAcwAAAG8AAAB1AAAAYwAAAGsAAABjAAAAawAAAGMAAABrAAAAcgAAAHEAAABwAAAAcQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAGEAAACcAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAcgAAAHEAAABwAAAAcQAAAHAAAABxAAAAdQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAHIAAABxAAAAcAAAAHEAAABwAAAAcQAAAHEAAABwAAAAcQAAAHEAAABwAAAAcQAAAHEAAAB1AAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAcgAAAHUAAAABAAAAAQAAAAEAAABmAAAAAQAAAGYAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAZAAAAG8AAABzAAAAbwAAAHMAAABvAAAAcwAAAG8AAABzAAAAbwAAAHMAAABlAAAAAQAAAAEAAABkAAAAbwAAAHMAAABvAAAAcwAAAG8AAABzAAAAZQAAAAEAAAByAAAAcAAAAHEAAABwAAAAcQAAAHAAAABxAAAAcAAAAHEAAABwAAAAcQAAAHAAAABxAAAAcAAAAHEAAABwAAAAcQAAAHUAAAABAAAAZgAAAGYAAABmAAAAZgAAAAEAAABkAAAAbwAAAHMAAABvAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAYgAAAJ0AAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAABkAAAAbwAAAHMAAABvAAAAcwAAAG8AAABlAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAZAAAAG8AAABzAAAAbwAAAHMAAABvAAAAcwAAAG8AAABzAAAAbwAAAHMAAABvAAAAcwAAAGUAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAABkAAAAZQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAByAAAAcQAAAHAAAABxAAAAcQAAAHAAAABxAAAAcAAAAHEAAABxAAAAcAAAAHUAAAABAAAAAQAAAHIAAABxAAAAcAAAAHEAAABwAAAAcQAAAHAAAAB1AAAAAQAAAGQAAABqAAAAbgAAAGoAAABuAAAAagAAAG4AAABzAAAAbwAAAHMAAABvAAAAcwAAAG8AAABzAAAAbwAAAHMAAABvAAAAdQAAAAEAAABmAAAAOAAAAAEAAABmAAAAAQAAAHIAAABxAAAAcAAAAHEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAHIAAABxAAAAcAAAAHEAAABwAAAAcQAAAHUAAAABAAAAAQAAAAEAAAABAAAAZgAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAZgAAAAEAAAABAAAAAQAAAAEAAAABAAAAZgAAAAEAAABnAAAAbQAAAD8AAABoAAAAAQAAAAEAAAByAAAAcQAAAHAAAABxAAAAcQAAAHAAAABxAAAAcQAAAHAAAABuAAAAagAAAG4AAABqAAAAZQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAHIAAAB1AAAAAQAAAAEAAAABAAAAZgAAAAEAAABmAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAGQAAABqAAAAbgAAAGoAAABuAAAAagAAAG4AAABqAAAAbgAAAGoAAABzAAAAZQAAAAEAAAABAAAAZAAAAGoAAABuAAAAagAAAG4AAABqAAAAbgAAAGUAAAABAAAAYgAAAGMAAABrAAAAYwAAAGsAAABjAAAAawAAAHIAAABxAAAAcAAAAHEAAABwAAAAcQAAAHAAAABxAAAAcAAAAHEAAAB1AAAAAQAAAGYAAAABAAAAOAAAAGYAAAABAAAAZAAAAG8AAABzAAAAbwAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAZAAAAG8AAABzAAAAbwAAAHMAAABvAAAA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AQAAAGYAAAABAAAAAQAAAHIAAAB1AAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAByAAAAdQAAAG0AAAA/AAAAbQAAAD8AAABtAAAAcgAAAHAAAABxAAAAcQAAAHUAAAABAAAAAQAAAAEAAAByAAAAcQAAAHMAAABvAAAAcwAAAG8AAABxAAAAdQAAAAEAAAABAAAAAQAAAHIAAABwAAAAcQAAAHAAAABxAAAAcAAAAHEAAABwAAAAcQAAAHUAAAABAAAAAQAAAAEAAAB4AAAAbwAAAHMAAABvAAAAcwAAAG8AAABzAAAAbwAAAHMAAAB0AAAAAQAAAAEAAAABAAAAZAAAAA0AAAASAQAAEwEAAGYAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAABmAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAZwAAAG0AAAA/AAAAZAAAAGUAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAYgAAAGMAAABrAAAAnQAAAAEAAAABAAAAYQAAAGoAAABuAAAAagAAAG4AAABqAAAAbwAAAHMAAABvAAAAdAAAAAEAAABmAAAAYgAAAJ0AAAABAAAAAQAAAAEAAAABAAAAAQAAAHIAAABwAAAAcQAAAHUAAABrAAAAnQAAAAEAAABmAAAAAQAAAAEAAAABAAAAZAAAAGUAAABtAAAAPwAAAG0AAAA/AAAAaAAAAAEAAAABAAAAAQAAAGQAAABvAAAAcwAAAG8AAABzAAAAbwAAAHMAAABvAAAAcwAAAGoAAABuAAAAZQAAAAEAAAABAAAAAQAAAGQAAABwAAAAcQAAAHAAAABxAAAAcAAAAHEAAAB1AAAAAQAAAAEAAAABAAAAcgAAAHAAAABxAAAAcAAAAHEAAABwAAAAcQAAAHAAAABxAAAAdQAAAAEAAAABAAAAAQAAAHIAAABxAAAA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AQAAAAEAAAABAAAAAQAAAAEAAABmAAAAAQAAAAEAAAABAAAAcgAAAHMAAABvAAAAcwAAAG8AAABzAAAAZQAAAAEAAABmAAAAAQAAAAEAAABmAAAAAQAAAGYAAAABAAAAZgAAAAEAAABmAAAAAQAAAGYAAAABAAAAAQAAAAEAAAABAAAAAQAAAGIAAABjAAAAawAAAGMAAABrAAAAYwAAAGsAAACdAAAAAQAAAGYAAAABAAAAAQAAAAEAAAABAAAAZgAAAAEAAAABAAAAZgAAAAEAAAABAAAAZgAAAAEAAAABAAAAAQAAAAEAAAABAAAAZAAAAHMAAABlAAAAAQAAAAEAAABmAAAAAQAAAGYAAAABAAAAAQAAAHgAAABvAAAAcwAAAG8AAABzAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAHgAAABvAAAAcwAAAG8AAABzAAAAbwAAAHMAAABvAAAAcwAAAG8AAABzAAAAbwAAAHMAAABvAAAAbgAAAGoAAABuAAAAagAAAG4AAABvAAAAcwAAAG8AAABzAAAAbwAAAHUAAABoAAAAAQAAAAEAAAABAAAAYQAAAGoAAABuAAAAagAAAG4AAABqAAAAbgAAAGoAAABuAAAAagAAAHEAAABzAAAAZQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAABmAAAAAQAAAAEAAABkAAAAcQAAAHAAAABxAAAAcQAAAHAAAAB1AAAAAQAAAAEAAABnAAAAbQAAAD8AAABtAAAAPwAAAG0AAAA/AAAAbQAAAD8AAABtAAAAPwAAAGgAAAABAAAAAQAAAGcAAABtAAAAPwAAAG0AAAA/AAAAbQAAAD8AAABtAAAAPwAAAG0AAAA/AAAAbQAAAD8AAABtAAAAPwAAAGgAAAABAAAAZwAAAG0AAAA/AAAAbQAAAD8AAABoAAAAAQAAAAEAAAABAAAAAQAAAAEAAAByAAAAcQAAAHUAAAABAAAAAQAAAAEAAABnAAAAbQAAAD8AAAA+AAAAcgAAAHEAAABwAAAAcQAAAHEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAABmAAAAAQAAAAEAAAABAAAAZgAAAAEAAAABAAAAZAAAAHEAAABwAAAAcQAAAHAAAABxAAAAcAAAAHEAAABwAAAAcQAAAHAAAABxAAAAbgAAAGUAAABrAAAAawAAAGsAAABrAAAAawAAAHIAAABwAAAAcQAAAHAAAABwAAAAcQAAAHQAAAABAAAAAQAAAAEAAABiAAAAYwAAAGsAAABjAAAAawAAAGMAAABrAAAAYwAAAGsAAABrAAAAcgAAAHEAAAB1AAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAGYAAAABAAAAAQAAAHIAAABzAAAAbwAAAHMAAABqAAAAbgAAAGUAAAABAAAAAQAAAHgAAABvAAAAcwAAAG8AAABzAAAAbwAAAHMAAABvAAAAcwAAAG8AAABzAAAAdAAAAAEAAAABAAAAeAAAAG8AAABzAAAAbwAAAHMAAABvAAAAcwAAAG8AAABzAAAAbwAAAHMAAABvAAAAcwAAAG8AAABzAAAAdAAAAAEAAAB4AAAAbwAAAHMAAABvAAAAcwAAAHQAAABpAAAAaQAAAGkAAABnAAAAbQAAAGQAAABxAAAAdQAAAAEAAABmAAAAAQAAAGEAAABqAAAAbgAAAGoAAABuAAAAagAAAG4AAABqAAAAcwAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAByAAAAcQAAAHAAAABxAAAAcAAAAHEAAABwAAAAcQAAAHAAAABxAAAAcAAAAHUAAABrAAAAnQAAAAEAAAABAAAAAQAAAAEAAAABAAAAZAAAAGoAAABzAAAAbwAAAHMAAABvAAAAdQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAPQAAAD0AAABkAAAAbwAAAHUAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAABmAAAAAQAAAAEAAAABAAAAZAAAAGoAAABuAAAAZQAAAGMAAABrAAAAnQAAAAEAAAABAAAAcgAAAHAAAABxAAAAcAAAAHEAAABwAAAAcQAAAHAAAABxAAAAcAAAAHEAAABlAAAAAQAAAAEAAABkAAAAagAAAG4AAABqAAAAbgAAAGoAAABuAAAAagAAAG4AAABqAAAAbgAAAGoAAABuAAAAagAAAG4AAABlAAAAAQAAAHIAAABwAAAAcQAAAHAAAABxAAAAdQAAAAEAAAABAAAAAQAAAHgAAABvAAAAcwAAAG8AAAB1AAAAAQAAAAEAAAABAAAAYgAAAP0AAABrAAAAYwAAAGsAAABjAAAAawAAAGMAAAByAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAGcAAABtAAAArgAAAK8AAACwAAAAsQAAALIAAACzAAAAPgAAAGgAAAABAAAAAQAAAGQAAABvAAAAcwAAAG8AAABzAAAAbwAAAG4AAABqAAAAbgAAAGoAAABuAAAAZQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAABiAAAAawAAAHIAAABwAAAAcAAAAHEAAAB1AAAAAQAAAAEAAAABAAAAAQAAAAEAAABnAAAAPgAAAD8AAAA+AAAAPwAAAD4AAAA/AAAAPgAAAHIAAABxAAAAdQAAAAEAAAABAAAAAQAAAGwAAABsAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAZgAAAAEAAAABAAAAAQAAAAEAAAABAAAAZgAAAAEAAABiAAAAYwAAAGsAAACdAAAAAQAAAAEAAAABAAAAAQAAAAEAAABkAAAAagAAAG4AAABqAAAAbgAAAGoAAABuAAAAagAAAG4AAABqAAAAZQAAAJ0AAAABAAAAAQAAAGIAAABjAAAAawAAAGMAAABrAAAAYwAAAGsAAABjAAAAawAAAGMAAABrAAAAYwAAAGsAAABjAAAAawAAAJ0AAAABAAAAZAAAAGoAAABuAAAAagAAAG4AAABlAAAAAQAAAAEAAAABAAAAcgAAAHMAAABqAAAAbgAAAGUAAAABAAAAAQAAAGYAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAGQAAABmAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAABmAAAAAQAAAAEAAABmAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAeAAAAG8AAABzAAAAbwAAAHMAAABvAAAAcwAAAG8AAABzAAAAdAAAAAEAAABmAAAAcgAAAHEAAABwAAAAcQAAAHAAAAB1AAAAawAAAGsAAABrAAAAawAAAGsAAACdAAAAAQAAAAEAAABmAAAAAQAAAGYAAAABAAAAAQAAAAEAAAABAAAAZAAAAGoAAABuAAAAagAAAGUAAAABAAAAAQAAAAEAAAABAAAAAQAAAGEAAABqAAAAbgAAAGoAAABuAAAAagAAAG4AAABqAAAAbgAAAGoAAABlAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAABmAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAZgAAAAEAAAABAAAAAQAAAGYAAAABAAAAZgAAAAEAAABmAAAAAQAAAAEAAAABAAAAAQAAAGIAAABjAAAAawAAAGMAAABrAAAAYwAAAGsAAABjAAAAawAAAGMAAACdAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAABiAAAAYwAAAGsAAABjAAAAawAAAJ0AAAABAAAAAQAAAAEAAABkAAAAZQAAAGMAAABrAAAAnQAAAAEAAAABAAAAAQAAAAEAAABmAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAcgAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAZwAAAG0AAAByAAAAcAAAAHEAAABwAAAAcQAAAHAAAABxAAAAcAAAAHEAAAB1AAAAAQAAAAEAAABkAAAAagAAAG4AAABqAAAAbgAAAGUAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAABiAAAAYwAAAGsAAABjAAAAnQAAAAEAAAABAAAAAQAAAAEAAAABAAAAYgAAAGMAAABrAAAAYwAAAGsAAABjAAAAawAAAGMAAABrAAAAawAAAJ0AAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAABmAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAABnAAAAbQAAAD8AAABtAAAAPwAAAG0AAABoAAAAAQAAAAEAAAABAAAAZgAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAABsAAAAAQAAAHIAAAB1AAAAbAAAADgAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAABmAAAAAQAAAAEAAAABAAAAAQAAAAEAAABkAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAGYAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAABmAAAAAQAAAAEAAAB4AAAA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 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /example/tests/magiclanddizzy_tiles.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luphi/raytmx/af926330f2f917c630f436ab37c5591568d54f39/example/tests/magiclanddizzy_tiles.gif -------------------------------------------------------------------------------- /example/tests/text.tmx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | Single word wrap 19 | 20 | 21 | Single line 22 | 23 | 24 | Line one Line two 25 | 26 | 27 | Thiswordistoolongtodisplay but here are some spaces 28 | 29 | 30 | Singleword 31 | 32 | 33 | This is a Y bounds test, this text should be dropped 34 | 35 | 36 | Extra spaces 37 | 38 | 39 | H justified test 40 | 41 | 42 | JUSTIFIED 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /example/tests/tmw_desert_spacing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luphi/raytmx/af926330f2f917c630f436ab37c5591568d54f39/example/tests/tmw_desert_spacing.png -------------------------------------------------------------------------------- /example/tilesets/fade.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luphi/raytmx/af926330f2f917c630f436ab37c5591568d54f39/example/tilesets/fade.png -------------------------------------------------------------------------------- /example/tilesets/grass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luphi/raytmx/af926330f2f917c630f436ab37c5591568d54f39/example/tilesets/grass.png -------------------------------------------------------------------------------- /example/tilesets/ruins.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luphi/raytmx/af926330f2f917c630f436ab37c5591568d54f39/example/tilesets/ruins.png -------------------------------------------------------------------------------- /example/tilesets/shadows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luphi/raytmx/af926330f2f917c630f436ab37c5591568d54f39/example/tilesets/shadows.png -------------------------------------------------------------------------------- /example/tilesets/shadows.tsx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /example/tilesets/trees.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luphi/raytmx/af926330f2f917c630f436ab37c5591568d54f39/example/tilesets/trees.png -------------------------------------------------------------------------------- /example/tilesets/trees.tsx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | --------------------------------------------------------------------------------