summaryrefslogtreecommitdiff
path: root/src/map/npc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/map/npc.c')
-rw-r--r--src/map/npc.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/map/npc.c b/src/map/npc.c
index c11770a1e..0443c81f1 100644
--- a/src/map/npc.c
+++ b/src/map/npc.c
@@ -3405,7 +3405,7 @@ static const char* npc_parse_mapflag(char* w1, char* w2, char* w3, char* w4, con
//@runOnInit should we exec OnInit when it's done ?
void npc_parsesrcfile(const char* filepath, bool runOnInit)
{
- int m, lines = 0;
+ int m, x, y, lines = 0;
FILE* fp;
size_t len;
char* buffer;
@@ -3486,11 +3486,11 @@ void npc_parsesrcfile(const char* filepath, bool runOnInit)
if( strcmp(w1,"-") !=0 && strcasecmp(w1,"function") != 0 )
{// w1 = <map name>,<x>,<y>,<facing>
- char mapname[2048];
- sscanf(w1,"%[^,]",mapname);
- if( !mapindex_name2id(mapname) )
+ char mapname[MAP_NAME_LENGTH*2];
+ sscanf(w1,"%23[^,],%d,%d[^,]",mapname,&x,&y);
+ if( !mapindex_name2id(mapname) || (x < 0 || x >= map[map_mapname2mapid(mapname)].xs || y < 0 || y >= map[map_mapname2mapid(mapname)].ys) )
{// Incorrect map, we must skip the script info...
- ShowError("npc_parsesrcfile: Unknown map '%s' in file '%s', line '%d'. Skipping line...\n", mapname, filepath, strline(buffer,p-buffer));
+ ShowError("npc_parsesrcfile: Unknown map '%s' or coordinates ('%d', '%d') in file '%s', line '%d'. Skipping line...\n", mapname, x, y, filepath, strline(buffer,p-buffer));
if( strcasecmp(w2,"script") == 0 && count > 3 )
{
if((p = npc_skip_script(p,buffer,filepath)) == NULL)