]> 4ch.mooo.com Git - 16.git/blobdiff - src/scroll.c
WWWWWWWWWWWWwwwwwwwwwwWWWWWWWwwwwWWwwWWwwWwwWww
[16.git] / src / scroll.c
index ceb76bcc9f4eb183074ec24ad58c72ea708b9ae2..7c3dd4fe5266f9a193978893db57593bcceb139c 100755 (executable)
@@ -1,5 +1,5 @@
 /* Project 16 Source Code~\r
- * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover\r
+ * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover\r
  *\r
  * This file is part of Project 16.\r
  *\r
@@ -34,6 +34,7 @@ sword bakapee;
 //debugswitches\r
 boolean panswitch=0;//1\r
 //extern boolean pageflipflop=1;\r
+extern boolean pagenorendermap;\r
 unsigned int i;\r
 //#ifdef FADE\r
        static word paloffset=0;\r
@@ -52,11 +53,9 @@ void main(int argc, char *argv[])
 \r
        Startup16(&gvar);\r
 \r
-       gvar.video.panp=0;\r
-\r
        /* create the map */\r
 //     fprintf(stderr, "testing map load~      ");\r
-       loadmap("data/test.map", &map);\r
+       CA_loadmap("data/test.map", &map, &gvar);\r
        chkmap(&map, 0);\r
 //     printf("chkmap ok       ");\r
 //     fprintf(stderr, "yay map loaded~~\n");\r
@@ -89,9 +88,9 @@ void main(int argc, char *argv[])
 #endif\r
 #endif\r
 //++++ PCXBMPVAR.offset=(paloffset/3);\r
-//++++ modexPalUpdate1(&PCXBMPVAR, &paloffset, 0, 0);\r
-       modexPalUpdate1(&PCXBMP->palette);\r
-//++++0000             modexPalUpdate1(map.tiles->btdata->palette);\r
+//++++ modexPalUpdate(&PCXBMPVAR, &paloffset, 0, 0);\r
+       modexPalUpdate(&PCXBMP->palette);\r
+//++++0000             modexPalUpdate(map.tiles->btdata->palette);\r
        //printf("      %d\n", sizeof(ptmp->data));\r
        //printf("1:    %d\n", paloffset);\r
 //++++ map.tiles->data->offset=(paloffset/3);\r
@@ -112,24 +111,37 @@ void main(int argc, char *argv[])
        modexHiganbanaPageSetup(&gvar.video);\r
        ZC_MVSetup(&mv, &map, &gvar);\r
 \r
+       //renderswitch\r
+       gvar.video.rss=1;\r
 \r
        /* set up paging */\r
        //TODO: LOAD map data and position the map in the middle of the screen if smaller then screen\r
        mapGoTo(&mv, 0, 0);\r
 \r
-       playerXYpos(0, 0, &player, &mv, 0);\r
-       IN_initplayer(&player, 0);\r
+       ZC_playerXYpos(0, 0, &player, &mv, 0, 1);\r
+       EN_initplayer(&player, 0, &gvar.video);\r
+       if (gvar.video.sprifilei == -1)\r
+       {\r
+#ifdef FADE\r
+               modexFadeOff(4, gpal);\r
+#endif\r
+               Quit(&gvar, "Wrong");\r
+#ifdef FADE\r
+               modexFadeOn(4, dpal);\r
+#endif\r
+       }\r
 \r
 #ifndef        SPRITE\r
-       modexClearRegion(mv[0].page, player[0].x, player[0].y-TILEWH, 16, 32, 15);\r
+       modexClearRegion(mv[0].page, player[0].enti.x, player[0].enti.y-TILEWH, 16, 32, 15);\r
 #else\r
-       PBUFSFUN(&gvar.video.page[0], player[0].x, player[0].y-TILEWH, 16, 64, 16, 32,  PCXBMPPTR);\r
+       modexDrawSpriteRegion(&gvar.video.page[0], player[0].enti.x, player[0].enti.y-TILEWH, 16, 64, 16, 32,   PCXBMPPTR);\r
 #endif\r
 \r
-       if(!pageflipflop)       VL_ShowPage(mv[1].page, 0, 0);//modexShowPage(mv[1].page);\r
-       else                    ZC_ShowMV(&mv, 0, 0);//modexShowPage(mv[0].page);//!(gvar.video.p)\r
+       //if(!pageflipflop)\r
+               VL_ShowPage(mv[1].page, 0, 0);//modexShowPage(mv[1].page);\r
+       //else                  ZC_ShowMV(&mv, 0, 0);//modexShowPage(mv[0].page);//!(gvar.video.p)\r
 \r
-       modexDrawBmp(&gvar.video.page[0], 16, 16, PCXBMPPTR);\r
+       //modexDrawBmp(&gvar.video.page[0], 16, 16, PCXBMPPTR);\r
        /* buffer pages */\r
 //     modexClearRegion(mv[2].page, 0, 0, mv[2].page->width, mv[2].page->height, 47);\r
 //     modexClearRegion(mv[3].page, 0, 0, mv[3].page->width, mv[3].page->height, 45);\r
@@ -150,25 +162,25 @@ void main(int argc, char *argv[])
        modexFadeOn(4, gpal);\r
 #endif\r
 #endif\r
-       while(!IN_KeyDown(sc_Escape) && player[0].hp>0)\r
+       while(!IN_KeyDown(sc_Escape) && player[0].enti.hp>0)\r
        {\r
                shinku(&gvar);\r
        //top left corner & bottem right corner of map veiw be set as map edge trigger since maps are actually square\r
        //to stop scrolling and have the player position data move to the edge of the screen with respect to the direction\r
-       //when player[0].tx or player[0].ty == 0 or player[0].tx == 20 or player[0].ty == 15 then stop because that is edge of map and you do not want to walk of the map\r
+       //when player[0].enti.tx or player[0].enti.ty == 0 or player[0].enti.tx == 20 or player[0].enti.ty == 15 then stop because that is edge of map and you do not want to walk of the map\r
 \r
        //player movement\r
                IN_ReadControl(0, &player);\r
        if(!panswitch){\r
                ZC_walk(&mv, &player, 0);\r
        }else{\r
-               PANKEYFUN;//panPageManual(&mv, &player, 0);\r
-               //printf("      player[0].q: %d", player[0].q); printf("        player[0].d: %d\n", player[0].d);\r
+               PANKEYFUNZC;//panPageManual(&mv, &player, 0);\r
+               //printf("      player[0].enti.q: %d", player[0].enti.q);       printf("        player[0].d: %d\n", player[0].d);\r
        }\r
 \r
        //the scripting stuff....\r
-       //if(((player[0].triggerx == TRIGGX && player[0].triggery == TRIGGY) && IN_KeyDown(0x1C))||(player[0].tx == 5 && player[0].ty == 5))\r
-       if(((mv[0].map->data[(player[0].triggerx-1)+(map.width*(player[0].triggery-1))] == 0) && IN_KeyDown(0x1C))||(player[0].tx == 5 && player[0].ty == 5))\r
+       //if(((player[0].enti.triggerx == TRIGGX && player[0].enti.triggery == TRIGGY) && IN_KeyDown(0x1C))||(player[0].enti.tx == 5 && player[0].enti.ty == 5))\r
+       if(((mv[0].map->data[(player[0].enti.triggerx-1)+(map.width*(player[0].enti.triggery-1))] == 0) && IN_KeyDown(0x1C))||(player[0].enti.tx == 5 && player[0].enti.ty == 5))\r
        {\r
                short i;\r
                for(i=800; i>=400; i--)\r
@@ -177,7 +189,7 @@ void main(int argc, char *argv[])
                }\r
                nosound();\r
        }\r
-       if(player[0].q == (TILEWH/(player[0].speed))+1 && player[0].info.dir != 2 && (player[0].triggerx == 5 && player[0].triggery == 5)){ player[0].hp--; }\r
+       if(player[0].enti.q == (TILEWH/(player[0].enti.speed))+1 && player[0].info.dir != 2 && (player[0].enti.triggerx == 5 && player[0].enti.triggery == 5)){ player[0].enti.hp--; }\r
        //debugging binds!\r
 #ifdef MODEX\r
 #ifdef FADE\r
@@ -193,25 +205,7 @@ void main(int argc, char *argv[])
 #endif\r
 #endif\r
        //pan switch\r
-       if(IN_KeyDown(88)){panswitch=!panswitch; IN_UserInput(1,1);}    //f12\r
-       if(IN_KeyDown(87))      //f11\r
-       {\r
-               pageflipflop=!pageflipflop;\r
-               IN_UserInput(1,1);\r
-//             VGAmodeX(0, 0, &gvar);\r
-//             IN_Shutdown();\r
-//             __asm\r
-//             {\r
-//                     mov ah,31h\r
-//                     int 21h\r
-//             }\r
-       }\r
-       if(IN_KeyDown(68))      //f10\r
-       {\r
-               gvar.kurokku.fpscap=!gvar.kurokku.fpscap;\r
-               IN_UserInput(1,1);\r
-       }\r
-       if(IN_KeyDown(67))      //f9\r
+       if(IN_KeyDown(62))      //f3\r
        {\r
                modexClearRegion(mv[1].page, 0, 0, mv[1].page->width, mv[1].page->height, 2);\r
                modexClearRegion(mv[2].page, 0, 0, mv[2].page->width, mv[2].page->height, 3);\r
@@ -219,20 +213,18 @@ void main(int argc, char *argv[])
                modexClearRegion(mv[3].page, 0, 0, 20, 36, 15);\r
                //IN_UserInput(1,1);\r
        }\r
-       if(IN_KeyDown(66))      //f8\r
-       {\r
-//             modexDrawSprite(mv[0].page, 16, 16, &p);\r
-               modexDrawSprite(mv[0].page, 32+72, 16, (PCXBMPVAR));\r
-       }\r
-       FUNCTIONKEYFUNCTIONS;\r
+\r
+       FUNCTIONKEYFUNCTIONS\r
+       FUNCTIONKEYDRAWJUNK\r
+       if(IN_KeyDown(sc_L)){ modexClearRegion(&gvar.video.page[0], player[0].enti.x, player[0].enti.y, 16, 16, 1); }\r
 \r
        //9\r
 #ifdef FADE\r
-               if(IN_KeyDown(10)){ modexPalOverscan(rand()%56); modexPalUpdate1(dpal); IN_UserInput(1,1); }\r
+               if(IN_KeyDown(10)){ modexPalOverscan(rand()%56); modexPalUpdate(dpal); IN_UserInput(1,1); }\r
 #endif\r
                if(IN_KeyDown(sc_R)){ modexPalOverscan(rand()%56); } //r\r
 \r
-       if((player[0].q==1) && !(player[0].x%TILEWH==0 && player[0].y%TILEWH==0)) break;        //incase things go out of sync!\r
+       if((player[0].enti.q==1) && !(player[0].enti.x%TILEWH==0 && player[0].enti.y%TILEWH==0)) break; //incase things go out of sync!\r
        }\r
 \r
        /* fade back to text mode */\r