diff options
Diffstat (limited to 'src/map.c')
-rw-r--r-- | src/map.c | 34 |
1 files changed, 20 insertions, 14 deletions
@@ -66,9 +66,11 @@ struct db_map { int player_x; int player_y; int player_r; + int player_gid; int target_x; int target_y; int target_r; + int target_gid; struct db_ball *ball_head; struct db_ball *ball_tail; }; @@ -530,13 +532,15 @@ _db_tmx_object_end(void *pv, const char *name) if (db_xml_check_tag(name, "object")) { if (strcmp(map->obj_type, "player") == 0) { - map->player_x = map->obj_x; - map->player_y = map->obj_y; - map->player_r = map->obj_r; + map->player_x = map->obj_x; + map->player_y = map->obj_y; + map->player_r = map->obj_r; + map->player_gid = map->obj_gid; } else if (strcmp(map->obj_type, "target") == 0) { - map->target_x = map->obj_x; - map->target_y = map->obj_y; - map->target_r = map->obj_r; + map->target_x = map->obj_x; + map->target_y = map->obj_y; + map->target_r = map->obj_r; + map->target_gid = map->obj_gid; } else if (strcmp(map->obj_type, "ball") == 0) { map->ball_tail = db_ball_new(map->obj_x, map->obj_y, map->obj_r, map->obj_a, map->obj_d, @@ -899,19 +903,21 @@ db_map_get_tilesets(struct db_map *map) } void -db_map_get_player(struct db_map *map, int *x, int *y, int *r) +db_map_get_player(struct db_map *map, int *x, int *y, int *r, int *gid) { - *x = map->player_x; - *y = map->player_y; - *r = map->player_r; + *x = map->player_x; + *y = map->player_y; + *r = map->player_r; + *gid = map->player_gid; } void -db_map_get_target(struct db_map *map, int *x, int *y, int *r) +db_map_get_target(struct db_map *map, int *x, int *y, int *r, int *gid) { - *x = map->target_x; - *y = map->target_y; - *r = map->target_r; + *x = map->target_x; + *y = map->target_y; + *r = map->target_r; + *gid = map->target_gid; } struct db_ball *db_map_get_balls(struct db_map *map) |