31 lines
1.3 KiB
C++
31 lines
1.3 KiB
C++
// entities.hpp - Configuració d'objectes del joc (límits i radis de col·lisió)
|
||
// © 2026 JailDesigner
|
||
|
||
#pragma once
|
||
|
||
#include <cstdint>
|
||
|
||
namespace Defaults::Entities {
|
||
|
||
constexpr int MAX_ORNIS = 15;
|
||
constexpr int MAX_BULLETS = 50; // per jugador (P1 + P2 = 2× aquest valor)
|
||
constexpr int MAX_ENEMY_BULLETS = 50; // pool reservat per a bales d'enemic
|
||
|
||
// Total real de slots a l'array global bullets_: zona P1, zona P2 i zona enemic.
|
||
// Reservar zones impedeix que les bales d'enemic ocupin slots del jugador.
|
||
constexpr int MAX_BULLETS_TOTAL = (MAX_BULLETS * 2) + MAX_ENEMY_BULLETS;
|
||
constexpr int ENEMY_BULLET_START_IDX = MAX_BULLETS * 2;
|
||
|
||
// Convenció d'owner_id per a Bullet::fire:
|
||
// 0..1 = players (P1, P2)
|
||
// ENEMY_OWNER_BASE + index = enemic concret (per identificar el seu autoimpacte)
|
||
// Una bala mata a qualsevol col·lisió excepte amb el seu propi creador.
|
||
constexpr uint8_t ENEMY_OWNER_BASE = 128;
|
||
|
||
// SHIP_RADIUS / ENEMY_RADIUS / BULLET_RADIUS han migrat: ara cada entitat
|
||
// calcula el seu collision_radius com a
|
||
// shape.bounding_radius × shape.scale × shape.collision_factor
|
||
// a partir del seu YAML (data/entities/<name>/<name>.yaml).
|
||
|
||
} // namespace Defaults::Entities
|