Eliminada completament la recursivitat per next-pointer: - Momia::next, clear(), insertar() desapareixen - update()/draw() no recursen: operen només sobre la instància pròpia - ModuleGame::momies: Momia* (head de llista) → std::vector<std::unique_ptr<Momia>> - Destructor simplificat (vector s'autodestrueix) - Draw: range-for sobre el vector - Update: std::erase_if + decrement sincronitzat de info::ctx.momies - Cheat "alone": momies.clear() - iniciarMomies i nova_momia: emplace_back(std::make_unique<Momia>(...)) Zero new/delete manuals al cicle de vida de les momies. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
23 lines
402 B
C++
23 lines
402 B
C++
#pragma once
|
|
|
|
#include <memory>
|
|
|
|
#include "game/engendro.hpp"
|
|
#include "game/info.hpp"
|
|
#include "game/prota.hpp"
|
|
#include "game/sprite.hpp"
|
|
|
|
class Momia : public Sprite {
|
|
public:
|
|
explicit Momia(JD8_Surface gfx, bool dimoni, Uint16 x, Uint16 y, Prota* sam);
|
|
|
|
void draw() override;
|
|
bool update();
|
|
|
|
bool dimoni;
|
|
|
|
protected:
|
|
Prota* sam;
|
|
std::unique_ptr<Engendro> engendro;
|
|
};
|