diff options
author | AnnieRuru <jeankof@ymail.com> | 2018-04-11 18:10:10 +0800 |
---|---|---|
committer | AnnieRuru <jeankof@ymail.com> | 2018-04-11 18:10:10 +0800 |
commit | c45d7f983bfe8034e11f1d3e5b9b4404afec6b31 (patch) | |
tree | be7354ce8a73a0a88e0d0d798560a39973c5ae05 /src/map | |
parent | 7b097da8b433ea3b768b6c306c12801f7ddef0a5 (diff) | |
download | hercules-c45d7f983bfe8034e11f1d3e5b9b4404afec6b31.tar.gz hercules-c45d7f983bfe8034e11f1d3e5b9b4404afec6b31.tar.bz2 hercules-c45d7f983bfe8034e11f1d3e5b9b4404afec6b31.tar.xz hercules-c45d7f983bfe8034e11f1d3e5b9b4404afec6b31.zip |
*delwall now give a friendly warning to remind non-existent wall
Diffstat (limited to 'src/map')
-rw-r--r-- | src/map/map.c | 5 | ||||
-rw-r--r-- | src/map/map.h | 2 | ||||
-rw-r--r-- | src/map/script.c | 10 |
3 files changed, 12 insertions, 5 deletions
diff --git a/src/map/map.c b/src/map/map.c index 780e6f535..90b304865 100644 --- a/src/map/map.c +++ b/src/map/map.c @@ -3166,13 +3166,13 @@ void map_iwall_get(struct map_session_data *sd) dbi_destroy(iter); } -void map_iwall_remove(const char *wall_name) +bool map_iwall_remove(const char *wall_name) { struct iwall_data *iwall; int16 i, x1, y1; if( (iwall = (struct iwall_data *)strdb_get(map->iwall_db, wall_name)) == NULL ) - return; // Nothing to do + return false; for( i = 0; i < iwall->size; i++ ) { map->iwall_nextxy(iwall->x, iwall->y, iwall->dir, i, &x1, &y1); @@ -3185,6 +3185,7 @@ void map_iwall_remove(const char *wall_name) map->list[iwall->m].iwall_num--; strdb_remove(map->iwall_db, iwall->wall_name); + return true; } /** diff --git a/src/map/map.h b/src/map/map.h index 5c4c6d59d..d6afdc160 100644 --- a/src/map/map.h +++ b/src/map/map.h @@ -1293,7 +1293,7 @@ END_ZEROED_BLOCK; bool (*iwall_set) (int16 m, int16 x, int16 y, int size, int8 dir, bool shootable, const char* wall_name); void (*iwall_get) (struct map_session_data *sd); - void (*iwall_remove) (const char *wall_name); + bool (*iwall_remove) (const char *wall_name); int (*addmobtolist) (unsigned short m, struct spawn_data *spawn); // [Wizputer] void (*spawnmobs) (int16 m); // [Wizputer] diff --git a/src/map/script.c b/src/map/script.c index d11b6741a..3c5f4a232 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -13998,9 +13998,15 @@ BUILDIN(setwall) { map->iwall_set(m, x, y, size, dir, shootable, name); return true; } -BUILDIN(delwall) { + +BUILDIN(delwall) +{ const char *name = script_getstr(st,2); - map->iwall_remove(name); + + if (!map->iwall_remove(name)) { + ShowWarning("buildin_delwall: Non-existent '%s' provided.\n", name); + return false; + } return true; } |