From: sparky4 Date: Mon, 23 Mar 2015 18:04:31 +0000 (-0500) Subject: modified: scroll.exe X-Git-Url: http://4ch.mooo.com/gitweb/?a=commitdiff_plain;h=fe2aef9b2ab194e6b54f1e6fd9313c521ed3fc4b;p=16.git modified: scroll.exe modified: src/lib/mapread.c modified: src/lib/mapread.h modified: src/scroll.c --- diff --git a/scroll.exe b/scroll.exe index bd790fef..fd02ce14 100644 Binary files a/scroll.exe and b/scroll.exe differ diff --git a/src/lib/mapread.c b/src/lib/mapread.c index 7e0686b4..90c13a7a 100644 --- a/src/lib/mapread.c +++ b/src/lib/mapread.c @@ -9,14 +9,19 @@ 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) { +static int dump(const char *js, jsmntok_t *t, size_t count, int indent, /*char *js_sv,*/ map_t *map, short q) { int i, j, k; if (count == 0) { return 0; } /* We may want to do strtol() here to get numeric value */ if (t->type == JSMN_PRIMITIVE) { - if(js_sv == "height") + if(js_sv == "data") + { + map->tiles->data->data[q] = (byte)strtol(js+t->start, (char **)js+t->end, 10); + printf("[%d]", map->tiles->data->data[q]); + q++; + }else if(js_sv == "height") { map->height = (int)strtol(js+t->start, (char **)js+t->end, 10); //printf("h:[%d]\n", map->height); @@ -29,7 +34,11 @@ static int dump(const char *js, jsmntok_t *t, size_t count, int indent, /*char * /* We may use strndup() to fetch string value */ } else if (t->type == JSMN_STRING) { //printf("'%.*s'", t->end - t->start, js+t->start); - if (jsoneq(js, t, "height") == 0 && indent==1) + if (jsoneq(js, t, "data") == 0 && indent==2) + { + js_sv="data";//strdup(js+t->start);//, t->end - t->start); + //printf("%s\n", js_sv); + }else if (jsoneq(js, t, "height") == 0 && indent==1) { js_sv="height";//strdup(js+t->start);//, t->end - t->start); //printf("%s\n", js_sv); @@ -44,9 +53,9 @@ static int dump(const char *js, jsmntok_t *t, size_t count, int indent, /*char * j = 0; for (i = 0; i < t->size; i++) { //for (k = 0; k < indent; k++) printf("\t"); - j += dump(js, t+1+j, count-j, indent+1, map); + j += dump(js, t+1+j, count-j, indent+1, map, q); //printf(": "); - j += dump(js, t+1+j, count-j, indent+1, map); + j += dump(js, t+1+j, count-j, indent+1, map, q); //printf("\n"); } return j+1; @@ -56,7 +65,7 @@ static int dump(const char *js, jsmntok_t *t, size_t count, int indent, /*char * for (i = 0; i < t->size; i++) { //for (k = 0; k < indent-1; k++) printf("\t"); //printf("\t-"); - j += dump(js, t+1+j, count-j, indent+1, map); + j += dump(js, t+1+j, count-j, indent+1, map, q); //printf("==\n"); } return j+1; @@ -125,7 +134,7 @@ again: goto again; } } else { - dump(js, tok, p.toknext, 0, map); + dump(js, tok, p.toknext, 0, map, 0); //fprintf(stdout, "[[[[%d]]]]\n", sizeof(tok)); //printf("[\n%d\n]", jslen); eof_expected = 1; diff --git a/src/lib/mapread.h b/src/lib/mapread.h index ac210743..fcc773a7 100644 --- a/src/lib/mapread.h +++ b/src/lib/mapread.h @@ -24,7 +24,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); +static int dump(const char *js, jsmntok_t *t, size_t count, int indent, /*char *js_sv,*/ map_t *map, short q); int loadmap(char *mn, map_t *map); #endif/*_LIBMAPREAD_H_*/ diff --git a/src/scroll.c b/src/scroll.c index 0d7d021d..f03cda5c 100644 --- a/src/scroll.c +++ b/src/scroll.c @@ -627,7 +627,7 @@ initMap(map_t *map) { map->tiles->rows = 1; map->tiles->cols = 2; - i=0; + /*i=0; for(y=0; ytiles->data->data[i] = 0;//0x34; i++; } - } + }*/ i=0; for(y=0; yheight; y++) {