From 7cce89d92d1cad302190a9de1f3f1d0780655c29 Mon Sep 17 00:00:00 2001 From: sparky4 Date: Wed, 25 Mar 2015 00:18:36 -0500 Subject: [PATCH] !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1wwww I can read map data and render the map (sort of) modified: maptest.exe modified: scroll.exe modified: src/lib/bitmap.h modified: src/lib/mapread.c modified: src/lib/mapread.h modified: src/scroll.c --- maptest.exe | Bin 31663 -> 31379 bytes scroll.exe | Bin 60520 -> 60326 bytes src/lib/bitmap.h | 2 +- src/lib/mapread.c | 28 ++++--------------- src/lib/mapread.h | 3 +- src/scroll.c | 68 +++++++++++++++++++++++++++------------------- 6 files changed, 47 insertions(+), 54 deletions(-) diff --git a/maptest.exe b/maptest.exe index 7b54d13909b20c1439d94c9af1d791e4d93168c8..fc112955c83d43f73f0d04b000ea35e36daf32d9 100644 GIT binary patch delta 10962 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 delta 11263 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 BUmXAd diff --git a/scroll.exe b/scroll.exe index c77a390c54fce732530a6be4e8390dcef21e4180..df07e17a482150c12545123224f138239ecc9516 100644 GIT binary patch delta 17481 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 diff --git a/src/lib/bitmap.h b/src/lib/bitmap.h index c11a5d6f..2eefe41b 100644 --- a/src/lib/bitmap.h +++ b/src/lib/bitmap.h @@ -5,7 +5,7 @@ #define BITMAP_H #include "src\lib\types.h" typedef struct { - byte *data; + byte *data; word width; word height; byte *palette; diff --git a/src/lib/mapread.c b/src/lib/mapread.c index cd4f5c30..eee0fd00 100644 --- a/src/lib/mapread.c +++ b/src/lib/mapread.c @@ -16,7 +16,6 @@ static int dump(const char *js, jsmntok_t *t, size_t count, int indent, /*char * } /* We may want to do strtol() here to get numeric value */ if (t->type == JSMN_PRIMITIVE) { - //if(w) if(js_sv == "data") { /* @@ -26,11 +25,8 @@ static int dump(const char *js, jsmntok_t *t, size_t count, int indent, /*char * FUCK well i am stuck.... wwww */ - //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); exit(-1); } - //printf("%.*s", (t-1)->end - (t-1)->start, js+(t-1)->start); - map->tiles->data->data[q] = (byte)strtol(js+t->start, &(char *)t->end, 0); - printf("[%d]", map->tiles->data->data[q]); + map->data[q] = (byte)strtol(js+t->start, &(char *)t->end, 10); +// printf("%d[%d]", q, map->data[q]); } else if(js_sv == "height") @@ -40,37 +36,29 @@ static int dump(const char *js, jsmntok_t *t, size_t count, int indent, /*char * //printf("h:[%d]\n", map->height); }else if(js_sv == "width") { - //map->width = (int)malloc(sizeof(int)); map->width = (int)strtol(js+t->start, (char **)js+t->end, 10); - printf("w:[%d]\n", map->width); +// 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(w) if(jsoneq(js, t, "data") == 0 ) { // 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); +// 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); 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); + map->tiles->data->data = malloc((16/**2*/)*16); 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); }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) { @@ -88,7 +76,6 @@ 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, i/*, &t->size*/); @@ -145,13 +132,10 @@ 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; @@ -163,8 +147,6 @@ again: goto again; } } else { - //printf("================================================================================%s================================================================================", js); - //js_sv=malloc(sizeof(char)*10); dump(js, tok, p.toknext, 0, map, 0); eof_expected = 1; } diff --git a/src/lib/mapread.h b/src/lib/mapread.h index 7200172c..623bf545 100644 --- a/src/lib/mapread.h +++ b/src/lib/mapread.h @@ -8,7 +8,6 @@ #include "src/lib/modex16.h" static char *js_sv; -//static long int bgdata[4096]; typedef struct { bitmap_t *data; @@ -26,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, int q/*, int *w*/); +static int dump(const char *js, jsmntok_t *t, size_t count, int indent, map_t *map, int q); static int loadmap(char *mn, map_t *map/*, word w*/); #endif/*_LIBMAPREAD_H_*/ diff --git a/src/scroll.c b/src/scroll.c index 506288db..315ea9f0 100644 --- a/src/scroll.c +++ b/src/scroll.c @@ -118,10 +118,9 @@ 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 + 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 //if(isEMS()) printf("%d tesuto\n", coretotalEMS()); - //++++ initMap(&map); mv.map = ↦ mv2.map = ↦ @@ -130,11 +129,10 @@ void main() { /* draw the tiles */ ptr = map.data; /* data */ -//++++ ptmp = bitmapLoadPcx("ptmp.pcx"); // load sprite + ptmp = bitmapLoadPcx("ptmp.pcx"); // load sprite //npctmp = bitmapLoadPcx("ptmp1.pcx"); // load sprite -printf("\nwwww\n"); /* create the planar buffer */ -//++++ p = planar_buf_from_bitmap(&ptmp); + p = planar_buf_from_bitmap(&ptmp); /*if(isEMS()) { @@ -553,7 +551,8 @@ printf("\nwwww\n"); printf("player.triggy: %d\n", player.triggery); printf("player.hp: %d\n", player.hp); printf("player.q: %d\n", player.q); - printf("player.d: %d\n", player.d); + printf("player.d: %d\n", player.d); + printf("%d\n", map.data[0]); printf("temporary player sprite 0: http://www.pixiv.net/member_illust.php?mode=medium&illust_id=45556867\n"); printf("temporary player sprite 1: http://www.pixiv.net/member_illust.php?mode=medium&illust_id=44606385\n"); printf("\n"); @@ -604,9 +603,9 @@ allocMap(int w, int h) { void initMap(map_t *map) { /* just a place holder to fill out an alternating pattern */ - int x, y; - int i; - int tile = 1; + int x, y, xx, yy; + int i, q; +// int tile = 1; //if(!isEMS() || !checkEMS()) // map->tiles = malloc(sizeof(tiles_t)); //else @@ -617,8 +616,8 @@ initMap(map_t *map) { // 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); //else @@ -626,28 +625,41 @@ initMap(map_t *map) { map->tiles->tileHeight = TILEWH; map->tiles->tileWidth =TILEWH; map->tiles->rows = 1; - map->tiles->cols = 2; + map->tiles->cols = 1;//2; - /*i=0; - for(y=0; ytiles->data->data[i] = 28;//0x24; - else - map->tiles->data->data[i] = 0;//0x34; + /*q=0; + //for(y=0; yheight; y++) { + //for(x=0; xwidth; x++) { + i=0; + for(yy=0; yytiles->data->data[i+1] = map->data[q];//28;//0x24; +// printf("[%d]", map->tiles->data->data[i]); + //}else{ + //map->tiles->data->data[i] = map->data[q];//0;//0x34; + //printf("]%d[==[%d]", i, map->tiles->data->data[i]); + //} i++; - } - }*/ + } +// printf("\n"); + } +// printf("[%d]", map->data[q]); + q++; +// } + //printf("\n\n"); +// }*/ - i=0; + /*i=0; for(y=0; yheight; y++) { - for(x=0; xwidth; x++) { - map->data[i] = tile; - tile = tile ? 0 : 1; + for(x=0; xwidth; x++) { +// map->data[i]=255; + printf("[%d]", map->data[i]); + //tile = tile ? 0 : 1; i++; } - tile = tile ? 0 : 1; - } + //tile = tile ? 0 : 1; + }*/ } -- 2.39.5