- //modexClearRegion(bg->page, player.x, player.y, 16, 16, 4); //currently the over scan color!\r
- /*#define INC_PER_FRAME_NPC if(npc0.q&1) persist_aniframe++; if(persist_aniframe>4) persist_aniframe = 1;\r
-\r
- if(npc0.d == 0 && npc0.q == 1) npc0.d =rand()%8;\r
- if(npc0.d>4)\r
- npc0.d=0;\r
-\r
- //right movement\r
- if(npc0.d == 2)\r
- {\r
- if(npc0.tx < map.width && !(npc0.tx+1 == TRIGGX && npc0.ty == TRIGGY) && !(npc0.tx+1 == player.tx && npc0.ty == player.ty))\r
- {\r
- if(npc0.q<=(TILEWH/SPEED))\r
- {\r
- INC_PER_FRAME_NPC;\r
- npc0.x+=SPEED;\r
- //animatePlayer(bg, spri, mask, 1, 0, npc0.x, npc0.y, persist_aniframe, q, &npctmp);\r
- animatePlayer(bg, spri, npc0.d-1, 0, npc0.x, npc0.y, persist_aniframe, npc0.q, &npctmp);\r
- modexShowPage(spri->page);\r
- npc0.q++;\r
- } else { npc0.q = 1; npc0.d = 0; npc0.tx++; }\r
- }\r
- else\r
- {\r
- modexCopyPageRegion(spri->page, bg->page, npc0.x-4, npc0.y-TILEWH, npc0.x-4, npc0.y-TILEWH, 24, 32);\r
- modexDrawSpriteRegion(spri->page, npc0.x-4, npc0.y-TILEWH, 24, 32, 24, 32, &npctmp);\r
- modexShowPage(spri->page);\r
- npc0.d = 0;\r
- }\r
- npc0.triggerx = npc0.tx+1;\r
- npc0.triggery = npc0.ty;\r
- }\r
-\r
- //left movement\r
- if(npc0.d == 4)\r
- {\r
- if(npc0.tx > 1 && !(npc0.tx-1 == TRIGGX && npc0.ty == TRIGGY) && !(npc0.tx-1 == player.tx && npc0.ty == player.ty))\r
- {\r
- if(npc0.q<=(TILEWH/SPEED))\r
- {\r
- INC_PER_FRAME_NPC;\r
- npc0.x-=SPEED;\r
- //animatePlayer(bg, spri, mask, 3, 0, npc0.x, npc0.y, persist_aniframe, q, &npctmp);\r
- animatePlayer(bg, spri, npc0.d-1, 0, npc0.x, npc0.y, persist_aniframe, npc0.q, &npctmp);\r
- modexShowPage(spri->page);\r
- npc0.q++;\r
- } else { npc0.q = 1; npc0.d = 0; npc0.tx--; }\r
- }\r
- else\r
- {\r
- modexCopyPageRegion(spri->page, bg->page, npc0.x-4, npc0.y-TILEWH, npc0.x-4, npc0.y-TILEWH, 24, 32);\r
- modexDrawSpriteRegion(spri->page, npc0.x-4, npc0.y-TILEWH, 24, 96, 24, 32, &npctmp);\r
- modexShowPage(spri->page);\r
- npc0.d = 0;\r
- }\r
- npc0.triggerx = npc0.tx-1;\r
- npc0.triggery = npc0.ty;\r
- }\r
-\r
- //down movement\r
- if(npc0.d == 3)\r
- {\r
- if(npc0.ty < map.height && !(npc0.tx == TRIGGX && npc0.ty+1 == TRIGGY) && !(npc0.tx == player.tx && npc0.ty == player.ty+1))\r
- {\r
- if(npc0.q<=(TILEWH/SPEED))\r
- {\r
- INC_PER_FRAME_NPC;\r
- npc0.y+=SPEED;\r
- //animatePlayer(bg, spri, mask, 2, 0, npc0.x, npc0.y, persist_aniframe, q, &npctmp);\r
- animatePlayer(bg, spri, npc0.d-1, 0, npc0.x, npc0.y, persist_aniframe, npc0.q, &npctmp);\r
- modexShowPage(spri->page);\r
- npc0.q++;\r
- } else { npc0.q = 1; npc0.d = 0; npc0.ty++; }\r
- }\r
- else\r
- {\r
- modexCopyPageRegion(spri->page, bg->page, npc0.x-4, npc0.y-TILEWH, npc0.x-4, npc0.y-TILEWH, 24, 32);\r
- modexDrawSpriteRegion(spri->page, npc0.x-4, npc0.y-TILEWH, 24, 64, 24, 32, &npctmp);\r
- modexShowPage(spri->page);\r
- npc0.d = 0;\r
- }\r
- npc0.triggerx = npc0.tx;\r
- npc0.triggery = npc0.ty+1;\r
- }\r
-\r
- //up movement\r
- if(npc0.d == 1)\r
- {\r
- if(npc0.ty > 1 && !(npc0.tx == TRIGGX && npc0.ty-1 == TRIGGY) && !(npc0.tx+1 == player.tx && npc0.ty == player.ty-1))\r
- {\r
- if(npc0.q<=(TILEWH/SPEED))\r
- {\r
- INC_PER_FRAME_NPC;\r
- npc0.y-=SPEED;\r
- //animatePlayer(bg, spri, mask, 0, 0, npc0.x, npc0.y, persist_aniframe, q, &npctmp);\r
- modexShowPage(spri->page);\r
- animatePlayer(bg, spri, npc0.d-1, 0, npc0.x, npc0.y, persist_aniframe, npc0.q, &npctmp);\r
- npc0.q++;\r
- } else { npc0.q = 1; npc0.d = 0; npc0.ty--; }\r
- }\r
- else\r
- {\r
- modexCopyPageRegion(spri->page, bg->page, npc0.x-4, npc0.y-TILEWH, npc0.x-4, npc0.y-TILEWH, 24, 32);\r
- modexDrawSpriteRegion(spri->page, npc0.x-4, npc0.y-TILEWH, 24, 0, 24, 32, &npctmp);\r
- modexShowPage(spri->page);\r
- npc0.d = 0;\r
- }\r
- npc0.triggerx = npc0.tx;\r
- npc0.triggery = npc0.ty-1;\r
- }\r
-\r
- if((npc0.triggery == player.ty && npc0.triggerx == player.tx) || (npc0.ty == player.ty && npc0.tx == player.tx)){ player.hp--; }\r
-*/\r
-\r
- //player movement\r
- //TODO: make movement into a function!
- if(!panswitch){\r
- //right movement\r
- if((keyp(77) && !keyp(75) && player.d == 0) || player.d == 2)\r
- {\r
- if(player.d == 0){ player.d = 2; }\r
- if(bg->tx >= 0 && bg->tx+20 < map.width && player.tx == bg->tx + 10 &&
- !(bg->map->data[(player.tx)+(map.width*(player.ty-1))] == 0))//!(player.tx+1 == TRIGGX && player.ty == TRIGGY)) //collision detection!\r
- {\r
- if(player.q<=(TILEWH/SPEED))\r
- {\r
- INC_PER_FRAME;\r
- //animatePlayer(bg, spri, mask, 1, 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
- mapScrollRight(bg, SPEED);\r
- mapScrollRight(spri, SPEED);\r
- //mapScrollRight(mask, SPEED);\r
- modexShowPage(spri->page);\r
- player.q++;\r
- } else { player.q = 1; player.d = 0; player.tx++; }\r
- }\r
- else if(player.tx < map.width && !(bg->map->data[(player.tx)+(map.width*(player.ty-1))] == 0))//!(player.tx+1 == TRIGGX && player.ty == TRIGGY))\r
- {\r
- if(player.q<=(TILEWH/SPEED))\r
- {\r
- INC_PER_FRAME;\r
- player.x+=SPEED;\r
- //animatePlayer(bg, spri, mask, 1, 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.tx++; }\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, 32, 24, 32, &ptmp);\r
- modexShowPage(spri->page);\r
- player.d = 0;\r
- }\r
- player.triggerx = player.tx+1;\r
- player.triggery = player.ty;\r
- }\r
-\r
- //left movement\r
- if((keyp(75) && !keyp(77) && player.d == 0) || player.d == 4)\r
- {\r
- if(player.d == 0){ player.d = 4; }\r
- if(bg->tx > 0 && bg->tx+20 <= map.width && player.tx == bg->tx + 10 &&
- !(bg->map->data[(player.tx-2)+(map.width*(player.ty-1))] == 0))//!(player.tx-1 == TRIGGX && player.ty == TRIGGY)) //collision detection!\r
- {\r
- if(player.q<=(TILEWH/SPEED))\r
- {\r
- INC_PER_FRAME;\r
- //animatePlayer(bg, spri, mask, 3, 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
- mapScrollLeft(bg, SPEED);\r
- mapScrollLeft(spri, SPEED);\r
- //mapScrollLeft(mask, SPEED);\r
- modexShowPage(spri->page);\r
- player.q++;\r
- } else { player.q = 1; player.d = 0; player.tx--; }\r
- }\r
- else if(player.tx > 1 && !(bg->map->data[(player.tx-2)+(map.width*(player.ty-1))] == 0))//!(player.tx-1 == TRIGGX && player.ty == TRIGGY))\r
- {\r
- if(player.q<=(TILEWH/SPEED))\r
- {\r
- INC_PER_FRAME;\r
- player.x-=SPEED;\r
- //animatePlayer(bg, spri, mask, 3, 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.tx--; }\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, 96, 24, 32, &ptmp);\r
- modexShowPage(spri->page);\r
- player.d = 0;\r
- }\r
- player.triggerx = player.tx-1;\r
- player.triggery = player.ty;\r
- }\r
-\r
- //down movement\r
- if((keyp(80) && !keyp(72) && player.d == 0) || player.d == 3)\r
- {\r
- if(player.d == 0){ player.d = 3; }\r
- 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!\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 < map.height && !(bg->map->data[(player.tx-1)+(map.width*(player.ty))] == 0))//!(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
-\r
- //up movement\r
- if((keyp(72) && !keyp(80) && player.d == 0) || player.d == 1)\r
- {\r
- if(player.d == 0){ player.d = 1; }\r
- 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!\r
- {\r
- if(player.q<=(TILEWH/SPEED))\r
- {\r
- INC_PER_FRAME;\r
- //animatePlayer(bg, spri, mask, 0, 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
- mapScrollUp(bg, SPEED);\r
- mapScrollUp(spri, SPEED);\r
- //mapScrollUp(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 > 1 && !(bg->map->data[(player.tx-1)+(map.width*(player.ty-2))] == 0))//!(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, 0, 0, player.x, player.y, persist_aniframe, q, &ptmp);\r
- modexShowPage(spri->page);\r
- animatePlayer(bg, spri, player.d-1, 0, player.x, player.y, persist_aniframe, player.q, &ptmp);\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, 0, 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
-}else{