changeset 40:e5a1b2d410f6

Kakke
author Matti Hamalainen <ccr@tnsp.org>
date Mon, 11 Dec 2006 17:01:15 +0000
parents fa68caaf3c94
children 7d91562486b4
files maps/laenor.loc maps/laenor.raw maps/lucentium.loc maps/roth.loc mkloc.c
diffstat 5 files changed, 85 insertions(+), 57 deletions(-) [+]
line wrap: on
line diff
--- a/maps/laenor.loc	Mon Dec 11 13:51:20 2006 +0000
+++ b/maps/laenor.loc	Mon Dec 11 17:01:15 2006 +0000
@@ -1,4 +1,4 @@
-268	348	1	FERRY DOCK/HARBOR (go se)
+268	348	1+	FERRY DOCK/HARBOR (go se)
 585	85	0	Urvile tree
 575	86	1	Revelstone
 581	87	0	Seance's
--- a/maps/laenor.raw	Mon Dec 11 13:51:20 2006 +0000
+++ b/maps/laenor.raw	Mon Dec 11 17:01:15 2006 +0000
@@ -346,7 +346,7 @@
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~SSSSzzz.........|......fffffffff..f.fffhhhHHHHHHHHHHHHH^HHHHrrrHHHHHHH^^H^^^^H^^^^^^HHHHHHHHHHHHHHHhyyyyyyyyyyyyyyrrrryyryyyyyyyyy..yyyyyryyyyyyy/yyyyyyyyyyyyyy..fff?ffff.zSSSSSSS~~~~~~~~~~~~~~~~~~~~~~~SSSSSSSSSSSSSSzz..................zzzSSSSSS~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~SSSS~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~SSzzz.........f.|.....ffffffff.......ffhhhHHHHHHHHHHHHH^HHHHHHrrHHHHHHHHHHHHHHH^^^HHHHHHHHHHHHHHhhyyyyyyyyyyyyyyyrryyyyyryyyyyyyy...yyyyyryyyyyy/yyyyfffyyyyyyyyy.fffffffffzzSSSSSSS~~~~~~~~~~~~~~~~~~~~SSSSSSSSSSSSSSzzz.....................zzzSSSSSS~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~SSSSSSSSS~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~SSSz.........ffff|......ffffff.......ffhhhhHHH^HHHH^hHhHHHHHHHHHrHHHHhHHHHHHHHHHHHHHHHHHHHHHHHHHrryyyyrrryyyrryrrrryyyyyrryyyyy..yy..yyyyyryyyyy/yyyyyfff.yyyyyyyyyyfffffff..zzSSSSSSSS~~~~~~~~~~~~~~~~SSSSSSSzSSSSSSSzz.........................zzSSSSSS~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~S?ScSSSSSSSS~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~SSSz........fffff|.......ff..ff...fffffhhhhHhH^HHHHHhHHH^HHHhHHHHrHHHhHHHHHHHHHHHHHHHHHHHHhHHHHHhrrryyryrrrrrrrryyyyyyyyryyyyyF...y...yyyrryyyy+yyyyyyy...yyyyyyyyyyyffffff...zzzzzSSSSS~~~~~~~~~~~~~~SSSSSzzzSSSSSSzzz...........................zzzSSSSS~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~SSScSSSSSSSS~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~SSSz........fffff|.......ff..ff...fffffhhhhHhH^HHHHHhHHH^HHHhHHHHrHHHhHHHHHHHHHHHHHHHHHHHHhHHHHHhrrryyryrrrrrrrryyyyyyyyryyyyyF...y...yyyrryyyy+yyyyyyy...yyyyyyyyyyyffffff...zzzzzSSSSS~~~~~~~~~~~~~~SSSSSzzzSSSSSSzzz...........................zzzSSSSS~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~SzccRzzzSSSSS~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~SSSz.........ffff|fff....ff..ff..fffffffhhhHhHH^HHHHhHHHHHHHHHHHHrrHHHHHHH^^hHHHHHHhHHHHH^H^HHHHhhyrrrryyyryyyryyyyyyyyrryyyyyy..yyy..yyyryyyyy|yyyFFyyyyFyyyyyyyyyyyyffffff......zSSSSSSSS~~~~~~~~SSSSSSSzz.zrzzzzzz...............................zzzSSSS~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~SSzccR..zzSSSSS~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~SSSzz........fffff|fff..f.....fffffffffffhhhHhHHH^HHHHHHHHHH^HHHHHHrHHHHHHHHH^^HHHHHHhhHHHH^HHHHHhhyyyyyyyyyyyyyyyyyyyyyryyyyyyyyyyyyyyyyyryyyyy|yyyFFFyy.yyy.yyy.yyyyyyyffffff....zzSSSSSSSSSSSSSSSSSSSSSSz..r...................fff..................zzSSSS~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~SSSc.R...zzzSSS~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~SSSz.........ffff.|.fffff.....ffffffffffffhhhHHHHH^^HhHHHHHHHHHHHHHrHHHHHHHHHHH^^^^HHHHHH^HHHHHHHhhyyyyyyyyyyyyyyyyyyyyrryyyyyyyyyyyyyyyyyryyyyy|yyyFFyy...yy.yyy.yyyyyyyyffffff....zzzzSSSSSSSSSSSSSSSSSzzz..r..................fffff..................zzSSSS~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
--- a/maps/lucentium.loc	Mon Dec 11 13:51:20 2006 +0000
+++ b/maps/lucentium.loc	Mon Dec 11 17:01:15 2006 +0000
@@ -1,49 +1,51 @@
+64	156	0+	Valley of the Kings
+
 398	22	0	UNK #0
 397	49	0	UNK #1
-225	52	0	UNK #2
+225	52	0	Lost Pyramid
 412	57	0	UNK #3
-264	66	0	UNK #4
+264	66	0	Obelisk
 393	79	0	UNK #5
 427	87	0	UNK #6
-220	96	0	UNK #7
+220	96	0	Amphitheatre
 411	98	0	UNK #8
-536	98	0	UNK #9
-114	106	0	UNK #10
+536	98	0	Jondalar
+114	106	0	Oasis
 385	107	0	UNK #11
-256	109	0	UNK #12
-100	122	0	UNK #13
-362	124	0	UNK #14
-296	134	0	UNK #15
-336	138	0	UNK #16
-245	144	0	UNK #17
-413	145	0	UNK #18
-657	147	0	UNK #19
-343	148	0	UNK #20
-393	156	0	UNK #21
-447	156	0	UNK #22
-235	159	0	UNK #23
-437	159	0	UNK #24
-481	164	0	UNK #25
-405	179	0	UNK #26
-358	195	0	UNK #27
-394	202	0	UNK #28
-132	203	0	UNK #29
-244	203	0	UNK #30
-413	212	0	UNK #31
-432	213	0	UNK #32
-263	218	0	UNK #33
-242	235	0	UNK #34
-374	243	0	UNK #35
-401	256	0	UNK #36
-50	258	0	UNK #37
-317	262	0	UNK #38
-145	263	0	UNK #39
+256	109	0	SHRINE Lizardman
+100	122	0	Nifty's
+362	124	0	Stagira
+296	134	0	Astacia
+336	138	0	SHRINE Satyr
+245	144	0	SHRINE Catfolk
+413	145	0	Public Gardens
+657	147	0	Trilloch tower/Assassin quest
+343	148	0	Anthill
+393	156	0	GUILD Monks
+447	156	0	Paladin Stronghold
+235	159	0	Catfolk tree
+437	159	0	GUILD Alchemists
+481	164	0	Shipwreck
+405	179	0	Beastlands
+358	195	0	Clouds above Lor
+394	202	0	SHRINE Thrikhren
+132	203	0	Fraggle
+244	203	1	Duzelton
+413	212	1	Whirlpool
+432	213	0	Land of Overworld
+263	218	1	Moaning Desert
+242	235	0	SHRINE Titan
+374	243	0	Marble-sanded beach
+401	256	0	Door to the past
+50	258	0	Akira/Kara-Tur
+317	262	0	SHRINE Cromagnon
+145	263	0	Mirror Mine
 333	286	0	UNK #40
-121	299	0	UNK #41
-127	299	0	UNK #42
-124	302	0	UNK #43
-197	313	0	UNK #44
-267	352	0	UNK #45
-148	382	0	UNK #46
-590	406	0	UNK #47
-543	464	0	UNK #48
+121	299	1	LQ43 Ice Tower
+127	299	0	LQ43 Fire Tower
+124	302	0	LQ43 Wind Tower
+197	313	1	Pyran
+267	352	1	GUILD Mage (acid)
+148	382	0	Brotherhood of Sorcery
+590	406	0	GUILD Mage (elec)
+543	464	0	SHRINE Merfolk
--- a/maps/roth.loc	Mon Dec 11 13:51:20 2006 +0000
+++ b/maps/roth.loc	Mon Dec 11 17:01:15 2006 +0000
@@ -20,12 +20,13 @@
 361	189	0	Stonehenge
 106	204	0	SHRINE Wolfman
 324	223	0	Mirkhold
-373	247	0	GUILD Barbarian
+373	247	0	GUILD Barbarians
 260	248	0	UNK #23
 240	249	0	SHRINE Valar
 388	253	0	Caverns of Chaos
 221	258	0	Smurville
-251	258	0	GUILD Nun
+251	258	0	GUILD Nuns
+261	258	3+	Nun maze (nw)
 234	264	0	UNK #28
 330	267	0	SHRINE Gnome
 343	276	0	UNK #30
--- a/mkloc.c	Mon Dec 11 13:51:20 2006 +0000
+++ b/mkloc.c	Mon Dec 11 17:01:15 2006 +0000
@@ -19,9 +19,14 @@
 	DIR_DOWN
 };
 
+enum {
+	LOCF_NONE = 0,
+	LOCF_MARK,
+};
+
 typedef struct {
 	DINT x, y, ox, oy;
-	DINT dir;
+	DINT dir, flags;
 	DCHAR * desc;
 } locinfo_t;
 
@@ -118,7 +123,7 @@
 DINT numLocations = 0;
 locinfo_t **locations = NULL;
 
-DBOOL addLocation(DINT x, DINT y, DINT dir, DCHAR *desc)
+DBOOL addLocation(DINT x, DINT y, DINT dir, DCHAR *desc, DINT flags)
 {
 	locinfo_t *tmp;
 	
@@ -130,6 +135,7 @@
 	tmp->y = tmp->oy = y;
 	tmp->dir = dir;
 	tmp->desc = mydup(desc);
+	tmp->flags = flags;
 
 	/* Add new location */	
 	numLocations++;
@@ -191,9 +197,8 @@
 	/* Read location info */
 	if (locFile) {
 		FILE *inFile;
-		int tx, ty, td;
 		size_t i, linePos, lineNum;
-		DCHAR inLine[NMAX+1], ts[NMAX+1];
+		DCHAR inLine[NMAX+1];
 		
 		THMSG(2, "Reading location info '%s'\n", locFile);
 
@@ -217,6 +222,9 @@
 			
 			if (inLine[linePos] != 0) {
 			if (th_isdigit(inLine[linePos])) {
+				DINT tx, ty, td, tf;
+				DCHAR ts[NMAX+1];
+				
 				/* Get X */
 				for (i = 0; i < NMAX && th_isdigit(inLine[linePos]); linePos++,i++)
 					ts[i] = inLine[linePos];
@@ -252,14 +260,19 @@
 					ts[i] = inLine[linePos];
 				ts[i] = 0;
 				
-				if (!th_isspace(inLine[linePos])) {
-					THERR("Expected whitespace after direction on line #%d in '%s'\n",
+				td = atoi(ts);
+				
+				/* Get flags */
+				tf = LOCF_NONE;
+				switch (inLine[linePos++]) {
+				case '+': tf = LOCF_MARK; break;
+				case ' ': case 9: break;
+				default:
+					THERR("Expected flag or whitespace after direction on line #%d in '%s'\n",
 						lineNum, locFile);
 					exit(3);
 				}
 				
-				td = atoi(ts);
-				
 				th_findnext(inLine, &linePos);
 
 				/* Get name */
@@ -270,7 +283,7 @@
 				}
 				
 				/* Add location */
-				addLocation(tx, ty, td, &(inLine[linePos]));
+				addLocation(tx, ty, td, &(inLine[linePos]), tf);
 				
 			} else if (inLine[linePos] != '#') {
 				THERR("Invalid line #%d in '%s'\n",
@@ -297,7 +310,7 @@
 					DCHAR tmps[512];
 					snprintf(tmps, sizeof(tmps),
 						"UNK #%d", cloc);
-					addLocation(x, y, DIR_NONE, tmps);
+					addLocation(x, y, DIR_NONE, tmps, LOCF_NONE);
 					cloc++;
 				}
 			}
@@ -379,8 +392,20 @@
 		
 		for (y = 0; y < worldMap->h; y++) {
 			for (x = 0; x < worldMap->w; x++) {
-				n = searchLocation(x, y, FALSE);
-				if (n >= 0) {
+				n = searchLocation(x, y, TRUE);
+				if ((n = searchLocation(x, y, TRUE)) >= 0) {
+					switch (locations[n]->flags) {
+					case LOCF_MARK:
+						fputc('?', outFile);
+						break;
+					
+					case LOCF_NONE:
+					default:
+						fputc(d[(worldMap->w * y) + x], outFile);
+						break;
+					}
+				} else
+				if ((n = searchLocation(x, y, FALSE)) >= 0) {
 					fputc(0xff, outFile);
 					fprintf(outFile, locations[n]->desc);
 					fputc(0xfe, outFile);