From 5eca1fc09e4f93c1138382983a29cab300ba3fd3 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Sun, 16 Nov 2014 10:59:17 +0300 Subject: Add function for parse/report unknown map flag. --- src/map/npc.c | 12 ++++++++++-- src/map/npc.h | 1 + 2 files changed, 11 insertions(+), 2 deletions(-) (limited to 'src/map') diff --git a/src/map/npc.c b/src/map/npc.c index ce668bfae..7f373f7f3 100644 --- a/src/map/npc.c +++ b/src/map/npc.c @@ -3606,6 +3606,14 @@ const char* npc_parse_mob(char* w1, char* w2, char* w3, char* w4, const char* st return strchr(start,'\n');// continue } + +void npc_parse_unknown_mapflag(const char *name, char *w3, char *w4, const char* start, const char* buffer, const char* filepath, int *retval) +{ + ShowError("npc_parse_mapflag: unrecognized mapflag '%s' in file '%s', line '%d'.\n", w3, filepath, strline(buffer,start-buffer)); + if (retval) + *retval = EXIT_FAILURE; +} + /*========================================== * Set or disable mapflag on map * eg : bat_c01mapflagbattleground2 @@ -4013,8 +4021,7 @@ const char* npc_parse_mapflag(char* w1, char* w2, char* w3, char* w4, const char } else if ( !strcmpi(w3,"nocashshop") ) { map->list[m].flag.nocashshop = (state) ? 1 : 0; } else { - ShowError("npc_parse_mapflag: unrecognized mapflag '%s' in file '%s', line '%d'.\n", w3, filepath, strline(buffer,start-buffer)); - if (retval) *retval = EXIT_FAILURE; + npc->parse_unknown_mapflag(mapname, w3, w4, start, buffer, filepath, retval); } return strchr(start,'\n');// continue @@ -4682,6 +4689,7 @@ void npc_defaults(void) { npc->parse_mob2 = npc_parse_mob2; npc->parse_mob = npc_parse_mob; npc->parse_mapflag = npc_parse_mapflag; + npc->parse_unknown_mapflag = npc_parse_unknown_mapflag; npc->parsesrcfile = npc_parsesrcfile; npc->script_event = npc_script_event; npc->read_event_script = npc_read_event_script; diff --git a/src/map/npc.h b/src/map/npc.h index 9c497ffe9..efd787677 100644 --- a/src/map/npc.h +++ b/src/map/npc.h @@ -250,6 +250,7 @@ struct npc_interface { void (*parse_mob2) (struct spawn_data *mobspawn); const char* (*parse_mob) (char *w1, char *w2, char *w3, char *w4, const char *start, const char *buffer, const char *filepath, int *retval); const char* (*parse_mapflag) (char *w1, char *w2, char *w3, char *w4, const char *start, const char *buffer, const char *filepath, int *retval); + void (*parse_unknown_mapflag) (const char *name, char *w3, char *w4, const char *start, const char *buffer, const char *filepath, int *retval); int (*parsesrcfile) (const char *filepath, bool runOnInit); int (*script_event) (struct map_session_data *sd, enum npce_event type); void (*read_event_script) (void); -- cgit v1.2.3-60-g2f50