Mask and palettes do not need to be serialized with IDs because

they are not referenced by IDs in any other place.
This commit is contained in:
David Capello 2011-03-26 20:13:49 -03:00
parent 98c306f587
commit 7dd873b1a7
6 changed files with 17 additions and 19 deletions

View File

@ -8,6 +8,7 @@
#include "undo/undo_history.h"
#include "raster/palette.h"
#include "undo/undoers_stack.h"
#include "undoers/add_cel.h"
#include "undoers/add_image.h"
@ -122,12 +123,12 @@ void UndoHistory::undo_set_layer(Sprite* sprite)
void UndoHistory::undo_add_palette(Sprite* sprite, Palette* palette)
{
pushUndoer(new undoers::AddPalette(getObjects(), sprite, palette));
pushUndoer(new undoers::AddPalette(getObjects(), sprite, palette->getFrame()));
}
void UndoHistory::undo_remove_palette(Sprite* sprite, Palette* palette)
{
pushUndoer(new undoers::RemovePalette(getObjects(), sprite, palette));
pushUndoer(new undoers::RemovePalette(getObjects(), sprite, palette->getFrame()));
}
void UndoHistory::undo_set_palette_colors(Sprite* sprite, Palette* palette, int from, int to)

View File

@ -28,9 +28,9 @@
using namespace undo;
using namespace undoers;
AddPalette::AddPalette(ObjectsContainer* objects, Sprite* sprite, Palette* palette)
AddPalette::AddPalette(ObjectsContainer* objects, Sprite* sprite, int paletteFrame)
: m_spriteId(objects->addObject(sprite))
, m_paletteId(objects->addObject(palette))
, m_paletteFrame(paletteFrame)
{
}
@ -42,9 +42,9 @@ void AddPalette::dispose()
void AddPalette::revert(ObjectsContainer* objects, UndoersCollector* redoers)
{
Sprite* sprite = objects->getObjectT<Sprite>(m_spriteId);
Palette* palette = objects->getObjectT<Palette>(m_paletteId);
Palette* palette = sprite->getPalette(m_paletteFrame);
redoers->pushUndoer(new RemovePalette(objects, sprite, palette));
redoers->pushUndoer(new RemovePalette(objects, sprite, m_paletteFrame));
sprite->deletePalette(palette);
}

View File

@ -22,7 +22,6 @@
#include "undo/object_id.h"
#include "undoers/undoer_base.h"
class Palette;
class Sprite;
namespace undoers {
@ -30,7 +29,7 @@ namespace undoers {
class AddPalette : public UndoerBase
{
public:
AddPalette(undo::ObjectsContainer* objects, Sprite* sprite, Palette* palette);
AddPalette(undo::ObjectsContainer* objects, Sprite* sprite, int palette_frame);
void dispose() OVERRIDE;
int getMemSize() const OVERRIDE { return sizeof(*this); }
@ -38,7 +37,7 @@ public:
private:
undo::ObjectId m_spriteId;
undo::ObjectId m_paletteId;
int m_paletteFrame;
};
} // namespace undoers

View File

@ -20,21 +20,21 @@
#include "undoers/remove_palette.h"
#include "base/unique_ptr.h"
#include "raster/palette.h"
#include "raster/palette_io.h"
#include "raster/sprite.h"
#include "undo/objects_container.h"
#include "undo/undoers_collector.h"
#include "undoers/add_palette.h"
#include "undoers/object_io.h"
using namespace undo;
using namespace undoers;
RemovePalette::RemovePalette(ObjectsContainer* objects, Sprite* sprite, Palette* palette)
RemovePalette::RemovePalette(ObjectsContainer* objects, Sprite* sprite, int paletteFrame)
: m_spriteId(objects->addObject(sprite))
{
write_object(objects, m_stream, palette, raster::write_palette);
raster::write_palette(m_stream, sprite->getPalette(paletteFrame));
}
void RemovePalette::dispose()
@ -45,10 +45,10 @@ void RemovePalette::dispose()
void RemovePalette::revert(ObjectsContainer* objects, UndoersCollector* redoers)
{
Sprite* sprite = objects->getObjectT<Sprite>(m_spriteId);
UniquePtr<Palette> palette(read_object<Palette>(objects, m_stream, raster::read_palette));
UniquePtr<Palette> palette(raster::read_palette(m_stream));
// Push an AddPalette as redoer
redoers->pushUndoer(new AddPalette(objects, sprite, palette));
redoers->pushUndoer(new AddPalette(objects, sprite, palette->getFrame()));
sprite->setPalette(palette, true);

View File

@ -24,7 +24,6 @@
#include <sstream>
class Palette;
class Sprite;
namespace undoers {
@ -32,7 +31,7 @@ namespace undoers {
class RemovePalette : public UndoerBase
{
public:
RemovePalette(undo::ObjectsContainer* objects, Sprite* sprite, Palette* palette);
RemovePalette(undo::ObjectsContainer* objects, Sprite* sprite, int paletteFrame);
void dispose() OVERRIDE;
int getMemSize() const OVERRIDE { return sizeof(*this) + getStreamSize(); }

View File

@ -26,7 +26,6 @@
#include "raster/mask_io.h"
#include "undo/objects_container.h"
#include "undo/undoers_collector.h"
#include "undoers/object_io.h"
using namespace undo;
using namespace undoers;
@ -36,7 +35,7 @@ SetMask::SetMask(ObjectsContainer* objects, Document* document)
, m_isMaskVisible(document->isMaskVisible())
{
if (m_isMaskVisible)
write_object(objects, m_stream, document->getMask(), raster::write_mask);
raster::write_mask(m_stream, document->getMask());
}
void SetMask::dispose()
@ -52,7 +51,7 @@ void SetMask::revert(ObjectsContainer* objects, UndoersCollector* redoers)
redoers->pushUndoer(new SetMask(objects, document));
if (m_isMaskVisible) {
UniquePtr<Mask> mask(read_object<Mask>(objects, m_stream, raster::read_mask));
UniquePtr<Mask> mask(raster::read_mask(m_stream));
document->setMask(mask);