diff --git a/src/app/zelda3/sprite/sprite_builder.cc b/src/app/zelda3/sprite/sprite_builder.cc index ea9c370b..ae7f24bc 100644 --- a/src/app/zelda3/sprite/sprite_builder.cc +++ b/src/app/zelda3/sprite/sprite_builder.cc @@ -60,6 +60,36 @@ std::string SpriteBuilder::Build() const { ss << BuildProperties(); return ss.str(); } + +// ============================================================================ + +SpriteAction SpriteAction::Create(const std::string& actionName) { + SpriteAction action; + + return action; +} + +SpriteAction SpriteAction::Create() { + SpriteAction action; + + return action; +} + +SpriteAction& SpriteAction::AddInstruction( + const SpriteInstruction& instruction) { + return *this; +} + +SpriteAction& SpriteAction::AddCustomInstruction(const std::string& asmCode) { + return *this; +} + +SpriteAction& SpriteAction::SetNextAction(const std::string& nextActionName) { + return *this; +} + +std::string SpriteAction::GetConfiguration() const { return ""; } + } // namespace zelda3 } // namespace app } // namespace yaze diff --git a/src/app/zelda3/sprite/sprite_builder.h b/src/app/zelda3/sprite/sprite_builder.h index 9929795b..7193e140 100644 --- a/src/app/zelda3/sprite/sprite_builder.h +++ b/src/app/zelda3/sprite/sprite_builder.h @@ -9,6 +9,32 @@ namespace app { namespace zelda3 { +class SpriteAction { + public: + // Factory method to create a new action + static SpriteAction Create(const std::string& actionName); + + // Anonymously create an action + static SpriteAction Create(); + + // Add a predefined instruction to the action + SpriteAction& AddInstruction(const SpriteInstruction& instruction); + + // Add custom raw ASM instruction to the action + SpriteAction& AddCustomInstruction(const std::string& asmCode); + + // Set the next action to jump to + SpriteAction& SetNextAction(const std::string& nextActionName); + + // Get the action configuration + std::string GetConfiguration() const; + + private: + std::string name; + std::vector instructions; + std::string nextAction; +}; + // Array of sprite property names constexpr const char* kSpriteProperties[] = {"!SPRID", "!NbrTiles",