Mercurial > molko
annotate mlk-map/mlk-map.c @ 437:e1eebc6bf25d
man: initial import
author | David Demelier <markand@malikania.fr> |
---|---|
date | Sun, 16 Oct 2022 13:21:40 +0200 |
parents | 556c8e2ff995 |
children | 773a082f0b91 |
rev | line source |
---|---|
16
621c815c9509
tools: implement basic molko-map stub, continue #2448
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
1 /* |
215
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
212
diff
changeset
|
2 * main.c -- convert tiled tiled JSON files into custom files |
16
621c815c9509
tools: implement basic molko-map stub, continue #2448
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
3 * |
378
460c78706989
misc: update copyright years
David Demelier <markand@malikania.fr>
parents:
348
diff
changeset
|
4 * Copyright (c) 2020-2022 David Demelier <markand@malikania.fr> |
16
621c815c9509
tools: implement basic molko-map stub, continue #2448
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
5 * |
621c815c9509
tools: implement basic molko-map stub, continue #2448
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
6 * Permission to use, copy, modify, and/or distribute this software for any |
621c815c9509
tools: implement basic molko-map stub, continue #2448
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
7 * purpose with or without fee is hereby granted, provided that the above |
621c815c9509
tools: implement basic molko-map stub, continue #2448
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
8 * copyright notice and this permission notice appear in all copies. |
621c815c9509
tools: implement basic molko-map stub, continue #2448
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
9 * |
621c815c9509
tools: implement basic molko-map stub, continue #2448
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
621c815c9509
tools: implement basic molko-map stub, continue #2448
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
621c815c9509
tools: implement basic molko-map stub, continue #2448
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
621c815c9509
tools: implement basic molko-map stub, continue #2448
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
621c815c9509
tools: implement basic molko-map stub, continue #2448
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
621c815c9509
tools: implement basic molko-map stub, continue #2448
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
621c815c9509
tools: implement basic molko-map stub, continue #2448
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
621c815c9509
tools: implement basic molko-map stub, continue #2448
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
17 */ |
621c815c9509
tools: implement basic molko-map stub, continue #2448
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
18 |
621c815c9509
tools: implement basic molko-map stub, continue #2448
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
19 #include <assert.h> |
215
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
212
diff
changeset
|
20 #include <limits.h> |
16
621c815c9509
tools: implement basic molko-map stub, continue #2448
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
21 #include <stdarg.h> |
621c815c9509
tools: implement basic molko-map stub, continue #2448
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
22 #include <stdbool.h> |
621c815c9509
tools: implement basic molko-map stub, continue #2448
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
23 #include <stdio.h> |
621c815c9509
tools: implement basic molko-map stub, continue #2448
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
24 #include <stdlib.h> |
621c815c9509
tools: implement basic molko-map stub, continue #2448
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
25 #include <string.h> |
621c815c9509
tools: implement basic molko-map stub, continue #2448
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
26 |
25
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
27 #include <jansson.h> |
16
621c815c9509
tools: implement basic molko-map stub, continue #2448
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
28 |
432
38cf60f5a1c4
util: cleanup hierarchy
David Demelier <markand@malikania.fr>
parents:
420
diff
changeset
|
29 #include <mlk/util/util.h> |
315
3bfaaf5342a9
cmake: add support for Visual Studio 2019
David Demelier <markand@malikania.fr>
parents:
314
diff
changeset
|
30 |
16
621c815c9509
tools: implement basic molko-map stub, continue #2448
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
31 static void |
621c815c9509
tools: implement basic molko-map stub, continue #2448
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
32 die(const char *fmt, ...) |
621c815c9509
tools: implement basic molko-map stub, continue #2448
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
33 { |
621c815c9509
tools: implement basic molko-map stub, continue #2448
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
34 assert(fmt); |
621c815c9509
tools: implement basic molko-map stub, continue #2448
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
35 |
621c815c9509
tools: implement basic molko-map stub, continue #2448
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
36 va_list ap; |
621c815c9509
tools: implement basic molko-map stub, continue #2448
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
37 |
621c815c9509
tools: implement basic molko-map stub, continue #2448
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
38 va_start(ap, fmt); |
621c815c9509
tools: implement basic molko-map stub, continue #2448
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
39 vfprintf(stderr, fmt, ap); |
621c815c9509
tools: implement basic molko-map stub, continue #2448
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
40 va_end(ap); |
621c815c9509
tools: implement basic molko-map stub, continue #2448
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
41 exit(1); |
621c815c9509
tools: implement basic molko-map stub, continue #2448
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
42 } |
621c815c9509
tools: implement basic molko-map stub, continue #2448
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
43 |
25
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
44 static bool |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
45 is_layer(const char *name) |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
46 { |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
47 return strcmp(name, "background") == 0 || |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
48 strcmp(name, "foreground") == 0 || |
215
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
212
diff
changeset
|
49 strcmp(name, "above") == 0 || |
212
ddfe0a211169
rpg: experiment with map teleport
David Demelier <markand@malikania.fr>
parents:
211
diff
changeset
|
50 strcmp(name, "actions") == 0; |
25
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
51 } |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
52 |
93
d4a72fa16225
misc: miscellaneous issues
David Demelier <markand@malikania.fr>
parents:
50
diff
changeset
|
53 static const json_t * |
50
402aa7dcffe1
core: implement map origin, closes #2462 @1h
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
54 find_property(const json_t *props, const char *which) |
402aa7dcffe1
core: implement map origin, closes #2462 @1h
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
55 { |
250
8ef7fb7f14ad
rpg: add support for collisions with actions
David Demelier <markand@malikania.fr>
parents:
215
diff
changeset
|
56 const json_t *obj; |
50
402aa7dcffe1
core: implement map origin, closes #2462 @1h
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
57 size_t index; |
402aa7dcffe1
core: implement map origin, closes #2462 @1h
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
58 |
250
8ef7fb7f14ad
rpg: add support for collisions with actions
David Demelier <markand@malikania.fr>
parents:
215
diff
changeset
|
59 json_array_foreach(props, index, obj) { |
8ef7fb7f14ad
rpg: add support for collisions with actions
David Demelier <markand@malikania.fr>
parents:
215
diff
changeset
|
60 if (!json_is_object(obj)) |
50
402aa7dcffe1
core: implement map origin, closes #2462 @1h
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
61 continue; |
402aa7dcffe1
core: implement map origin, closes #2462 @1h
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
62 |
250
8ef7fb7f14ad
rpg: add support for collisions with actions
David Demelier <markand@malikania.fr>
parents:
215
diff
changeset
|
63 const json_t *key = json_object_get(obj, "name"); |
8ef7fb7f14ad
rpg: add support for collisions with actions
David Demelier <markand@malikania.fr>
parents:
215
diff
changeset
|
64 const json_t *value = json_object_get(obj, "value"); |
212
ddfe0a211169
rpg: experiment with map teleport
David Demelier <markand@malikania.fr>
parents:
211
diff
changeset
|
65 |
250
8ef7fb7f14ad
rpg: add support for collisions with actions
David Demelier <markand@malikania.fr>
parents:
215
diff
changeset
|
66 if (json_is_string(key) && value && strcmp(json_string_value(key), which) == 0) |
212
ddfe0a211169
rpg: experiment with map teleport
David Demelier <markand@malikania.fr>
parents:
211
diff
changeset
|
67 return value; |
ddfe0a211169
rpg: experiment with map teleport
David Demelier <markand@malikania.fr>
parents:
211
diff
changeset
|
68 } |
ddfe0a211169
rpg: experiment with map teleport
David Demelier <markand@malikania.fr>
parents:
211
diff
changeset
|
69 |
ddfe0a211169
rpg: experiment with map teleport
David Demelier <markand@malikania.fr>
parents:
211
diff
changeset
|
70 return NULL; |
ddfe0a211169
rpg: experiment with map teleport
David Demelier <markand@malikania.fr>
parents:
211
diff
changeset
|
71 } |
ddfe0a211169
rpg: experiment with map teleport
David Demelier <markand@malikania.fr>
parents:
211
diff
changeset
|
72 |
50
402aa7dcffe1
core: implement map origin, closes #2462 @1h
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
73 static void |
402aa7dcffe1
core: implement map origin, closes #2462 @1h
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
74 write_title(const json_t *props) |
402aa7dcffe1
core: implement map origin, closes #2462 @1h
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
75 { |
402aa7dcffe1
core: implement map origin, closes #2462 @1h
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
76 const json_t *prop_title = find_property(props, "title"); |
402aa7dcffe1
core: implement map origin, closes #2462 @1h
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
77 |
250
8ef7fb7f14ad
rpg: add support for collisions with actions
David Demelier <markand@malikania.fr>
parents:
215
diff
changeset
|
78 if (prop_title && json_is_string(prop_title)) |
8ef7fb7f14ad
rpg: add support for collisions with actions
David Demelier <markand@malikania.fr>
parents:
215
diff
changeset
|
79 printf("title|%s\n", json_string_value(prop_title)); |
50
402aa7dcffe1
core: implement map origin, closes #2462 @1h
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
80 } |
402aa7dcffe1
core: implement map origin, closes #2462 @1h
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
81 |
402aa7dcffe1
core: implement map origin, closes #2462 @1h
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
82 static void |
402aa7dcffe1
core: implement map origin, closes #2462 @1h
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
83 write_origin(const json_t *props) |
402aa7dcffe1
core: implement map origin, closes #2462 @1h
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
84 { |
402aa7dcffe1
core: implement map origin, closes #2462 @1h
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
85 const json_t *prop_origin_x = find_property(props, "origin-x"); |
402aa7dcffe1
core: implement map origin, closes #2462 @1h
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
86 const json_t *prop_origin_y = find_property(props, "origin-y"); |
402aa7dcffe1
core: implement map origin, closes #2462 @1h
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
87 |
250
8ef7fb7f14ad
rpg: add support for collisions with actions
David Demelier <markand@malikania.fr>
parents:
215
diff
changeset
|
88 if (!prop_origin_x || !json_is_integer(prop_origin_x) || |
8ef7fb7f14ad
rpg: add support for collisions with actions
David Demelier <markand@malikania.fr>
parents:
215
diff
changeset
|
89 !prop_origin_y || !json_is_integer(prop_origin_y)) |
50
402aa7dcffe1
core: implement map origin, closes #2462 @1h
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
90 return; |
402aa7dcffe1
core: implement map origin, closes #2462 @1h
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
91 |
215
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
212
diff
changeset
|
92 printf("origin|%d|%d\n", |
250
8ef7fb7f14ad
rpg: add support for collisions with actions
David Demelier <markand@malikania.fr>
parents:
215
diff
changeset
|
93 (int)json_integer_value(prop_origin_x), |
8ef7fb7f14ad
rpg: add support for collisions with actions
David Demelier <markand@malikania.fr>
parents:
215
diff
changeset
|
94 (int)json_integer_value(prop_origin_y)); |
50
402aa7dcffe1
core: implement map origin, closes #2462 @1h
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
95 } |
402aa7dcffe1
core: implement map origin, closes #2462 @1h
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
96 |
25
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
97 static void |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
98 write_properties(const json_t *props) |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
99 { |
50
402aa7dcffe1
core: implement map origin, closes #2462 @1h
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
100 write_title(props); |
402aa7dcffe1
core: implement map origin, closes #2462 @1h
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
101 write_origin(props); |
25
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
102 } |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
103 |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
104 static void |
215
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
212
diff
changeset
|
105 write_dimensions(const json_t *document) |
25
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
106 { |
27
607bd90aba63
core: finalize map converter and opener, closes #2448 @6h
David Demelier <markand@malikania.fr>
parents:
25
diff
changeset
|
107 json_t *width = json_object_get(document, "width"); |
25
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
108 json_t *height = json_object_get(document, "height"); |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
109 |
27
607bd90aba63
core: finalize map converter and opener, closes #2448 @6h
David Demelier <markand@malikania.fr>
parents:
25
diff
changeset
|
110 if (!width || !json_is_integer(width)) |
607bd90aba63
core: finalize map converter and opener, closes #2448 @6h
David Demelier <markand@malikania.fr>
parents:
25
diff
changeset
|
111 die("missing 'width' property\n"); |
25
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
112 if (!height || !json_is_integer(height)) |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
113 die("missing 'height' property\n"); |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
114 |
215
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
212
diff
changeset
|
115 printf("columns|%d\n", (int)json_integer_value(width)); |
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
212
diff
changeset
|
116 printf("rows|%d\n", (int)json_integer_value(height)); |
25
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
117 } |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
118 |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
119 static void |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
120 write_object(const json_t *object) |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
121 { |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
122 assert(json_is_object(object)); |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
123 |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
124 json_t *x = json_object_get(object, "x"); |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
125 json_t *y = json_object_get(object, "y"); |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
126 json_t *width = json_object_get(object, "width"); |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
127 json_t *height = json_object_get(object, "height"); |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
128 json_t *props = json_object_get(object, "properties"); |
250
8ef7fb7f14ad
rpg: add support for collisions with actions
David Demelier <markand@malikania.fr>
parents:
215
diff
changeset
|
129 const json_t *exec, *block; |
25
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
130 |
212
ddfe0a211169
rpg: experiment with map teleport
David Demelier <markand@malikania.fr>
parents:
211
diff
changeset
|
131 if (!x || !json_is_number(x)) |
25
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
132 die("invalid 'x' property in object\n"); |
212
ddfe0a211169
rpg: experiment with map teleport
David Demelier <markand@malikania.fr>
parents:
211
diff
changeset
|
133 if (!y || !json_is_number(y)) |
25
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
134 die("invalid 'y' property in object\n"); |
212
ddfe0a211169
rpg: experiment with map teleport
David Demelier <markand@malikania.fr>
parents:
211
diff
changeset
|
135 if (!width || !json_is_number(width)) |
25
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
136 die("invalid 'width' property in object\n"); |
212
ddfe0a211169
rpg: experiment with map teleport
David Demelier <markand@malikania.fr>
parents:
211
diff
changeset
|
137 if (!height || !json_is_number(height)) |
25
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
138 die("invalid 'height' property in object\n"); |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
139 |
250
8ef7fb7f14ad
rpg: add support for collisions with actions
David Demelier <markand@malikania.fr>
parents:
215
diff
changeset
|
140 /* This is optional and set to 0 if not present. */ |
8ef7fb7f14ad
rpg: add support for collisions with actions
David Demelier <markand@malikania.fr>
parents:
215
diff
changeset
|
141 block = find_property(props, "block"); |
8ef7fb7f14ad
rpg: add support for collisions with actions
David Demelier <markand@malikania.fr>
parents:
215
diff
changeset
|
142 |
25
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
143 /* In tiled, those properties are float but we only use ints in MA */ |
250
8ef7fb7f14ad
rpg: add support for collisions with actions
David Demelier <markand@malikania.fr>
parents:
215
diff
changeset
|
144 printf("%d|%d|%d|%d|%d", |
212
ddfe0a211169
rpg: experiment with map teleport
David Demelier <markand@malikania.fr>
parents:
211
diff
changeset
|
145 (int)json_integer_value(x), |
ddfe0a211169
rpg: experiment with map teleport
David Demelier <markand@malikania.fr>
parents:
211
diff
changeset
|
146 (int)json_integer_value(y), |
ddfe0a211169
rpg: experiment with map teleport
David Demelier <markand@malikania.fr>
parents:
211
diff
changeset
|
147 (int)json_integer_value(width), |
250
8ef7fb7f14ad
rpg: add support for collisions with actions
David Demelier <markand@malikania.fr>
parents:
215
diff
changeset
|
148 (int)json_integer_value(height), |
8ef7fb7f14ad
rpg: add support for collisions with actions
David Demelier <markand@malikania.fr>
parents:
215
diff
changeset
|
149 (int)json_is_true(block) |
25
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
150 ); |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
151 |
250
8ef7fb7f14ad
rpg: add support for collisions with actions
David Demelier <markand@malikania.fr>
parents:
215
diff
changeset
|
152 if ((exec = find_property(props, "exec")) && json_is_string(exec)) |
8ef7fb7f14ad
rpg: add support for collisions with actions
David Demelier <markand@malikania.fr>
parents:
215
diff
changeset
|
153 printf("|%s", json_string_value(exec)); |
25
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
154 |
212
ddfe0a211169
rpg: experiment with map teleport
David Demelier <markand@malikania.fr>
parents:
211
diff
changeset
|
155 printf("\n"); |
25
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
156 } |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
157 |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
158 static void |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
159 write_layer(const json_t *layer) |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
160 { |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
161 json_t *objects = json_object_get(layer, "objects"); |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
162 json_t *data = json_object_get(layer, "data"); |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
163 json_t *name = json_object_get(layer, "name"); |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
164 json_t *tile, *object; |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
165 size_t index; |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
166 |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
167 if (!name || !json_is_string(name)) |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
168 die("invalid 'name' property in layer"); |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
169 if (!is_layer(json_string_value(name))) |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
170 die("invalid 'name' layer: %s\n", json_string_value(name)); |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
171 |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
172 printf("layer|%s\n", json_string_value(name)); |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
173 |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
174 /* Only foreground/background have 'data' property */ |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
175 if (json_is_array(data)) { |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
176 json_array_foreach(data, index, tile) { |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
177 if (!json_is_integer(tile)) |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
178 die("invalid 'data' property in layer\n"); |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
179 |
215
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
212
diff
changeset
|
180 printf("%d\n", (int)json_integer_value(tile)); |
25
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
181 } |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
182 } |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
183 |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
184 /* Only objects has 'objects' property */ |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
185 if (json_is_array(objects)) { |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
186 json_array_foreach(objects, index, object) { |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
187 if (!json_is_object(object)) |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
188 die("invalid 'objects' property in layer\n"); |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
189 |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
190 write_object(object); |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
191 } |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
192 } |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
193 } |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
194 |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
195 static void |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
196 write_layers(const json_t *layers) |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
197 { |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
198 size_t index; |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
199 json_t *layer; |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
200 |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
201 if (!layers) |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
202 return; |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
203 |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
204 json_array_foreach(layers, index, layer) { |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
205 if (!json_is_object(layer)) |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
206 die("layer is not an object\n"); |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
207 |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
208 write_layer(layer); |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
209 } |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
210 } |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
211 |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
212 static void |
215
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
212
diff
changeset
|
213 write_tileset(const json_t *tilesets) |
210
70e6ed74940d
rpg: attempt of collide detection in map
David Demelier <markand@malikania.fr>
parents:
116
diff
changeset
|
214 { |
215
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
212
diff
changeset
|
215 char path[PATH_MAX]; |
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
212
diff
changeset
|
216 char filename[FILENAME_MAX] = {0}, *ext; |
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
212
diff
changeset
|
217 const json_t *tileset, *source; |
210
70e6ed74940d
rpg: attempt of collide detection in map
David Demelier <markand@malikania.fr>
parents:
116
diff
changeset
|
218 |
215
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
212
diff
changeset
|
219 if (json_array_size(tilesets) != 1) |
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
212
diff
changeset
|
220 die("map must contain exactly one tileset"); |
210
70e6ed74940d
rpg: attempt of collide detection in map
David Demelier <markand@malikania.fr>
parents:
116
diff
changeset
|
221 |
215
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
212
diff
changeset
|
222 tileset = json_array_get(tilesets, 0); |
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
212
diff
changeset
|
223 source = json_object_get(tileset, "source"); |
210
70e6ed74940d
rpg: attempt of collide detection in map
David Demelier <markand@malikania.fr>
parents:
116
diff
changeset
|
224 |
215
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
212
diff
changeset
|
225 if (!json_is_string(source)) |
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
212
diff
changeset
|
226 die("invalid 'source' property in tileset\n"); |
210
70e6ed74940d
rpg: attempt of collide detection in map
David Demelier <markand@malikania.fr>
parents:
116
diff
changeset
|
227 |
215
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
212
diff
changeset
|
228 /* We need to replace the .json extension to .tileset. */ |
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
212
diff
changeset
|
229 snprintf(path, sizeof (path), "%s", json_string_value(source)); |
420
7d2ebc334c8c
misc: rename core to util
David Demelier <markand@malikania.fr>
parents:
414
diff
changeset
|
230 snprintf(filename, sizeof (filename), "%s", util_basename(path)); |
25
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
231 |
215
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
212
diff
changeset
|
232 if (!(ext = strstr(filename, ".json"))) |
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
212
diff
changeset
|
233 die("could not determine tileset extension"); |
25
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
234 |
215
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
212
diff
changeset
|
235 *ext = '\0'; |
25
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
236 |
215
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
212
diff
changeset
|
237 printf("tileset|%s.tileset\n", filename); |
25
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
238 } |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
239 |
16
621c815c9509
tools: implement basic molko-map stub, continue #2448
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
240 int |
621c815c9509
tools: implement basic molko-map stub, continue #2448
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
241 main(void) |
621c815c9509
tools: implement basic molko-map stub, continue #2448
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
242 { |
25
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
243 json_t *document; |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
244 json_error_t error; |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
245 |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
246 document = json_loadf(stdin, 0, &error); |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
247 |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
248 if (!document) |
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
249 die("%d:%d: %s\n", error.line, error.column, error.text); |
16
621c815c9509
tools: implement basic molko-map stub, continue #2448
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
250 |
25
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
251 write_properties(json_object_get(document, "properties")); |
215
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
212
diff
changeset
|
252 write_dimensions(document); |
25
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
253 write_layers(json_object_get(document, "layers")); |
215
64f24b482722
rpg: implement tilesets separately, closes #2515 @4h
David Demelier <markand@malikania.fr>
parents:
212
diff
changeset
|
254 write_tileset(json_object_get(document, "tilesets")); |
16
621c815c9509
tools: implement basic molko-map stub, continue #2448
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
255 |
25
0d5ecefcccd3
molko-map: reimplement using JSON as it is supported by tiled, closes #2448 @4h
David Demelier <markand@malikania.fr>
parents:
16
diff
changeset
|
256 json_decref(document); |
16
621c815c9509
tools: implement basic molko-map stub, continue #2448
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
257 } |