diff options
| author | XaviDCR92 <xavi.dcr@gmail.com> | 2017-09-08 18:39:22 +0200 |
|---|---|---|
| committer | XaviDCR92 <xavi.dcr@gmail.com> | 2017-09-08 18:39:22 +0200 |
| commit | 786dccd2bc0946d48b8a2758ef2c607678bc8dd9 (patch) | |
| tree | 47952d77e5646a993671134b50c16f32ebe35b1c /Camera.c | |
| parent | 72d350a37aa67936361ac8a374472b7e0227da61 (diff) | |
| download | pocketempires-786dccd2bc0946d48b8a2758ef2c607678bc8dd9.tar.gz | |
Removed Building and GameStructures modules. Restructured SW for Unit and Player, still a lot TODO
Diffstat (limited to 'Camera.c')
| -rw-r--r-- | Camera.c | 106 |
1 files changed, 52 insertions, 54 deletions
@@ -3,6 +3,8 @@ * *************************************/ #include "Camera.h" +#include "Gfx.h" +#include "Pad.h" /* ************************************* * Defines @@ -16,33 +18,31 @@ * Local Prototypes * *************************************/ -static void CameraUpdateSpeed(TYPE_CAMERA * ptrCamera); -static bool CameraSpecialConditions(TYPE_CAMERA * ptrCamera); +static void CameraUpdateSpeed(TYPE_CAMERA* ptrCamera); -void CameraInit(TYPE_CAMERA * ptrCamera) +void CameraInit(TYPE_CAMERA* ptrCamera) { ptrCamera->X_Offset = 0; ptrCamera->Y_Offset = 0; ptrCamera->X_Speed = 0; ptrCamera->Y_Speed = 0; ptrCamera->Speed_Timer = SPEED_CALCULATION_TIME; + ptrCamera->locked = false; } -TYPE_COLLISION_BLOCK CameraApplyCoordinatesToCoordinates( TYPE_CAMERA * ptrCamera, +TYPE_COLLISION_BLOCK CameraApplyCoordinatesToCoordinates( TYPE_CAMERA* ptrCamera, uint16_t x, uint16_t y ) { - TYPE_COLLISION_BLOCK cb; - - memset(&cb, 0, sizeof(TYPE_COLLISION_BLOCK)); - + TYPE_COLLISION_BLOCK cb = {0}; + cb.x = x + ptrCamera->X_Offset; cb.y = y + ptrCamera->Y_Offset; - + return cb; } -void CameraApplyCoordinatesToSprite(TYPE_CAMERA * ptrCamera, +void CameraApplyCoordinatesToSprite(TYPE_CAMERA* ptrCamera, TYPE_SPRITE * spr, uint16_t x, uint16_t y ) @@ -51,99 +51,98 @@ void CameraApplyCoordinatesToSprite(TYPE_CAMERA * ptrCamera, spr->y = (uint8_t)(y + ptrCamera->Y_Offset); } -void CameraUpdateSpeed(TYPE_CAMERA * ptrCamera) +void CameraUpdateSpeed(TYPE_CAMERA* ptrCamera) { - if(PadDirectionKeyPressed() == true) + if (PadDirectionKeyPressed() == true) { - if(PadButtonPressed(PAD_LEFT) == true) + if (PadButtonPressed(PAD_LEFT) == true) { - if(ptrCamera->X_Speed < 0) + if (ptrCamera->X_Speed < 0) { ptrCamera->X_Speed += 2; } - else if(ptrCamera->X_Speed < MAX_CAMERA_SPEED) + else if (ptrCamera->X_Speed < MAX_CAMERA_SPEED) { ptrCamera->X_Speed++; } } - - if(PadButtonPressed(PAD_UP) == true) + + if (PadButtonPressed(PAD_UP) == true) { - if(ptrCamera->Y_Speed < 0) + if (ptrCamera->Y_Speed < 0) { ptrCamera->Y_Speed += 2; } - else if(ptrCamera->Y_Speed < MAX_CAMERA_SPEED) + else if (ptrCamera->Y_Speed < MAX_CAMERA_SPEED) { ptrCamera->Y_Speed++; } } - - if(PadButtonPressed(PAD_DOWN) == true) + + if (PadButtonPressed(PAD_DOWN) == true) { - if(ptrCamera->Y_Speed > 0) + if (ptrCamera->Y_Speed > 0) { ptrCamera->Y_Speed -= 2; } - else if(ptrCamera->Y_Speed > -MAX_CAMERA_SPEED) + else if (ptrCamera->Y_Speed > -MAX_CAMERA_SPEED) { ptrCamera->Y_Speed--; } } - - if(PadButtonPressed(PAD_RIGHT) == true) + + if (PadButtonPressed(PAD_RIGHT) == true) { - if(ptrCamera->X_Speed > 0) + if (ptrCamera->X_Speed > 0) { ptrCamera->X_Speed -= 2; } - else if(ptrCamera->X_Speed > -MAX_CAMERA_SPEED) + else if (ptrCamera->X_Speed > -MAX_CAMERA_SPEED) { ptrCamera->X_Speed--; } } } - if( (PadButtonPressed(PAD_LEFT) == false) + if ( (PadButtonPressed(PAD_LEFT) == false) && (PadButtonPressed(PAD_RIGHT) == false) ) { - if(ptrCamera->X_Speed > 0) + if (ptrCamera->X_Speed > 0) { ptrCamera->X_Speed--; } - else if(ptrCamera->X_Speed < 0) + else if (ptrCamera->X_Speed < 0) { ptrCamera->X_Speed++; } } - - if( (PadButtonPressed(PAD_UP) == false) + + if ( (PadButtonPressed(PAD_UP) == false) && (PadButtonPressed(PAD_DOWN) == false) ) - { - if(ptrCamera->Y_Speed > 0) + { + if (ptrCamera->Y_Speed > 0) { ptrCamera->Y_Speed--; } - else if(ptrCamera->Y_Speed < 0) + else if (ptrCamera->Y_Speed < 0) { ptrCamera->Y_Speed++; } } } -void CameraHandler(TYPE_CAMERA * ptrCamera) +void CameraHandler(TYPE_CAMERA* ptrCamera) { - - if(CameraSpecialConditions(ptrCamera) == true) + if (ptrCamera->locked == true) { ptrCamera->X_Speed = 0; ptrCamera->Y_Speed = 0; return; } - - if(ptrCamera->Speed_Timer < SPEED_CALCULATION_TIME) + + if (ptrCamera->Speed_Timer < SPEED_CALCULATION_TIME) { ptrCamera->Speed_Timer++; } @@ -152,12 +151,12 @@ void CameraHandler(TYPE_CAMERA * ptrCamera) ptrCamera->Speed_Timer = 0; CameraUpdateSpeed(ptrCamera); } - - if((ptrCamera->X_Offset + ptrCamera->X_Speed) < 0) + + if ((ptrCamera->X_Offset + ptrCamera->X_Speed) < 0) { ptrCamera->X_Offset += ptrCamera->X_Speed; - - if(ptrCamera->X_Offset == 0) + + if (ptrCamera->X_Offset == 0) { ptrCamera->X_Speed = 0; } @@ -167,18 +166,18 @@ void CameraHandler(TYPE_CAMERA * ptrCamera) ptrCamera->X_Offset = 0; ptrCamera->X_Speed = 0; } - + /*char str[8]; - + snprintf(str, 8, "%u", ptrCamera->Y_Offset); - + GfxPrintText(str, 40, 40);*/ - - if((ptrCamera->Y_Offset + ptrCamera->Y_Speed) < 0) + + if ((ptrCamera->Y_Offset + ptrCamera->Y_Speed) < 0) { ptrCamera->Y_Offset += ptrCamera->Y_Speed; - - if(ptrCamera->Y_Offset == 0) + + if (ptrCamera->Y_Offset == 0) { ptrCamera->Y_Speed = 0; } @@ -190,8 +189,7 @@ void CameraHandler(TYPE_CAMERA * ptrCamera) } } -bool CameraSpecialConditions(TYPE_CAMERA * ptrCamera) +void CameraSetLock(TYPE_CAMERA* ptrCamera, bool value) { - - return false; + ptrCamera->locked = value; } |
