Operation Null Mind 0.4.1
A 2D roguelike top down shooter game made with SDL2
 
Loading...
Searching...
No Matches
colliders.h
Go to the documentation of this file.
1
70#pragma once
71
72#include <SDL.h>
73#include <stdbool.h>
74
75#define MAX_COLLISIONS_PER_CHECK 20
76#define MAX_COLLIDABLES 1024
77
78// Collision layers as bitmasks for efficient checking
79typedef enum {
80 COLLISION_LAYER_NONE = 0, // 00000000
81 COLLISION_LAYER_PLAYER = 1 << 0, // 00000001
82 COLLISION_LAYER_ENVIRONMENT = 1 << 1, // 00000010
83 COLLISION_LAYER_ENEMY = 1 << 2, // 00000100
84 COLLISION_LAYER_TRIGGER = 1 << 3, // 00001000
88
103
105extern int ColliderCount;
106
117
118
120void Collider_Start();
121
127void Collider_Register(Collider* collidable, void* owner);
128
135bool Collider_Check(Collider* collidableObject, ColliderCheckResult* result);
136
141void Collider_Reset(Collider* collider);
void Collider_Reset(Collider *collider)
Deactivates a collider.
Definition colliders.c:109
Collider * ColliderList[MAX_COLLIDABLES]
Definition colliders.c:16
#define MAX_COLLISIONS_PER_CHECK
Definition colliders.h:75
int ColliderCount
Definition colliders.c:17
void Collider_Register(Collider *collidable, void *owner)
Register a collider with the collision manager.
Definition colliders.c:36
void Collider_Start()
Initialize the collision manager.
Definition colliders.c:22
CollisionLayer
Definition colliders.h:79
@ COLLISION_LAYER_NONE
Definition colliders.h:80
@ COLLISION_LAYER_ENEMY
Definition colliders.h:83
@ COLLISION_LAYER_ENVIRONMENT
Definition colliders.h:82
@ COLLISION_LAYER_ENEMY_PROJECTILE
Definition colliders.h:85
@ COLLISION_LAYER_PLAYER
Definition colliders.h:81
@ COLLISION_LAYER_TRIGGER
Definition colliders.h:84
@ COLLISION_LAYER_PLAYER_PROJECTILE
Definition colliders.h:86
bool Collider_Check(Collider *collidableObject, ColliderCheckResult *result)
Check for collisions with a collider.
Definition colliders.c:67
#define MAX_COLLIDABLES
Definition colliders.h:76
Definition colliders.h:113
Collider * objects[MAX_COLLISIONS_PER_CHECK]
An array of detected colliders.
Definition colliders.h:114
int count
Number of collisions detected.
Definition colliders.h:115
This struct represents a collider.
Definition colliders.h:96
CollisionLayer layer
What layer this object belongs to.
Definition colliders.h:98
bool active
Is this collidable active?
Definition colliders.h:101
SDL_Rect hitbox
The hitbox of the collider.
Definition colliders.h:97
void * owner
Pointer back to the entity.
Definition colliders.h:100
CollisionLayer collidesWith
Bitmask of layers this can collide with.
Definition colliders.h:99