summaryrefslogtreecommitdiff
path: root/include/game.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/game.h')
-rw-r--r--include/game.h31
1 files changed, 17 insertions, 14 deletions
diff --git a/include/game.h b/include/game.h
index e54afd3..530ae73 100644
--- a/include/game.h
+++ b/include/game.h
@@ -21,10 +21,25 @@ typedef enum DrawLayer {
Foreground_Layer = 1
} DrawLayer;
+typedef struct Animation {
+ int numFrames;
+ bool isLooping;
+ bool isComplete;
+ Rectangle srcRects[MAX_FRAMES];
+ float frameTimes[MAX_FRAMES];
+
+ int currentFrame;
+ float currentFrameTimer;
+} Animation;
+
typedef struct Sprite {
Texture2D texture;
DrawLayer layer;
Rectangle destRect; //Destination rectangle relative to player position
+
+ int numAnimations; //Zero for static spritesx
+ Animation animations[MAX_ANIMATIONS];
+ int currentAnimation;
} Sprite;
typedef struct Entity {
@@ -69,20 +84,8 @@ void InitGame();
void UpdateGame(float deltaTime);
void DrawGame();
-static inline bool EntityAllocated(const Entity* e) {
- return (e->flags & ENTITY_ALLOCATED);
-}
-
-static inline bool SameEntity(const Entity* a, const Entity* b) {
- return a->id == b->id;
-}
-
-static inline void AddSpriteToEntity(Entity* e, Sprite s) {
- if (e->numSprites < MAX_SPRITE_COUNT) {
- e->sprites[e->numSprites++] = s;
- }
-}
-
+void UpdateCurrentSpriteAnimation(Sprite* sprite, float dt);
+void DrawEntitySprite(const Sprite* sprite, int spriteIndex);
#ifdef BEATEMUP_DEBUG
void DebugHighlights(const Entity* e);