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.c38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/map/npc.c b/src/map/npc.c
index d9f515cfd..7b616282f 100644
--- a/src/map/npc.c
+++ b/src/map/npc.c
@@ -21,6 +21,7 @@
#include "pet.h"
#include "battle.h"
#include "skill.h"
+#include "grfio.h"
#include "showmsg.h"
#ifdef MEMWATCH
@@ -2135,6 +2136,39 @@ static int npc_parse_mapflag(char *w1,char *w2,char *w3,char *w4)
return 0;
}
+static int npc_read_indoors(void)
+{
+ char *buf,*p;
+ int s, m;
+
+ buf=grfio_reads("data\\indoorrswtable.txt",&s);
+
+ if(buf==NULL)
+ return -1;
+
+ buf[s]=0;
+ for(p=buf;p-buf<s;){
+ char buf2[64];
+
+ if(sscanf(p,"%[^#]#",buf2) == 1){
+ char map_name[64] = "";
+ strncpy(map_name, buf2, strlen(buf2) - 4);
+ strcat(map_name, ".gat");
+ if ((m = map_mapname2mapid(map_name)) >= 0)
+ map[m].flag.indoors=1;
+ }
+
+ p=strchr(p,10);
+ if(!p) break;
+ p++;
+ }
+ free(buf);
+ sprintf(tmp_output,"Done reading '"CL_WHITE"%s"CL_RESET"'.\n","data\\indoorrswtable.txt");
+ ShowStatus(tmp_output);
+
+ return 0;
+}
+
static int ev_db_final(void *key,void *data,va_list ap)
{
free(data);
@@ -2227,6 +2261,10 @@ int do_init_npc(void)
int busy = 0;
char c = '-';
+ // indoorrswtable.txt and etcinfo.txt [Celest]
+ npc_read_indoors();
+ //npc_read_weather();
+
ev_db=strdb_init(24);
npcname_db=strdb_init(24);