summaryrefslogtreecommitdiff
path: root/Sprite.h
diff options
context:
space:
mode:
authorXaviDCR92 <xavi.dcr@gmail.com>2018-07-10 23:17:34 +0200
committerXaviDCR92 <xavi.dcr@gmail.com>2018-07-10 23:17:34 +0200
commit20936e93023c18f54d217c66b0e08fa80f4f7d50 (patch)
tree613f81844cfbceb5a097c4ccf77dc3688081b3e4 /Sprite.h
parent14c12aeea30d59e9c811f1cc8c7019053d646033 (diff)
downloadpocketempires-20936e93023c18f54d217c66b0e08fa80f4f7d50.tar.gz
Camera is now an independent instance, and HumanPlayer only holds a reference to it.
Diffstat (limited to 'Sprite.h')
-rw-r--r--Sprite.h41
1 files changed, 30 insertions, 11 deletions
diff --git a/Sprite.h b/Sprite.h
index c365735..afe9db1 100644
--- a/Sprite.h
+++ b/Sprite.h
@@ -1,34 +1,53 @@
#ifndef SPRITE_H__
#define SPRITE_H__
-/* *************************************
+/* *******************************************************************
* Includes
- * *************************************/
+ * ******************************************************************/
+#include "Camera.h"
#include <Gamebuino.h>
#include <stdint.h>
-/* *************************************
+/* *******************************************************************
* Defines
- * *************************************/
+ * ******************************************************************/
-/* *************************************
- * Structs and enums
- * *************************************/
+/* *******************************************************************
+ * Global types definition
+ * ******************************************************************/
-/* *************************************
+/* *******************************************************************
+ * Global variables declaration
+ * ******************************************************************/
+
+extern const Camera* _cam;
+
+/* *******************************************************************
+ * Global functions declaration
+ * ******************************************************************/
+
+/* *******************************************************************
* Class definition
- * *************************************/
+ * ******************************************************************/
class Sprite
{
public:
- Sprite(const uint8_t& pu8SprData, const uint8_t u8Colour = BLACK, const uint8_t rotation = NOFLIP);
+ Sprite( const uint8_t* pu8SprData,
+ const bool followCam = true,
+ const uint8_t u8Colour = BLACK,
+ const uint8_t rotation = NOFLIP);
void setPos(const uint8_t x, const uint8_t y);
void draw(void);
+ static void setCamera(const Camera* const cam)
+ {
+ _cam = cam;
+ };
private:
- const uint8_t& _pu8SprData;
+ const uint8_t* _pu8SprData;
+ const bool _followCam;
uint8_t _colour;
uint8_t _rotation;
uint8_t _x;