From a6eadf5caebd181c24e3c210f3e5dc0b2e50b9c4 Mon Sep 17 00:00:00 2001 From: sparky4 Date: Tue, 23 Dec 2014 14:23:38 -0600 Subject: [PATCH] modified: makefile modified: scroll.exe modified: src/scroll.c --- makefile | 6 +- scroll.exe | Bin 53817 -> 53817 bytes src/scroll.c | 154 ++++++++++++++++++++++++++------------------------- 3 files changed, 81 insertions(+), 79 deletions(-) diff --git a/makefile b/makefile index a6a4be18..0a47caf6 100644 --- a/makefile +++ b/makefile @@ -1,10 +1,10 @@ -FLAGS=-0 -d2 -SRC=src\ +FLAGS=-0 -d2 +SRC=src\ SRCLIB=$(SRC)lib\ all: test.exe pcxtest.exe test2.exe scroll.exe scroll.exe: scroll.obj modex16.obj dos_kb.obj bitmap.obj - wcl $(FLAGS) scroll.obj modex16.obj dos_kb.obj bitmap.obj + wcl $(FLAGS) scroll.obj modex16.obj dos_kb.obj bitmap.obj 16\lib\x\modex.lib scroll.obj: $(SRC)scroll.c wcl $(FLAGS) -c $(SRC)scroll.c test.exe: test.obj modex16.obj bitmap.obj diff --git a/scroll.exe b/scroll.exe index 43479f22f1f47eb5a0e3f2c8d6168e59f7e736b9..ba9037f20a99eeb8e3d5d2acffd28b5a9ecde875 100644 GIT binary patch delta 5438 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 #include #include "src\lib\dos_kb.h" +#include "16\lib\x\modex.h" #include "src\lib\wtest\wtest.c" #include "src\lib\ems.c" -//word far *clock= (word far*) 0x046C; /* 18.2hz clock */ - -int emmhandle,ist; - +//word far *clock= (word far*) 0x046C; /* 18.2hz clock */ + +int emmhandle,ist; + typedef struct { bitmap_t *data; word tileHeight; @@ -45,7 +46,7 @@ typedef struct { int setx; //NOT USED YET! player sprite sheet set on the image x int sety; //NOT USED YET! player sprite sheet set on the image y word q; //loop variable - word d; //direction + word d; //direction bitmap_t data; //supposively the sprite sheet data int hp; //hitpoints of the player } actor_t; @@ -68,15 +69,15 @@ void animatePlayer(map_view_t *src, map_view_t *dest, /*map_view_t *top, */sword //#define LOOPMAX (TILEWH/SPEED) //place holder definitions -#define MAPX 40 -#define MAPY 30 +#define MAPX 200 +#define MAPY 150 #define TRIGGX 10 -#define TRIGGY 9 - +#define TRIGGY 9 + void main() { bitmap_t ptmp;//, npctmp; // player sprite const char *cpus; - static int persist_aniframe = 0; /* gonna be increased to 1 before being used, so 0 is ok for default */ + static int persist_aniframe = 0; /* gonna be increased to 1 before being used, so 0 is ok for default */ page_t screen, screen2, screen3; map_t map; map_view_t mv, mv2, mv3; @@ -85,52 +86,52 @@ void main() { byte *ptr; actor_t player; //actor_t npc0; - - if(isEMS() || checkEMS()){ printf("%d\n", coretotalEMS()); emmhandle = mallocEMS(coretotalEMS()); } + + if(isEMS() || checkEMS()){ printf("%d\n", coretotalEMS()); emmhandle = mallocEMS(coretotalEMS()); } /* create the map */ map = allocMap(MAPX,MAPY); //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()); + //if(isEMS()) printf("%d tesuto\n", coretotalEMS()); initMap(&map); mv.map = ↦ mv2.map = ↦ - mv3.map = ↦ - + mv3.map = ↦ + /* draw the tiles */ ptr = map.data; /* data */ ptmp = bitmapLoadPcx("ptmp.pcx"); // load sprite - //npctmp = bitmapLoadPcx("ptmp1.pcx"); // load sprite - - /*if(isEMS()) - { - XMOVE mm; - mm.length=sizeof(map); - mm.sourceH=0; - mm.sourceOff=(long)↦ - mm.destH=emmhandle; - mm.destOff=1; - //halp! - ist = move_emem(&mm); - printf("%d\n", coretotalEMS()); - if(!ist){ dealloc_emem(emmhandle); exit(5); } - //printf("%d\n", emmhandle); - } - - if(isEMS()) - { - XMOVE mm; - mm.length=emmhandle; - mm.sourceH=0; - mm.sourceOff=(long)&ptmp; - mm.destH=emmhandle; - mm.destOff=0; - //halp! - ist = move_emem(&mm); - printf("%d\n", coretotalEMS()); - if(!ist){ dealloc_emem(emmhandle); exit(5); } - //printf("%d\n", emmhandle); - } + //npctmp = bitmapLoadPcx("ptmp1.pcx"); // load sprite + + /*if(isEMS()) + { + XMOVE mm; + mm.length=sizeof(map); + mm.sourceH=0; + mm.sourceOff=(long)↦ + mm.destH=emmhandle; + mm.destOff=1; + //halp! + ist = move_emem(&mm); + printf("%d\n", coretotalEMS()); + if(!ist){ dealloc_emem(emmhandle); exit(5); } + //printf("%d\n", emmhandle); + } + + if(isEMS()) + { + XMOVE mm; + mm.length=emmhandle; + mm.sourceH=0; + mm.sourceOff=(long)&ptmp; + mm.destH=emmhandle; + mm.destOff=0; + //halp! + ist = move_emem(&mm); + printf("%d\n", coretotalEMS()); + if(!ist){ dealloc_emem(emmhandle); exit(5); } + //printf("%d\n", emmhandle); + } */ /* save the palette */ pal = modexNewPal(); @@ -495,7 +496,7 @@ void main() { modexFadeOff(4, ptmp.palette); modexPalBlack(); modexLeave(); - setkb(0); + setkb(0); //system("mem /E /P"); printf("Project 16 scroll.exe\n"); printf("tx: %d\n", bg->tx); @@ -512,18 +513,18 @@ void main() { printf("player.d: %d\n", player.d); 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"); - //xmsfree(&map); - //xmsfree(bg); - //xmsfree(spri); - //xmsfree(mask); - //xmsreport(); - if(isEMS()) - { - printf("%d\n", get_emem()); - printf("%d\n", coretotalEMS()); - dealloc_emem(emmhandle); - printf("%d\n", coretotalEMS()); + printf("\n"); + //xmsfree(&map); + //xmsfree(bg); + //xmsfree(spri); + //xmsfree(mask); + //xmsreport(); + if(isEMS()) + { + printf("%d\n", get_emem()); + printf("%d\n", coretotalEMS()); + dealloc_emem(emmhandle); + printf("%d\n", coretotalEMS()); } switch(detectcpu()) { @@ -544,21 +545,21 @@ allocMap(int w, int h) { result.width =w; result.height=h; - result.data = malloc(sizeof(byte) * w * h); + result.data = malloc(sizeof(byte) * w * h); //result.data = (byte *)alloc_emem(((int)sizeof(byte) * w * h)/1024); - /*if(isEMS() || checkEMS()) - { - XMOVE mm; - //emmhandle = mallocEMS(coretotalEMS());//alloc_emem((int)sizeof(map)) - mm.length=sizeof(result); - mm.sourceH=0; - mm.sourceOff=ptr2long(&result); - mm.destH=emmhandle; - mm.destOff=0; - ist = move_emem(&mm); - if(!ist){ dealloc_emem(emmhandle); exit(5); } - printf("%d\n", coretotalEMS()); - }*/ + /*if(isEMS() || checkEMS()) + { + XMOVE mm; + //emmhandle = mallocEMS(coretotalEMS());//alloc_emem((int)sizeof(map)) + mm.length=sizeof(result); + mm.sourceH=0; + mm.sourceOff=ptr2long(&result); + mm.destH=emmhandle; + mm.destOff=0; + ist = move_emem(&mm); + if(!ist){ dealloc_emem(emmhandle); exit(5); } + printf("%d\n", coretotalEMS()); + }*/ return result; } @@ -571,19 +572,19 @@ initMap(map_t *map) { int tile = 1; //if(!isEMS() || !checkEMS()) map->tiles = malloc(sizeof(tiles_t)); - //else + //else // map->tiles = (tiles_t *)alloc_emem(sizeof(tiles_t)); /* create the tile set */ //if(!isEMS() || !checkEMS()) map->tiles->data = malloc(sizeof(bitmap_t)); - //else + //else // map->tiles->data = (bitmap_t *)alloc_emem(sizeof(bitmap_t)); map->tiles->data->width = (TILEWH*2); map->tiles->data->height= TILEWH; //if(!isEMS() || !checkEMS()) map->tiles->data->data = malloc((TILEWH*2)*TILEWH); - //else + //else // map->tiles->data->data = (byte *)alloc_emem((TILEWH*2)*TILEWH); map->tiles->tileHeight = TILEWH; map->tiles->tileWidth =TILEWH; @@ -737,6 +738,7 @@ mapDrawTile(tiles_t *t, word i, page_t *page, word x, word y) { word ry; rx = (i % t->cols) * t->tileWidth; ry = (i / t->cols) * t->tileHeight; + //mxPutTile(t->data, x, y, t->tileWidth, t->tileHeight); modexDrawBmpRegion(page, x, y, rx, ry, t->tileWidth, t->tileHeight, t->data); } -- 2.39.2