1#ifndef YAZE_APP_EDITOR_SPRITE_SPRITE_UNDO_ACTIONS_H_
2#define YAZE_APP_EDITOR_SPRITE_SPRITE_UNDO_ACTIONS_H_
9#include "absl/status/status.h"
10#include "absl/strings/str_format.h"
50 absl::Status
Undo()
override {
52 return absl::InternalError(
"SpriteEditAction: no restore callback");
55 return absl::OkStatus();
58 absl::Status
Redo()
override {
60 return absl::InternalError(
"SpriteEditAction: no restore callback");
63 return absl::OkStatus();
75 size_t before_size = 0;
79 size_t after_size = 0;
Undoable action for edits to a custom ZSprite.
absl::Status Redo() override
bool CanMergeWith(const UndoAction &) const override
std::string Description() const override
Human-readable description (e.g., "Paint 12 tiles on map 5")
size_t MemoryUsage() const override
Approximate memory footprint for budget enforcement.
std::function< void(const SpriteSnapshot &)> RestoreFn
SpriteEditAction(SpriteSnapshot before, SpriteSnapshot after, RestoreFn restore)
absl::Status Undo() override
Abstract base for all undoable actions (Command pattern)
Snapshot of a custom ZSprite's editable state for undo/redo.
zsprite::ZSprite sprite_data
int current_animation_index
std::vector< Frame > Frames