comparison mlk-map/mlk-map.c @ 592:1560ef13146c

rpg: map support player sprite
author David Demelier <markand@malikania.fr>
date Mon, 20 Mar 2023 21:59:02 +0100
parents f271681ce015
children e070fdcc592b
comparison
equal deleted inserted replaced
591:bca466732620 592:1560ef13146c
54 54
55 return NULL; 55 return NULL;
56 } 56 }
57 57
58 static void 58 static void
59 write_origin(const json_t *props) 59 write_player_origin(const json_t *props)
60 { 60 {
61 const json_t *prop_origin_x; 61 const json_t *x, *y;
62 const json_t *prop_origin_y; 62
63 63 x = find_property(props, "player-origin-x");
64 prop_origin_x = find_property(props, "origin-x"); 64 y = find_property(props, "player-origin-y");
65 prop_origin_y = find_property(props, "origin-y"); 65
66 66 if (!x || !json_is_integer(x) ||
67 if (!prop_origin_x || !json_is_integer(prop_origin_x) || 67 !y || !json_is_integer(y))
68 !prop_origin_y || !json_is_integer(prop_origin_y))
69 return; 68 return;
70 69
71 printf("origin|%d|%d\n", 70 printf("player-origin|%d|%d\n",
72 (int)json_integer_value(prop_origin_x), 71 (int)json_integer_value(x),
73 (int)json_integer_value(prop_origin_y)); 72 (int)json_integer_value(y));
73 }
74
75 static void
76 write_player_sprite(const json_t *props)
77 {
78 const json_t *sprite, *w, *h;
79
80 sprite = find_property(props, "player-sprite");
81 w = find_property(props, "player-sprite-w");
82 h = find_property(props, "player-sprite-h");
83
84 if (!sprite || !json_is_string(sprite) ||
85 !w || !json_is_integer(w) ||
86 !h || !json_is_integer(h))
87 return;
88
89 printf("player-sprite|%d|%d|%s\n",
90 (int)json_integer_value(w),
91 (int)json_integer_value(h),
92 json_string_value(sprite)
93 );
74 } 94 }
75 95
76 static void 96 static void
77 write_properties(const json_t *props) 97 write_properties(const json_t *props)
78 { 98 {
79 write_origin(props); 99 write_player_origin(props);
100 write_player_sprite(props);
80 } 101 }
81 102
82 static void 103 static void
83 write_dimensions(const json_t *document) 104 write_dimensions(const json_t *document)
84 { 105 {