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 }