summaryrefslogtreecommitdiffstats
path: root/src/map.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/map.c')
-rw-r--r--src/map.c34
1 files changed, 20 insertions, 14 deletions
diff --git a/src/map.c b/src/map.c
index e4ee0b9..3b9c7ad 100644
--- a/src/map.c
+++ b/src/map.c
@@ -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)