[Scummvm-cvs-logs] CVS: scummvm/saga isomap.cpp,1.42,1.43 isomap.h,1.18,1.19 music.cpp,1.49,1.50 objectmap.cpp,1.39,1.40 render.cpp,1.52,1.53 saga.cpp,1.102,1.103 script.cpp,1.62,1.63 sfuncs.cpp,1.95,1.96 sthread.cpp,1.75,1.76
Andrew Kurushin
h00ligan at users.sourceforge.net
Sun Apr 3 08:33:10 CEST 2005
- Previous message: [Scummvm-cvs-logs] CVS: scummvm/scumm intern.h,2.414,2.415 object.cpp,1.216,1.217 resource_v3.cpp,1.30,1.31 resource_v4.cpp,1.11,1.12 scumm.cpp,1.397,1.398 scumm.h,1.557,1.558
- Next message: [Scummvm-cvs-logs] CVS: scummvm configure,1.113,1.114
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /cvsroot/scummvm/scummvm/saga
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24715
Modified Files:
isomap.cpp isomap.h music.cpp objectmap.cpp render.cpp
saga.cpp script.cpp sfuncs.cpp sthread.cpp
Log Message:
- fixed tile doors drawing
- right mouse action fixed
Index: isomap.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/isomap.cpp,v
retrieving revision 1.42
retrieving revision 1.43
diff -u -d -r1.42 -r1.43
--- isomap.cpp 2 Apr 2005 20:04:38 -0000 1.42
+++ isomap.cpp 3 Apr 2005 15:32:02 -0000 1.43
@@ -230,7 +230,7 @@
if (_multiTable == NULL) {
memoryError("IsoMap::loadMulti");
}
- debug(0,"resourceLength=%d but should be %d",resourceLength, 14*_multiCount + 2);
+
for (i = 0; i < _multiCount; i++) {
multiTileEntryData = &_multiTable[i];
readS.readUint32();//skip
@@ -370,7 +370,6 @@
warning("something terrible happened");
return 1;
}
-
return tileIndex;
}
}
@@ -606,7 +605,7 @@
int16 u, v;
Point s;
Point s0;
- int16 tileIndex;
+ uint16 tileIndex;
Location copyLocation(location);
if (_tilePlatformsCount <= platformIndex) {
@@ -646,7 +645,7 @@
tileIndex = tilePlatform->tiles[u][v];
if (tileIndex != 0) {
if (tileIndex & SAGA_MULTI_TILE) {
- tileIndex = findMulti(tileIndex, absU + u, absU + v, absH);
+ tileIndex = findMulti(tileIndex, absU + u, absV + v, absH);
}
drawTile(ds, tileIndex, s, ©Location);
@@ -661,7 +660,7 @@
int16 u, v;
Point s;
Point s0;
- int16 tileIndex;
+ uint16 tileIndex;
if (_tilePlatformsCount <= platformIndex) {
error("IsoMap::drawPlatform wrong platformIndex");
@@ -698,7 +697,7 @@
tileIndex = tilePlatform->tiles[u][v];
if (tileIndex > 1) {
if (tileIndex & SAGA_MULTI_TILE) {
- tileIndex = findMulti(tileIndex, absU + u, absU + v, absH);
+ tileIndex = findMulti(tileIndex, absU + u, absV + v, absH);
}
drawTile(ds, tileIndex, s, NULL);
@@ -1342,6 +1341,17 @@
}
}
+void IsoMap::setTileDoorState(int doorNumber, int doorState) {
+ MultiTileEntryData *multiTileEntryData;
+
+ if ((doorNumber < 0) || (doorNumber >= _multiCount)) {
+ error("setTileDoorState: doorNumber >= _multiCount");
+ }
+
+ multiTileEntryData = &_multiTable[doorNumber];
+ multiTileEntryData->currentState = doorState;
+}
+
static const int16 directions[8][2] = {
{ 16, 16},
{ 16, 0},
@@ -1354,6 +1364,7 @@
};
+
bool IsoMap::nextTileTarget(ActorData* actor) {
uint16 dir;
Index: isomap.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/isomap.h,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -d -r1.18 -r1.19
--- isomap.h 13 Mar 2005 17:43:50 -0000 1.18
+++ isomap.h 3 Apr 2005 15:32:03 -0000 1.19
@@ -166,7 +166,8 @@
void placeOnTileMap(const Location &start, Location &result, int16 distance, uint16 direction);
void findTilePath(ActorData* actor, const Location &start, const Location &end);
bool nextTileTarget(ActorData* actor);
-
+ void setTileDoorState(int doorNumber, int doorState);
+
private:
void drawTiles(SURFACE *ds, const Location *location);
void drawMetaTile(SURFACE *ds, uint16 metaTileIndex, const Point &point, int16 absU, int16 absV);
Index: music.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/music.cpp,v
retrieving revision 1.49
retrieving revision 1.50
diff -u -d -r1.49 -r1.50
--- music.cpp 12 Mar 2005 18:55:42 -0000 1.49
+++ music.cpp 3 Apr 2005 15:32:03 -0000 1.50
@@ -268,7 +268,7 @@
stopMusic();
break;
default:
- warning("Unhandled meta event: %02x", type);
+ //warning("Unhandled meta event: %02x", type);
break;
}
}
Index: objectmap.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/objectmap.cpp,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -d -r1.39 -r1.40
--- objectmap.cpp 18 Mar 2005 17:11:36 -0000 1.39
+++ objectmap.cpp 3 Apr 2005 15:32:03 -0000 1.40
@@ -133,13 +133,26 @@
}
void HitZone::draw(SURFACE *ds, int color) {
- int i, pointsCount;
+ int i, pointsCount, j;
+ Location location;
HitZone::ClickArea *clickArea;
Point *points;
for (i = 0; i < _clickAreasCount; i++) {
clickArea = &_clickAreas[i];
pointsCount = clickArea->pointsCount;
- points = clickArea->points;
+ if (_vm->_scene->getFlags() & kSceneFlagISO) {
+ points = (Point*)malloc(sizeof(Point) * pointsCount);
+ for (j = 0; j < pointsCount; j++) {
+ location.u() = clickArea->points[j].x;
+ location.v() = clickArea->points[j].y;
+ location.z = 0;
+ _vm->_isoMap->tileCoordsToScreenPoint(location, points[j]);
+ }
+ //
+ } else {
+ points = clickArea->points;
+ }
+
if (pointsCount == 2) {
// 2 points represent a box
drawFrame(ds, &points[0], &points[1], color);
@@ -149,6 +162,10 @@
drawPolyLine(ds, points, pointsCount, color);
}
}
+ if (_vm->_scene->getFlags() & kSceneFlagISO) {
+ free(points);
+ }
+
}
}
Index: render.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/render.cpp,v
retrieving revision 1.52
retrieving revision 1.53
diff -u -d -r1.52 -r1.53
--- render.cpp 27 Jan 2005 20:07:01 -0000 1.52
+++ render.cpp 3 Apr 2005 15:32:03 -0000 1.53
@@ -124,15 +124,15 @@
if (_vm->_interface->getMode() != kPanelFade) {
// Display scene maps, if applicable
+
+ // Draw queued actors
+ _vm->_actor->drawActors();
if (getFlags() & RF_OBJECTMAP_TEST) {
if (_vm->_scene->_objectMap)
_vm->_scene->_objectMap->draw(backbuf_surface, mouse_pt, kITEColorBrightWhite, kITEColorBlack);
if (_vm->_scene->_actionMap)
_vm->_scene->_actionMap->draw(backbuf_surface, mouse_pt, kITEColorRed, kITEColorBlack);
}
-
- // Draw queued actors
- _vm->_actor->drawActors();
if (getFlags() & RF_ACTOR_PATH_TEST) {
_vm->_actor->drawPathTest();
}
Index: saga.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/saga.cpp,v
retrieving revision 1.102
retrieving revision 1.103
diff -u -d -r1.102 -r1.103
--- saga.cpp 25 Mar 2005 17:55:52 -0000 1.102
+++ saga.cpp 3 Apr 2005 15:32:03 -0000 1.103
@@ -390,7 +390,7 @@
error("SagaEngine::loadStrings wrong strings table");
}
stringsTable.strings[i] = (const char *)stringsTable.stringsPointer + offset;
- debug(9, "string[%i]=%s", i, stringsTable.strings[i]);
+ //debug(9, "string[%i]=%s", i, stringsTable.strings[i]);
i++;
}
stringsTable.stringsCount = stringsCount;
Index: script.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/script.cpp,v
retrieving revision 1.62
retrieving revision 1.63
diff -u -d -r1.62 -r1.63
--- script.cpp 18 Mar 2005 17:11:37 -0000 1.62
+++ script.cpp 3 Apr 2005 15:32:03 -0000 1.63
@@ -743,10 +743,12 @@
newRightButtonVerb = _leftButtonVerb = kVerbWalkTo;
}
} else {
- if (_firstObjectSet) {
- objectId = ID_NOTHING;
- } else {
- newRightButtonVerb = _leftButtonVerb = kVerbLookAt;
+ if (newRightButtonVerb == kVerbLookOnly) {
+ if (_firstObjectSet) {
+ objectId = ID_NOTHING;
+ } else {
+ newRightButtonVerb = _leftButtonVerb = kVerbLookAt;
+ }
}
}
Index: sfuncs.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/sfuncs.cpp,v
retrieving revision 1.95
retrieving revision 1.96
diff -u -d -r1.95 -r1.96
--- sfuncs.cpp 18 Mar 2005 17:11:37 -0000 1.95
+++ sfuncs.cpp 3 Apr 2005 15:32:04 -0000 1.96
@@ -42,6 +42,7 @@
#include "saga/objectmap.h"
#include "saga/scene.h"
+#include "saga/isomap.h"
namespace Saga {
@@ -583,7 +584,7 @@
doorNumber = thread->pop();
if (_vm->_scene->getFlags() & kSceneFlagISO) {
- //todo: it
+ _vm->_isoMap->setTileDoorState(doorNumber, 1);
} else {
_vm->_scene->setDoorState(doorNumber, 0);
}
@@ -596,7 +597,7 @@
doorNumber = thread->pop();
if (_vm->_scene->getFlags() & kSceneFlagISO) {
- //todo: it
+ _vm->_isoMap->setTileDoorState(doorNumber, 0);
} else {
_vm->_scene->setDoorState(doorNumber, 0xff);
}
@@ -1319,7 +1320,7 @@
doorState = thread->pop();
if (_vm->_scene->getFlags() & kSceneFlagISO) {
- //todo: it
+ _vm->_isoMap->setTileDoorState(doorNumber, doorState);
} else {
_vm->_scene->setDoorState(doorNumber, doorState);
}
Index: sthread.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/sthread.cpp,v
retrieving revision 1.75
retrieving revision 1.76
diff -u -d -r1.75 -r1.76
--- sthread.cpp 29 Mar 2005 19:16:46 -0000 1.75
+++ sthread.cpp 3 Apr 2005 15:32:04 -0000 1.76
@@ -228,7 +228,7 @@
operandName = #opName; \
}
- debug(8, "Executing thread offset: %lu (%x) stack: %d", thread->_instructionOffset, operandChar, thread->pushedSize());
+// debug(8, "Executing thread offset: %lu (%x) stack: %d", thread->_instructionOffset, operandChar, thread->pushedSize());
operandName="";
switch (operandChar) {
CASEOP(opNextBlock)
- Previous message: [Scummvm-cvs-logs] CVS: scummvm/scumm intern.h,2.414,2.415 object.cpp,1.216,1.217 resource_v3.cpp,1.30,1.31 resource_v4.cpp,1.11,1.12 scumm.cpp,1.397,1.398 scumm.h,1.557,1.558
- Next message: [Scummvm-cvs-logs] CVS: scummvm configure,1.113,1.114
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the Scummvm-git-logs
mailing list