diff --git a/docs/audit-core-rendering.md b/docs/audit-core-rendering.md index b694e83..e0fc9d1 100644 --- a/docs/audit-core-rendering.md +++ b/docs/audit-core-rendering.md @@ -86,9 +86,9 @@ Los IDs se mantienen estables una vez asignados. Cada entrada apunta al(los) fic | INC-02 | `screen.cpp:52,104,125` vs `gif.cpp:96` vs `sdl3gpu_shader.cpp:214` | `exit`/throw/`bool` mezclados | Importante | DEFERRED | decisión global | | INC-03 | `screen.cpp`, `sdl3gpu_shader.cpp`, `surface.cpp`, `gif.cpp` | `fprintf`/`cerr`/`cout` mezclados | Menor | DEFERRED | logger inexistente | | INC-04 | `text.hpp:48-57` | API discreta + `writeDX(flags)` coexisten | Importante | PENDING | elegir una | -| INC-05 | `moving_sprite.cpp:39-40,58-72` | `pos_.x = static_cast(x_)` sobre `SDL_FRect` | Importante | PENDING | fijar semántica | -| INC-06 | `moving_sprite.cpp:12-21` | `Sprite::pos_ = pos;` redundante tras ctor delegado | Menor | PENDING | limpiar | -| INC-07 | `sprite.cpp:19-22` | initializer posicional vs designated | Menor | PENDING | uniformar | +| INC-05 | `moving_sprite.cpp:39-40,58-72` | `pos_.x = static_cast(x_)` sobre `SDL_FRect` | Importante | WONTFIX | És snap intencional a píxel per al pixel-art; setPos(SDL_FRect) es reserva per a posicionament directe sense arrodoniment. La divergència és una decisió, no un bug | +| INC-06 | `moving_sprite.cpp:12-21` | `Sprite::pos_ = pos;` redundante tras ctor delegado | Menor | DONE | línies eliminades | +| INC-07 | `sprite.cpp:19-22` | initializer posicional vs designated | Menor | DONE | designated initializer uniforme | ## 6. Código muerto @@ -132,4 +132,5 @@ Los IDs se mantienen estables una vez asignados. Cada entrada apunta al(los) fic - `ce3b6da` — DEAD-09: esborrats structs d'extensions GIF no usats - `bbb397a` — HC-06 + HC-07 + HC-09 + PATCH-08: constants nominals a `render_info` (segments, shadow offset, position count) i dedup init - `be94a43` — DUP-01 + DUP-06 + HC-03 + HC-10 + PATCH-05: neteja parser GIF (extension single-skip, constants nominals LZW/GCT, signatura sense args morts, un sol parse per construcció de `Surface`) -- `` — HC-02: `Rendering::OPAQUE_ALPHA` a `canvas.hpp` reemplaça `0xFF000000U` repetit +- `8b413af` — HC-02: `Rendering::OPAQUE_ALPHA` a `canvas.hpp` reemplaça `0xFF000000U` repetit +- `` — INC-06 + INC-07: eliminats assignaments redundants `Sprite::pos_` a `MovingSprite`; designated initializer uniforme diff --git a/source/core/rendering/sprite/moving_sprite.cpp b/source/core/rendering/sprite/moving_sprite.cpp index b4cfeea..ee2074f 100644 --- a/source/core/rendering/sprite/moving_sprite.cpp +++ b/source/core/rendering/sprite/moving_sprite.cpp @@ -9,16 +9,18 @@ MovingSprite::MovingSprite() { Sprite::clear(); } MovingSprite::MovingSprite(std::shared_ptr surface) : Sprite(std::move(surface)) { Sprite::clear(); } +// pos_ ja queda inicialitzat pel ctor delegat Sprite(surface, pos); només +// cal sincronitzar la posició float x_/y_ (i el flip si ve). MovingSprite::MovingSprite(std::shared_ptr surface, SDL_FRect pos) : Sprite(std::move(surface), pos), x_(pos.x), - y_(pos.y) { Sprite::pos_ = pos; } + y_(pos.y) {} MovingSprite::MovingSprite(std::shared_ptr surface, SDL_FRect pos, SDL_FlipMode flip) : Sprite(std::move(surface), pos), x_(pos.x), y_(pos.y), - flip_(flip) { Sprite::pos_ = pos; } + flip_(flip) {} void MovingSprite::clear() { x_ = 0.0F; diff --git a/source/core/rendering/sprite/sprite.cpp b/source/core/rendering/sprite/sprite.cpp index 2e04939..3320fbb 100644 --- a/source/core/rendering/sprite/sprite.cpp +++ b/source/core/rendering/sprite/sprite.cpp @@ -18,7 +18,7 @@ Sprite::Sprite(std::shared_ptr surface, SDL_FRect rect) Sprite::Sprite(std::shared_ptr surface) : surface_(std::move(surface)), - pos_{0.0F, 0.0F, static_cast(surface_->getWidth()), static_cast(surface_->getHeight())}, + pos_{.x = 0.0F, .y = 0.0F, .w = static_cast(surface_->getWidth()), .h = static_cast(surface_->getHeight())}, clip_(pos_) {} void Sprite::render() {