- {
- IN_ReadControl(0,&player);
- //top left corner & bottem right corner of map veiw be set as map edge trigger since maps are actually square
- //to stop scrolling and have the player position data move to the edge of the screen with respect to the direction
- //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
-
- //player movement
- //if(!panswitch){
- walk(mv, player, 0);
- /*}else{
-//88 switch!
- //right movement
- if((IN_KeyDown(77) && !IN_KeyDown(75) && pand == 0) || pand == 2)
- {
- if(pand == 0){ pand = 2; }
- if(panq<=(TILEWH/(player[0].speed)))
- {
- switch(panpagenum)
- {
- case 0:
- //bg
- bg->page->dx++;
- modexShowPage(bg->page);
- break;
- case 1:
- //spri
- spri->page->dx++;
- modexShowPage(spri->page);
- break;
- case 2:
- //fg
- mask->page->dx++;
- modexShowPage(mask->page);
- break;
- }
- panq++;
- } else { panq = 1; pand = 0; }
- }
- //left movement
- if((IN_KeyDown(75) && !IN_KeyDown(77) && pand == 0) || pand == 4)
- {
- if(pand == 0){ pand = 4; }
- if(panq<=(TILEWH/(player[0].speed)))
- {
- switch(panpagenum)
- {
- case 0:
- //bg
- bg->page->dx--;
- modexShowPage(bg->page);
- break;
- case 1:
- //spri
- spri->page->dx--;
- modexShowPage(spri->page);
- break;
- case 2:
- //fg
- mask->page->dx--;
- modexShowPage(mask->page);
- break;
- }
- panq++;
- } else { panq = 1; pand = 0; }
- }
- //down movement
- if((IN_KeyDown(72) && !IN_KeyDown(80) && pand == 0) || pand == 3)
- {
- if(pand == 0){ pand = 3; }
- if(panq<=(TILEWH/(player[0].speed)))
- {
- switch(panpagenum)
- {
- case 0:
- //bg
- bg->page->dy--;
- modexShowPage(bg->page);
- break;
- case 1:
- //spri
- spri->page->dy--;
- modexShowPage(spri->page);
- break;
- case 2:
- //fg
- mask->page->dy--;
- modexShowPage(mask->page);
- break;
- }
- panq++;
- } else { panq = 1; pand = 0; }
- }
- //up movement
- if((IN_KeyDown(80) && !IN_KeyDown(72) && pand == 0) || pand == 1)
- {
- if(pand == 0){ pand = 1; }
- if(panq<=(TILEWH/(player[0].speed)))
- {
- switch(panpagenum)
- {
- case 0:
- //bg
- bg->page->dy++;
- modexShowPage(bg->page);
- break;
- case 1:
- //spri
- spri->page->dy++;
- modexShowPage(spri->page);
- break;
- case 2:
- //fg
- mask->page->dy++;
- modexShowPage(mask->page);
- break;
- }
- panq++;
- } else { panq = 1; pand = 0; }
- }
-}*/
-
-
- //the scripting stuf....
-
- //if(((player[0].triggerx == TRIGGX && player[0].triggery == TRIGGY) && IN_KeyDown(0x1C))||(player[0].tx == 5 && player[0].ty == 5))
- if(((bg->map->data[(player[0].triggerx-1)+(map.width*(player[0].triggery-1))] == 0) && IN_KeyDown(0x1C))||(player[0].tx == 5 && player[0].ty == 5))
- {
- short i;
- for(i=800; i>=400; i--)
- {
- sound(i);
- }
- nosound();
- }
- 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--; }
- //debugging binds!
- //if(IN_KeyDown(0x0E)) while(1){ if(xmsmalloc(24)) break; }
- if(IN_KeyDown(2)){ modexShowPage(bg->page); panpagenum=0; }
- if(IN_KeyDown(3)){ modexShowPage(spri->page); panpagenum=1; }
- if(IN_KeyDown(4)){ modexShowPage(mask->page); panpagenum=2; }
- if(IN_KeyDown(25)){ pdump(bg->page); pdump(spri->page); } //p
- if(IN_KeyDown(24)){ modexPalUpdate0(gpal); paloffset=0; pdump(bg->page); pdump(spri->page); }
- if(IN_KeyDown(22)){
- paloffset=0; modexPalBlack(); modexPalUpdate(&player[0].data, &paloffset, 0, 0);
- printf("1paloffset = %d\n", paloffset/3);
- modexPalUpdate(map.tiles->data, &paloffset, 0, 0);
- printf("2paloffset = %d\n", paloffset/3);
- pdump(bg->page); pdump(spri->page); }
- //pan switch
- //if(IN_KeyDown(88)){if(!panswitch) panswitch++; else panswitch--; } //f12
- //TSR
- if(IN_KeyDown(87)) //f11
- {
- VGAmodeX(0);
- IN_Shutdown();
- __asm
- {
- mov ah,31h
- int 21h
- }
- }
-
- if((player[0].q==1) && !(player[0].x%TILEWH==0 && player[0].y%TILEWH==0)) break; //incase things go out of sync!
-
- }
-
- /* fade back to text mode */
- /* but 1st lets save the game palette~ */
- modexPalSave(gpal);
- modexSavePalFile("data/g.pal", gpal);
- modexFadeOff(4, gpal);
- VGAmodeX(0);
- IN_Shutdown();
- printf("Project 16 scroll.exe\n");
- printf("tx: %d\n", bg->tx);
- printf("ty: %d\n", bg->ty);
- printf("player[0].x: %d", player[0].x); printf(" player[0].y: %d\n", player[0].y);
- //if(player[0].hp==0) printf("%d wwww\n", player[0].y+8);
- //else printf("\nplayer[0].y: %d\n", player[0].y);
- printf("player[0].tx: %d", player[0].tx); printf(" player[0].ty: %d\n", player[0].ty);
- printf("player[0].triggx: %d", player[0].triggerx); printf(" player[0].triggy: %d\n", player[0].triggery);
- printf("player[0].hp: %d", (player[0].hp)); printf(" player[0].q: %d", player[0].q); printf(" player[0].info.dir: %d\n", player[0].info.dir);
- printf("tile data value at player trigger position: %d\n", bg->map->data[(player[0].triggerx-1)+(map.width*(player[0].triggery-1))]);
- printf("palette offset: %d\n", paloffset/3);
-//++++ printf("Total used: %zu\n", oldfreemem-GetFreeSize());
-//++++ printf("Total free: %zu\n", GetFreeSize());
- 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("Screen: %dx", screen.width); printf("%d\n", screen.height);
- printf("Screen2: %dx", screen2.width); printf("%d\n", screen2.height);
- printf("map: %dx%d\n", map.width, map.height);
- //printf("map.width=%d map.height=%d map.data[0]=%d\n", bg->map->width, bg->map->height, bg->map->data[0]);
- //xmsfree(&map);
- //xmsfree(bg);
- //xmsfree(spri);
- //xmsfree(mask);
- //xmsreport();
- //emmclose(emmhandle);
- switch(detectcpu())
- {
- case 0: cpus = "8086/8088 or 186/88"; break;
- case 1: cpus = "286"; break;
- case 2: cpus = "386 or newer"; break;
- default: cpus = "internal error"; break;
- }
- printf("detected CPU type: %s\n", cpus);
- modexFadeOn(4, dpal);
-}
+ {\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
+\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
+ }\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
+ {\r
+ short i;\r
+ for(i=800; i>=400; i--)\r
+ {\r
+ sound(i);\r
+ }\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
+ //debugging binds!\r
+#ifdef MODEX\r
+#ifdef FADE\r
+ if(IN_KeyDown(24)){ modexPalUpdate0(gpal); paloffset=0; modexpdump(mv[0].page); modexpdump(mv[1].page); IN_UserInput(1,1); } //p\r
+ /*if(IN_KeyDown(22)){\r
+ paloffset=0; modexPalBlack(); modexPalUpdate(PCXBMPVAR, &paloffset, 0, 0);\r
+ printf("1paloffset = %d\n", paloffset/3);\r
+ modexPalUpdate(map.tiles->data, &paloffset, 0, 0);\r
+ printf("2paloffset = %d\n", paloffset/3);\r
+ modexpdump(mv[0].page); modexpdump(mv[1].page);\r
+ IN_UserInput(1,1);\r
+ }*/\r
+#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
+ {\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
+ modexClearRegion(mv[3].page, 0, 0, mv[3].page->width, mv[3].page->height, 4);\r
+ 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
+ //9\r
+#ifdef FADE\r
+ if(IN_KeyDown(10)){ modexPalOverscan(rand()%56); modexPalUpdate1(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
+ }\r
+\r
+ /* fade back to text mode */\r
+ /* but 1st lets save the game palette~ */\r
+#ifdef MODEX\r
+#ifdef FADE\r
+ modexPalSave(gpal);\r
+ modexSavePalFile("data/g.pal", gpal);\r
+ modexFadeOff(4, gpal);\r
+#endif\r
+ VGAmodeX(0, 1, &gvar);\r
+#endif\r
+ Shutdown16(&gvar);\r
+ printf("\nProject 16 scroll.exe. This is just a test file!\n");\r
+ printf("version %s\n", VERSION);\r
+ SCROLLEXITMESG;\r
+ WCPU_cpufpumesg();\r
+#ifdef MODEX\r
+#ifdef FADE\r
+ modexFadeOn(4, dpal);\r
+#endif\r
+#endif\r
+}\r