|
|
@ -17,56 +17,45 @@ void gameLoop(){ |
|
|
|
switch(ch){ |
|
|
|
switch(ch){ |
|
|
|
case 'w': |
|
|
|
case 'w': |
|
|
|
case 'W':{ |
|
|
|
case 'W':{ |
|
|
|
struct CollisionEvent collisionEvent = collisionDetect(allEntities[0].nextYpos-1,allEntities[0].curXpos); |
|
|
|
struct CollisionEvent collisionEvent = collisionDetect(allEntities[0].curYpos-1,allEntities[0].curXpos); |
|
|
|
if(!collisionEvent.collidedWithUnPassableChar && !collisionEvent.collidedWithBoundary){ |
|
|
|
if(!collisionEvent.collidedWithUnPassableChar && !collisionEvent.collidedWithBoundary){ |
|
|
|
allEntities[0].nextYpos--; |
|
|
|
allEntities[0].prevYpos=allEntities[0].curYpos; |
|
|
|
|
|
|
|
allEntities[0].prevXpos=allEntities[0].curXpos; |
|
|
|
|
|
|
|
allEntities[0].curYpos--; |
|
|
|
}; |
|
|
|
}; |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
case 's':
|
|
|
|
case 's':
|
|
|
|
case 'S':{ |
|
|
|
case 'S':{ |
|
|
|
struct CollisionEvent collisionEvent = collisionDetect(allEntities[0].nextYpos+1,allEntities[0].curXpos); |
|
|
|
struct CollisionEvent collisionEvent = collisionDetect(allEntities[0].curYpos+1,allEntities[0].curXpos); |
|
|
|
if(!collisionEvent.collidedWithUnPassableChar && !collisionEvent.collidedWithBoundary){ |
|
|
|
if(!collisionEvent.collidedWithUnPassableChar && !collisionEvent.collidedWithBoundary){ |
|
|
|
allEntities[0].nextYpos++; |
|
|
|
allEntities[0].prevYpos=allEntities[0].curYpos; |
|
|
|
|
|
|
|
allEntities[0].prevXpos=allEntities[0].curXpos; |
|
|
|
|
|
|
|
allEntities[0].curYpos++; |
|
|
|
}; |
|
|
|
}; |
|
|
|
break; |
|
|
|
break; |
|
|
|
if(allEntities[0].curYpos < viewportWinRows - 2){ |
|
|
|
|
|
|
|
allEntities[0].nextYpos++; |
|
|
|
|
|
|
|
if(allEntities[0].nextYpos > viewportWinRows-1){ |
|
|
|
|
|
|
|
allEntities[0].nextYpos = viewportWinRows-1; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
case 'a': |
|
|
|
case 'a': |
|
|
|
case 'A':{ |
|
|
|
case 'A':{ |
|
|
|
struct CollisionEvent collisionEvent = collisionDetect(allEntities[0].curYpos,allEntities[0].nextXpos-1); |
|
|
|
struct CollisionEvent collisionEvent = collisionDetect(allEntities[0].curYpos,allEntities[0].curXpos-1); |
|
|
|
if(!collisionEvent.collidedWithUnPassableChar && !collisionEvent.collidedWithBoundary){ |
|
|
|
if(!collisionEvent.collidedWithUnPassableChar && !collisionEvent.collidedWithBoundary){ |
|
|
|
allEntities[0].nextXpos--; |
|
|
|
allEntities[0].prevYpos=allEntities[0].curYpos; |
|
|
|
|
|
|
|
allEntities[0].prevXpos=allEntities[0].curXpos; |
|
|
|
|
|
|
|
allEntities[0].prevXpos=allEntities[0].curXpos; |
|
|
|
|
|
|
|
allEntities[0].curXpos--; |
|
|
|
}; |
|
|
|
}; |
|
|
|
break; |
|
|
|
break; |
|
|
|
if(allEntities[0].curXpos > 1){ |
|
|
|
|
|
|
|
allEntities[0].nextXpos--; |
|
|
|
|
|
|
|
if(allEntities[0].nextXpos < 0){ |
|
|
|
|
|
|
|
allEntities[0].nextXpos = 0; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
case 'd': |
|
|
|
case 'd': |
|
|
|
case 'D':{ |
|
|
|
case 'D':{ |
|
|
|
struct CollisionEvent collisionEvent = collisionDetect(allEntities[0].curYpos,allEntities[0].nextXpos+1); |
|
|
|
struct CollisionEvent collisionEvent = collisionDetect(allEntities[0].curYpos,allEntities[0].curXpos+1); |
|
|
|
if(!collisionEvent.collidedWithUnPassableChar && !collisionEvent.collidedWithBoundary){ |
|
|
|
if(!collisionEvent.collidedWithUnPassableChar && !collisionEvent.collidedWithBoundary){ |
|
|
|
allEntities[0].nextXpos++; |
|
|
|
allEntities[0].prevYpos=allEntities[0].curYpos; |
|
|
|
|
|
|
|
allEntities[0].prevXpos=allEntities[0].curXpos; |
|
|
|
|
|
|
|
allEntities[0].prevXpos=allEntities[0].curXpos; |
|
|
|
|
|
|
|
allEntities[0].curXpos++; |
|
|
|
}; |
|
|
|
}; |
|
|
|
break; |
|
|
|
break; |
|
|
|
if(allEntities[0].curXpos < stdscrCols-2){ |
|
|
|
|
|
|
|
allEntities[0].nextXpos++; |
|
|
|
|
|
|
|
if(allEntities[0].nextXpos > viewportWinCols-1){ |
|
|
|
|
|
|
|
allEntities[0].nextXpos = viewportWinCols-1; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
case KEY_UP:{ |
|
|
|
case KEY_UP:{ |
|
|
|
if(allEntities[0].weapons[allEntities[0].curWeapon].curCapacity>0){ |
|
|
|
if(allEntities[0].weapons[allEntities[0].curWeapon].curCapacity>0){ |
|
|
|