aboutsummaryrefslogtreecommitdiff
path: root/engines/cine/cine.cpp
diff options
context:
space:
mode:
authorKari Salminen2008-08-09 20:50:10 +0000
committerKari Salminen2008-08-09 20:50:10 +0000
commit09119829549c13c06aa5af80ca01197eb8ce7cda (patch)
treef14702cbdc935a58cb899870e0deb285dd80cca7 /engines/cine/cine.cpp
parentc60565e108a5e541b00f0f4b6ab1e7dfa476945c (diff)
downloadscummvm-rg350-09119829549c13c06aa5af80ca01197eb8ce7cda.tar.gz
scummvm-rg350-09119829549c13c06aa5af80ca01197eb8ce7cda.tar.bz2
scummvm-rg350-09119829549c13c06aa5af80ca01197eb8ce7cda.zip
Converted objectTable from a plain array to a Common::Array. Should help to catch out of bounds access errors that may cause memory corruption.
svn-id: r33725
Diffstat (limited to 'engines/cine/cine.cpp')
-rw-r--r--engines/cine/cine.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/engines/cine/cine.cpp b/engines/cine/cine.cpp
index 4726e47732..900f1678db 100644
--- a/engines/cine/cine.cpp
+++ b/engines/cine/cine.cpp
@@ -124,6 +124,10 @@ int CineEngine::modifyGameSpeed(int speedChange) {
}
void CineEngine::initialize() {
+ // Resize object table to its correct size and reset all its elements
+ objectTable.resize(NUM_MAX_OBJECT);
+ resetObjectTable();
+
_timerDelayMultiplier = 12; // Set default speed
setupOpcodes();
@@ -160,8 +164,7 @@ void CineEngine::initialize() {
freeAnimDataTable();
overlayList.clear();
messageTable.clear();
-
- memset(objectTable, 0, sizeof(objectTable));
+ resetObjectTable();
var8 = 0;