aboutsummaryrefslogtreecommitdiff
path: root/engines/mads/messages.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/mads/messages.cpp')
-rw-r--r--engines/mads/messages.cpp45
1 files changed, 44 insertions, 1 deletions
diff --git a/engines/mads/messages.cpp b/engines/mads/messages.cpp
index e498ab9621..8ec6350236 100644
--- a/engines/mads/messages.cpp
+++ b/engines/mads/messages.cpp
@@ -36,6 +36,9 @@ KernelMessages::KernelMessages(MADSEngine *vm): _vm(vm) {
}
_talkFont = _vm->_font->getFont(FONT_CONVERSATION);
+
+ _randomMaxMessages = 0;
+ resetRandomMessages();
}
KernelMessages::~KernelMessages() {
@@ -138,7 +141,7 @@ void KernelMessages::reset() {
remove(i);
_talkFont = _vm->_font->getFont(FONT_CONVERSATION);
- warning("TODO: KernelMessages::reset - sub_20454");
+ resetRandomMessages();
}
void KernelMessages::update() {
@@ -303,6 +306,46 @@ void KernelMessages::setQuoted(int msgIndex, int numTicks, bool quoted) {
}
}
+void KernelMessages::resetRandomMessages() {
+ for (int i = 0; i < RANDOM_MESSAGE_SIZE; ++i) {
+ _randomMessages[i]._handle = -1;
+ _randomMessages[i]._quote = -1;
+ }
+}
+
+#define RANDOM_MESSAGE_TRIGGER 240
+
+void KernelMessages::randomServer() {
+ if ((_vm->_game->_trigger >= RANDOM_MESSAGE_TRIGGER) &&
+ (_vm->_game->_trigger < (RANDOM_MESSAGE_TRIGGER + _randomMaxMessages))) {
+ _randomMessages[_vm->_game->_trigger - RANDOM_MESSAGE_TRIGGER]._handle = -1;
+ _randomMessages[_vm->_game->_trigger - RANDOM_MESSAGE_TRIGGER]._quote = -1;
+ }
+}
+
+int KernelMessages::checkRandom() {
+ int total = 0;
+
+ for (int i = 0; i < _randomMaxMessages; ++i) {
+ if (_randomMessages[i]._handle >= 0)
+ ++total;
+ }
+
+ return total;
+}
+
+bool KernelMessages::generateRandom(int major, int minor) {
+ // TODO
+ return false;
+}
+
+void KernelMessages::initRandomMessages(int maxSimultaneousMessages,
+ const Common::Rect &bounds, int minYSpacing, int scrollRate,
+ int color, int duration, int quoteId, ...) {
+ // TODO
+}
+
+
/*------------------------------------------------------------------------*/
TextDisplay::TextDisplay() {