]> 4ch.mooo.com Git - 16.git/blobdiff - src/lib/modex16.c
repo sync ^^
[16.git] / src / lib / modex16.c
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