/* Project 16 Source Code~
- * Copyright (C) 2012-2015 sparky4 & pngwen & andrius4669
+ * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123
*
* This file is part of Project 16.
*
{
modexCopyPageRegion(pip[1].page, pip[0].page, player[pn].x-4, player[pn].y-TILEWH, player[pn].x-4, player[pn].y-TILEWH, 24, 32);
#ifdef SPRITE
- modexDrawSpritePBufRegion(pip[1].page, player[pn].x-4, player[pn].y-TILEWH, 24, 32, 24, 32, &player[pn].data);
+ PBUFSFUN(pip[1].page, player[pn].x-4, player[pn].y-TILEWH, 24, 32, 24, 32, PLAYERBMPDATA);
#else
modexClearRegion(pip[1].page, player[pn].x-4, player[pn].y-TILEWH, 24, 32, 14);
#endif
{
modexCopyPageRegion(pip[1].page, pip[0].page, player[pn].x-4, player[pn].y-TILEWH, player[pn].x-4, player[pn].y-TILEWH, 24, 32);
#ifdef SPRITE
- modexDrawSpritePBufRegion(pip[1].page, player[pn].x-4, player[pn].y-TILEWH, 24, 96, 24, 32, &player[pn].data);
+ PBUFSFUN(pip[1].page, player[pn].x-4, player[pn].y-TILEWH, 24, 96, 24, 32, PLAYERBMPDATA);
#else
modexClearRegion(pip[1].page, player[pn].x-4, player[pn].y-TILEWH, 24, 32, 10);
#endif
{
modexCopyPageRegion(pip[1].page, pip[0].page, player[pn].x-4, player[pn].y-TILEWH, player[pn].x-4, player[pn].y-TILEWH, 24, 32);
#ifdef SPRITE
- modexDrawSpritePBufRegion(pip[1].page, player[pn].x-4, player[pn].y-TILEWH, 24, 64, 24, 32, &player[pn].data);
+ PBUFSFUN(pip[1].page, player[pn].x-4, player[pn].y-TILEWH, 24, 64, 24, 32, PLAYERBMPDATA);
#else
modexClearRegion(pip[1].page, player[pn].x-4, player[pn].y-TILEWH, 24, 32, 9);
#endif
{
modexCopyPageRegion(pip[1].page, pip[0].page, player[pn].x-4, player[pn].y-TILEWH, player[pn].x-4, player[pn].y-TILEWH, 24, 32);
#ifdef SPRITE
- modexDrawSpritePBufRegion(pip[1].page, player[pn].x-4, player[pn].y-TILEWH, 24, 0, 24, 32, &player[pn].data);
+ PBUFSFUN(pip[1].page, player[pn].x-4, player[pn].y-TILEWH, 24, 0, 24, 32, PLAYERBMPDATA);
#else
modexClearRegion(pip[1].page, player[pn].x-4, player[pn].y-TILEWH, 24, 32, 12);
#endif
}
else
{
- rx = (((i-1) % ((t->btdata->width)/t->tileWidth)) * t->tileWidth);
- ry = (((i-1) / ((t->btdata->height)/t->tileHeight)) * t->tileHeight);
+ rx = (((i-1) % ((t->data->width)/t->tileWidth)) * t->tileWidth);
+ ry = (((i-1) / ((t->data->height)/t->tileHeight)) * t->tileHeight);
////0000printf("i=%d\n", i);
switch(t->debug_text)
{
case 0:
#ifndef TILERENDER
- modexClearRegion(page, x, y, t->tileWidth, t->tileHeight, ((t->debug_data[i])+1)*2);
+ modexClearRegion(page, x, y, t->tileWidth, t->tileHeight, ((t->debug_data[i])+1));
//cannot print number value du to it being slow as bakapee
#else
- //0000modexDrawBmpPBufRegion(page, x, y, rx, ry, t->tileWidth, t->tileHeight, (t->data));
- modexDrawBmpRegion(page, x, y, rx, ry, t->tileWidth, t->tileHeight, (t->btdata));
+ PBUFBFUN (page, x, y, rx, ry, t->tileWidth, t->tileHeight, (t->data));
+ /* then the sprite. note modding ram ptr means we just draw to (x&3,0) */
+ //draw_vrl1_vgax_modex(x-rx,y-ry,vrl_header,vrl_lineoffs,buffer+sizeof(*vrl_header),bufsz-sizeof(*vrl_header));
+ //modexDrawBmpRegion (page, x, y, rx, ry, t->tileWidth, t->tileHeight, (t->data));
#endif
break;
case 1:
- modexClearRegion(page, x, y, t->tileWidth, t->tileHeight, (t->debug_data[i])+1);
+ modexClearRegion(page, x, y, t->tileWidth, t->tileHeight, (t->debug_data[i]+1));
//modexprintbig(page, x, y, 1, 15, 0, (t->debug_data));
/*for(texty=0; texty<2; texty++)
{
//setkb(0);
}*/
+unsigned char shinku_fps_indicator_page = 0;
+
/* sync */
-void shinku(map_view_t *pip, global_game_variables_t *gv)
+void shinku(global_game_variables_t *gv)
{
- //float t;
//modexCopyPageRegion(pip[1].page, pip[2].page, 16, 16, 16, 16, (14*8)+4, 8+4);
if(elapsed_timer(gv) >= (1.0 / gv->kurokku.frames_per_second))
{
- word x = (16);
- word y = (8+16);
- word col = 15;
+ word x = (16) + gv->video.page[shinku_fps_indicator_page].dx; // follow the screen
+ word y = (16) + gv->video.page[shinku_fps_indicator_page].dy; // follow the screen
+ word col = 7;
word bgcol = 0;
- word type = 1;
+ word type = 0;
+
//t=(((*(gv->clock))-gv->clock_start) /18.2);
sprintf(gv->pee, "%f fps", (double)gv->kurokku.tiku/ticktock(gv));
- modexprint(pip[1].page, 16, 16, 1, 15, 0, gv->pee);
+// printf("%s\n", gv->pee);
+ //FIXME PLEASE!!
+ modexprint(&(gv->video.page[shinku_fps_indicator_page]), x, y, type, col, bgcol, gv->pee);
+//++++ modexprint(&(gv->video.page[0]), x, y, type, col, bgcol, gv->pee);
//(gv->clock_start)=*(gv->clock);
gv->kurokku.tiku=0;
}
case 1:
//turn this off if XT
modexWaitBorder();
+ //vga_wait_for_vsync();
gv->kurokku.frames_per_second=60;
break;
}
}
-void near animatePlayer(map_view_t *pip, player_t *player, word playnum, sword scrollswitch)
+void near animatePlayer(map_view_t *pip, player_t *player, word pn, sword scrollswitch)
{
- sword x = player[playnum].x;
- sword y = player[playnum].y;
+ sword x = player[pn].x;
+ sword y = player[pn].y;
#ifdef SPRITE
word dire=32; //direction
#else
word dire=8; //direction
#endif
sword qq; //scroll offset
- word ls = player[playnum].persist_aniframe;
+ word ls = player[pn].persist_aniframe;
if(scrollswitch==0) qq = 0;
- else qq = ((player[playnum].q)*(player[playnum].speed));
+ else qq = ((player[pn].q)*(player[pn].speed));
x-=4;
y-=TILEWH;
- switch (player[playnum].d)
+ switch (player[pn].d)
{
case 0:
//up
- dire*=player[playnum].d;
+ dire*=player[pn].d;
y-=qq;
break;
case 3:
// right
- dire*=(player[playnum].d-2);
+ dire*=(player[pn].d-2);
x+=qq;
break;
case 2:
break;
case 4:
//down
- dire*=(player[playnum].d-2);
+ dire*=(player[pn].d-2);
y+=qq;
break;
case 1:
//left
- dire*=(player[playnum].d+2);
+ dire*=(player[pn].d+2);
x-=qq;
break;
}
#ifdef SPRITE
-#define FRAME1 modexDrawSpritePBufRegion(pip[1].page, x, y, 48, dire, 24, 32, &player[playnum].data);
-#define FRAME2 modexDrawSpritePBufRegion(pip[1].page, x, y, 24, dire, 24, 32, &player[playnum].data);
-#define FRAME3 modexDrawSpritePBufRegion(pip[1].page, x, y, 0, dire, 24, 32, &player[playnum].data);
-#define FRAME4 modexDrawSpritePBufRegion(pip[1].page, x, y, 24, dire, 24, 32, &player[playnum].data);
+// #define FRAME1 PBUFSFUN(pip[1].page, x, y, 48, dire, 24, 32, PLAYERBMPDATA);
+// #define FRAME2 PBUFSFUN(pip[1].page, x, y, 24, dire, 24, 32, PLAYERBMPDATA);
+// #define FRAME3 PBUFSFUN(pip[1].page, x, y, 0, dire, 24, 32, PLAYERBMPDATA);
+// #define FRAME4 PBUFSFUN(pip[1].page, x, y, 24, dire, 24, 32, PLAYERBMPDATA);
+#define FRAME1 PBUFSFUN(pip[1].page, x, y, 48, dire, 24, 32, PLAYERBMPDATA);
+#define FRAME2 PBUFSFUN(pip[1].page, x, y, 24, dire, 24, 32, PLAYERBMPDATA);
+#define FRAME3 PBUFSFUN(pip[1].page, x, y, 0, dire, 24, 32, PLAYERBMPDATA);
+#define FRAME4 PBUFSFUN(pip[1].page, x, y, 24, dire, 24, 32, PLAYERBMPDATA);
#else
#define FRAME1 modexClearRegion(pip[1].page, x, y, 24, 32, 2+dire);
#define FRAME2 modexClearRegion(pip[1].page, x, y, 24, 32, 1+dire);