]> 4ch.mooo.com Git - 16.git/commitdiff
repo sync ^^
authorsparky4 <sparky4@cock.li>
Fri, 22 Apr 2016 15:14:26 +0000 (10:14 -0500)
committersparky4 <sparky4@cock.li>
Fri, 22 Apr 2016 15:14:26 +0000 (10:14 -0500)
src/.scroll.c.kate-swp [new file with mode: 0755]
src/lib/modex16.c
src/lib/modex16.h
src/lib/typdefst.h
src/scroll.c

diff --git a/src/.scroll.c.kate-swp b/src/.scroll.c.kate-swp
new file mode 100755 (executable)
index 0000000..d25cd71
Binary files /dev/null and b/src/.scroll.c.kate-swp differ
index 5db7bf481849910a90551b4725f801c7600daa38..19cf024eca53170cd294e63bc6fe8f1a12409544 100755 (executable)
@@ -153,12 +153,11 @@ void modexEnter(sword vq, boolean cmem, global_game_variables_t *gv)
        //TODO MAKE FLEXIBLE~\r
        gv->video.page[0].tilemidposscreenx = gv->video.page[0].tilesw;\r
        gv->video.page[0].tilemidposscreeny = (gv->video.page[0].tilesh/2)+1;\r
-       #define PAGE_SIZE               (word)(gv->video.page[0].sw/4 * gv->video.page[0].sh)\r
 }\r
 \r
 void\r
 modexLeave() {\r
-       /* TODO restore original mode and palette */\r
+       /* VGAmodeX restores original mode and palette */\r
        vgaSetMode(TEXT_MODE);\r
 }\r
 \r
@@ -181,7 +180,7 @@ modexDefaultPage(page_t *p)
        page.tilemidposscreeny = (page.th/2)+1;\r
        page.tilesw=p->tilesw;\r
        page.tilesh=p->tilesh;\r
-       //pageSize = p->sw*p->sh;\r
+       page.pagesize = page.width*page.height;\r
        page.id = 0;\r
 \r
     return page;\r
@@ -202,9 +201,9 @@ modexNextPage(page_t *p) {
        result.tw = p->width/TILEWH;\r
        result.th = p->height/TILEWH;\r
        result.id = p->id+1;\r
+       result.pagesize = p->pagesize;\r
 \r
        return result;\r
-//     return modexNextPageFlexibleSize(&p, p->width, p->height);\r
 }\r
 \r
 //next page with defined dimentions~\r
@@ -221,11 +220,32 @@ modexNextPageFlexibleSize(page_t *p, word x, word y)
        result.tw = p->width/TILEWH;\r
        result.th = p->height/TILEWH;\r
        result.id = p->id+1;\r
+       result.pagesize = result.width*result.height;\r
 \r
        return result;\r
 }\r
 \r
+void modexCalcVmemRemain(video_t *video)\r
+{\r
+       byte i;\r
+       video->vmem_remain=262144;\r
+       for(i=0; i<=video->num_of_pages; i++)\r
+       {\r
+               video->vmem_remain-=video->page[i].pagesize;\r
+       }\r
+}\r
 \r
+void modexHiganbanaPageSetup(video_t *video)\r
+{\r
+       (video->page[0]) = modexDefaultPage(&(video->page[0])); video->num_of_pages++;\r
+       video->page[0].width += (TILEWH*2); video->page[0].height += (TILEWH*2);\r
+       (video->page[1]) = modexNextPage(&(video->page[0]));    video->num_of_pages++;\r
+       modexCalcVmemRemain(video);\r
+       (video->page[2]) = modexNextPageFlexibleSize(&(video->page[1]), video->page[0].sw, video->page[0].sh);  //(352*176)+1024 is the remaining amount of memory left wwww\r
+       video->num_of_pages++;\r
+       modexCalcVmemRemain(video);\r
+       //gvar.video.page[2] = modexNextPage0(mv2.page, 320, 192);      //(352*176)+1024 is the remaining amount of memory left wwww\r
+}\r
 void\r
 modexShowPage(page_t *page) {\r
     word high_address;\r
index 98551f485f65b924ec5b0748e9ab0be71b5deb46..ae9ae3ede4cdff272a89d407934b7db5b71c6f2a 100755 (executable)
@@ -118,6 +118,8 @@ void modexsetBaseXMode();
 page_t modexDefaultPage(page_t *p);
 page_t modexNextPage(page_t *p);
 page_t modexNextPageFlexibleSize(page_t *p, word x, word y);
+void modexCalcVmemRemain(video_t *video);
+void modexHiganbanaPageSetup(video_t *video);
 void modexShowPage(page_t *page);
 void modexPanPage(page_t *page, int dx, int dy);
 void modexSelectPlane(byte plane);
index 772f30660bf4f0eb04a4b3598c05980ef47f2cea..25a49196084ffd7bd6e92b304dfe47e8c6a9a8cd 100755 (executable)
@@ -80,6 +80,7 @@ typedef struct {
        sword tilemidposscreeny;        /* middle tile position */\r
        sword tileplayerposscreenx;     /* player position on screen */\r
        sword tileplayerposscreeny;     /* player position on screen */\r
+       iword pagesize;                 /* page size */\r
 } page_t;\r
 \r
 typedef struct\r
@@ -101,8 +102,10 @@ typedef struct
 \r
 typedef struct\r
 {\r
-       long old_mode;  //old video mode before game!\r
-       page_t page[4]; //pointer to root page[0]\r
+       char old_mode;          //old video mode before game!\r
+       page_t page[4];         //pointer to root page[0]\r
+       dword   vmem_remain;    //remaining video memory\r
+       byte num_of_pages;      //number of actual pages\r
 } video_t;\r
 \r
 typedef struct\r
index 491610d3bdd6b330a8e323640bf621e801d590ed..f58490f9988ad3ee79f46638329c8b2227ff18f5 100755 (executable)
@@ -163,15 +163,9 @@ void main(int argc, char *argv[])
 #endif
 
        /* setup camera and screen~ */
-       gvar.video.page[0] = modexDefaultPage(&gvar.video.page[0]);
-       gvar.video.page[0].width += (TILEWH*2);
-       gvar.video.page[0].height += (TILEWH*2);
+       modexHiganbanaPageSetup(&gvar.video);
        mv[0].page = &gvar.video.page[0];
-       gvar.video.page[1] = modexNextPage(mv[0].page);
        mv[1].page = &gvar.video.page[1];
-
-       gvar.video.page[2] = modexNextPageFlexibleSize(mv[1].page, gvar.video.page[0].sw, gvar.video.page[0].sh);       //(352*176)+1024 is the remaining amount of memory left wwww
-       //gvar.video.page[2] = modexNextPage0(mv2.page, 320, 192);      //(352*176)+1024 is the remaining amount of memory left wwww
        mv[2].page = &gvar.video.page[2];
 
        /* set up paging */