aboutsummaryrefslogtreecommitdiff
path: root/engines/bladerunner/ui/kia_section_suspects.h
diff options
context:
space:
mode:
authorPeter Kohaut2018-01-28 20:59:12 +0100
committerPeter Kohaut2018-01-29 18:32:09 +0100
commit0c930b06ed7030686c7774f18126b3d37a678d60 (patch)
tree04322a848f17c3d8fc4ced7e89e6ce6dbf73dcb3 /engines/bladerunner/ui/kia_section_suspects.h
parentfa28602abffd47988dd7d797e4c48d9e3faf47ae (diff)
downloadscummvm-rg350-0c930b06ed7030686c7774f18126b3d37a678d60.tar.gz
scummvm-rg350-0c930b06ed7030686c7774f18126b3d37a678d60.tar.bz2
scummvm-rg350-0c930b06ed7030686c7774f18126b3d37a678d60.zip
BLADERUNNER: Added KIA interfaces
Crimes interface done Suspects interface done Added some game constants Fixed font rendering for other languages Fixed anoying clang warning
Diffstat (limited to 'engines/bladerunner/ui/kia_section_suspects.h')
-rw-r--r--engines/bladerunner/ui/kia_section_suspects.h93
1 files changed, 90 insertions, 3 deletions
diff --git a/engines/bladerunner/ui/kia_section_suspects.h b/engines/bladerunner/ui/kia_section_suspects.h
index 94cf1bfc06..0cc957f609 100644
--- a/engines/bladerunner/ui/kia_section_suspects.h
+++ b/engines/bladerunner/ui/kia_section_suspects.h
@@ -25,15 +25,102 @@
#include "bladerunner/ui/kia_section_base.h"
+#include "common/array.h"
+
namespace BladeRunner {
+class ActorClues;
+class BladeRunnerEngine;
+class Shape;
+class UICheckBox;
+class UIContainer;
+class UIImagePicker;
+class UIScrollBox;
+
class KIASectionSuspects : public KIASectionBase {
+ // _vm->_gameInfo->getClueCount()
+ static const int kClueCount = 288;
+
+ struct AcquiredClue {
+ int clueId;
+ int actorId;
+ };
+
+ bool _isOpen;
+
+ UIContainer *_uiContainer;
+ UIImagePicker *_buttons;
+ UIScrollBox *_cluesScrollBox;
+ UIScrollBox *_crimesScrollBox;
+ UICheckBox *_whereaboutsCheckBox;
+ UICheckBox *_MOCheckBox;
+ UICheckBox *_replicantCheckBox;
+ UICheckBox *_nonReplicantCheckBox;
+ UICheckBox *_othersCheckBox;
+
+ bool _whereaboutsFilter;
+ bool _MOFilter;
+ bool _replicantFilter;
+ bool _nonReplicantFilter;
+ bool _othersFilter;
+
+ ActorClues *_clues;
+
+ int _acquiredClueCount;
+ AcquiredClue _acquiredClues[kClueCount];
+
+ int _suspectSelected;
+ int _suspectsFoundCount;
+ Common::Array<bool> _suspectsFound;
+ Common::Array<bool> _suspectsWithIdentity;
+
+ int _mouseX;
+ int _mouseY;
+
+ int _suspectPhotoShapeId;
+ Shape *_suspectPhotoShape;
public:
- KIASectionSuspects(BladeRunnerEngine *vm): KIASectionBase(vm) {}
+ int _crimeSelected;
+
+public:
+ KIASectionSuspects(BladeRunnerEngine *vm, ActorClues *clues);
+ ~KIASectionSuspects();
+
+ void open();
+ void close();
+
+ void draw(Graphics::Surface &surface);
+
+ void handleMouseMove(int mouseX, int mouseY);
+ void handleMouseDown(bool mainButton);
+ void handleMouseUp(bool mainButton);
+
+ void saveToLog();
+ void loadFromLog();
+
+ void selectSuspect(int suspectId);
+
+ static const char *scrambleSuspectsName(const char *name);
+
+private:
+ static void scrollBoxCallback(void *callbackData, void *source, int lineData, int mouseButton);
+ static void checkBoxCallback(void *callbackData, void *source);
+ static void mouseUpCallback(int buttonId, void *callbackData);
+
+ void onButtonPressed(int buttonId);
+
+ void populateAcquiredClues();
+ void populateSuspects();
+ void populateCrimes();
+ void populateVisibleClues();
+ void updateSuspectPhoto();
+
+ void nextSuspect();
+ void prevSuspect();
- void saveToLog() {}
- void loadFromLog() {}
+ void enableAllFilters();
+ void disableAllFilters();
};
} // End of namespace BladeRunner