From 1855d1cf13de5c9f4cf84fc07ab4b5053cae5295 Mon Sep 17 00:00:00 2001 From: Peter Kohaut Date: Wed, 5 Dec 2018 18:18:13 +0100 Subject: BLADERUNNER: Add in-game saving screen --- engines/bladerunner/ui/kia_section_save.h | 61 ++++++++++++++++++++++++++++++- 1 file changed, 60 insertions(+), 1 deletion(-) (limited to 'engines/bladerunner/ui/kia_section_save.h') diff --git a/engines/bladerunner/ui/kia_section_save.h b/engines/bladerunner/ui/kia_section_save.h index 5e2f5f26ac..d3af65288e 100644 --- a/engines/bladerunner/ui/kia_section_save.h +++ b/engines/bladerunner/ui/kia_section_save.h @@ -25,13 +25,72 @@ #include "bladerunner/ui/kia_section_base.h" +#include "common/scummsys.h" +#include "common/str.h" + +#include "engines/savestate.h" + +namespace Graphics { +struct Surface; +} + namespace BladeRunner { +class UIContainer; +class UIScrollBox; +class UIInputBox; +class UIImagePicker; + class KIASectionSave : public KIASectionBase { + enum State { + kStateNormal = 0, + kStateOverwrite = 1, + kStateDelete = 2 + }; + + UIContainer *_uiContainer; + UIScrollBox *_scrollBox; + UIInputBox *_inputBox; + UIImagePicker *_buttons; + + uint32 _timeLast; + uint32 _timeLeft; + + SaveStateList _saveList; + + State _state; + + int _mouseX; + int _mouseY; + + int _hoveredLineId; + int _selectedLineId; + int _newSaveLineId; public: - KIASectionSave(BladeRunnerEngine *vm): KIASectionBase(vm){} + KIASectionSave(BladeRunnerEngine *vm); + ~KIASectionSave(); + + void open() override; + void close() override; + + void draw(Graphics::Surface &surface) override; + + void handleKeyUp(const Common::KeyState &kbd) override; + void handleKeyDown(const Common::KeyState &kbd) override; + void handleMouseMove(int mouseX, int mouseY) override; + void handleMouseDown(bool mainButton) override; + void handleMouseUp(bool mainButton) override; + +private: + static void scrollBoxCallback(void *callbackData, void *source, int lineData, int mouseButton); + static void inputBoxCallback(void *callbackData, void *source); + + static void onButtonPressed(int buttonId, void *callbackData); + void changeState(State state); + void save(); + void deleteSave(); }; } // End of namespace BladeRunner -- cgit v1.2.3