From cc622af140fa834978eb28b0ee94bb30d5e0e091 Mon Sep 17 00:00:00 2001 From: sparky4 Date: Tue, 24 Mar 2015 10:41:11 -0500 Subject: [PATCH] modified: makefile new file: maptest.exe modified: scroll.exe modified: src/lib/mapread.c modified: src/lib/mapread.h new file: src/maptest.c modified: src/scroll.c --- makefile | 8 +++++++- maptest.exe | Bin 0 -> 31611 bytes scroll.exe | Bin 60549 -> 60771 bytes src/lib/mapread.c | 43 ++++++++++++++++++++----------------------- src/lib/mapread.h | 2 +- src/maptest.c | 8 ++++++++ src/scroll.c | 12 ++++++------ 7 files changed, 42 insertions(+), 31 deletions(-) create mode 100644 maptest.exe create mode 100644 src/maptest.c diff --git a/makefile b/makefile index d7b11d7e..44cb0d39 100644 --- a/makefile +++ b/makefile @@ -1,7 +1,7 @@ FLAGS=-0 -d2 SRC=src\ SRCLIB=$(SRC)lib\ -all: test.exe pcxtest.exe test2.exe scroll.exe +all: test.exe pcxtest.exe test2.exe maptest.exe scroll.exe scroll.exe: scroll.obj modex16.obj dos_kb.obj bitmap.obj mapread.obj jsmn.obj wcl $(FLAGS) scroll.obj modex16.obj dos_kb.obj bitmap.obj mapread.obj jsmn.obj 16\lib\x\modex.lib @@ -16,6 +16,9 @@ test2.exe: test2.obj modex16.obj bitmap.obj planar.obj pcxtest.exe: pcxtest.obj modex16.obj bitmap.obj wcl $(FLAGS) pcxtest.obj modex16.obj bitmap.obj +maptest.exe: maptest.obj mapread.obj jsmn.obj + wcl $(FLAGS) maptest.obj jsmn.obj + test.obj: $(SRC)test.c $(SRCLIB)modex16.h wcl $(FLAGS) -c $(SRC)test.c @@ -25,6 +28,9 @@ test2.obj: $(SRC)test2.c $(SRCLIB)modex16.h pcxtest.obj: $(SRC)pcxtest.c $(SRCLIB)modex16.h wcl $(FLAGS) -c $(SRC)pcxtest.c +maptest.obj: $(SRC)maptest.c $(SRCLIB)mapread.h + wcl $(FLAGS) -c $(SRC)maptest.c + modex16.obj: $(SRCLIB)modex16.h $(SRCLIB)modex16.c wcl $(FLAGS) -c $(SRCLIB)modex16.c diff --git a/maptest.exe b/maptest.exe new file mode 100644 index 0000000000000000000000000000000000000000..996e0fdf4d0c5ac210e9f6432a77062dfe1338fa GIT binary patch literal 31611 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 RECXAys3_bwyB@aje*t;uHv9kp literal 0 HcmV?d00001 diff --git a/scroll.exe b/scroll.exe index 5d0ed08c4eb28a47c7bec552110769631e7c2be7..2b1044d3817e24f60d7a09cb86669403e3a59e87 100644 GIT binary patch delta 16360 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 V#lST`KcQxBU3^!}M$bp+{{Twq0XP5v delta 16137 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 diff --git a/src/lib/mapread.c b/src/lib/mapread.c index 432a0cc6..ed8ca99f 100644 --- a/src/lib/mapread.c +++ b/src/lib/mapread.c @@ -9,7 +9,7 @@ static int jsoneq(const char *json, jsmntok_t *tok, const char *s) { } //this function is quite messy ^^; sorry! it is a quick and dirty fix~ -static int dump(const char *js, jsmntok_t *t, size_t count, int indent, /*char *js_sv,*/ map_t *map, int q/*, int w*/) { +static int dump(const char *js, jsmntok_t *t, size_t count, int indent, /*char *js_sv,*/ map_t *map, int q/*, int *w*/) { int i, j, k; if (count == 0) { return 0; @@ -26,13 +26,10 @@ static int dump(const char *js, jsmntok_t *t, size_t count, int indent, /*char * FUCK well i am stuck.... wwww */ - //dump(js, t+1, count, indent, map, i); - //bgdata[q] = strtol(js+t->start, (char **)js+t->end, 10); - //if(strtol(js+t->start, (char **)js+t->end, 10)==0){ /*printf("%d\n", sizeof(map->tiles->data->data));*/ /*fprintf(stderr, "\nFACK! %d\n", errno);*/ return 1; /*exit(-1); */} - map->tiles->data->data[q] = (byte)strtol(js+t->start, (char **)js+t->end, 10); - printf("%d[%d]", q, map->tiles->data->data[q]); - //printf("%d[%d]", q, bgdata[q]); + //if(strtol(js+t->start, (char **)js+t->end, 10)==0){ /*printf("%d\n", sizeof(map->tiles->data->data));*/ fprintf(stderr, "\nFACK! %d\n", errno); exit(-1); } +// map->tiles->data->data[q] = (byte)strtol(js+t->start, (char **)js+t->end, 10); +// printf("%d[%d]", q, (byte)strtol(js+t->start, (char **)js+t->end, 10)); } else if(js_sv == "height") @@ -51,8 +48,14 @@ static int dump(const char *js, jsmntok_t *t, size_t count, int indent, /*char * //if(w) if(jsoneq(js, t, "data") == 0 ) { - //initMap(&map); - //map->tiles->data->data = malloc((16*2)*16); +// printf("[[[[%d|%d]]]]\n", &(t+1)->size, (t+1)->size); + printf("\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 +1); + map->tiles = malloc(sizeof(tiles_t)); + map->tiles->data = malloc(sizeof(bitmap_t)); + map->tiles->data->width = (16*2); + map->tiles->data->height= 16; + map->tiles->data->data = malloc((16*2)*16); js_sv="data";//strdup(js+t->start);//, t->end - t->start); //printf("%s\n", js_sv); } @@ -82,11 +85,10 @@ static int dump(const char *js, jsmntok_t *t, size_t count, int indent, /*char * j = 0; //printf("==\n"); for (i = 0; i < t->size; i++) { - //printf("[[[[%d]]]]\n", t->size); //if(bgdata==NULL) bgdata=malloc(sizeof(char)*t->size); //for (k = 0; k < indent-1; k++) printf("\t"); //printf("\t-"); - j += dump(js, t+1+j, count-j, indent+1, map, i/*, t->size*/); + j += dump(js, t+1+j, count-j, indent+1, map, i/*, &t->size*/); //printf("==\n"); } return j+1; @@ -140,10 +142,13 @@ static int loadmap(char *mn, map_t *map/*, word w*/) return 3; } strncpy(js + jslen, buf, r); +// printf("%s\n\n", js); jslen = jslen + r; again: + //printf("================================================================================%s================================================================================", js); r = jsmn_parse(&p, js, jslen, tok, tokcount); + //printf("================================================================================%s================================================================================", js); if (r < 0) { if (r == JSMN_ERROR_NOMEM) { tokcount = tokcount * 2; @@ -155,23 +160,15 @@ again: goto again; } } else { - dump(js, tok, p.toknext, 0, map, 0/*, w*/); - //fprintf(stdout, "[[[[%d]]]]\n", sizeof(tok)); - //printf("[\n%d\n]", jslen); + //printf("================================================================================%s================================================================================", js); + dump(js, tok, p.toknext, 0, map, 0); eof_expected = 1; } } - free(js); - free(tok); + //free(js); + //free(tok); fclose(fh); return 0; } - -/*int main() -{ - map_t map; - loadmap("../../../../data/test.map", &map); - return 0; -}*/ diff --git a/src/lib/mapread.h b/src/lib/mapread.h index 8fb76797..7200172c 100644 --- a/src/lib/mapread.h +++ b/src/lib/mapread.h @@ -26,7 +26,7 @@ typedef struct { } map_t; static int jsoneq(const char *json, jsmntok_t *tok, const char *s); -static int dump(const char *js, jsmntok_t *t, size_t count, int indent, /*char *js_sv,*/ map_t *map, int q/*, int w*/); +static int dump(const char *js, jsmntok_t *t, size_t count, int indent, /*char *js_sv,*/ map_t *map, int q/*, int *w*/); static int loadmap(char *mn, map_t *map/*, word w*/); #endif/*_LIBMAPREAD_H_*/ diff --git a/src/maptest.c b/src/maptest.c new file mode 100644 index 00000000..e25c9818 --- /dev/null +++ b/src/maptest.c @@ -0,0 +1,8 @@ +#include "src/lib/mapread.c" + +int main() +{ + map_t map; + loadmap("data/test.map", &map); + return 0; +} diff --git a/src/scroll.c b/src/scroll.c index 024b21fa..2d3a1c67 100644 --- a/src/scroll.c +++ b/src/scroll.c @@ -119,7 +119,7 @@ void main() { /* create the map */ loadmap("data/test.map", &map/*, 0*/); - map = allocMap(map.width,map.height); //20x15 is the resolution of the screen you can make maps smaller than 20x15 but the null space needs to be drawn properly + //map = allocMap(map.width,map.height); //20x15 is the resolution of the screen you can make maps smaller than 20x15 but the null space needs to be drawn properly //if(isEMS()) printf("%d tesuto\n", coretotalEMS()); //++++ initMap(&map); @@ -608,19 +608,19 @@ initMap(map_t *map) { int i; int tile = 1; //if(!isEMS() || !checkEMS()) - map->tiles = malloc(sizeof(tiles_t)); +// map->tiles = malloc(sizeof(tiles_t)); //else // map->tiles = (tiles_t *)alloc_emem(sizeof(tiles_t)); /* create the tile set */ //if(!isEMS() || !checkEMS()) - map->tiles->data = malloc(sizeof(bitmap_t)); +// map->tiles->data = malloc(sizeof(bitmap_t)); //else // map->tiles->data = (bitmap_t *)alloc_emem(sizeof(bitmap_t)); - map->tiles->data->width = (TILEWH*2); - map->tiles->data->height= TILEWH; +// map->tiles->data->width = (TILEWH*2); +// map->tiles->data->height= TILEWH; //if(!isEMS() || !checkEMS()) - map->tiles->data->data = malloc((TILEWH*2)*TILEWH); +// map->tiles->data->data = malloc((TILEWH*2)*TILEWH); //else // map->tiles->data->data = (byte *)alloc_emem((TILEWH*2)*TILEWH); map->tiles->tileHeight = TILEWH; -- 2.39.5