diff options
-rw-r--r-- | .mailmap | 95 | ||||
-rw-r--r-- | src/map/map.c | 13 | ||||
-rw-r--r-- | src/map/map.h | 1 | ||||
-rw-r--r-- | src/map/script.c | 14 |
4 files changed, 112 insertions, 11 deletions
@@ -7,3 +7,98 @@ <joseph.tk.ea@gmail.com> <j-tkay@54d463be-8e91-2dee-dedb-b68131a5f0ec> <ind@henn.et> <shennetsind@54d463be-8e91-2dee-dedb-b68131a5f0ec> <Kenpachi.Developer@gmx.de> <kenpachi2k11@54d463be-8e91-2dee-dedb-b68131a5f0ec> +<umage@netvor.sk> <ultramage@54d463be-8e91-2dee-dedb-b68131a5f0ec> +<ai4rei@users.noreply.github.com> <ai4rei@54d463be-8e91-2dee-dedb-b68131a5f0ec> +<Kenji.Ito@gmx.de> <Playtester@54d463be-8e91-2dee-dedb-b68131a5f0ec> +<masao@gmx.ch> <masao87@54d463be-8e91-2dee-dedb-b68131a5f0ec> +<piotr.halaczkiewicz@gmail.com> <gepard1984@54d463be-8e91-2dee-dedb-b68131a5f0ec> +<piotr.halaczkiewicz@gmail.com> <Gepard@54d463be-8e91-2dee-dedb-b68131a5f0ec> +<missxantara@gmail.com> <xantara@54d463be-8e91-2dee-dedb-b68131a5f0ec> +<lightaisme@gmail.com> <glighta@54d463be-8e91-2dee-dedb-b68131a5f0ec> +<brianluau@users.noreply.github.com> <brianluau@54d463be-8e91-2dee-dedb-b68131a5f0ec> +<harrison@isabarwon.com> <calciumkid@54d463be-8e91-2dee-dedb-b68131a5f0ec> +<fw@f-ws.de> <blacksirius@54d463be-8e91-2dee-dedb-b68131a5f0ec> +<fw@f-ws.de> <sirius@54d463be-8e91-2dee-dedb-b68131a5f0ec> +<jmish1987@gmail.com> <jmanfffreak@54d463be-8e91-2dee-dedb-b68131a5f0ec> +<paradox924x@gmail.com> <Paradox924x@54d463be-8e91-2dee-dedb-b68131a5f0ec> +<paradox924x@gmail.com> <Paradox924X@54d463be-8e91-2dee-dedb-b68131a5f0ec> +<yomanda@gmail.com> <Yommy@54d463be-8e91-2dee-dedb-b68131a5f0ec> +<masterofmuppets89@gmail.com> <MasterOfMuppets@54d463be-8e91-2dee-dedb-b68131a5f0ec> +<flaviojs2005@gmail.com> <flaviojs@54d463be-8e91-2dee-dedb-b68131a5f0ec> +<flaviojs2005@gmail.com> <FlavioJS@54d463be-8e91-2dee-dedb-b68131a5f0ec> +<flaviojs2005@gmail.com> <flaviojs2005@54d463be-8e91-2dee-dedb-b68131a5f0ec> +<macabu.matheus@gmail.com> <momacabu@54d463be-8e91-2dee-dedb-b68131a5f0ec> +<Daegaladh@users.noreply.github.com> <daegaladh@54d463be-8e91-2dee-dedb-b68131a5f0ec> +<greenboxal@gmail.com> <greenboxal2@54d463be-8e91-2dee-dedb-b68131a5f0ec> +<malufett.eat.my.binaries@gmail.com> <rud0lp20@54d463be-8e91-2dee-dedb-b68131a5f0ec> + +# old aliases + +<haru@dotalux.com> <haru@originsro.org> +<ind@henn.et> <int@henn.et> +<ind@henn.et> <notind@gmail.com> +<ind@henn.et> <shennetsind@users.noreply.github.com> +<dastgirp@gmail.com> <dastgir@users.noreply.github.com> +<dastgirp@gmail.com> <dastgirpojee@rocketmail.com> +<michieru-kun@hotmail.com> <Michieru@users.noreply.github.com> +<michieru-kun@hotmail.com> <michieru@0-mail.com> +<jedzkie13@rocketmail.com> <Jedzkie@users.noreply.github.com> +<jedzkie13@rocketmail.com> <eikzdej@gmail.com> +<jedzkie13@rocketmail.com> <jedzkie999@gmail.com> +<Equinox1991@gmail.com> <Emistry@users.noreply.github.com> +<gauvain.dauchy@free.fr> <alige@users.noreply.github.com> +<guilherme.menaldo@outlook.com> <guilherme-gm@users.noreply.github.com> +<dev@herc.ws> <Hercules@efficiently.awesome> +<streusel@gravity.co.kr> <advance_me@hotmail.de> +<streusel@gravity.co.kr> <m.me1@live.de> +<ibrahem.h.basyone@gmail.com> <hemagx2@gmail.com> +<Asheraf@users.noreply.github.com> <acheraf1998@gmail.com> +<sagunkho@hotmail.com> <sagunxp@gmail.com> +<git@gumi.ca> <mekolat@users.noreply.github.com> + + + + + +# missing from github: +# - skotlex +# - L0ne_W0lf +# - Lupus +# - celest +# - Lance +# - zephyrus +# - amber +# - Inkfish +# - toms +# - shadowlady +# - codemaster +# - Vicious +# - samuray22 +# - Kevin +# - eathenabot +# - shadow +# - mc_cameri +# - evera +# - SinSloth +# - epoque11 +# - DracoRPG +# - sketchyphoenix +# - littlewolf +# - eaac +# - ajarn +# - wizputer +# - Nasedo +# - valaris +# - blackhole89 +# - protimus +# - Komurka +# - Poki#3 +# - cookiecrumbs +# - Zido +# - akrus +# - markzd +# - xazax-hun +# - lordttseven +# - musahiden +# - Aria +# - og2 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; diff --git a/src/map/map.h b/src/map/map.h index cb025e9c1..0e38bdb13 100644 --- a/src/map/map.h +++ b/src/map/map.h @@ -1293,6 +1293,7 @@ END_ZEROED_BLOCK; int (*foreachinpath) (int (*func)(struct block_list*,va_list), int16 m, int16 x0, int16 y0, int16 x1, int16 y1, int16 range, int length, int type, ...); int (*vforeachinmap) (int (*func)(struct block_list*,va_list), int16 m, int type, va_list args); int (*foreachinmap) (int (*func)(struct block_list*,va_list), int16 m, int type, ...); + int (*forcountinmap) (int (*func)(struct block_list*,va_list), int16 m, int count, int type, ...); int (*vforeachininstance)(int (*func)(struct block_list*,va_list), int16 instance_id, int type, va_list ap); int (*foreachininstance)(int (*func)(struct block_list*,va_list), int16 instance_id, int type,...); diff --git a/src/map/script.c b/src/map/script.c index d1839676f..8aceb0532 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -11300,7 +11300,7 @@ static int buildin_getunits_sub(struct block_list *bl, va_list ap) (const void *)h64BPTRSIZE(bl->id), ref); (*count)++; - return 0; + return 1; } static int buildin_getunits_sub_pc(struct map_session_data *sd, va_list ap) @@ -11372,18 +11372,10 @@ static BUILDIN(getunits) int16 x2 = script_getnum(st, 8); int16 y2 = script_getnum(st, 9); - // FIXME: map_foreachinarea does NOT stop iterating when the callback - // function returns -1. we still limit the array size, but - // this doesn't break the loop. We need a foreach function - // that behaves like map_foreachiddb, but for areas - map->foreachinarea(buildin_getunits_sub, m, x1, y1, x2, y2, type, + map->forcountinarea(buildin_getunits_sub, m, x1, y1, x2, y2, limit, type, st, sd, id, start, &count, limit, name, ref, type); } else { - // FIXME: map_foreachinmap does NOT stop iterating when the callback - // function returns -1. we still limit the array size, but - // this doesn't break the loop. We need a foreach function - // that behaves like map_foreachiddb, but for maps - map->foreachinmap(buildin_getunits_sub, m, type, + map->forcountinmap(buildin_getunits_sub, m, limit, type, st, sd, id, start, &count, limit, name, ref, type); } } else { |