aboutsummaryrefslogtreecommitdiff
path: root/engines/titanic/support/time_event_info.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/titanic/support/time_event_info.cpp')
-rw-r--r--engines/titanic/support/time_event_info.cpp35
1 files changed, 18 insertions, 17 deletions
diff --git a/engines/titanic/support/time_event_info.cpp b/engines/titanic/support/time_event_info.cpp
index a1922338d1..1787741809 100644
--- a/engines/titanic/support/time_event_info.cpp
+++ b/engines/titanic/support/time_event_info.cpp
@@ -91,17 +91,17 @@ void CTimeEventInfoList::set44(uint id, uint val) {
uint CTimeEventInfo::_nextId;
CTimeEventInfo::CTimeEventInfo() : ListItem(), _lockCounter(0),
- _field14(0), _firstDuration(0), _duration(0), _target(nullptr),
+ _repeated(false), _firstDuration(0), _repeatDuration(0), _target(nullptr),
_actionVal(0), _field2C(0), _field30(0), _timerCtr(0),
- _lastTimerTicks(0), _field3C(0), _done(false), _field44(0) {
+ _lastTimerTicks(0), _relativeTicks(0), _done(false), _field44(0) {
_id = _nextId++;
}
-CTimeEventInfo::CTimeEventInfo(uint ticks, uint f14, uint firstDuration,
- uint duration, CTreeItem *target, int timerVal3, const CString &action) :
- ListItem(), _lockCounter(0), _field14(f14), _firstDuration(firstDuration),
- _duration(duration), _target(target), _actionVal(0), _field2C(0), _field30(0),
- _timerCtr(0), _lastTimerTicks(ticks), _field3C(0), _done(false),
+CTimeEventInfo::CTimeEventInfo(uint ticks, bool repeated, uint firstDuration,
+ uint repeatDuration, CTreeItem *target, int endVal, const CString &action) :
+ ListItem(), _lockCounter(0), _repeated(repeated), _firstDuration(firstDuration),
+ _repeatDuration(repeatDuration), _target(target), _actionVal(endVal), _field2C(0),
+ _field30(0), _timerCtr(0), _lastTimerTicks(ticks), _relativeTicks(0), _done(false),
_field44(true) {
_id = _nextId++;
}
@@ -114,13 +114,13 @@ void CTimeEventInfo::save(SimpleFile *file, int indent) {
targetName = _target->getName();
file->writeQuotedLine(targetName, indent);
file->writeNumberLine(_id, indent);
- file->writeNumberLine(_field14, indent);
+ file->writeNumberLine(_repeated, indent);
file->writeNumberLine(_firstDuration, indent);
- file->writeNumberLine(_duration, indent);
+ file->writeNumberLine(_repeatDuration, indent);
file->writeNumberLine(_actionVal, indent);
file->writeQuotedLine(_action, indent);
file->writeNumberLine(_timerCtr, indent);
- file->writeNumberLine(_field3C, indent);
+ file->writeNumberLine(_relativeTicks, indent);
file->writeNumberLine(_done, indent);
file->writeNumberLine(_field44, indent);
}
@@ -132,13 +132,13 @@ void CTimeEventInfo::load(SimpleFile *file) {
if (!val) {
_targetName = file->readString();
_id = file->readNumber();
- _field14 = file->readNumber();
+ _repeated = file->readNumber();
_firstDuration = file->readNumber();
- _duration = file->readNumber();
+ _repeatDuration = file->readNumber();
_actionVal = file->readNumber();
_action = file->readString();
_timerCtr = file->readNumber();
- _field3C = file->readNumber();
+ _relativeTicks = file->readNumber();
_done = file->readNumber() != 0;
_field44 = file->readNumber();
_target = nullptr;
@@ -155,7 +155,7 @@ void CTimeEventInfo::postLoad(uint ticks, CProjectItem *project) {
if (!_target)
_done = true;
- _lastTimerTicks = ticks + _field3C;
+ _lastTimerTicks = ticks + _relativeTicks;
if (_id >= _nextId)
_nextId = _id + 1;
@@ -163,7 +163,7 @@ void CTimeEventInfo::postLoad(uint ticks, CProjectItem *project) {
}
void CTimeEventInfo::preSave(uint ticks) {
- _field3C = _lastTimerTicks - ticks;
+ _relativeTicks = _lastTimerTicks - ticks;
lock();
}
@@ -176,7 +176,7 @@ bool CTimeEventInfo::update(uint ticks) {
return false;
if (_timerCtr) {
- if (ticks > (_lastTimerTicks + _duration)) {
+ if (ticks > (_lastTimerTicks + _repeatDuration)) {
++_timerCtr;
_lastTimerTicks = ticks;
@@ -195,7 +195,8 @@ bool CTimeEventInfo::update(uint ticks) {
timerMsg.execute(_target);
}
- if (!_field14)
+ if (!_repeated)
+ // Event is done, and can be removed
return true;
}
}