diff options
| author | XaviDCR92 <xavi.dcr@gmail.com> | 2017-03-12 21:09:29 +0100 |
|---|---|---|
| committer | XaviDCR92 <xavi.dcr@gmail.com> | 2017-03-12 21:09:29 +0100 |
| commit | 6628e7de58425b3e93da9ae6fcb7347137d96096 (patch) | |
| tree | 336d1f74961187aad7c85ba06dcdd0684c003282 /Camera.c | |
| parent | f416816883545433ea33ca410983371e657dba18 (diff) | |
| download | pocketempires-6628e7de58425b3e93da9ae6fcb7347137d96096.tar.gz | |
* Player can now select nearest unit or building. Multiple buildings and units can be selected at the same time.
* Unit module moved from C++ to C (only extension change - and compiler - was needed).
* GfxGetHeightFromSpriteData and GfxGetWidthFromSpriteData were getting incorrect data! Incorrect memory address was being read when calling pgm_read_byte, and caused unexpected behaviour under real hw.
Diffstat (limited to 'Camera.c')
| -rw-r--r-- | Camera.c | 37 |
1 files changed, 35 insertions, 2 deletions
@@ -153,8 +153,41 @@ void CameraHandler(TYPE_CAMERA * ptrCamera) CameraUpdateSpeed(ptrCamera); } - ptrCamera->X_Offset += ptrCamera->X_Speed; - ptrCamera->Y_Offset += ptrCamera->Y_Speed; + if((ptrCamera->X_Offset + ptrCamera->X_Speed) < 0) + { + ptrCamera->X_Offset += ptrCamera->X_Speed; + + if(ptrCamera->X_Offset == 0) + { + ptrCamera->X_Speed = 0; + } + } + else + { + 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) + { + ptrCamera->Y_Offset += ptrCamera->Y_Speed; + + if(ptrCamera->Y_Offset == 0) + { + ptrCamera->Y_Speed = 0; + } + } + else + { + ptrCamera->Y_Offset = 0; + ptrCamera->Y_Speed = 0; + } } bool CameraSpecialConditions(TYPE_CAMERA * ptrCamera) |
