aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorLars Persson2010-10-13 07:14:38 +0000
committerLars Persson2010-10-13 07:14:38 +0000
commitc0e2f1c6f8f7df66ae6c090f6c16aea14ebe8bf3 (patch)
tree812422f7f16527311b658b7b196d55753372d6f6 /engines
parent6527c01cb501958bc04117da3d965b956e77704c (diff)
downloadscummvm-rg350-c0e2f1c6f8f7df66ae6c090f6c16aea14ebe8bf3.tar.gz
scummvm-rg350-c0e2f1c6f8f7df66ae6c090f6c16aea14ebe8bf3.tar.bz2
scummvm-rg350-c0e2f1c6f8f7df66ae6c090f6c16aea14ebe8bf3.zip
TOON: Updated code to build properly for WINSCW and GCCE(symbian)
Added templates to MAX & MIN functions. Correct usage of OpcodeV2(instead of Opcode) Match implementation with function definition. (int32 is not == int on all platforms) svn-id: r53401
Diffstat (limited to 'engines')
-rw-r--r--engines/toon/audio.cpp6
-rw-r--r--engines/toon/audio.h2
-rw-r--r--engines/toon/character.cpp8
-rw-r--r--engines/toon/path.cpp24
-rw-r--r--engines/toon/script.cpp2
-rw-r--r--engines/toon/script.h7
-rw-r--r--engines/toon/script_func.cpp3
-rw-r--r--engines/toon/script_func.h5
-rw-r--r--engines/toon/toon.cpp6
9 files changed, 33 insertions, 30 deletions
diff --git a/engines/toon/audio.cpp b/engines/toon/audio.cpp
index 496d626201..2ae2b2cc31 100644
--- a/engines/toon/audio.cpp
+++ b/engines/toon/audio.cpp
@@ -128,7 +128,7 @@ void AudioManager::playVoice(int32 id, bool genericVoice) {
}
-void AudioManager::playSFX(int32 id, int32 volume , bool genericSFX) {
+void AudioManager::playSFX(int32 id, int volume , bool genericSFX) {
debugC(4, kDebugAudio, "playSFX(%d, %d)", id, (genericSFX) ? 1 : 0);
// find a free SFX channel
@@ -218,7 +218,7 @@ AudioStreamInstance::AudioStreamInstance(AudioManager *man, Audio::Mixer *mixer,
}
}
-int32 AudioStreamInstance::readBuffer(int16 *buffer, const int numSamples) {
+int AudioStreamInstance::readBuffer(int16 *buffer, const int numSamples) {
debugC(5, kDebugAudio, "readBuffer(buffer, %d)", numSamples);
handleFade(numSamples);
@@ -353,7 +353,7 @@ void AudioStreamInstance::play(bool fade, Audio::Mixer::SoundType soundType) {
handleFade(0);
}
-void AudioStreamInstance::handleFade(int numSamples) {
+void AudioStreamInstance::handleFade(int32 numSamples) {
debugC(5, kDebugAudio, "handleFade(%d)", numSamples);
// Fading enabled only for music
diff --git a/engines/toon/audio.h b/engines/toon/audio.h
index 5a8274e086..4527e1fe4b 100644
--- a/engines/toon/audio.h
+++ b/engines/toon/audio.h
@@ -54,7 +54,7 @@ public:
void setVolume(int32 volume);
protected:
- int32 readBuffer(int16 *buffer, const int numSamples);
+ int readBuffer(int16 *buffer, const int numSamples);
bool isStereo() const {
return false;
}
diff --git a/engines/toon/character.cpp b/engines/toon/character.cpp
index 50913f89c7..81e175d663 100644
--- a/engines/toon/character.cpp
+++ b/engines/toon/character.cpp
@@ -96,8 +96,8 @@ bool Character::walkTo(int32 newPosX, int32 newPosY) {
_vm->getPathFinding()->resetBlockingRects();
if (_id == 1) {
- int32 sizeX = MAX(5, 40 * _vm->getDrew()->getScale() / 1024);
- int32 sizeY = MAX(2, 20 * _vm->getDrew()->getScale() / 1024);
+ int32 sizeX = MAX<int32>(5, 40 * _vm->getDrew()->getScale() / 1024);
+ int32 sizeY = MAX<int32>(2, 20 * _vm->getDrew()->getScale() / 1024);
_vm->getPathFinding()->addBlockingEllipse(_vm->getDrew()->getFinalX(), _vm->getDrew()->getFinalY(), sizeX, sizeY);
}
@@ -126,7 +126,7 @@ bool Character::walkTo(int32 newPosX, int32 newPosY) {
if (_blockingWalk) {
while ((_x != newPosX || _y != newPosY) && _currentPathNode < _currentPathNodeCount && !_vm->shouldQuitGame()) {
if (_currentPathNode < _currentPathNodeCount - 10) {
- int32 delta = MIN(10, _currentPathNodeCount - _currentPathNode);
+ int32 delta = MIN<int32>(10, _currentPathNodeCount - _currentPathNode);
int32 dx = _currentPathX[_currentPathNode+delta] - _x;
int32 dy = _currentPathY[_currentPathNode+delta] - _y;
setFacing(getFacingFromDirection(dx, dy));
@@ -265,7 +265,7 @@ void Character::update(int32 timeIncrement) {
if ((_flags & 0x1) && _currentPathNodeCount > 0) {
if (_currentPathNode < _currentPathNodeCount) {
if (_currentPathNode < _currentPathNodeCount - 10) {
- int32 delta = MIN(10, _currentPathNodeCount - _currentPathNode);
+ int32 delta = MIN<int32>(10, _currentPathNodeCount - _currentPathNode);
int32 dx = _currentPathX[_currentPathNode+delta] - _x;
int32 dy = _currentPathY[_currentPathNode+delta] - _y;
setFacing(getFacingFromDirection(dx, dy));
diff --git a/engines/toon/path.cpp b/engines/toon/path.cpp
index 484e621a64..cec9c7dbf0 100644
--- a/engines/toon/path.cpp
+++ b/engines/toon/path.cpp
@@ -37,13 +37,13 @@ int32 PathFindingHeap::init(int32 size) {
return size;
}
-int PathFindingHeap::unload() {
+int32 PathFindingHeap::unload() {
if (_data)
delete[] _data;
return 0;
}
-int PathFindingHeap::clear() {
+int32 PathFindingHeap::clear() {
//debugC(1, kDebugPath, "clear()");
_count = 0;
@@ -51,7 +51,7 @@ int PathFindingHeap::clear() {
return 1;
}
-int PathFindingHeap::push(int x, int y, int weight) {
+int32 PathFindingHeap::push(int32 x, int32 y, int32 weight) {
//debugC(6, kDebugPath, "push(%d, %d, %d)", x, y, weight);
_count++;
@@ -193,7 +193,7 @@ int32 PathFinding::findClosestWalkingPoint(int32 xx, int32 yy, int32 *fxx, int32
}
}
-int PathFinding::findPath(int32 x, int32 y, int32 destx, int32 desty) {
+int32 PathFinding::findPath(int32 x, int32 y, int32 destx, int32 desty) {
debugC(1, kDebugPath, "findPath(%d, %d, %d, %d)", x, y, destx, desty);
if (x == destx && y == desty) {
@@ -220,10 +220,10 @@ int PathFinding::findPath(int32 x, int32 y, int32 destx, int32 desty) {
_heap->pop(&curX, &curY, &curWeight);
int curNode = curX + curY * _width;
- int32 endX = MIN(curX + 1, _width - 1);
- int32 endY = MIN(curY + 1, _height - 1);
- int32 startX = MAX(curX - 1, 0);
- int32 startY = MAX(curY - 1, 0);
+ int32 endX = MIN<int32>(curX + 1, _width - 1);
+ int32 endY = MIN<int32>(curY + 1, _height - 1);
+ int32 startX = MAX<int32>(curX - 1, 0);
+ int32 startY = MAX<int32>(curY - 1, 0);
for (int32 px = startX; px <= endX; px++) {
for (int py = startY; py <= endY; py++) {
@@ -271,10 +271,10 @@ next:
int32 bestX = -1;
int32 bestY = -1;
- int32 endX = MIN(curX + 1, _width - 1);
- int32 endY = MIN(curY + 1, _height - 1);
- int32 startX = MAX(curX - 1, 0);
- int32 startY = MAX(curY - 1, 0);
+ int32 endX = MIN<int32>(curX + 1, _width - 1);
+ int32 endY = MIN<int32>(curY + 1, _height - 1);
+ int32 startX = MAX<int32>(curX - 1, 0);
+ int32 startY = MAX<int32>(curY - 1, 0);
for (int32 px = startX; px <= endX; px++) {
for (int32 py = startY; py <= endY; py++) {
diff --git a/engines/toon/script.cpp b/engines/toon/script.cpp
index 06d482f4e2..31d9f94f36 100644
--- a/engines/toon/script.cpp
+++ b/engines/toon/script.cpp
@@ -102,7 +102,7 @@ bool EMCInterpreter::callback(Common::IFFChunk &chunk) {
return false;
}
-bool EMCInterpreter::load(const char *filename, EMCData *scriptData, const Common::Array<const Opcode *> *opcodes) {
+bool EMCInterpreter::load(const char *filename, EMCData *scriptData, const Common::Array<const OpcodeV2 *> *opcodes) {
Common::SeekableReadStream *stream = _vm->resources()->openFile(filename);
if (!stream) {
error("Couldn't open script file '%s'", filename);
diff --git a/engines/toon/script.h b/engines/toon/script.h
index 47e04e8c82..d7f45096c2 100644
--- a/engines/toon/script.h
+++ b/engines/toon/script.h
@@ -36,7 +36,8 @@
namespace Toon {
struct EMCState;
-typedef Common::Functor1<EMCState *, int> Opcode;
+class ScriptFunc;
+typedef Common::Functor1Mem<EMCState *, int32, ScriptFunc> OpcodeV2;
struct EMCData {
char filename[13];
@@ -46,7 +47,7 @@ struct EMCData {
uint16 *ordr;
uint16 dataSize;
- const Common::Array<const Opcode *> *sysFuncs;
+ const Common::Array<const OpcodeV2 *> *sysFuncs;
};
struct EMCState {
@@ -98,7 +99,7 @@ class EMCInterpreter {
public:
EMCInterpreter(ToonEngine *vm);
- bool load(const char *filename, EMCData *data, const Common::Array<const Opcode *> *opcodes);
+ bool load(const char *filename, EMCData *data, const Common::Array<const OpcodeV2 *> *opcodes);
void unload(EMCData *data);
void init(EMCState *scriptState, const EMCData *data);
diff --git a/engines/toon/script_func.cpp b/engines/toon/script_func.cpp
index 821a8971de..8755caeab9 100644
--- a/engines/toon/script_func.cpp
+++ b/engines/toon/script_func.cpp
@@ -34,13 +34,12 @@
namespace Toon {
-typedef Common::Functor1Mem<EMCState *, int32, ScriptFunc> OpcodeV2;
#define SetOpcodeTable(x) table = &x;
#define Opcode(x) table->push_back(new OpcodeV2(this, &ScriptFunc::x))
#define OpcodeUnImpl() table->push_back(new OpcodeV2(this, 0))
ScriptFunc::ScriptFunc(ToonEngine *vm) {
- Common::Array<const Opcode *> *table = 0;
+ Common::Array<const OpcodeV2 *> *table = 0;
_vm = vm;
_opcodes.reserve(176);
diff --git a/engines/toon/script_func.h b/engines/toon/script_func.h
index 2f8972134c..76b7b0ada1 100644
--- a/engines/toon/script_func.h
+++ b/engines/toon/script_func.h
@@ -31,12 +31,15 @@
namespace Toon {
+class ScriptFunc;
+
+typedef Common::Functor1Mem<EMCState *, int32, ScriptFunc> OpcodeV2;
class ScriptFunc {
public:
ScriptFunc(ToonEngine *vm);
~ScriptFunc(void);
- Common::Array<const Opcode *> _opcodes;
+ Common::Array<const OpcodeV2 *> _opcodes;
ToonEngine *_vm;
#define SYSFUNC(x) int32 x(EMCState*)
diff --git a/engines/toon/toon.cpp b/engines/toon/toon.cpp
index 7489f5c5d9..dae258adc1 100644
--- a/engines/toon/toon.cpp
+++ b/engines/toon/toon.cpp
@@ -1099,7 +1099,7 @@ void ToonEngine::loadCursor() {
setCursor(5);
}
-void ToonEngine::setCursor(int32 type, bool inventory, int32 offsetX, int32 offsetY) {
+void ToonEngine::setCursor(int32 type, bool inventory, int32 offsetX, int offsetY) {
static const int32 offsets[] = {
0, 1, 1, 6, 7, 1, 8, 10, 18, 10,
@@ -2234,7 +2234,7 @@ int32 ToonEngine::getConversationFlag(int32 locationId, int32 param) {
return 1;
}
-int ToonEngine::runConversationCommand(int16 **command) {
+int32 ToonEngine::runConversationCommand(int16 **command) {
// Strangerke - Commented (not used)
// int16 com = **command;
@@ -2822,7 +2822,7 @@ bool ToonEngine::loadGame(int32 slot) {
_sceneAnimationScripts[i]._active = loadFile->readByte();
_sceneAnimationScripts[i]._frozen = loadFile->readByte();
int32 oldTimer = loadFile->readSint32BE();
- _sceneAnimationScripts[i]._lastTimer = MAX(0,oldTimer + timerDiff);
+ _sceneAnimationScripts[i]._lastTimer = MAX<int32>(0,oldTimer + timerDiff);
_script->loadState(&_sceneAnimationScripts[i]._state, loadFile);
}