From 33c259a061a01a77c0e4aeb76ed51c4cd1e9d537 Mon Sep 17 00:00:00 2001
From: sparky4 <sparky4@cock.li>
Date: Thu, 16 Feb 2017 13:15:28 -0600
Subject: [PATCH] i need to migrate to the memory manager stuff sometime

---
 qwolf.sh         |   4 +
 src/lib/16_map.c | 234 ++---------------------------------------------
 2 files changed, 12 insertions(+), 226 deletions(-)
 create mode 100755 qwolf.sh

diff --git a/qwolf.sh b/qwolf.sh
new file mode 100755
index 00000000..ba067636
--- /dev/null
+++ b/qwolf.sh
@@ -0,0 +1,4 @@
+grep "$1" 16/wf3d8086/*.c
+grep "$1" 16/wf3d8086/*.h
+grep "$1" 16/wf3d8086/lib/*.c
+grep "$1" 16/wf3d8086/lib/*.h
diff --git a/src/lib/16_map.c b/src/lib/16_map.c
index 864d0b16..e6a5a1d1 100755
--- a/src/lib/16_map.c
+++ b/src/lib/16_map.c
@@ -32,222 +32,6 @@ int jsoneq(const char *json, jsmntok_t *tok, const char *s) {
 	return -1;
 }
 
-/*//this function is quite messy ^^; sorry! it is a quick and dirty fix~
-word dump(const char *js, jsmntok_t *t, size_t count, word indent, char *js_sv, map_t *map, dword q) {
-	dword i;
-	word j;//, k;
-	bitmap_t bp;
-	#ifdef DEBUG_JS
-	if(indent==0)
-	{
-		fprintf(stdout, "%s\n", js);
-		fprintf(stdout, "\n");
-	}
-	#endif
-	#ifdef DEBUG_DUMPVARS
-	fprintf(stdout, "t->size=[%d]	", t->size);
-	fprintf(stdout, "q=[%d]	", q);
-	fprintf(stdout, "indent= [%d]	", indent);
-	fprintf(stdout, "js_sv= [%s]\n", js_sv);
-	#endif
-	if (count == 0) {
-		return 0;
-	}
-	// We may want to do strtol() here to get numeric value
-//0000fprintf(stderr, "t->type=%d\n", t->type);
-	if (t->type == JSMN_PRIMITIVE) {
-		if(strstr(js_sv, "data"))
-		{
-			//
-			//	here we should recursivly call dump again here to skip over the array until we get the width of the map.
-			//	so we can initiate the map which allocates the facking map->tiles ->data->data properly and THEN we can return
-			//	here to read the data.... That is my design for this... wwww
-
-			//	well i am stuck.... wwww
-			//
-			map->data[q] = (byte)atoi(js+t->start);
-			#ifdef DEBUG_MAPDATA
-				fprintf(stdout, "%d[%d]", q, map->data[q]);
-			#endif
-		}
-		else
-		if(strstr(js_sv, "height"))
-		{
-			map->height = atoi(js+t->start);
-			#ifdef DEBUG_MAPVAR
-			fprintf(stdout, "indent= [%d]	", indent);
-			fprintf(stdout, "h:[%d]\n", map->height);
-			#endif
-		}else if(strstr(js_sv, "width"))
-		{
-			map->width = atoi(js+t->start);
-			#ifdef DEBUG_MAPVAR
-			fprintf(stdout, "indent= [%d]	", indent);
-			fprintf(stdout, "w:[%d]\n", map->width);
-			#endif
-		}
-		return 1;
-		// We may use strndup() to fetch string value
-	} else if (t->type == JSMN_STRING) {
-		if(jsoneq(js, t, "data") == 0)
-		{
-//			fprintf(stdout, "[[[[%d|%d]]]]\n", &(t+1)->size, (t+1)->size);
-//			fprintf(stdout, "\n%.*s[xx[%d|%d]xx]\n", (t+1)->end - (t+1)->start, js+(t+1)->start, &(t+1)->size, (t+1)->size);
-			map->data = malloc(sizeof(byte) * (t+1)->size);
-			map->tiles = malloc(sizeof(tiles_t));
-			map->tiles->btdata = malloc(sizeof(bitmap_t));
-			//fix this to be far~
-//0000			bp = bitmapLoadPcx("data/ed.pcx");
-//			bp = bitmapLoadPcx("data/koishi^^.pcx");
-			map->tiles->btdata = &bp;
-//----			map->tiles->data = planar_buf_from_bitmap(&bp);
-			//map->tiles->data->data = malloc((16)*16);
-			//map->tiles->data->width = (16/);
-			//map->tiles->data->height= 16;
-			map->tiles->tileHeight = 16;
-			map->tiles->tileWidth = 16;
-			map->tiles->rows = 1;
-			map->tiles->cols = 1;
-#ifdef __DEBUG_MAP__
-			dbg_maptext=false;
-#endif
-			strcpy(js_sv, "data");//strdup(js+t->start);//, t->end - t->start);
-		}
-		else
-		if (jsoneq(js, t, "height") == 0 && indent<=1)
-		{
-			strcpy(js_sv, "height");//strdup(js+t->start);//, t->end - t->start);
-		}else
-		if(jsoneq(js, t, "width") == 0 && indent<=1)
-		{
-			strcpy(js_sv, "width");//strdup(js+t->start);//, t->end - t->start);
-		}else strcpy(js_sv, "\0");
-		return 1;
-	} else if (t->type == JSMN_OBJECT) {
-		//fprintf(stdout, "\n");
-		j = 0;
-		for (i = 0; i < t->size; i++) {
-			//for (k = 0; k < indent; k++) fprintf(stdout, "\t");
-			j += dump(js, t+1+j, count-j, indent+1, js_sv, map, i);
-			//fprintf(stdout, ": ");
-			j += dump(js, t+1+j, count-j, indent+1, js_sv, map, i);
-			//fprintf(stdout, "\n");
-		}
-		return j+1;
-	} else if (t->type == JSMN_ARRAY) {
-		j = 0;
-		//fprintf(stdout, "==\n");
-		for (i = 0; i < t->size; i++) {
-			//for (k = 0; k < indent-1; k++) fprintf(stdout, "\t");
-			//fprintf(stdout, "\t-");
-			j += dump(js, t+1+j, count-j, indent+1, js_sv, map, i);
-			//fprintf(stdout, "==\n");
-		}
-		return j+1;
-	}
-	return 0;
-}
-
-int loadmap(char *mn, map_t *map, global_game_variables_t *gvar)
-{
-	int r;
-	static word incr=0;
-	int eof_expected = 0;
-	char *js = NULL;
-	size_t jslen = 0;
-	char buf[BUFSIZ];
-	static char js_ss[16];
-
-	jsmn_parser p;
-	jsmntok_t *tok;
-	size_t tokcount = 2;
-
-	FILE *fh = fopen(mn, "r");
-
-	// Prepare parser
-	jsmn_init(&p);
-
-	// Allocate some tokens as a start
-//0000fprintf(stderr, "tok malloc\n");
-	tok = malloc(sizeof(*tok) * tokcount);
-	if (tok == NULL) {
-		fprintf(stderr, "malloc(): errno=%d\n", errno);
-		return 3;
-	}
-
-	for (;;) {
-		// Read another chunk
-//0000fprintf(stderr, "read\n");
-		r = fread(buf, 1, sizeof(buf), fh);
-		if (r < 0) {
-			fprintf(stderr, "fread(): %d, errno=%d\n", r, errno);
-			return 1;
-		}
-		if (r == 0) {
-			if (eof_expected != 0) {
-				return 0;
-			} else {
-				fprintf(stderr, "fread(): unexpected EOF\n");
-				return 2;
-			}
-		}
-//0000fprintf(stdout, "r=	[%d]	BUFSIZ=%d\n", r, BUFSIZ);
-//0000fprintf(stderr, "js alloc~\n");
-		js = realloc(js, jslen + r + 1);
-		if (js == NULL) {
-			fprintf(stderr, "*js=%Fp\n", *js);
-			fprintf(stderr, "realloc(): errno = %d\n", errno);
-			return 3;
-		}
-		strncpy(js + jslen, buf, r);
-		jslen = jslen + r;
-
-again:
-//0000fprintf(stdout, "	parse~ tok=%zu	jslen=%zu	r=%d	_memavl()=%u	BUFSIZ=%d~\n", tokcount, jslen, r, _memavl(), BUFSIZ);
-//0000fprintf(stdout, "p=[%u]	[%u]	[%d]\n", p.pos, p.toknext, p.toksuper);
-//
-//		I think it crashes on the line below when it tries to parse the data of huge maps... wwww this is a jsmn problem wwww
-//
-		r = jsmn_parse(&p, js, jslen, tok, tokcount);
-//0000fprintf(stdout, "r=	[%d]\n", r);
-		if (r < 0) {
-			if (r == JSMN_ERROR_NOMEM) {
-				tokcount = tokcount * 2;
-//0000fprintf(stderr, "tok realloc~ %zu\n", tokcount);
-				tok = realloc(tok, sizeof(*tok) * tokcount);
-				if (tok == NULL) {
-					fprintf(stderr, "realloc(): errno=%d\n", errno);
-					return 3;
-				}
-				goto again;
-			}
-		} else {
-			//printf("js=%Fp\n", (js));
-			//printf("*js=%Fp\n", (*(js)));
-			//printf("&*js=%s\n", &(*(js)));
-			//printf("&buf=[%Fp]\n", &buf);
-			//printf("&buf_seg=[%x]\n", FP_SEG(&buf));
-			//printf("&buf_off=[%x]\n", FP_OFF(&buf));
-			//printf("&buf_fp=[%Fp]\n", MK_FP(FP_SEG(&buf), FP_OFF(&buf)));
-			//printf("buf=[\n%s\n]\n", buf);
-			//printf("buff=[%Fp]\n", buff);
-			//printf("(*buff)=[%Fp]\n", (*buff));
-			//printf("&(*buff)=[\n%s\n]\n", &(*buff));
-			#ifdef DEBUG_DUMPVARS
-			fprintf(stdout, "running dump~\n");
-			#endif
-			dump(js, tok, p.toknext, incr, &js_ss, map, 0);
-			eof_expected = 1;
-		}
-	}
-
-	//free(js);
-	//free(tok);
-	//fclose(fh);
-
-	return 0;
-}*/
-
 void extract_map(const char *js, jsmntok_t *t, size_t count, map_t *map) {
 	int i, j, k, indent=0, inner_end;
 	char *s;
@@ -259,7 +43,6 @@ void extract_map(const char *js, jsmntok_t *t, size_t count, map_t *map) {
 	while(i<count) {
 		if(jsoneq(js, &(t[i]), "layers") == 0) {
 			i++;
-			//map->layerdata = malloc(sizeof(byte*) * t[i].size);
 			inner_end = t[i].end;
 			k = 0;
 			while(t[i].start < inner_end) {
@@ -271,7 +54,7 @@ void extract_map(const char *js, jsmntok_t *t, size_t count, map_t *map) {
 #ifdef DEBUG_MAPDATA
 					printf("Layer %d data: (size is %d)[\n", k, t[i+1].size);
 #endif
-					map->layerdata[k].data = malloc(sizeof(byte) * t[i+1].size);
+					map->layerdata[k].data = malloc(sizeof(byte) * t[i+1].size);//TODO: USE MM_ CA_ AND PM_
 //					map->data = (map->layerdata[k].data); //for backwards compatibility for rest of code
 					for(j = 0; j < t[i+1].size; j++) {
 						//map->layerdata[k][j] = (byte)atoi(js + t[i+2+j].start);
@@ -290,7 +73,7 @@ void extract_map(const char *js, jsmntok_t *t, size_t count, map_t *map) {
 #ifdef DEBUG_MAPDATA
 					printf("Layer %d's name: (size is %d)[\n", k, MAPLNAMESIZE);
 #endif
-					map->layerdata[k].layername = malloc(sizeof(byte) * MAPLNAMESIZE);
+					map->layerdata[k].layername = malloc(sizeof(byte) * MAPLNAMESIZE);//TODO: USE MM_ CA_ AND PM_
 					strncpy(map->layerdata[k].layername, js+t[i+1].start, MAPLNAMESIZE);
 					if(map->layerdata[k].layername[MAPLNAMESIZE]!=0) map->layerdata[k].layername[MAPLNAMESIZE]='\0';
 					if(strstr(map->layerdata[k].layername, "ob")) objlay=1;
@@ -305,8 +88,8 @@ void extract_map(const char *js, jsmntok_t *t, size_t count, map_t *map) {
 #ifdef DEBUG_MAPDATA
 					printf("objects detected\n");
 #endif
-//					map->layerdata[k].layername = malloc(sizeof(byte) * MAPLNAMESIZE);
-//					strncpy(map->layerdata[k].layername, js+t[i+1].start, MAPLNAMESIZE);
+//					map->layerdata[k].layername = malloc(sizeof(byte) * MAPLNAMESIZE);//TODO: USE MM_ CA_ AND PM_
+//					strncpy(map->layerdata[k].layername, js+t[i+1].start, MAPLNAMESIZE);//TODO: USE MM_ CA_ AND PM_
 //					if(map->layerdata[k].layername[MAPLNAMESIZE]!=0) map->layerdata[k].layername[MAPLNAMESIZE]='\0';
 				}else if(jsoneq(js, &(t[i]), "name") == 0) {
 #ifdef DEBUG_MAPDATA
@@ -327,13 +110,12 @@ void extract_map(const char *js, jsmntok_t *t, size_t count, map_t *map) {
 			k = 0;
 			while(t[i].start < inner_end) {
 				if(jsoneq(js, &(t[i]), "image") == 0) {
-					map->tiles = malloc(sizeof(tiles_t));
+					map->tiles = malloc(sizeof(tiles_t));//TODO: USE MM_ CA_ AND PM_
 					s = remove_ext((char *)js+t[i+1].start, '.', '/');
 					strcpy(map->tiles->imgname, s);
 					//And move to vrs, probably
 //					bp = bitmapLoadPcx("data/ed.pcx");
 //					map->tiles->btdata = &bp;
-					//map->tiles->btdata = malloc(sizeof(bitmap_t));
 					map->tiles->rows = 1;
 					map->tiles->cols = 1;
 #ifdef __DEBUG_MAP__
@@ -390,7 +172,7 @@ int newloadmap(char *mn, map_t *map) {
 	jsmn_init(&p);
 
 	file_s = filesize(fh);
-	js = malloc(file_s);
+	js = malloc(file_s);//TODO: USE MM_ CA_ AND PM_
 	if(js == NULL) {
 		fprintf(stderr, "malloc(): errno = %d", 2);
 		fclose(fh);
@@ -403,7 +185,7 @@ int newloadmap(char *mn, map_t *map) {
 		return 1;
 	}
 	tokcount = jsmn_parse(&p, js, file_s, NULL, 0);
-	tok = malloc(tokcount*sizeof(jsmntok_t));
+	tok = malloc(tokcount*sizeof(jsmntok_t));//TODO: USE MM_ CA_ AND PM_
 	printf("Allocated %d tokens", tokcount);
 	jsmn_init(&p);
 	if((status = jsmn_parse(&p, js, file_s, tok, tokcount)) < 0)
@@ -441,7 +223,7 @@ int CA_loadmap(char *mn, map_t *map, global_game_variables_t *gvar)
 	file_s = filesize(fh);
 	CA_LoadFile(mn, &MAPBUFINLM, gvar);
 	tokcount = jsmn_parse(&p, MAPBUFINLM, file_s, NULL, 0);
-	tok = malloc(tokcount*sizeof(jsmntok_t));
+	tok = malloc(tokcount*sizeof(jsmntok_t));//TODO: USE MM_ CA_ AND PM_
 //	printf("Allocated %d tokens", tokcount);
 	jsmn_init(&p);
 	if((status = jsmn_parse(&p, MAPBUFINLM, file_s, tok, tokcount)) < 0)
-- 
2.39.5