refactor(maps): pyramid.yaml per piràmide amb merge a sala

This commit is contained in:
JailDesigner committed 2026-05-13 22:38:42 +02:00
1 parent 5f206e03c8
commit 125cdd0c74
45 files changed
+331 -1085

No files matched your search

+8 -8
View File
@@ -383,7 +383,7 @@ animations:
void testLoadFromLevel() {
std::cout << "[T9] pyramid level load (globals + spawns + tile math + bus)\n";
// 1) Map::loadFrom carrega les tres globals noves (tile_size, origen).
Map::loadFrom("data/maps/pyramid.yaml");
Map::loadFrom("data/maps/p1/r1.yaml");
REQUIRE(Map::tile_size == 16);
REQUIRE(Map::tilemap_origin_x == -8);
REQUIRE(Map::tilemap_origin_y == 0);
@@ -392,7 +392,7 @@ animations:
// menys un de cada tipus que el nivell ha de tenir sí o sí (no
// fixem quants torches exactes perquè és decoratiu i pot
// variar). Així afegir decoració al YAML no trenca el smoke.
const auto SPAWNS = EntityLoader::readSpawns("data/maps/pyramid.yaml");
const auto SPAWNS = EntityLoader::readSpawns("data/maps/p1/r1.yaml");
REQUIRE(!SPAWNS.empty());
int torches = 0;
int sarcs = 0;
@@ -499,7 +499,7 @@ animations:
std::cout << "[T13] momia step amb col·lisió i gir\n";
// Cal Map::loadFrom (T9 ja el carrega, però el rerrumigo ací per
// aïllar la intenció del test).
Map::loadFrom("data/maps/pyramid.yaml");
Map::loadFrom("data/maps/p1/r1.yaml");
// Momia al corredor exterior superior: playfield_y=48, alçada del
// corredor exterior = outer_corridor (16). Així el base box 12×12
@@ -544,7 +544,7 @@ animations:
void testMummyHurtState() {
std::cout << "[T15] mummy enterHurt → fugida + recuperació\n";
Map::loadFrom("data/maps/pyramid.yaml");
Map::loadFrom("data/maps/p1/r1.yaml");
fkyaml::node tmpl = EntityLoader::loadTemplate("mummy");
Mummy mummy(tmpl);
@@ -574,7 +574,7 @@ animations:
void testMummyHurtAgainstWall() {
std::cout << "[T16] mummy HURT contra mur → surt abans del timer\n";
Map::loadFrom("data/maps/pyramid.yaml");
Map::loadFrom("data/maps/p1/r1.yaml");
fkyaml::node tmpl = EntityLoader::loadTemplate("mummy");
Mummy mummy(tmpl);
@@ -619,7 +619,7 @@ animations:
// micro-overlap, retornant NONE i deixant la mòmia eternament quieta
// amb l'animació de córrer activa. El fix és snap a la vora exacta
// dins de `hurtStep` abans de transitar a ROAMING.
Map::loadFrom("data/maps/pyramid.yaml");
Map::loadFrom("data/maps/p1/r1.yaml");
fkyaml::node tmpl = EntityLoader::loadTemplate("mummy");
Mummy mummy(tmpl);
@@ -650,7 +650,7 @@ animations:
// amb dir_x_/dir_y_ a zero, el `step()` anterior feia early return i
// es quedava quieta per sempre. Ara re-decideix com a una intersecció
// si troba alguna direcció vàlida.
Map::loadFrom("data/maps/pyramid.yaml");
Map::loadFrom("data/maps/p1/r1.yaml");
fkyaml::node tmpl = EntityLoader::loadTemplate("mummy");
Mummy mummy(tmpl);
@@ -677,7 +677,7 @@ animations:
// (snap a hurtStep + recovery a step), o bé `chooseHurtDirection`
// troba una direcció lliure des de la posició aliniada, o bé el
// proper step la rescata. En cap cas pot quedar permanentment quieta.
Map::loadFrom("data/maps/pyramid.yaml");
Map::loadFrom("data/maps/p1/r1.yaml");
fkyaml::node tmpl = EntityLoader::loadTemplate("mummy");
Mummy mummy(tmpl);
+8 -8
View File
@@ -62,7 +62,7 @@ namespace {
void testWhipDrawRectPerDirection() {
std::cout << "[W1] WhipAttack draw_rect per direcció\n";
Map::loadFrom("data/maps/pyramid.yaml");
Map::loadFrom("data/maps/p1/r1.yaml");
// Owner ben dins del playfield perquè el draw_rect (no es retalla)
// tinga la mida nominal completa.
@@ -94,7 +94,7 @@ namespace {
void testWhipDrawRectOffsets() {
std::cout << "[W7] offsets del draw_rect per direcció (taula del disseny)\n";
Map::loadFrom("data/maps/pyramid.yaml");
Map::loadFrom("data/maps/p1/r1.yaml");
// Posicionem el jugador amb la collision (bottom 16×16) al
// corredor entre files 2 i 3 de sarcs (y∈[144,160]) i a la
@@ -128,7 +128,7 @@ namespace {
void testWhipFeetYDelegation() {
std::cout << "[W8] feet_y delegat a la base de l'owner_box\n";
Map::loadFrom("data/maps/pyramid.yaml");
Map::loadFrom("data/maps/p1/r1.yaml");
// Posicionem el jugador amb la collision (bottom 16×16) al
// corredor entre files 2 i 3 de sarcs (y∈[144,160]) i a la
@@ -151,7 +151,7 @@ namespace {
void testWhipHitboxClippedByWall() {
std::cout << "[W2] damage_rect retallat per la paret del playfield\n";
Map::loadFrom("data/maps/pyramid.yaml");
Map::loadFrom("data/maps/p1/r1.yaml");
// Llancem un E des d'una posició a 10 px de la paret dreta del
// playfield, amb un range de 48 px → la hitbox efectiva ha de
@@ -170,7 +170,7 @@ namespace {
void testWhipHitboxFreeAtFullRange() {
std::cout << "[W3] damage_rect sense bloquejador → longitud completa\n";
Map::loadFrom("data/maps/pyramid.yaml");
Map::loadFrom("data/maps/p1/r1.yaml");
// Owner ben dins del playfield, range curt → 16 px lliures fins
// a topar amb res. La longitud efectiva = RANGE.
@@ -187,7 +187,7 @@ namespace {
void testWhipHitsMummyInRange() {
std::cout << "[W4] mòmia en rang entra a HURT\n";
Map::loadFrom("data/maps/pyramid.yaml");
Map::loadFrom("data/maps/p1/r1.yaml");
EntityManager manager;
auto mummy_yaml = EntityLoader::loadTemplate("mummy");
@@ -226,7 +226,7 @@ namespace {
void testWhipNoHitOutOfRange() {
std::cout << "[W5] mòmia fora del rang no rep dany\n";
Map::loadFrom("data/maps/pyramid.yaml");
Map::loadFrom("data/maps/p1/r1.yaml");
EntityManager manager;
auto mummy_yaml = EntityLoader::loadTemplate("mummy");
@@ -253,7 +253,7 @@ namespace {
void testWhipSingleHitPerSwing() {
std::cout << "[W6] una mòmia rep un sol impacte per swing\n";
Map::loadFrom("data/maps/pyramid.yaml");
Map::loadFrom("data/maps/p1/r1.yaml");
EntityManager manager;
auto mummy_yaml = EntityLoader::loadTemplate("mummy");