1 #ifndef INCLUDED_BADGE_JUMPNRUN_MOVEABLE_H
2 #define INCLUDED_BADGE_JUMPNRUN_MOVEABLE_H
4 #include "../util/util.h"
8 // Do not collide with JUMPNRUN_ENEMY_* and JUMPNRUN_PLAYER_* flags.
9 JUMPNRUN_MOVEABLE_TOUCHING_GROUND
= 1,
10 JUMPNRUN_MOVEABLE_MIRRORED
= 2,
11 JUMPNRUN_MOVEABLE_DYING
= 4
15 JUMPNRUN_SPLOSION_FRAMES
= 4,
16 JUMPNRUN_SPLOSION_TICKS_PER_FRAME
= 15
19 typedef struct jumpnrun_moveable
{
27 uint8_t jumpable_frames
;
30 static inline bool jumpnrun_moveable_touching_ground(jumpnrun_moveable
const *self
) { return self
->flags
& JUMPNRUN_MOVEABLE_TOUCHING_GROUND
; }
31 static inline bool jumpnrun_moveable_mirrored (jumpnrun_moveable
const *self
) { return self
->flags
& JUMPNRUN_MOVEABLE_MIRRORED
; }
32 static inline bool jumpnrun_moveable_dying (jumpnrun_moveable
const *self
) { return self
->flags
& JUMPNRUN_MOVEABLE_DYING
; }
34 static inline bool jumpnrun_moveable_finished_dying (jumpnrun_moveable
const *self
) { return jumpnrun_moveable_dying(self
) && self
->tick_minor
>= JUMPNRUN_SPLOSION_FRAMES
* JUMPNRUN_SPLOSION_TICKS_PER_FRAME
; }