From 786dccd2bc0946d48b8a2758ef2c607678bc8dd9 Mon Sep 17 00:00:00 2001 From: XaviDCR92 Date: Fri, 8 Sep 2017 18:39:22 +0200 Subject: Removed Building and GameStructures modules. Restructured SW for Unit and Player, still a lot TODO --- Camera.c | 106 +++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 52 insertions(+), 54 deletions(-) (limited to 'Camera.c') diff --git a/Camera.c b/Camera.c index 6127ed4..5b5c9c7 100644 --- a/Camera.c +++ b/Camera.c @@ -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; } -- cgit v1.2.3