Mercurial > molko
comparison mlk-tileset/mlk-tileset.c @ 551:856c2e96189d
cmake: add support for maps/tilesets
author | David Demelier <markand@malikania.fr> |
---|---|
date | Mon, 06 Mar 2023 20:44:43 +0100 |
parents | 773a082f0b91 |
children | 944798a59b8a |
comparison
equal
deleted
inserted
replaced
550:d624125746f3 | 551:856c2e96189d |
---|---|
105 printf("10\n"); | 105 printf("10\n"); |
106 } | 106 } |
107 } | 107 } |
108 | 108 |
109 static void | 109 static void |
110 write_tiledef(const json_t *tile) | 110 write_collision(const json_t *tile) |
111 { | 111 { |
112 const json_t *id = json_object_get(tile, "id"); | 112 const json_t *id = json_object_get(tile, "id"); |
113 const json_t *objectgroup = json_object_get(tile, "objectgroup"); | 113 const json_t *objectgroup = json_object_get(tile, "objectgroup"); |
114 const json_t *objects = json_object_get(objectgroup, "objects"); | 114 const json_t *objects = json_object_get(objectgroup, "objects"); |
115 const json_t *first = json_array_get(objects, 0); | 115 const json_t *first = json_array_get(objects, 0); |
140 (int)json_integer_value(w), | 140 (int)json_integer_value(w), |
141 (int)json_integer_value(h)); | 141 (int)json_integer_value(h)); |
142 } | 142 } |
143 | 143 |
144 static void | 144 static void |
145 write_tiledefs(const json_t *tiles) | 145 write_collisions(const json_t *tiles) |
146 { | 146 { |
147 size_t index; | 147 size_t index; |
148 json_t *object; | 148 json_t *object; |
149 | 149 |
150 if (!json_is_array(tiles)) | 150 if (!json_is_array(tiles)) |
151 return; | 151 return; |
152 | 152 |
153 puts("tiledefs"); | 153 printf("collisions\n"); |
154 | 154 |
155 json_array_foreach(tiles, index, object) { | 155 json_array_foreach(tiles, index, object) { |
156 if (!json_is_object(object)) | 156 if (!json_is_object(object)) |
157 die("tile is not an object\n"); | 157 die("tile is not an object\n"); |
158 | 158 |
159 write_tiledef(object); | 159 write_collision(object); |
160 } | 160 } |
161 } | 161 } |
162 | 162 |
163 static void | 163 static void |
164 write_animations(const json_t *tiles) | 164 write_animations(const json_t *tiles) |
167 json_t *object; | 167 json_t *object; |
168 | 168 |
169 if (!json_is_array(tiles)) | 169 if (!json_is_array(tiles)) |
170 return; | 170 return; |
171 | 171 |
172 puts("animations"); | 172 printf("animations\n"); |
173 | 173 |
174 json_array_foreach(tiles, index, object) { | 174 json_array_foreach(tiles, index, object) { |
175 if (!json_is_object(object)) | 175 if (!json_is_object(object)) |
176 die("tile is not an object\n"); | 176 die("tile is not an object\n"); |
177 | 177 |
195 if (!json_is_object(document)) | 195 if (!json_is_object(document)) |
196 die("root value isn't an object\n"); | 196 die("root value isn't an object\n"); |
197 | 197 |
198 write_dimensions(document); | 198 write_dimensions(document); |
199 write_image(document); | 199 write_image(document); |
200 write_tiledefs(json_object_get(document, "tiles")); | 200 write_collisions(json_object_get(document, "tiles")); |
201 write_animations(json_object_get(document, "tiles")); | 201 write_animations(json_object_get(document, "tiles")); |
202 | 202 |
203 json_decref(document); | 203 json_decref(document); |
204 } | 204 } |