summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2015-02-21 17:47:45 +0300
committerAndrei Karas <akaras@inbox.ru>2015-02-23 23:36:18 +0300
commit4e681ce12a3f9574c33dc1e11ca8665e8f04e8a0 (patch)
tree2821d43a8b8017c659376a3542fe281795d6d307
parent6b949190402e71d5c489f627da79eb5f51669b44 (diff)
downloadhercules-4e681ce12a3f9574c33dc1e11ca8665e8f04e8a0.tar.gz
hercules-4e681ce12a3f9574c33dc1e11ca8665e8f04e8a0.tar.bz2
hercules-4e681ce12a3f9574c33dc1e11ca8665e8f04e8a0.tar.xz
hercules-4e681ce12a3f9574c33dc1e11ca8665e8f04e8a0.zip
Extend official_cell_stack_limit option.
Now if this option is zero server will not count objects before comparing with official_cell_stack_limit. If set official_cell_stack_limit to zero it will heavy reduce CPU usage.
-rw-r--r--src/map/battle.c2
-rw-r--r--src/map/mob.c2
-rw-r--r--src/map/unit.c2
3 files changed, 3 insertions, 3 deletions
diff --git a/src/map/battle.c b/src/map/battle.c
index d5f523208..f5357f94a 100644
--- a/src/map/battle.c
+++ b/src/map/battle.c
@@ -6725,7 +6725,7 @@ static const struct battle_data {
{ "bone_drop", &battle_config.bone_drop, 0, 0, 2, },
{ "buyer_name", &battle_config.buyer_name, 1, 0, 1, },
{ "skill_wall_check", &battle_config.skill_wall_check, 1, 0, 1, },
- { "official_cell_stack_limit", &battle_config.official_cell_stack_limit, 1, 1, 255, },
+ { "official_cell_stack_limit", &battle_config.official_cell_stack_limit, 1, 0, 255, },
{ "custom_cell_stack_limit", &battle_config.custom_cell_stack_limit, 1, 1, 255, },
{ "dancing_weaponswitch_fix", &battle_config.dancing_weaponswitch_fix, 1, 0, 1, },
diff --git a/src/map/mob.c b/src/map/mob.c
index a94650438..8a8e96508 100644
--- a/src/map/mob.c
+++ b/src/map/mob.c
@@ -1311,7 +1311,7 @@ int mob_unlocktarget(struct mob_data *md, int64 tick) {
md->ud.target_to = 0;
unit->set_target(&md->ud, 0);
}
- if(map->count_oncell(md->bl.m, md->bl.x, md->bl.y, BL_CHAR|BL_NPC, 1) > battle_config.official_cell_stack_limit) {
+ if(battle_config.official_cell_stack_limit && map->count_oncell(md->bl.m, md->bl.x, md->bl.y, BL_CHAR|BL_NPC, 1) > battle_config.official_cell_stack_limit) {
unit->walktoxy(&md->bl, md->bl.x, md->bl.y, 8);
}
diff --git a/src/map/unit.c b/src/map/unit.c
index 6e4efd533..b8e84492b 100644
--- a/src/map/unit.c
+++ b/src/map/unit.c
@@ -454,7 +454,7 @@ int unit_walktoxy_timer(int tid, int64 tick, int id, intptr_t data) {
ud->to_x = bl->x;
ud->to_y = bl->y;
- if(map->count_oncell(bl->m, x, y, BL_CHAR|BL_NPC, 1) > battle_config.official_cell_stack_limit) {
+ if(battle_config.official_cell_stack_limit && map->count_oncell(bl->m, x, y, BL_CHAR|BL_NPC, 1) > battle_config.official_cell_stack_limit) {
//Walked on occupied cell, call unit_walktoxy again
if(ud->steptimer != INVALID_TIMER) {
//Execute step timer on next step instead