OSDN Git Service

modified: scroll.exe
authorsparky4 <sparky4@cock.li>
Mon, 23 Mar 2015 18:04:31 +0000 (13:04 -0500)
committersparky4 <sparky4@cock.li>
Mon, 23 Mar 2015 18:04:31 +0000 (13:04 -0500)
modified:   src/lib/mapread.c
modified:   src/lib/mapread.h
modified:   src/scroll.c

scroll.exe
src/lib/mapread.c
src/lib/mapread.h
src/scroll.c

index bd790fe..fd02ce1 100644 (file)
Binary files a/scroll.exe and b/scroll.exe differ
index 7e0686b..90c13a7 100644 (file)
@@ -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;
index ac21074..fcc773a 100644 (file)
@@ -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_*/
index 0d7d021..f03cda5 100644 (file)
@@ -627,7 +627,7 @@ initMap(map_t *map) {
        map->tiles->rows = 1;\r
        map->tiles->cols = 2;\r
 \r
-       i=0;\r
+       /*i=0;\r
        for(y=0; y<TILEWH; y++) {\r
        for(x=0; x<(TILEWH*2); x++) {\r
                if(x<TILEWH)\r
@@ -636,7 +636,7 @@ initMap(map_t *map) {
                  map->tiles->data->data[i] = 0;//0x34;\r
                i++;\r
        }\r
-       }\r
+       }*/\r
 \r
        i=0;\r
        for(y=0; y<map->height; y++) {\r