summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2014-11-16 10:59:17 +0300
committerAndrei Karas <akaras@inbox.ru>2014-11-27 11:23:03 +0300
commit5eca1fc09e4f93c1138382983a29cab300ba3fd3 (patch)
treed9d5b39f1cfaf5640cf7f50ba20819ca8dc40c17
parent1e81c48a5e13f0a0b0a94d93f40fdfda529acd61 (diff)
downloadhercules-5eca1fc09e4f93c1138382983a29cab300ba3fd3.tar.gz
hercules-5eca1fc09e4f93c1138382983a29cab300ba3fd3.tar.bz2
hercules-5eca1fc09e4f93c1138382983a29cab300ba3fd3.tar.xz
hercules-5eca1fc09e4f93c1138382983a29cab300ba3fd3.zip
Add function for parse/report unknown map flag.
-rw-r--r--src/map/npc.c12
-rw-r--r--src/map/npc.h1
2 files changed, 11 insertions, 2 deletions
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_c01<TAB>mapflag<TAB>battleground<TAB>2
@@ -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);