#ifndef components_h #define components_h #include "animation.h" #include "asset.h" #include "rect.h" /* Components are POD. If you put a pointer in one of these, * you're a dumb poo poo head. */ /* I should probably make a velocity component because it's * duplicated a bit. Eh. */ typedef struct { int x, y; } CPosition; typedef struct { Asset_ID id; Rectangle rect; } CSprite; typedef struct { Animation_ID id; int frame; int timer; } CAnimated; typedef struct { int life; int vx, vy; } CBullet; typedef struct { int hp; int backpedal; int shoot_timer; int being_damaged; } CEnemy; typedef struct { int vx, vy; } CDebris; typedef struct { int x, y, w, h; } CCollider; typedef enum { ctype_sprite = 1 << 0, ctype_position = 1 << 1, ctype_animated = 1 << 2, ctype_bullet = 1 << 3, ctype_player_bullet = 1 << 4, ctype_enemy_bullet = 1 << 5, ctype_enemy = 1 << 6, ctype_skull = 1 << 7, ctype_debris = 1 << 8, ctype_collider = 1 << 9, ctype_player = 1 << 10, ctype_destroy_on_anim_done = 1 << 11, ctype_solid = 1 << 12, ctype_moveable = 1 << 13 } CType; #endif