From cb813c605876f11ce54bee2b44a33e97b00dcf16 Mon Sep 17 00:00:00 2001 From: sparky4 Date: Mon, 23 Mar 2015 14:02:34 -0500 Subject: [PATCH] wwww working on reading the main map data of the bg layer~ wwww modified: pcxtest.exe modified: scroll.exe deleted: src/lib/jsmn/example/JSONDUMP.EXE deleted: src/lib/jsmn/example/MAPTEST.EXE deleted: src/lib/jsmn/example/MAPTEST2.EXE deleted: src/lib/jsmn/example/SIMPLE.EXE deleted: src/lib/jsmn/example/jsondump deleted: src/lib/jsmn/example/jsondump.c deleted: src/lib/jsmn/example/maptest deleted: src/lib/jsmn/example/maptest.c deleted: src/lib/jsmn/example/maptest2 deleted: src/lib/jsmn/example/maptest2.c deleted: src/lib/jsmn/example/simple.c new file: src/lib/jsmn/jsmn.7z modified: src/lib/mapread.c modified: src/lib/mapread.h --- pcxtest.exe | Bin 63233 -> 63233 bytes scroll.exe | Bin 59277 -> 59382 bytes src/lib/jsmn/example/JSONDUMP.EXE | Bin 11986 -> 0 bytes src/lib/jsmn/example/MAPTEST.EXE | Bin 14266 -> 0 bytes src/lib/jsmn/example/MAPTEST2.EXE | Bin 15196 -> 0 bytes src/lib/jsmn/example/SIMPLE.EXE | Bin 10506 -> 0 bytes src/lib/jsmn/example/jsondump | Bin 10160 -> 0 bytes src/lib/jsmn/example/jsondump.c | 112 -------------------- src/lib/jsmn/example/maptest | Bin 10128 -> 0 bytes src/lib/jsmn/example/maptest.c | 122 --------------------- src/lib/jsmn/example/maptest2 | Bin 10845 -> 0 bytes src/lib/jsmn/example/maptest2.c | 170 ------------------------------ src/lib/jsmn/example/simple.c | 75 ------------- src/lib/jsmn/jsmn.7z | Bin 0 -> 27543 bytes src/lib/mapread.c | 17 +-- src/lib/mapread.h | 3 +- 16 files changed, 12 insertions(+), 487 deletions(-) delete mode 100644 src/lib/jsmn/example/JSONDUMP.EXE delete mode 100644 src/lib/jsmn/example/MAPTEST.EXE delete mode 100644 src/lib/jsmn/example/MAPTEST2.EXE delete mode 100644 src/lib/jsmn/example/SIMPLE.EXE delete mode 100644 src/lib/jsmn/example/jsondump delete mode 100644 src/lib/jsmn/example/jsondump.c delete mode 100644 src/lib/jsmn/example/maptest delete mode 100644 src/lib/jsmn/example/maptest.c delete mode 100644 src/lib/jsmn/example/maptest2 delete mode 100644 src/lib/jsmn/example/maptest2.c delete mode 100644 src/lib/jsmn/example/simple.c create mode 100644 src/lib/jsmn/jsmn.7z diff --git a/pcxtest.exe b/pcxtest.exe index 3ddfde9238b32fa88ed5129c171af2b3ea22021e..98fa93af5c2319b0de39ce49b26875c0c4bc32a5 100644 GIT binary patch delta 36 scmZpC$K3diS;#kP4}&)YI|B>DYli>-H*qp>Y!nK4#K^HZ{n0ED0PF4z2mk;8 delta 36 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 NjlDI3<4qcb{vWEf(UAZE delta 19192 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 W%tzw9GM@dmnI&&KkxsuCCI1(-NK*R% diff --git a/src/lib/jsmn/example/MAPTEST2.EXE b/src/lib/jsmn/example/MAPTEST2.EXE deleted file mode 100644 index df045463757b24b4e9c512b18318774448d3465b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15196 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 diff --git a/src/lib/jsmn/example/SIMPLE.EXE b/src/lib/jsmn/example/SIMPLE.EXE deleted file mode 100644 index 77ee0f401cc91d2204f96d0a499d38233e5ef1d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10506 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

5|yB*DlV<=(m zM5~=-wF%n5CE`e6uWZp3hjHBUfE;d_UmaF`PVGEn@l^z`?rxvMp5R=)CB%UKSY)kzT&h~J@-)uZLRvn7OoOeUQB{$ zFXUE52*qjC9{dCv@~m-(J^Pvar> zoEMr_;H$+VfrhP6c-Z73&&Yr<&$ui;fatY{HZx8vVJVG;ET!>Y2YbilmzE2`^IXOk zv~4x=Q2Knwp#Ch#S5X=XL~8;E8>Koz18|~UYT=(~pbs9L+6U_IQJdB9w2!h=P|Ryn z8$jChU-nFYx@Y>Yd#2MAHmIIf-`6J-h&4rRRgX>kXxeeiKBG3V*+#3{qDH12pJt-( zq}prsHK-MRhzkn;RQ0njtrzCf%>R0B~{idKr? zU56?;E#5VVWRM8nq5(0a%cUUqQGT0ZM~WL}#SFMi#00~^R-8U_;)k^FDEyoE={5E^ zOZ(X)LVMvmgX6R!W}F-ZIU)a%>mog?7PiqsgzzztHKNr1%r9Dc?t2>Y9Rb1$V^uFf z#G@o&`ymKu{jQ9|1@sKd+=#nRLBub{McfWotfwv1PUaaMH;-~nMYOV+!XCUi_vF|a z)HZ`I<6BO(oWRP&_;p}W9@dKN&l^{-+W=OsgK+1lecCmc2*9Abg|TOs?-DB4q_A&9G`HLRYtq zfyIU4-b9;VFSD9T*TH6zg|6BC!a+O9I##w&UFKBR+Ot{$k5FW%lT`;gAEwKk z6PwKWiOj&Rq-VJIDAJyyx|65FXgM-jEPq51%0!UA3l8I$e}%f46l1%B4TIRKYg3S7 z+n3cG;Njw~6SKOMm)Ui*%*EyzAD9m(sbxGst2;&H0F5`UQ^JC}7U0@!QE?2WT+qu% z=n~&8a`IQG5EsUR=Mc+st=$ez*(QvjDcNi73bKg+#bYPBR-|Y^ZLtNg?o&nKHd+zQ z`asDMY|sg6%U;eF>_pLtg`ei)#OyM=-+f zRM4Lw*=2m$OCS@k&tZwWE{V3y!L}??nxB|?3eI3ppqDmewfQF?lAPGqaxSYakcZ-O zm+IKZ9FHHGxEy821Vp?G6~ltTfZvP%^NeL@N$v3MXeZ1}gQt zOk}c+|FG7k7>$hT`AMk7(ly{J*elX9UcbX+*1b_3eSyz3VF!i)vID;%0MN^9)*9x& z=3p|;rKhGmSsfK>OpSQ^kmU1TVPDsQ)!?RJ^z$89m_bK^97Zm4V|=0gHlES)W-az{mk#daSp#Zi`j$B?%k($ z@=6kI!tXDB%;O5OQr03lVw&3Xy~Y>Fzk|?a>Wmd4?DO=j#xkdx!d=N~D4R#SRGB$M ziC^oSinQ;yx*m!9P0DS|0m4`URBJW!ak`8=)M{rog@x2f=I&lnbdp~)D!QuCY0jD?V7vd5v&4{96JP&JZ=r&TTI z(yAO8-5D3O>E^t7#^E6{(IDb}f)^9kWG(Fg#r-*MP8IEB8xYCq2Zmn!(5m_hy zoVKky?(qft@!Ov_Y{qB7zFPyI7#~;mqMq<6^SfS!^NMO$wp|oTMRrcr(Nl$%PdJ=a zoLQ@zxnqN!6h0Pw7pA0|%v?9LH}&FWBYA3d81Qg1X=;YBDlFjeGubv|+h68Nv+-Lf zRswD{U~PoMB)PgRUgRB8-JEWJjze{xm2O$#_Rf0T*+cd`%hA+lImQ946+d^eoJCY@ zF8LjKT6b)P!KdH65xM`zhmfC+Q~brH<7T?YJzlbD+lG?jag*KSiZ*QBybXPi6>VV! z?{UiJ4S37U$jF%Na=XWEEG<#C`_Z%7TI^>_$~F}jZ?V=Y8#b4)Mqu-X;*xP|cMz#) z^OoWbZn?z0y{Ob*>|U6^ICrM|dmCJ2@uQEUOztlJ@ph|Pj^Yh)AyeGT@W70zll(4X z;ex&g7*5wafe@Sap!a%593}MmEZkiZbkfKq=(=DpLV z|6s;__h%J7x_(3PV;eVZe*8yUwr(rg{zR!?Rsv-|e)1=TjJxTqB;IWP-&@=_hI#V! zcb*`Uz3~xukTNB1VF>$P!eF{jp#49pN-r1y diff --git a/src/lib/jsmn/example/jsondump b/src/lib/jsmn/example/jsondump deleted file mode 100644 index bf6541f53b4a5b65daf2baaf0c963ccae1322480..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10160 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 -#include -#include -#include -#include "../jsmn.c" - -/* - * An example of reading JSON from stdin and printing its content to stdout. - * The output looks like YAML, but I'm not sure if it's really compatible. - */ - -static int dump(const char *js, jsmntok_t *t, size_t count, int indent) { - int i, j, k; - if (count == 0) { - return 0; - } - if (t->type == JSMN_PRIMITIVE) { - printf("%.*s", t->end - t->start, js+t->start); - return 1; - } else if (t->type == JSMN_STRING) { - printf("'%.*s'", t->end - t->start, js+t->start); - return 1; - } else if (t->type == JSMN_OBJECT) { - printf("\n"); - j = 0; - for (i = 0; i < t->size; i++) { - for (k = 0; k < indent; k++) printf(" "); - j += dump(js, t+1+j, count-j, indent+1); - printf(": "); - j += dump(js, t+1+j, count-j, indent+1); - printf("\n"); - } - return j+1; - } else if (t->type == JSMN_ARRAY) { - j = 0; - printf("\n"); - for (i = 0; i < t->size; i++) { - for (k = 0; k < indent-1; k++) printf(" "); - printf(" - "); - j += dump(js, t+1+j, count-j, indent+1); - printf("\n"); - } - return j+1; - } - return 0; -} - -int main() { - int r; - int eof_expected = 0; - char *js = NULL; - size_t jslen = 0; - char buf[BUFSIZ]; - - jsmn_parser p; - jsmntok_t *tok; - size_t tokcount = 2; - - /* Prepare parser */ - jsmn_init(&p); - - /* Allocate some tokens as a start */ - tok = malloc(sizeof(*tok) * tokcount); - if (tok == NULL) { - fprintf(stderr, "malloc(): errno=%d\n", errno); - return 3; - } - - for (;;) { - /* Read another chunk */ - r = fread(buf, 1, sizeof(buf), stdin); - 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; - } - } - - js = realloc(js, jslen + r + 1); - if (js == NULL) { - fprintf(stderr, "realloc(): errno=%d\n", errno); - return 3; - } - strncpy(js + jslen, buf, r); - jslen = jslen + r; - -again: - r = jsmn_parse(&p, js, jslen, tok, tokcount); - if (r < 0) { - if (r == JSMN_ERROR_NOMEM) { - tokcount = tokcount * 2; - tok = realloc(tok, sizeof(*tok) * tokcount); - if (tok == NULL) { - fprintf(stderr, "realloc(): errno=%d\n", errno); - return 3; - } - goto again; - } - } else { - dump(js, tok, p.toknext, 0); - eof_expected = 1; - } - } - - return 0; -} diff --git a/src/lib/jsmn/example/maptest b/src/lib/jsmn/example/maptest deleted file mode 100644 index a72fa7f9f215fdb940dac204d401a2f9b47f1db2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10128 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 P%k`a@k3CpMu=V{fZjlZ1 diff --git a/src/lib/jsmn/example/maptest.c b/src/lib/jsmn/example/maptest.c deleted file mode 100644 index 7cceabb8..00000000 --- a/src/lib/jsmn/example/maptest.c +++ /dev/null @@ -1,122 +0,0 @@ -#include -#include -#include -//#include -#include "../jsmn.c" - -//#define BUFSIZ 2048 - -/* - * A small example of jsmn parsing when JSON structure is known and number of - * tokens is predictable. - */ - -/*char *json_string = - "{\"user\": \"johndoe\", \"admin\": false, \"uid\": 1000,\n " - "\"groups\": [\"users\", \"wheel\", \"audio\", \"video\"]}";*/ - -long int filesize(FILE *fp) -{ - long int save_pos, size_of_file; - - save_pos = ftell(fp); - fseek(fp, 0L, SEEK_END); - size_of_file = ftell(fp); - fseek(fp, save_pos, SEEK_SET); - return(size_of_file); -} - -static int jsoneq(const char *json, jsmntok_t *tok, const char *s) { - if (tok->type == JSMN_STRING && (int) strlen(s) == tok->end - tok->start && - strncmp(json + tok->start, s, tok->end - tok->start) == 0) { - return 0; - } - return -1; -} - -int main() { - int i; - int r; - size_t z; - jsmn_parser p; - jsmntok_t t[(BUFSIZ/sizeof(jsmntok_t))*2]; /* We expect no more than 128 tokens */ - FILE *fh = fopen("../../../../data/test.map", "r"); - char *json_string = malloc(filesize(fh)); - - if(fh != NULL) - { - /*t = malloc(2048); - if (t == NULL) { - fprintf(stderr, "malloc(): errno=%d\n", errno); - return 3; - }*/ - //printf("\n%d\n\n", sizeof(*t)); - printf("\n%d", sizeof(*t)); - printf("\n%d", sizeof(t)); - printf("\n%d\n\n", sizeof(t)/sizeof(t[0])); - z = fread(json_string, 1, filesize(fh), fh); - //char json_s[2048]; - fclose(fh); fh = NULL; - printf("[%d]\n", z); - json_string[z] = '\0'; - // we can now close the file - //printf("]%s[\n", json_s); - //json_string=json_s; - //printf("[[%s]]\n", json_string); - - jsmn_init(&p); - r = jsmn_parse(&p, json_string, strlen(json_string), t, sizeof(t)/sizeof(t[0])); - //t[(BUFSIZ/sizeof(jsmntok_t))*2+1].type=JSMN_OBJECT; - printf("[\n%s\n]", json_string); - printf("[[%d]]\n",r); - if (r < 0) { - printf("Failed to parse JSON: %d\n", r); - return 1; - } - - /* Assume the top-level element is an object */ - if (r < 1 || t[0].type != JSMN_OBJECT) { - printf("Object expected\n"); - return 1; - } - - /* Loop over all keys of the root object */ - for (i = 1; i < r; i++) { - if (jsoneq(json_string, &t[i], "image") == 0) { - /* We may use strndup() to fetch string value */ - printf("- image: %.*s\n", t[i+1].end-t[i+1].start, - json_string + t[i+1].start); - i++; - } else if (jsoneq(json_string, &t[i], "admin") == 0) { - /* We may additionally check if the value is either "true" or "false" */ - printf("- Admin: %.*s\n", t[i+1].end-t[i+1].start, - json_string + t[i+1].start); - i++; - } else if (jsoneq(json_string, &t[i], "uid") == 0) { - /* We may want to do strtol() here to get numeric value */ - printf("- UID: %.*s\n", t[i+1].end-t[i+1].start, - json_string + t[i+1].start); - i++; - } else if (jsoneq(json_string, &t[i], "tilesets") == 0) { - int j; - printf("- tilesets:\n"); - if (t[i+1].type != JSMN_ARRAY) { - continue; /* We expect groups to be an array of strings */ - } - for (j = 0; j < t[i+1].size; j++) { - jsmntok_t *g = &t[i+j+2]; - printf(" * %.*s\n", g->end - g->start, json_string + g->start); - } - i += t[i+1].size + 1; - } else { - /*printf("Unexpected key: %.*s\n", t[i].end-t[i].start, - json_string + t[i].start);*/ - } - } - - //free(json_string); - } - if (fh != NULL) fclose(fh); - ////} - return 0; -} diff --git a/src/lib/jsmn/example/maptest2 b/src/lib/jsmn/example/maptest2 deleted file mode 100644 index abc5640f405dfdfdec94ce713a12ff4a0dc28cbb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10845 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 diff --git a/src/lib/jsmn/example/maptest2.c b/src/lib/jsmn/example/maptest2.c deleted file mode 100644 index 017fbf85..00000000 --- a/src/lib/jsmn/example/maptest2.c +++ /dev/null @@ -1,170 +0,0 @@ -#include -#include -#include -#include -#include "../jsmn.c" -#include "../../../lib/types.h" - -/* - * An example of reading JSON from stdin and printing its content to stdout. - * The output looks like YAML, but I'm not sure if it's really compatible. - */ - -char *js_sv; - -typedef struct { - //bitmap_t *data; - byte *data; - word tileHeight; - word tileWidth; - unsigned int rows; - unsigned int cols; -} tiles_t; - -typedef struct { - byte *data; - tiles_t *tiles; - int width; - int height; -} map_t; - -static int jsoneq(const char *json, jsmntok_t *tok, const char *s) { - if (tok->type == JSMN_STRING && (int) strlen(s) == tok->end - tok->start && - strncmp(json + tok->start, s, tok->end - tok->start) == 0) { - return 0; - } - return -1; -} - -static int dump(const char *js, jsmntok_t *t, size_t count, int indent, /*char *js_sv,*/ map_t *map) { - 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") - { - map->height = (int)strtol(js+t->start, (char **)js+t->end, 10); - printf("h:[%d]\n", map->height); - }else if(js_sv == "width") - { - map->width = (int)strtol(js+t->start, (char **)js+t->end, 10); - printf("w:[%d]\n", map->width); - } - return 1; - /* 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) - { - js_sv="height";//strdup(js+t->start);//, t->end - t->start); - printf("%s\n", js_sv); - }else if (jsoneq(js, t, "width") == 0 && indent==1) - { - js_sv="width";//strdup(js+t->start);//, t->end - t->start); - printf("%s\n", js_sv); - }else js_sv=NULL; - return 1; - } else if (t->type == JSMN_OBJECT) { - //printf("\n"); - 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); - //printf(": "); - j += dump(js, t+1+j, count-j, indent+1, map); - //printf("\n"); - } - return j+1; - } else if (t->type == JSMN_ARRAY) { - j = 0; - //printf("==\n"); - 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); - //printf("==\n"); - } - return j+1; - } - return 0; -} - -int loadmap(char *mn, map_t *map) -{ - int r; - int eof_expected = 0; - char *js = NULL; - size_t jslen = 0; - char buf[BUFSIZ]; - - 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 */ - tok = malloc(sizeof(*tok) * tokcount); - if (tok == NULL) { - fprintf(stderr, "malloc(): errno=%d\n", errno); - return 3; - } - - for (;;) { - /* Read another chunk */ - 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; - } - } - - js = realloc(js, jslen + r + 1); - if (js == NULL) { - fprintf(stderr, "realloc(): errno=%d\n", errno); - return 3; - } - strncpy(js + jslen, buf, r); - jslen = jslen + r; - -again: - r = jsmn_parse(&p, js, jslen, tok, tokcount); - if (r < 0) { - if (r == JSMN_ERROR_NOMEM) { - tokcount = tokcount * 2; - tok = realloc(tok, sizeof(*tok) * tokcount); - if (tok == NULL) { - fprintf(stderr, "realloc(): errno=%d\n", errno); - return 3; - } - goto again; - } - } else { - dump(js, tok, p.toknext, 0, map); - //fprintf(stdout, "[[[[%d]]]]\n", sizeof(tok)); - //printf("[\n%d\n]", jslen); - eof_expected = 1; - } - } - - return 0; -} - -int main() -{ - map_t map; - loadmap("../../../../data/test.map", &map); - return 0; -} diff --git a/src/lib/jsmn/example/simple.c b/src/lib/jsmn/example/simple.c deleted file mode 100644 index ca2902b5..00000000 --- a/src/lib/jsmn/example/simple.c +++ /dev/null @@ -1,75 +0,0 @@ -#include -#include -#include "../jsmn.c" - -/* - * A small example of jsmn parsing when JSON structure is known and number of - * tokens is predictable. - */ - -const char *JSON_STRING = - "{\"user\": \"johndoe\", \"admin\": false, \"uid\": 1000,\n " - "\"groups\": [\"users\", \"wheel\", \"audio\", \"video\"]}"; - -static int jsoneq(const char *json, jsmntok_t *tok, const char *s) { - if (tok->type == JSMN_STRING && (int) strlen(s) == tok->end - tok->start && - strncmp(json + tok->start, s, tok->end - tok->start) == 0) { - return 0; - } - return -1; -} - -int main() { - int i; - int r; - jsmn_parser p; - jsmntok_t t[128]; /* We expect no more than 128 tokens */ - - jsmn_init(&p); - r = jsmn_parse(&p, JSON_STRING, strlen(JSON_STRING), t, sizeof(t)/sizeof(t[0])); - if (r < 0) { - printf("Failed to parse JSON: %d\n", r); - return 1; - } - - /* Assume the top-level element is an object */ - if (r < 1 || t[0].type != JSMN_OBJECT) { - printf("Object expected\n"); - return 1; - } - - /* Loop over all keys of the root object */ - for (i = 1; i < r; i++) { - if (jsoneq(JSON_STRING, &t[i], "user") == 0) { - /* We may use strndup() to fetch string value */ - printf("- User: %.*s\n", t[i+1].end-t[i+1].start, - JSON_STRING + t[i+1].start); - i++; - } else if (jsoneq(JSON_STRING, &t[i], "admin") == 0) { - /* We may additionally check if the value is either "true" or "false" */ - printf("- Admin: %.*s\n", t[i+1].end-t[i+1].start, - JSON_STRING + t[i+1].start); - i++; - } else if (jsoneq(JSON_STRING, &t[i], "uid") == 0) { - /* We may want to do strtol() here to get numeric value */ - printf("- UID: %.*s\n", t[i+1].end-t[i+1].start, - JSON_STRING + t[i+1].start); - i++; - } else if (jsoneq(JSON_STRING, &t[i], "groups") == 0) { - int j; - printf("- Groups:\n"); - if (t[i+1].type != JSMN_ARRAY) { - continue; /* We expect groups to be an array of strings */ - } - for (j = 0; j < t[i+1].size; j++) { - jsmntok_t *g = &t[i+j+2]; - printf(" * %.*s\n", g->end - g->start, JSON_STRING + g->start); - } - i += t[i+1].size + 1; - } else { - printf("Unexpected key: %.*s\n", t[i].end-t[i].start, - JSON_STRING + t[i].start); - } - } - return 0; -} diff --git a/src/lib/jsmn/jsmn.7z b/src/lib/jsmn/jsmn.7z new file mode 100644 index 0000000000000000000000000000000000000000..58ba68e0440513bb6976fbf8fb29aa2f32f33785 GIT binary patch literal 27543 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 literal 0 HcmV?d00001 diff --git a/src/lib/mapread.c b/src/lib/mapread.c index 90c13a7a..5cd4f1cf 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, short q) { +static int dump(const char *js, jsmntok_t *t, size_t count, int indent, /*char *js_sv,*/ map_t *map, int q) { int i, j, k; if (count == 0) { return 0; @@ -18,9 +18,11 @@ static int dump(const char *js, jsmntok_t *t, size_t count, int indent, /*char * if (t->type == JSMN_PRIMITIVE) { if(js_sv == "data") { + //bgdata[q] = (byte)strtol(js+t->start, (char **)js+t->end, 10); + if(strtol(js+t->start, (char **)js+t->end, 10)==0){ fprintf(stderr, "FACK! %d\n", errno); exit(-1); } map->tiles->data->data[q] = (byte)strtol(js+t->start, (char **)js+t->end, 10); - printf("[%d]", map->tiles->data->data[q]); - q++; + printf("%d[%d]", q, map->tiles->data->data[q]); + //printf("%d[%d]", q, bgdata[q]); }else if(js_sv == "height") { map->height = (int)strtol(js+t->start, (char **)js+t->end, 10); @@ -34,7 +36,7 @@ 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, "data") == 0 && indent==2) + if (jsoneq(js, t, "data") == 0) { js_sv="data";//strdup(js+t->start);//, t->end - t->start); //printf("%s\n", js_sv); @@ -53,9 +55,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, q); + j += dump(js, t+1+j, count-j, indent+1, map, i); //printf(": "); - j += dump(js, t+1+j, count-j, indent+1, map, q); + j += dump(js, t+1+j, count-j, indent+1, map, i); //printf("\n"); } return j+1; @@ -63,9 +65,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++) { + //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, q); + j += dump(js, t+1+j, count-j, indent+1, map, i); //printf("==\n"); } return j+1; diff --git a/src/lib/mapread.h b/src/lib/mapread.h index fcc773a7..26682626 100644 --- a/src/lib/mapread.h +++ b/src/lib/mapread.h @@ -7,6 +7,7 @@ #include "src/lib/modex16.h" char *js_sv; +byte bgdata[4096]; typedef struct { bitmap_t *data; @@ -24,7 +25,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, short q); +static int dump(const char *js, jsmntok_t *t, size_t count, int indent, /*char *js_sv,*/ map_t *map, int q); int loadmap(char *mn, map_t *map); #endif/*_LIBMAPREAD_H_*/ -- 2.39.5