R-Type  2
Doom but in better
Loading...
Searching...
No Matches
CollisionSystem.cpp File Reference
#include "CollisionSystem.hpp"
#include "IndexedZipper.hpp"
#include "Components.hpp"
#include "SpawnSystem.hpp"
#include "WinSystem.hpp"
Include dependency graph for CollisionSystem.cpp:

Go to the source code of this file.

Data Structures

struct  std::hash< std::pair< type_enum, type_enum > >
 

Namespaces

namespace  std
 

Functions

void collision_player_missile (Registry &r, std::size_t &entity1, std::size_t &entity2)
 
void collision_monster_missile (Registry &r, std::size_t &entity1, std::size_t &entity2)
 
void collision_player_obstacle (Registry &r, std::size_t &entity1, std::size_t &entity2)
 
void collision_monster_obstacle (Registry &r, std::size_t &entity1, std::size_t &entity2)
 
void collision_player_powerup (Registry &r, std::size_t &entity1, std::size_t &entity2)
 
void collision_obstacle_missile (Registry &r, std::size_t &entity1, std::size_t &entity2)
 
void collision_system (Registry &r, ComponentContainer< Position > &positions, ComponentContainer< Collider > &colliders, ComponentContainer< Type > &types)
 Collision detection and resolution system.
 

Variables

const std::unordered_map< std::pair< type_enum, type_enum >, std::function< void(Registry &, std::size_t &, std::size_t &)> > collisions
 

Function Documentation

◆ collision_monster_missile()

void collision_monster_missile ( Registry & r,
std::size_t & entity1,
std::size_t & entity2 )

Definition at line 27 of file CollisionSystem.cpp.

◆ collision_monster_obstacle()

void collision_monster_obstacle ( Registry & r,
std::size_t & entity1,
std::size_t & entity2 )

Definition at line 57 of file CollisionSystem.cpp.

◆ collision_obstacle_missile()

void collision_obstacle_missile ( Registry & r,
std::size_t & entity1,
std::size_t & entity2 )

Definition at line 77 of file CollisionSystem.cpp.

◆ collision_player_missile()

void collision_player_missile ( Registry & r,
std::size_t & entity1,
std::size_t & entity2 )

Definition at line 8 of file CollisionSystem.cpp.

◆ collision_player_obstacle()

void collision_player_obstacle ( Registry & r,
std::size_t & entity1,
std::size_t & entity2 )

Definition at line 49 of file CollisionSystem.cpp.

◆ collision_player_powerup()

void collision_player_powerup ( Registry & r,
std::size_t & entity1,
std::size_t & entity2 )

Definition at line 62 of file CollisionSystem.cpp.

◆ collision_system()

void collision_system ( Registry & r,
ComponentContainer< Position > & positions,
ComponentContainer< Collider > & colliders,
ComponentContainer< Type > & types )

Collision detection and resolution system.

This function handles the detection of collisions between game entities, such as players, monsters, and obstacles. It checks for overlap between entities' positions and takes appropriate actions based on the nature of the collision, such as applying damage or triggering events.

Parameters
rThe Registry that contains all game entities and their components.
positionsThe container of the component Position.
collidersThe container of the component Collider.
typesThe container of the component Type.

Definition at line 102 of file CollisionSystem.cpp.

Variable Documentation

◆ collisions

const std::unordered_map<std::pair<type_enum, type_enum>, std::function<void(Registry &, std::size_t &, std::size_t &)> > collisions
Initial value:
= {
}
void collision_monster_obstacle(Registry &r, std::size_t &entity1, std::size_t &entity2)
void collision_obstacle_missile(Registry &r, std::size_t &entity1, std::size_t &entity2)
void collision_player_powerup(Registry &r, std::size_t &entity1, std::size_t &entity2)
void collision_player_missile(Registry &r, std::size_t &entity1, std::size_t &entity2)
void collision_monster_missile(Registry &r, std::size_t &entity1, std::size_t &entity2)
void collision_player_obstacle(Registry &r, std::size_t &entity1, std::size_t &entity2)
@ OBSTACLE
Definition Type.hpp:15
@ POWERUP
Definition Type.hpp:16
@ MISSILE
Definition Type.hpp:14
@ PLAYER
Definition Type.hpp:12
@ MONSTER
Definition Type.hpp:13

Definition at line 93 of file CollisionSystem.cpp.