diff options
Diffstat (limited to 'src/interface/SaveButton.cpp')
| -rw-r--r-- | src/interface/SaveButton.cpp | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/src/interface/SaveButton.cpp b/src/interface/SaveButton.cpp index 6e42169..87b80a6 100644 --- a/src/interface/SaveButton.cpp +++ b/src/interface/SaveButton.cpp @@ -117,7 +117,7 @@ SaveButton::SaveButton(Point position, Point size, SaveFile * file): SaveButton::~SaveButton() { - RequestBroker::Ref().DetachThumbnailListener(this); + RequestBroker::Ref().DetachRequestListener(this); if(thumbnail) delete thumbnail; @@ -129,13 +129,14 @@ SaveButton::~SaveButton() delete file; } -void SaveButton::OnThumbnailReady(Thumbnail * thumb) +void SaveButton::OnResponseReady(void * imagePtr) { - if(thumb) + VideoBuffer * image = (VideoBuffer*)imagePtr; + if(image) { if(thumbnail) delete thumbnail; - thumbnail = thumb; + thumbnail = image; waitingForThumb = false; } } @@ -144,23 +145,25 @@ void SaveButton::Tick(float dt) { if(!thumbnail && !waitingForThumb) { + float scaleFactor = (Size.Y-25)/((float)YRES); + ui::Point thumbBoxSize = ui::Point(((float)XRES)*scaleFactor, ((float)YRES)*scaleFactor); if(save) { if(save->GetGameSave()) { waitingForThumb = true; - RequestBroker::Ref().RenderThumbnail(save->GetGameSave(), Size.X-3, Size.Y-25, this); + RequestBroker::Ref().RenderThumbnail(save->GetGameSave(), thumbBoxSize.X, thumbBoxSize.Y, this); } else if(save->GetID()) { waitingForThumb = true; - RequestBroker::Ref().RetrieveThumbnail(save->GetID(), save->GetVersion(), Size.X-3, Size.Y-25, this); + RequestBroker::Ref().RetrieveThumbnail(save->GetID(), save->GetVersion(), thumbBoxSize.X, thumbBoxSize.Y, this); } } else if(file && file->GetGameSave()) { waitingForThumb = true; - RequestBroker::Ref().RenderThumbnail(file->GetGameSave(), Size.X-3, Size.Y-25, this); + RequestBroker::Ref().RenderThumbnail(file->GetGameSave(), thumbBoxSize.X, thumbBoxSize.Y, this); } } } @@ -180,11 +183,11 @@ void SaveButton::Draw(const Point& screenPos) if(thumbnail) { - thumbBoxSize = ui::Point(thumbnail->Size.X, thumbnail->Size.Y); + thumbBoxSize = ui::Point(thumbnail->Width, thumbnail->Height); if(save && save->id) - g->draw_image(thumbnail->Data, screenPos.X-3+(Size.X-thumbBoxSize.X)/2, screenPos.Y+(Size.Y-21-thumbBoxSize.Y)/2, thumbnail->Size.X, thumbnail->Size.Y, 255); + g->draw_image(thumbnail, screenPos.X-3+(Size.X-thumbBoxSize.X)/2, screenPos.Y+(Size.Y-21-thumbBoxSize.Y)/2, 255); else - g->draw_image(thumbnail->Data, screenPos.X+(Size.X-thumbBoxSize.X)/2, screenPos.Y+(Size.Y-21-thumbBoxSize.Y)/2, thumbnail->Size.X, thumbnail->Size.Y, 255); + g->draw_image(thumbnail, screenPos.X+(Size.X-thumbBoxSize.X)/2, screenPos.Y+(Size.Y-21-thumbBoxSize.Y)/2, 255); } else { |
