WINTERMUTE: Reset renderTicket-system on SaveGame-load

This commit is contained in:
Einar Johan Trøan Sømåen
2012-12-02 07:55:59 +01:00
parent c00ee9d801
commit 72b198b752
3 changed files with 15 additions and 2 deletions
+1 -1
View File
@@ -179,7 +179,7 @@ public:
void setIndicator(int width, int height, int x, int y, uint32 color);
void persistSaveLoadImages(BasePersistenceManager *persistMgr);
void initSaveLoad(bool isSaving, bool quickSave = false);
void endSaveLoad();
virtual void endSaveLoad();
void setLoadingScreen(const char *filename, int x, int y);
void setSaveImage(const char *filename, int x, int y);
@@ -612,4 +612,17 @@ BaseSurface *BaseRenderOSystem::createSurface() {
return new BaseSurfaceOSystem(_gameRef);
}
void BaseRenderOSystem::endSaveLoad() {
BaseRenderer::endSaveLoad();
// Clear the scale-buffered tickets as we just loaded.
RenderQueueIterator it = _renderQueue.begin();
while (it != _renderQueue.end()) {
RenderTicket *ticket = *it;
it = _renderQueue.erase(it);
delete ticket;
}
_drawNum = 1;
}
} // end of namespace Wintermute
@@ -97,7 +97,7 @@ public:
float getScaleRatioY() const {
return _ratioY;
}
void endSaveLoad();
void drawSurface(BaseSurfaceOSystem *owner, const Graphics::Surface *surf, Common::Rect *srcRect, Common::Rect *dstRect, bool mirrorX, bool mirrorY, bool disableAlpha = false);
BaseSurface *createSurface();
private: