[Scummvm-cvs-logs] SF.net SVN: scummvm:[33727] scummvm/trunk/engines/cine
buddha_ at users.sourceforge.net
buddha_ at users.sourceforge.net
Sun Aug 10 00:38:05 CEST 2008
Revision: 33727
http://scummvm.svn.sourceforge.net/scummvm/?rev=33727&view=rev
Author: buddha_
Date: 2008-08-09 22:38:03 +0000 (Sat, 09 Aug 2008)
Log Message:
-----------
Converted zoneData and zoneQuery tables from plain array types to Common::Array. Should help catch out of bounds access errors that may cause memory corruption.
Modified Paths:
--------------
scummvm/trunk/engines/cine/cine.cpp
scummvm/trunk/engines/cine/main_loop.cpp
scummvm/trunk/engines/cine/various.cpp
scummvm/trunk/engines/cine/various.h
Modified: scummvm/trunk/engines/cine/cine.cpp
===================================================================
--- scummvm/trunk/engines/cine/cine.cpp 2008-08-09 20:55:01 UTC (rev 33726)
+++ scummvm/trunk/engines/cine/cine.cpp 2008-08-09 22:38:03 UTC (rev 33727)
@@ -132,6 +132,14 @@
animDataTable.resize(NUM_MAX_ANIMDATA);
freeAnimDataTable();
+ // Resize zone data table to its correct size and reset all its elements
+ zoneData.resize(NUM_MAX_ZONE);
+ Common::set_to(zoneData.begin(), zoneData.end(), 0);
+
+ // Resize zone query table to its correct size and reset all its elements
+ zoneQuery.resize(NUM_MAX_ZONE);
+ Common::set_to(zoneQuery.begin(), zoneQuery.end(), 0);
+
_timerDelayMultiplier = 12; // Set default speed
setupOpcodes();
Modified: scummvm/trunk/engines/cine/main_loop.cpp
===================================================================
--- scummvm/trunk/engines/cine/main_loop.cpp 2008-08-09 20:55:01 UTC (rev 33726)
+++ scummvm/trunk/engines/cine/main_loop.cpp 2008-08-09 22:38:03 UTC (rev 33727)
@@ -341,9 +341,7 @@
// Clear the zoneQuery table (Operation Stealth specific)
if (g_cine->getGameType() == Cine::GType_OS) {
- for (uint i = 0; i < NUM_MAX_ZONE; i++) {
- zoneQuery[i] = 0;
- }
+ Common::set_to(zoneQuery.begin(), zoneQuery.end(), 0);
}
if (g_cine->getGameType() == Cine::GType_OS) {
Modified: scummvm/trunk/engines/cine/various.cpp
===================================================================
--- scummvm/trunk/engines/cine/various.cpp 2008-08-09 20:55:01 UTC (rev 33726)
+++ scummvm/trunk/engines/cine/various.cpp 2008-08-09 22:38:03 UTC (rev 33727)
@@ -126,8 +126,8 @@
int16 objListTab[20];
uint16 exitEngine;
-uint16 zoneData[NUM_MAX_ZONE];
-uint16 zoneQuery[NUM_MAX_ZONE]; //!< Only exists in Operation Stealth
+Common::Array<uint16> zoneData;
+Common::Array<uint16> zoneQuery; //!< Only exists in Operation Stealth
/*! \brief Move the player character using the keyboard
* \param x Negative values move left, positive right, zero not at all
Modified: scummvm/trunk/engines/cine/various.h
===================================================================
--- scummvm/trunk/engines/cine/various.h 2008-08-09 20:55:01 UTC (rev 33726)
+++ scummvm/trunk/engines/cine/various.h 2008-08-09 22:38:03 UTC (rev 33727)
@@ -129,8 +129,8 @@
};
#define NUM_MAX_ZONE 16
-extern uint16 zoneData[NUM_MAX_ZONE];
-extern uint16 zoneQuery[NUM_MAX_ZONE];
+extern Common::Array<uint16> zoneData;
+extern Common::Array<uint16> zoneQuery;
void addMessage(byte param1, int16 param2, int16 param3, int16 param4, int16 param5);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list