summaryrefslogtreecommitdiff
path: root/src/map/map.c
diff options
context:
space:
mode:
authorHaru <haru@dotalux.com>2018-11-13 15:05:05 +0100
committerGitHub <noreply@github.com>2018-11-13 15:05:05 +0100
commitbb2858fda55ca4ca3144232da9b837d9551aafc0 (patch)
tree05f4f3908f6246b902e6d4a13894f20ac2990cf8 /src/map/map.c
parent26efcebad2f3d316013cc1458925cd0ca70cb347 (diff)
parentf3af2d37a90a83bbec25c15e59c29e0f9802daca (diff)
downloadhercules-bb2858fda55ca4ca3144232da9b837d9551aafc0.tar.gz
hercules-bb2858fda55ca4ca3144232da9b837d9551aafc0.tar.bz2
hercules-bb2858fda55ca4ca3144232da9b837d9551aafc0.tar.xz
hercules-bb2858fda55ca4ca3144232da9b837d9551aafc0.zip
Merge pull request #2105 from Helianthella/getunits3
break the loop in buildin_getunits when the max is reached
Diffstat (limited to 'src/map/map.c')
-rw-r--r--src/map/map.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/map/map.c b/src/map/map.c
index 343f219b8..a352d34b0 100644
--- a/src/map/map.c
+++ b/src/map/map.c
@@ -635,6 +635,18 @@ static int map_foreachinmap(int (*func)(struct block_list*, va_list), int16 m, i
return returnCount;
}
+static int map_forcountinmap(int (*func)(struct block_list*, va_list), int16 m, int count, int type, ...)
+{
+ int returnCount;
+ va_list ap;
+
+ va_start(ap, type);
+ returnCount = map->vforcountinarea(func, m, 0, 0, map->list[m].bxs, map->list[m].bys, count, type, ap);
+ va_end(ap);
+
+ return returnCount;
+}
+
/**
* Applies func to every block_list object of bl_type type on all maps
* of instance instance_id.
@@ -6901,6 +6913,7 @@ void map_defaults(void)
map->foreachinpath = map_foreachinpath;
map->vforeachinmap = map_vforeachinmap;
map->foreachinmap = map_foreachinmap;
+ map->forcountinmap = map_forcountinmap;
map->vforeachininstance = map_vforeachininstance;
map->foreachininstance = map_foreachininstance;