[Scummvm-cvs-logs] CVS: scummvm/kyra kyra.cpp,1.89,1.90 kyra.h,1.47,1.48 staticres.cpp,1.23,1.24

Johannes Schickel lordhoto at users.sourceforge.net
Wed Dec 14 06:09:31 CET 2005


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

Modified Files:
	kyra.cpp kyra.h staticres.cpp 
Log Message:
Implemented command line update when picking up or dropping down items.


Index: kyra.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/kyra/kyra.cpp,v
retrieving revision 1.89
retrieving revision 1.90
diff -u -d -r1.89 -r1.90
--- kyra.cpp	13 Dec 2005 16:56:33 -0000	1.89
+++ kyra.cpp	14 Dec 2005 14:08:30 -0000	1.90
@@ -2993,7 +2993,8 @@
 	itemDropDown(x, y, destX, destY, freeItem, item);
 	
 	if (unk1 == 0 && unk2 != 0) {
-		// XXX updateSentenceCommand
+		assert(_itemList && _droppedList);
+		updateSentenceCommand(_itemList[item], _droppedList[0], 179);
 	}
 	
 	return 1;
@@ -3013,7 +3014,8 @@
 	// XXX snd_kyraPlaySound 53
 	
 	setMouseItem(_itemInHand);
-	// XXX	
+	assert(_itemList && _takenList);
+	updateSentenceCommand(_itemList[_itemInHand], _takenList[1], 179);
 	_screen->showMouse();
 	clickEventHandler2();
 }
@@ -3170,9 +3172,11 @@
 		return;
 	// call kyraPlaySound(54)
 	if (12 == countItemsInScene(_currentCharacter->sceneId)) {
-		// XXX drawSentenceCommand
+		assert(_noDropList);
+		drawSentenceCommand(_noDropList[0], 6);
 	} else {
-		// XXX drawSentenceCommand
+		assert(_noDropList);
+		drawSentenceCommand(_noDropList[1], 6);
 	}
 }
 
@@ -4799,7 +4803,8 @@
 			int item2 = currentRoom->itemsTable[item];
 			currentRoom->itemsTable[item] = 0xFF;
 			setMouseItem(item2);
-			// XXX updateSentenceCommand
+			assert(_itemList && _takenList);
+			updateSentenceCommand(_itemList[item2], _takenList[0], 179);
 			_itemInHand = item2;
 			_screen->showMouse();
 			clickEventHandler2();

Index: kyra.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/kyra/kyra.h,v
retrieving revision 1.47
retrieving revision 1.48
diff -u -d -r1.47 -r1.48
--- kyra.h	13 Dec 2005 16:56:33 -0000	1.47
+++ kyra.h	14 Dec 2005 14:08:30 -0000	1.48
@@ -689,6 +689,18 @@
 	int _seq_COLTable_Size;
 	int _seq_textsTable_Size;
 	
+	char **_itemList;
+	char **_takenList;
+	char **_placedList;
+	char **_droppedList;
+	char **_noDropList;
+	
+	int _itemList_Size;
+	int _takenList_Size;
+	int _placedList_Size;
+	int _droppedList_Size;
+	int _noDropList_Size;
+	
 	char **_characterImageTable;
 	int _characterImageTableSize;
 	

Index: staticres.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/kyra/staticres.cpp,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -d -r1.23 -r1.24
--- staticres.cpp	12 Dec 2005 17:39:01 -0000	1.23
+++ staticres.cpp	14 Dec 2005 14:08:30 -0000	1.24
@@ -26,7 +26,7 @@
 
 namespace Kyra {
 
-#define RESFILE_VERSION 3
+#define RESFILE_VERSION 4
 
 #define GAME_FLAGS (GF_FLOPPY | GF_TALKIE | GF_DEMO | GF_AUDIOCD)
 #define LANGUAGE_FLAGS (GF_ENGLISH | GF_FRENCH | GF_GERMAN | GF_SPANISH | GF_LNGUNK)
@@ -188,6 +188,12 @@
 		loadTable(resFile, "CHAR-IMAGE.TXT", (byte***)&_characterImageTable, &_characterImageTableSize);
 		
 		loadShapes(resFile, "SHAPES-DEFAULT.SHP", &_defaultShapeTable, &_defaultShapeTableSize);
+		
+		res_loadLangTable("ITEMLIST.", &resFile, (byte***)&_itemList, &_itemList_Size, loadNativeLanguage);
+		res_loadLangTable("TAKEN.", &resFile, (byte***)&_takenList, &_takenList_Size, loadNativeLanguage);
+		res_loadLangTable("PLACED.", &resFile, (byte***)&_placedList, &_placedList_Size, loadNativeLanguage);
+		res_loadLangTable("DROPPED.", &resFile, (byte***)&_droppedList, &_droppedList_Size, loadNativeLanguage);
+		res_loadLangTable("NODROP.", &resFile, (byte***)&_noDropList, &_noDropList_Size, loadNativeLanguage);
 	}
 
 #undef loadRooms
@@ -258,6 +264,41 @@
 		
 		delete [] _defaultShapeTable;
 		_defaultShapeTableSize = 0;
+		
+		for (int i = 0; i < _itemList_Size; ++i) {
+			delete [] _itemList[i];
+		}
+		delete [] _itemList;
+		_itemList_Size = 0;
+		_itemList = 0;
+		
+		for (int i = 0; i < _takenList_Size; ++i) {
+			delete [] _takenList[i];
+		}
+		delete [] _takenList;
+		_takenList_Size = 0;
+		_takenList = 0;
+		
+		for (int i = 0; i < _placedList_Size; ++i) {
+			delete [] _placedList[i];
+		}
+		delete [] _placedList;
+		_placedList_Size = 0;
+		_placedList = 0;
+		
+		for (int i = 0; i < _droppedList_Size; ++i) {
+			delete [] _droppedList[i];
+		}
+		delete [] _droppedList;
+		_droppedList_Size = 0;
+		_droppedList = 0;
+		
+		for (int i = 0; i < _noDropList_Size; ++i) {
+			delete [] _noDropList[i];
+		}
+		delete [] _noDropList;
+		_noDropList_Size = 0;
+		_noDropList = 0;
 	}
 }
 





More information about the Scummvm-git-logs mailing list