- if(player.d == 0){ player.d = 3; }\r
- if(bg->ty >= 0 && bg->ty+15 < MAPY && player.ty == bg->ty + 8 && !(player.tx == TRIGGX && player.ty+1 == TRIGGY))\r
- {\r
- if(player.q<=(TILEWH/SPEED))\r
- {\r
- INC_PER_FRAME;\r
- //animatePlayer(bg, spri, mask, 2, 1, player.x, player.y, persist_aniframe, q, &ptmp);\r
- animatePlayer(bg, spri, player.d-1, 1, player.x, player.y, persist_aniframe, player.q, &ptmp);\r
- mapScrollDown(bg, SPEED);\r
- mapScrollDown(spri, SPEED);\r
- //mapScrollDown(mask, SPEED);\r
- modexShowPage(spri->page);\r
- player.q++;\r
- } else { player.q = 1; player.d = 0; player.ty++; }\r
- }\r
- else if(player.ty < MAPY && !(player.tx == TRIGGX && player.ty+1 == TRIGGY))\r
- {\r
- if(player.q<=(TILEWH/SPEED))\r
- {\r
- INC_PER_FRAME;\r
- player.y+=SPEED;\r
- //animatePlayer(bg, spri, mask, 2, 0, player.x, player.y, persist_aniframe, q, &ptmp);\r
- animatePlayer(bg, spri, player.d-1, 0, player.x, player.y, persist_aniframe, player.q, &ptmp);\r
- modexShowPage(spri->page);\r
- player.q++;\r
- } else { player.q = 1; player.d = 0; player.ty++; }\r
- }\r
- else\r
- {\r
- modexCopyPageRegion(spri->page, bg->page, player.x-4, player.y-TILEWH, player.x-4, player.y-TILEWH, 24, 32);\r
- modexDrawSpriteRegion(spri->page, player.x-4, player.y-TILEWH, 24, 64, 24, 32, &ptmp);\r
- modexShowPage(spri->page);\r
- player.d = 0;\r
- }\r
- player.triggerx = player.tx;\r
- player.triggery = player.ty+1;\r
- }\r
-
- //up movement\r
- if((keyp(72) && !keyp(80) && player.d == 0) || player.d == 1)\r
+ if(player.d == 0){ player.d = 3; }
+ if(bg->ty >= 0 && bg->ty+15 < map.height && player.ty == bg->ty + 8 &&
+ !(bg->map->data[(player.tx-1)+(map.width*(player.ty))] == 0))//!(player.tx == TRIGGX && player.ty+1 == TRIGGY)) //collision detection!
+ {
+ if(player.q<=(TILEWH/SPEED))
+ {
+ INC_PER_FRAME;
+ //animatePlayer(bg, spri, mask, 2, 1, player.x, player.y, persist_aniframe, q, &ptmp);
+ animatePlayer(bg, spri, player.d-1, 1, player.x, player.y, persist_aniframe, player.q, &ptmp);
+ mapScrollDown(bg, SPEED);
+ mapScrollDown(spri, SPEED);
+ //mapScrollDown(mask, SPEED);
+ modexShowPage(spri->page);
+ player.q++;
+ } else { player.q = 1; player.d = 0; player.ty++; }
+ }
+ else if(player.ty < map.height && !(bg->map->data[(player.tx-1)+(map.width*(player.ty))] == 0))//!(player.tx == TRIGGX && player.ty+1 == TRIGGY))
+ {
+ if(player.q<=(TILEWH/SPEED))
+ {
+ INC_PER_FRAME;
+ player.y+=SPEED;
+ //animatePlayer(bg, spri, mask, 2, 0, player.x, player.y, persist_aniframe, q, &ptmp);
+ animatePlayer(bg, spri, player.d-1, 0, player.x, player.y, persist_aniframe, player.q, &ptmp);
+ modexShowPage(spri->page);
+ player.q++;
+ } else { player.q = 1; player.d = 0; player.ty++; }
+ }
+ else
+ {
+ modexCopyPageRegion(spri->page, bg->page, player.x-4, player.y-TILEWH, player.x-4, player.y-TILEWH, 24, 32);
+ modexDrawSpriteRegion(spri->page, player.x-4, player.y-TILEWH, 24, 64, 24, 32, &ptmp);
+ modexShowPage(spri->page);
+ player.d = 0;
+ }
+ player.triggerx = player.tx;
+ player.triggery = player.ty+1;
+ }
+
+ //up movement
+ if((keyp(72) && !keyp(80) && player.d == 0) || player.d == 1)
+ {
+ if(player.d == 0){ player.d = 1; }
+ if(bg->ty > 0 && bg->ty+15 <= map.height && player.ty == bg->ty + 8 &&
+ !(bg->map->data[(player.tx-1)+(map.width*(player.ty-2))] == 0))//!(player.tx == TRIGGX && player.ty-1 == TRIGGY)) //collision detection!
+ {
+ if(player.q<=(TILEWH/SPEED))
+ {
+ INC_PER_FRAME;
+ //animatePlayer(bg, spri, mask, 0, 1, player.x, player.y, persist_aniframe, q, &ptmp);
+ animatePlayer(bg, spri, player.d-1, 1, player.x, player.y, persist_aniframe, player.q, &ptmp);
+ mapScrollUp(bg, SPEED);
+ mapScrollUp(spri, SPEED);
+ //mapScrollUp(mask, SPEED);
+ modexShowPage(spri->page);
+ player.q++;
+ } else { player.q = 1; player.d = 0; player.ty--; }
+ }
+ else if(player.ty > 1 && !(bg->map->data[(player.tx-1)+(map.width*(player.ty-2))] == 0))//!(player.tx == TRIGGX && player.ty-1 == TRIGGY))
+ {
+ if(player.q<=(TILEWH/SPEED))
+ {
+ INC_PER_FRAME;
+ player.y-=SPEED;
+ //animatePlayer(bg, spri, mask, 0, 0, player.x, player.y, persist_aniframe, q, &ptmp);
+ modexShowPage(spri->page);
+ animatePlayer(bg, spri, player.d-1, 0, player.x, player.y, persist_aniframe, player.q, &ptmp);
+ player.q++;
+ } else { player.q = 1; player.d = 0; player.ty--; }
+ }
+ else
+ {
+ modexCopyPageRegion(spri->page, bg->page, player.x-4, player.y-TILEWH, player.x-4, player.y-TILEWH, 24, 32);
+ modexDrawSpriteRegion(spri->page, player.x-4, player.y-TILEWH, 24, 0, 24, 32, &ptmp);
+ modexShowPage(spri->page);
+ player.d = 0;
+ }
+ player.triggerx = player.tx;
+ player.triggery = player.ty-1;
+ }
+}else{
+//88 switch!
+ //right movement
+ if((keyp(77) && !keyp(75) && pand == 0) || pand == 2)
+ {
+ if(pand == 0){ pand = 2; }
+ if(panq<=(TILEWH/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((keyp(75) && !keyp(77) && pand == 0) || pand == 4)
+ {
+ if(pand == 0){ pand = 4; }
+ if(panq<=(TILEWH/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((keyp(72) && !keyp(80) && pand == 0) || pand == 3)
+ {
+ if(pand == 0){ pand = 3; }
+ if(panq<=(TILEWH/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((keyp(80) && !keyp(72) && pand == 0) || pand == 1)
+ {
+ if(pand == 0){ pand = 1; }
+ if(panq<=(TILEWH/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.triggerx == TRIGGX && player.triggery == TRIGGY) && keyp(0x1C))||(player.tx == 5 && player.ty == 5))
+ if(((bg->map->data[(player.triggerx-1)+(map.width*(player.triggery-1))] == 0) && keyp(0x1C))||(player.tx == 5 && player.ty == 5))