[Scummvm-cvs-logs] SF.net SVN: scummvm: [26789] scummvm/trunk/engines/saga
thebluegr at users.sourceforge.net
thebluegr at users.sourceforge.net
Tue May 8 19:32:32 CEST 2007
Revision: 26789
http://scummvm.svn.sourceforge.net/scummvm/?rev=26789&view=rev
Author: thebluegr
Date: 2007-05-08 10:32:31 -0700 (Tue, 08 May 2007)
Log Message:
-----------
Moved functions getDoorState, setDoorState, getBGMaskType and validBGMaskPoint to scene.h and disabled some sanity checks to improve the speed of the pathfinding algorithm, after discussing with h00ligan
Modified Paths:
--------------
scummvm/trunk/engines/saga/scene.cpp
scummvm/trunk/engines/saga/scene.h
Modified: scummvm/trunk/engines/saga/scene.cpp
===================================================================
--- scummvm/trunk/engines/saga/scene.cpp 2007-05-08 16:09:47 UTC (rev 26788)
+++ scummvm/trunk/engines/saga/scene.cpp 2007-05-08 17:32:31 UTC (rev 26789)
@@ -502,28 +502,6 @@
bgInfo.bounds.setHeight(_bg.h);
}
-int Scene::getBGMaskType(const Point &testPoint) {
- uint offset;
- if (!_bgMask.loaded) {
- return 0;
- }
- offset = testPoint.x + testPoint.y * _bgMask.w;
- if (offset >= _bgMask.buf_len) {
- error("Scene::getBGMaskType offset 0x%X exceed bufferLength 0x%X", offset, (int)_bgMask.buf_len);
- }
-
- return (_bgMask.buf[offset] >> 4) & 0x0f;
-}
-
-bool Scene::validBGMaskPoint(const Point &testPoint) {
- if (!_bgMask.loaded) {
- error("Scene::validBGMaskPoint _bgMask not loaded");
- }
-
- return !((testPoint.x < 0) || (testPoint.x >= _bgMask.w) ||
- (testPoint.y < 0) || (testPoint.y >= _bgMask.h));
-}
-
bool Scene::canWalk(const Point &testPoint) {
int maskType;
@@ -571,20 +549,6 @@
bufferLength = _bgMask.buf_len;
}
-void Scene::setDoorState(int doorNumber, int doorState) {
- if ((doorNumber < 0) || (doorNumber >= SCENE_DOORS_MAX))
- error("Scene::setDoorState wrong doorNumber");
-
- _sceneDoors[doorNumber] = doorState;
-}
-
-int Scene::getDoorState(int doorNumber) {
- if ((doorNumber < 0) || (doorNumber >= SCENE_DOORS_MAX))
- error("Scene::getDoorState wrong doorNumber");
-
- return _sceneDoors[doorNumber];
-}
-
void Scene::initDoorsState() {
memcpy(_sceneDoors, initSceneDoors, sizeof (_sceneDoors) );
}
Modified: scummvm/trunk/engines/saga/scene.h
===================================================================
--- scummvm/trunk/engines/saga/scene.h 2007-05-08 16:09:47 UTC (rev 26788)
+++ scummvm/trunk/engines/saga/scene.h 2007-05-08 17:32:31 UTC (rev 26789)
@@ -34,6 +34,8 @@
namespace Saga {
+//#define SCENE_DEBUG // for scene debugging
+
#define SCENE_DOORS_MAX 16
#define NO_CHAPTER_CHANGE -2
@@ -233,13 +235,55 @@
void getBGMaskInfo(int &width, int &height, byte *&buffer, size_t &bufferLength);
int isBGMaskPresent() { return _bgMask.loaded; }
- int getBGMaskType(const Point &testPoint);
- bool validBGMaskPoint(const Point &testPoint);
+
+ int getBGMaskType(const Point &testPoint) {
+ uint offset;
+ if (!_bgMask.loaded) {
+ return 0;
+ }
+ offset = testPoint.x + testPoint.y * _bgMask.w;
+
+ #ifdef SCENE_DEBUG
+ if (offset >= _bgMask.buf_len) {
+ error("Scene::getBGMaskType offset 0x%X exceed bufferLength 0x%X", offset, (int)_bgMask.buf_len);
+ }
+ #endif
+
+ return (_bgMask.buf[offset] >> 4) & 0x0f;
+ }
+
+ bool validBGMaskPoint(const Point &testPoint) {
+ #ifdef SCENE_DEBUG
+ if (!_bgMask.loaded) {
+ error("Scene::validBGMaskPoint _bgMask not loaded");
+ }
+ #endif
+
+ return !((testPoint.x < 0) || (testPoint.x >= _bgMask.w) ||
+ (testPoint.y < 0) || (testPoint.y >= _bgMask.h));
+ }
+
bool canWalk(const Point &testPoint);
bool offscreenPath(Point &testPoint);
- void setDoorState(int doorNumber, int doorState);
- int getDoorState(int doorNumber);
+ void setDoorState(int doorNumber, int doorState) {
+ #ifdef SCENE_DEBUG
+ if ((doorNumber < 0) || (doorNumber >= SCENE_DOORS_MAX))
+ error("Scene::setDoorState wrong doorNumber");
+ #endif
+
+ _sceneDoors[doorNumber] = doorState;
+ }
+
+ int getDoorState(int doorNumber) {
+ #ifdef SCENE_DEBUG
+ if ((doorNumber < 0) || (doorNumber >= SCENE_DOORS_MAX))
+ error("Scene::getDoorState wrong doorNumber");
+ #endif
+
+ return _sceneDoors[doorNumber];
+ }
+
void initDoorsState();
void getBGInfo(BGInfo &bgInfo);
@@ -257,9 +301,11 @@
bool isSceneLoaded() const { return _sceneLoaded; }
int getSceneResourceId(int sceneNumber) {
+ #ifdef SCENE_DEBUG
if ((sceneNumber < 0) || (sceneNumber >= _sceneCount)) {
error("getSceneResourceId: wrong sceneNumber %i", sceneNumber);
}
+ #endif
return _sceneLUT[sceneNumber];
}
int currentSceneNumber() const { return _sceneNumber; }
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