[Scummvm-cvs-logs] CVS: scummvm/saga actor.cpp,1.133,1.134 actor.h,1.73,1.74 game.cpp,1.65,1.66 interface.cpp,1.93,1.94 interface.h,1.50,1.51 saga.cpp,1.111,1.112 saga.h,1.92,1.93 saveload.cpp,1.8,1.9

Andrew Kurushin h00ligan at users.sourceforge.net
Mon May 23 11:58:37 CEST 2005


Update of /cvsroot/scummvm/scummvm/saga
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21810

Modified Files:
	actor.cpp actor.h game.cpp interface.cpp interface.h saga.cpp 
	saga.h saveload.cpp 
Log Message:
saveload WIP

Index: actor.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/actor.cpp,v
retrieving revision 1.133
retrieving revision 1.134
diff -u -d -r1.133 -r1.134
--- actor.cpp	23 May 2005 02:23:32 -0000	1.133
+++ actor.cpp	23 May 2005 18:53:33 -0000	1.134
@@ -2305,10 +2305,10 @@
 #endif
 }
 
-void Actor::saveState(Common::File& out) {
+void Actor::saveState(Common::OutSaveFile *out) {
 	uint16 i;
 	
-	out.writeSint16LE(getProtagState());
+	out->writeSint16LE(getProtagState());
 
 	for (i = 0; i < _actorsCount; i++) {
 		ActorData *a = _actors[i];
@@ -2321,10 +2321,10 @@
 	}
 }
 
-void Actor::loadState(Common::File& in) {
+void Actor::loadState(Common::InSaveFile *in) {
 	int32 i;
 
-	setProtagState(in.readSint16LE());
+	setProtagState(in->readSint16LE());
 
 	for (i = 0; i < _actorsCount; i++) {
 		ActorData *a = _actors[i];

Index: actor.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/actor.h,v
retrieving revision 1.73
retrieving revision 1.74
diff -u -d -r1.73 -r1.74
--- actor.h	23 May 2005 02:23:32 -0000	1.73
+++ actor.h	23 May 2005 18:53:34 -0000	1.74
@@ -27,6 +27,7 @@
 #define SAGA_ACTOR_H__
 
 #include "common/file.h"
+#include "common/savefile.h"
 
 #include "saga/sprite.h"
 #include "saga/itedata.h"
@@ -141,15 +142,15 @@
 	Location() {
 		x = y = z = 0;
 	}
-	void saveState(Common::File& out) {
-		out.writeSint32LE(x);
-		out.writeSint32LE(y);
-		out.writeSint32LE(z);
+	void saveState(Common::OutSaveFile *out) {
+		out->writeSint32LE(x);
+		out->writeSint32LE(y);
+		out->writeSint32LE(z);
 	}
-	void loadState(Common::File& in) {
-		x = in.readSint32LE();
-		y = in.readSint32LE();
-		z = in.readSint32LE();
+	void loadState(Common::InSaveFile *in) {
+		x = in->readSint32LE();
+		y = in->readSint32LE();
+		z = in->readSint32LE();
 	}
 
 	int distance(const Location &location) const {
@@ -222,27 +223,27 @@
 	int32 screenDepth;			//
 	int32 screenScale;			//
 
-	void saveState(Common::File& out) {
-		out.writeUint16LE(flags);
-		out.writeSint32LE(nameIndex);
-		out.writeSint32LE(sceneNumber);
-		out.writeSint32LE(spriteListResourceId);
+	void saveState(Common::OutSaveFile *out) {
+		out->writeUint16LE(flags);
+		out->writeSint32LE(nameIndex);
+		out->writeSint32LE(sceneNumber);
+		out->writeSint32LE(spriteListResourceId);
 		location.saveState(out);
-		out.writeSint16LE(screenPosition.x);
-		out.writeSint16LE(screenPosition.y);
-		out.writeSint32LE(screenDepth);
-		out.writeSint32LE(screenScale);
+		out->writeSint16LE(screenPosition.x);
+		out->writeSint16LE(screenPosition.y);
+		out->writeSint32LE(screenDepth);
+		out->writeSint32LE(screenScale);
 	}
-	void loadState(Common::File& in) {
-		flags = in.readUint16LE();
-		nameIndex = in.readSint32LE();
-		sceneNumber = in.readSint32LE();
-		spriteListResourceId = in.readSint32LE();
+	void loadState(Common::InSaveFile *in) {
+		flags = in->readUint16LE();
+		nameIndex = in->readSint32LE();
+		sceneNumber = in->readSint32LE();
+		spriteListResourceId = in->readSint32LE();
 		location.loadState(in);
-		screenPosition.x = in.readSint16LE();
-		screenPosition.y = in.readSint16LE();
-		screenDepth = in.readSint32LE();
-		screenScale = in.readSint32LE();
+		screenPosition.x = in->readSint16LE();
+		screenPosition.y = in->readSint16LE();
+		screenDepth = in->readSint32LE();
+		screenScale = in->readSint32LE();
 	}
 };
 
@@ -299,73 +300,72 @@
 	Location partialTarget;
 	int32 walkFrameSequence;
 
-	void saveState(Common::File& out) {
+	void saveState(Common::OutSaveFile *out) {
 		CommonObjectData::saveState(out);
-		out.writeUint16LE(actorFlags);
-		out.writeSint32LE(currentAction);
-		out.writeSint32LE(facingDirection);
-		out.writeSint32LE(actionDirection);
-		out.writeSint32LE(actionCycle);
-		out.writeUint16LE(targetObject);
+		out->writeUint16LE(actorFlags);
+		out->writeSint32LE(currentAction);
+		out->writeSint32LE(facingDirection);
+		out->writeSint32LE(actionDirection);
+		out->writeSint32LE(actionCycle);
+		out->writeUint16LE(targetObject);
 
-		//TODO: write lastZone 
-		out.writeSint32LE(cycleFrameSequence);
-		out.writeByte(cycleDelay);
-		out.writeByte(cycleTimeCount);
-		out.writeByte(cycleFlags);
-		out.writeSint32LE(frameNumber);
+		out->writeSint32LE(cycleFrameSequence);
+		out->writeByte(cycleDelay);
+		out->writeByte(cycleTimeCount);
+		out->writeByte(cycleFlags);
+		out->writeSint32LE(frameNumber);
 
-		out.writeSint32LE(tileDirectionsAlloced);
+		out->writeSint32LE(tileDirectionsAlloced);
 		for (int i = 0; i < tileDirectionsAlloced; i++) {
-			out.writeByte(tileDirections[i]);
+			out->writeByte(tileDirections[i]);
 		}
 
-		out.writeSint32LE(walkStepsAlloced);
+		out->writeSint32LE(walkStepsAlloced);
 		for (int i = 0; i < walkStepsAlloced; i++) {
-			out.writeSint16LE(walkStepsPoints[i].x);
-			out.writeSint16LE(walkStepsPoints[i].y);
+			out->writeSint16LE(walkStepsPoints[i].x);
+			out->writeSint16LE(walkStepsPoints[i].y);
 		}
 
-		out.writeSint32LE(walkStepsCount);
-		out.writeSint32LE(walkStepIndex);
+		out->writeSint32LE(walkStepsCount);
+		out->writeSint32LE(walkStepIndex);
 		finalTarget.saveState(out);
 		partialTarget.saveState(out);
-		out.writeSint32LE(walkFrameSequence);
+		out->writeSint32LE(walkFrameSequence);
 	}
-	void loadState(Common::File& in) {
+
+	void loadState(Common::InSaveFile *in) {
 		CommonObjectData::loadState(in);
-		actorFlags = in.readUint16LE();
-		currentAction = in.readSint32LE();
-		facingDirection = in.readSint32LE();
-		actionDirection = in.readSint32LE();
-		actionCycle = in.readSint32LE();
-		targetObject = in.readUint16LE();
+		actorFlags = in->readUint16LE();
+		currentAction = in->readSint32LE();
+		facingDirection = in->readSint32LE();
+		actionDirection = in->readSint32LE();
+		actionCycle = in->readSint32LE();
+		targetObject = in->readUint16LE();
 
-		//TODO: read lastZone 
 		lastZone = NULL;
-		cycleFrameSequence = in.readSint32LE();
-		cycleDelay = in.readByte();
-		cycleTimeCount = in.readByte();
-		cycleFlags = in.readByte();
-		frameNumber = in.readSint32LE();
+		cycleFrameSequence = in->readSint32LE();
+		cycleDelay = in->readByte();
+		cycleTimeCount = in->readByte();
+		cycleFlags = in->readByte();
+		frameNumber = in->readSint32LE();
 
 		
-		setTileDirectionsSize(in.readSint32LE(), true);
+		setTileDirectionsSize(in->readSint32LE(), true);
 		for (int i = 0; i < tileDirectionsAlloced; i++) {
-			tileDirections[i] = in.readByte();
+			tileDirections[i] = in->readByte();
 		}
 
-		setWalkStepsPointsSize(in.readSint32LE(), true);
+		setWalkStepsPointsSize(in->readSint32LE(), true);
 		for (int i = 0; i < walkStepsAlloced; i++) {
-			walkStepsPoints[i].x = in.readSint16LE();
-			walkStepsPoints[i].y = in.readSint16LE();
+			walkStepsPoints[i].x = in->readSint16LE();
+			walkStepsPoints[i].y = in->readSint16LE();
 		}
 
-		walkStepsCount = in.readSint32LE();
-		walkStepIndex = in.readSint32LE();
+		walkStepsCount = in->readSint32LE();
+		walkStepIndex = in->readSint32LE();
 		finalTarget.loadState(in);
 		partialTarget.loadState(in);
-		walkFrameSequence = in.readSint32LE();
+		walkFrameSequence = in->readSint32LE();
 	}
 
 	void setTileDirectionsSize(int size, bool forceRealloc) {
@@ -499,8 +499,8 @@
 		return _activeSpeech.stringsCount > 0;
 	}
 
-	void saveState(Common::File& out);
-	void loadState(Common::File& in);
+	void saveState(Common::OutSaveFile *out);
+	void loadState(Common::InSaveFile *in);
 
 	void setProtagState(int state);
 	int getProtagState() { return _protagState; }

Index: game.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/game.cpp,v
retrieving revision 1.65
retrieving revision 1.66
diff -u -d -r1.65 -r1.66
--- game.cpp	22 May 2005 11:59:16 -0000	1.65
+++ game.cpp	23 May 2005 18:53:34 -0000	1.66
@@ -74,9 +74,15 @@
 };
 
 static PanelButton ITE_OptionPanelButtons[] = {
+	{kPanelButtonSlider,	284,19, 13,75,	0,'-',0,	0,0,0}, //slider-scroller
 	{kPanelButtonOption,	113,18, 45,17,	13,'r',0,	0,0,0}, //read speed
-
+	{kPanelButtonOption,	113,37, 45,17,	16,'m',0,	0,0,0}, //music
+	{kPanelButtonOption,	113,56, 45,17,	16,'n',0,	0,0,0}, //sound-noise
+	{kPanelButtonOption,	13,79, 135,17,	12,'q',0,	0,0,0}, //quit
 	{kPanelButtonOption,	13,98, 135,17,	17,'c',0,	0,0,0}, //continue
+	{kPanelButtonOption,	164,98, 57,17,	18,'l',0,	0,0,0}, //load
+	{kPanelButtonOption,	241,98, 57,17,	19,'s',0,	0,0,0},	//save
+	{kPanelButtonOption,	166,20, 112,74,	0,'-',0,	0,0,0},	//slider
 };
 
 static GameDisplayInfo ITE_DisplayInfo = {

Index: interface.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/interface.cpp,v
retrieving revision 1.93
retrieving revision 1.94
diff -u -d -r1.93 -r1.94
--- interface.cpp	23 May 2005 02:23:32 -0000	1.93
+++ interface.cpp	23 May 2005 18:53:35 -0000	1.94
@@ -254,6 +254,7 @@
 		} else {
 			if (_panelMode == kPanelOption) {
 				_optionPanel.currentButton = NULL;
+				_vm->fillSaveList();
 			}
 		}		
 	}
@@ -279,9 +280,11 @@
 		//TODO: check input dialog keys
 		for (i = 0; i < _optionPanel.buttonsCount; i++) {
 			panelButton = &_optionPanel.buttons[i];
-			if (panelButton->keyChar == keyCode) {
-				setOption(panelButton);				
-				return true;
+			if(panelButton->type == kPanelButtonOption) {
+				if (panelButton->keyChar == keyCode) {
+					setOption(panelButton);				
+					return true;
+				}
 			}
 		}
 		break;
@@ -445,6 +448,7 @@
 	SURFACE *backBuffer;
 	int i;
 	Point origin;
+	PanelButton *panelButton;
 
 	backBuffer = _vm->_gfx->getBackBuffer();
 	origin.x = _vm->getDisplayInfo().optionPanelXOffset;
@@ -453,23 +457,44 @@
 	bufToSurface(backBuffer, _optionPanel.image, _optionPanel.imageWidth, _optionPanel.imageHeight, NULL, &origin);
 
 	for (i = 0; i < _optionPanel.buttonsCount; i++) {		
-		drawOptionPanelButtonText(backBuffer, &_optionPanel.buttons[i]);
+		panelButton = &_optionPanel.buttons[i];
+		if(panelButton->type == kPanelButtonOption) {
+			drawOptionPanelButtonText(backBuffer, panelButton);
+		}		
 	}
 }
 
 void Interface::handleOptionUpdate(const Point& mousePoint) {
+	int i;
 	_optionPanel.currentButton = optionHitTest(mousePoint);	
+	bool released = (_optionPanel.currentButton != NULL) && (_optionPanel.currentButton->state > 0) && (!_vm->mouseButtonPressed());
+	if (!_vm->mouseButtonPressed()) {
+		for (i = 0; i < _optionPanel.buttonsCount; i++) {
+			_optionPanel.buttons[i].state = 0;
+		}
+	}
+
+	if (released) {
+		setOption(_optionPanel.currentButton); 
+	}
+
 }
 
 
 void Interface::handleOptionClick(const Point& mousePoint) {
+	int i;
 	_optionPanel.currentButton = optionHitTest(mousePoint);
 
+	for (i = 0; i < _optionPanel.buttonsCount; i++) {
+		_optionPanel.buttons[i].state = 0;
+	}
+
 	if (_optionPanel.currentButton == NULL) {
 		return;
 	}
 
-	setOption(_optionPanel.currentButton); //TODO: do it on mouse up
+	_optionPanel.currentButton->state = 1;
+
 }
 
 
@@ -478,6 +503,9 @@
 		case 'c':
 				setMode(kPanelMain);
 				break;
+		case 'q':
+			_vm->shutDown();
+			break;
 	}
 }
 
@@ -1189,19 +1217,19 @@
 
 }
 
-void Interface::saveState(Common::File& out) {
-	out.writeUint16LE(_inventoryCount);
+void Interface::saveState(Common::OutSaveFile *out) {
+	out->writeUint16LE(_inventoryCount);
 
 	for (int i = 0; i < _inventoryCount; i++) {
-		out.writeUint16LE(_inventory[i]);
+		out->writeUint16LE(_inventory[i]);
 	}
 }
 
-void Interface::loadState(Common::File& in) {
-	_inventoryCount = in.readUint16LE();
+void Interface::loadState(Common::InSaveFile *in) {
+	_inventoryCount = in->readUint16LE();
 
 	for (int i = 0; i < _inventoryCount; i++) {
-		_inventory[i] = in.readUint16LE();
+		_inventory[i] = in->readUint16LE();
 	}
 	
 	updateInventory(0);

Index: interface.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/interface.h,v
retrieving revision 1.50
retrieving revision 1.51
diff -u -d -r1.50 -r1.51
--- interface.h	22 May 2005 12:21:16 -0000	1.50
+++ interface.h	23 May 2005 18:53:35 -0000	1.51
@@ -27,6 +27,7 @@
 #define SAGA_INTERFACE_H__
 
 #include "common/file.h"
+#include "common/savefile.h"
 
 #include "saga/sprite.h"
 #include "saga/script.h"
@@ -205,8 +206,8 @@
 	PanelButton *verbHitTest(const Point& mousePoint){
 		return _mainPanel.hitTest(mousePoint, kPanelButtonVerb);
 	}
-	void saveState(Common::File& out);
-	void loadState(Common::File& in);
+	void saveState(Common::OutSaveFile *out);
+	void loadState(Common::InSaveFile *in);
 private:
 	void handleMainUpdate(const Point& mousePoint);					// main panel update
 	void handleMainClick(const Point& mousePoint);					// main panel click

Index: saga.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/saga.cpp,v
retrieving revision 1.111
retrieving revision 1.112
diff -u -d -r1.111 -r1.112
--- saga.cpp	23 May 2005 02:23:33 -0000	1.111
+++ saga.cpp	23 May 2005 18:53:35 -0000	1.112
@@ -115,7 +115,8 @@
 SagaEngine *_vm = NULL;
 
 SagaEngine::SagaEngine(GameDetector *detector, OSystem *syst)
-	: Engine(syst) {
+	: Engine(syst),
+	_targetName(detector->_targetName) {
 
 	_leftMouseButtonPressed = _rightMouseButtonPressed = false;
 

Index: saga.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/saga.h,v
retrieving revision 1.92
retrieving revision 1.93
diff -u -d -r1.92 -r1.93
--- saga.h	23 May 2005 02:23:33 -0000	1.92
+++ saga.h	23 May 2005 18:53:36 -0000	1.93
@@ -63,7 +63,12 @@
 #define SAGA_IMAGE_DATA_OFFSET 776
 #define SAGA_IMAGE_HEADER_LEN  8
 
-#define MAXPATH 512
+#define MAXPATH 512 //TODO: remove
+
+#define SAVE_TITLE_SIZE 28
+#define MAX_SAVES 96
+#define MAX_FILE_NAME 256
+
 
 #define IS_BIG_ENDIAN ((_vm->getFeatures() & GF_BIG_ENDIAN_DATA) != 0)
 
@@ -146,7 +151,7 @@
 	kPanelButtonConverseText = 4,
 	kPanelButtonInventory = 8,
 	kPanelButtonOption = 0x10,
-	kPanelButtonReserved2 = 0x20,
+	kPanelButtonSlider = 0x20,
 	kPanelAllButtons = 0xFFFFF
 };
 
@@ -448,7 +453,6 @@
 protected:
 	int go();
 	int init(GameDetector &detector);
-
 public:
 	SagaEngine(GameDetector * detector, OSystem * syst);
 	virtual ~SagaEngine();
@@ -462,6 +466,9 @@
 	}
 	void save(const char *fileName, const char *saveName);
 	void load(const char *fileName);
+	void fillSaveList();
+	char *calcSaveFileName(uint slotNumber);
+	char *getSaveFileName(uint idx);
 
 	int _soundEnabled;
 	int _musicEnabled;
@@ -536,6 +543,9 @@
 	}
 
  private:
+	Common::String _targetName;
+	uint _saveFileNamesCount;
+	char _saveFileNames[MAX_SAVES][SAVE_TITLE_SIZE];
 	Point _mousePos;
 	bool _leftMouseButtonPressed;
 	bool _rightMouseButtonPressed;

Index: saveload.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/saveload.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -d -r1.8 -r1.9
--- saveload.cpp	15 May 2005 14:46:13 -0000	1.8
+++ saveload.cpp	23 May 2005 18:53:36 -0000	1.9
@@ -45,89 +45,134 @@
 	uint32 type;
 	uint32 size;
 	uint32 version;
-	char name[32];
+	char name[SAVE_TITLE_SIZE];
 };
+
+static char emptySlot[] = "[New Save Game]";
+
 //TODO: 
-// - get savegame list
-// - make/create save filename string
 // - delete savegame
 
+char* SagaEngine::calcSaveFileName(uint slotNumber) {
+	static char name[MAX_FILE_NAME];
+	sprintf(name, "%s.s%02d", _targetName.c_str(), slotNumber);
+	return name;
+}
+
+char *SagaEngine::getSaveFileName(uint idx) {
+	if (idx >= MAX_SAVES) {
+		error("getSaveFileName wrong idx");
+	}
+	return _saveFileNames[idx];
+}
+
+
+void SagaEngine::fillSaveList() {
+	int i;
+	bool marks[MAX_SAVES];
+	Common::InSaveFile *in;
+	SaveGameHeader header;
+	char *name;
+	
+	name = calcSaveFileName(MAX_SAVES);
+	name[strlen(name) - 2] = 0;
+	_saveFileMan->listSavefiles(name, marks, MAX_SAVES);
+
+	for (i = 0; i < MAX_SAVES; i++) {
+		_saveFileNames[i][0] = 0;
+	}	
+	
+	_saveFileNamesCount = 0;
+	i = 0;
+	while (i < MAX_SAVES) {
+		if (marks[i]) {
+			name = calcSaveFileName(i);
+			if (!(in = _saveFileMan->openForLoading(name))) {
+				break;
+			}
+			in->read(&header, sizeof(header));
+
+			if (header.type != MKID('SAGA')) {
+				error("SagaEngine::load wrong format");
+			}
+			strcpy(_saveFileNames[_saveFileNamesCount], header.name);
+			delete in;
+			_saveFileNamesCount++;
+		}
+		i++;
+	}
+}
+
+
 void SagaEngine::save(const char *fileName, const char *saveName) {
-	Common::File out;
+	Common::OutSaveFile *out;
 	SaveGameHeader header;
 
-	out.open(fileName, Common::File::kFileWriteMode);
+	if (!(out = _saveFileMan->openForSaving(fileName))) {
+		return;
+	}
 
 	header.type = MKID('SAGA');
 	header.size = 0;
 	header.version = CURRENT_SAGA_VER;
 	strcpy(header.name, saveName);
 
-	out.write(&header, sizeof(header));
+	out->write(&header, sizeof(header));
 
 	// Surrounding scene
-	out.writeSint32LE(_scene->getOutsetSceneNumber());
+	out->writeSint32LE(_scene->getOutsetSceneNumber());
 
 	// Inset scene
-	out.writeSint32LE(_scene->currentSceneNumber());
-
-	uint16 i;
+	out->writeSint32LE(_scene->currentSceneNumber());
 
 	_interface->saveState(out);
 
 	_actor->saveState(out);
 	
-	out.writeSint16LE(_script->_commonBufferSize);
+	out->writeSint16LE(_script->_commonBufferSize);
 
-	for (i = 0; i < _script->_commonBufferSize; i++)
-		out.writeByte(_script->_commonBuffer[i]);
+	out->write(_script->_commonBuffer, _script->_commonBufferSize);
 
-	out.writeSint16LE(_isoMap->getMapPosition().x);
-	out.writeSint16LE(_isoMap->getMapPosition().y);
+	out->writeSint16LE(_isoMap->getMapPosition().x);
+	out->writeSint16LE(_isoMap->getMapPosition().y);
 
-	out.close();
+	delete out;
 }
 
 void SagaEngine::load(const char *fileName) {
-	Common::File in;
+	Common::InSaveFile *in;
 	int  commonBufferSize;
 	int sceneNumber, insetSceneNumber;
 	int mapx, mapy;
-	uint16 i;
 	SaveGameHeader header;
 
-	in.open(fileName);
-
-	if (!in.isOpen())
+	if (!(in = _saveFileMan->openForLoading(fileName))) {
 		return;
+	}
 
-	in.read(&header, sizeof(header));
+	in->read(&header, sizeof(header));
 
 	if (header.type != MKID('SAGA')) {
 		error("SagaEngine::load wrong format");
 	}
 			
 	// Surrounding scene
-	sceneNumber = in.readSint32LE();
+	sceneNumber = in->readSint32LE();
 
 	// Inset scene
-	insetSceneNumber = in.readSint32LE();
-
-	debug(0, "scene: #%d inset scene: #%d", sceneNumber, insetSceneNumber);
+	insetSceneNumber = in->readSint32LE();
 
-	
 	_interface->loadState(in);
 
 	_actor->loadState(in);
 	
-	commonBufferSize = in.readSint16LE();
-	for (i = 0; i < commonBufferSize; i++)
-		_script->_commonBuffer[i] = in.readByte();
+	commonBufferSize = in->readSint16LE();
+	in->read(_script->_commonBuffer, commonBufferSize);
 
-	mapx = in.readSint16LE();
-	mapy = in.readSint16LE();
+	mapx = in->readSint16LE();
+	mapy = in->readSint16LE();
 
-	in.close();
+	delete in;
 
 	_isoMap->setMapPosition(mapx, mapy);
 





More information about the Scummvm-git-logs mailing list