[Scummvm-cvs-logs] SF.net SVN: scummvm:[48295] scummvm/trunk/engines/teenagent

megath at users.sourceforge.net megath at users.sourceforge.net
Fri Mar 19 00:24:33 CET 2010


Revision: 48295
          http://scummvm.svn.sourceforge.net/scummvm/?rev=48295&view=rev
Author:   megath
Date:     2010-03-18 23:24:32 +0000 (Thu, 18 Mar 2010)

Log Message:
-----------
removed 'varia.res' from the resident pack files

Modified Paths:
--------------
    scummvm/trunk/engines/teenagent/inventory.cpp
    scummvm/trunk/engines/teenagent/inventory.h
    scummvm/trunk/engines/teenagent/resources.cpp
    scummvm/trunk/engines/teenagent/resources.h
    scummvm/trunk/engines/teenagent/scene.cpp
    scummvm/trunk/engines/teenagent/teenagent.cpp

Modified: scummvm/trunk/engines/teenagent/inventory.cpp
===================================================================
--- scummvm/trunk/engines/teenagent/inventory.cpp	2010-03-18 22:54:42 UTC (rev 48294)
+++ scummvm/trunk/engines/teenagent/inventory.cpp	2010-03-18 23:24:32 UTC (rev 48295)
@@ -35,22 +35,28 @@
 void Inventory::init(TeenAgentEngine *engine) {
 	_engine = engine;
 	_active = false;
-	Resources *res = Resources::instance();
 
-	Common::SeekableReadStream *s = res->varia.getStream(3);
+	FilePack varia;
+	varia.open("varia.res");
+
+	Common::SeekableReadStream *s = varia.getStream(3);
 	assert(s != NULL);
 	debug(0, "loading inventory background...");
 	background.load(s, Surface::kTypeOns);
 
-	items = res->varia.getStream(4);
-	assert(items != NULL);
+	uint32 items_size = varia.get_size(4);
+	if (items_size == 0)
+		error("invalid inventory items size");
+	items = new byte[items_size];
+	varia.read(4, items, items_size);
 
-	byte offsets = items->readByte();
+	byte offsets = items[0];
 	assert(offsets == 92);
 	for (byte i = 0; i <= offsets; ++i) {
-		offset[i] = items->readUint16LE();
+		offset[i] = READ_UINT16(items + i * 2 + 1);
 	}
 
+	Resources *res = Resources::instance();
 	for (byte i = 0; i <= 92; ++i) {
 		InventoryObject io;
 		uint16 obj_addr = res->dseg.get_word(0xc4a4 + i * 2);
@@ -70,6 +76,7 @@
 			graphics[i].rect.bottom = graphics[i].rect.top + 26;
 		}
 
+	varia.close();
 	hovered_obj = selected_obj = NULL;
 }
 
@@ -274,8 +281,8 @@
 	if (obj->animated) {
 		if (animation.empty()) {
 			debug(0, "loading item %d from offset %x", obj->id, inventory->offset[obj->id - 1]);
-			inventory->items->seek(inventory->offset[obj->id - 1]);
-			animation.load(inventory->items, Animation::kTypeInventory);
+			Common::MemoryReadStream s(inventory->items + inventory->offset[obj->id - 1], inventory->offset[obj->id] - inventory->offset[obj->id - 1]);
+			animation.load(&s, Animation::kTypeInventory);
 		}
 		if (hovered) {
 			Surface *s = animation.currentFrame(delta);
@@ -291,8 +298,8 @@
 	} else {
 		if (surface.empty()) {
 			debug(0, "loading item %d from offset %x", obj->id, inventory->offset[obj->id - 1]);
-			inventory->items->seek(inventory->offset[obj->id - 1]);
-			surface.load(inventory->items, Surface::kTypeOns);
+			Common::MemoryReadStream s(inventory->items + inventory->offset[obj->id - 1], inventory->offset[obj->id] - inventory->offset[obj->id - 1]);
+			surface.load(&s, Surface::kTypeOns);
 		}
 		surface.render(dst, rect.left + 1, rect.top + 1);
 	}

Modified: scummvm/trunk/engines/teenagent/inventory.h
===================================================================
--- scummvm/trunk/engines/teenagent/inventory.h	2010-03-18 22:54:42 UTC (rev 48294)
+++ scummvm/trunk/engines/teenagent/inventory.h	2010-03-18 23:24:32 UTC (rev 48295)
@@ -57,7 +57,7 @@
 private:
 	TeenAgentEngine *_engine;
 	Surface background;
-	Common::SeekableReadStream *items;
+	byte *items;
 	uint16 offset[93];
 
 	Common::Array<InventoryObject> objects;

Modified: scummvm/trunk/engines/teenagent/resources.cpp
===================================================================
--- scummvm/trunk/engines/teenagent/resources.cpp	2010-03-18 22:54:42 UTC (rev 48294)
+++ scummvm/trunk/engines/teenagent/resources.cpp	2010-03-18 23:24:32 UTC (rev 48295)
@@ -36,7 +36,6 @@
 }
 
 void Resources::deinit() {
-	varia.close();
 	off.close();
 	on.close();
 	ons.close();
@@ -77,8 +76,18 @@
 
 	dat_file.close();
 
+	{
+		FilePack varia;
+		varia.open("varia.res");
+		font7.load(varia, 7);
+		font7.width_pack = 1;
+		font7.height = 11;
+		font8.load(varia, 8);
+		font8.height = 31;
+		varia.close();
+	}
+
 	off.open("off.res");
-	varia.open("varia.res");
 	on.open("on.res");
 	ons.open("ons.res");
 	lan000.open("lan_000.res");
@@ -87,11 +96,6 @@
 	sam_mmm.open("sam_mmm.res");
 	sam_sam.open("sam_sam.res");
 
-	font7.load(varia, 7);
-	font7.width_pack = 1;
-	font7.height = 11;
-	font8.load(varia, 8);
-	font8.height = 31;
 
 	return true;
 }

Modified: scummvm/trunk/engines/teenagent/resources.h
===================================================================
--- scummvm/trunk/engines/teenagent/resources.h	2010-03-18 22:54:42 UTC (rev 48294)
+++ scummvm/trunk/engines/teenagent/resources.h	2010-03-18 23:24:32 UTC (rev 48295)
@@ -47,7 +47,7 @@
 	//void loadOn(Graphics::Surface &surface, int id, uint16 &dst, uint16 *flags);
 	//void loadOns(Graphics::Surface &surface, int id, uint16 &dst);
 
-	FilePack varia, off, on, ons, lan000, lan500, sam_mmm, sam_sam;
+	FilePack off, on, ons, lan000, lan500, sam_mmm, sam_sam;
 	MemoryPack mmm;
 	Segment cseg, dseg, eseg;
 	Font font7, font8;

Modified: scummvm/trunk/engines/teenagent/scene.cpp
===================================================================
--- scummvm/trunk/engines/teenagent/scene.cpp	2010-03-18 22:54:42 UTC (rev 48294)
+++ scummvm/trunk/engines/teenagent/scene.cpp	2010-03-18 23:24:32 UTC (rev 48295)
@@ -207,8 +207,10 @@
 
 	memset(palette, 0, sizeof(palette));
 
-	Resources *res = Resources::instance();
-	Common::SeekableReadStream *s = res->varia.getStream(1);
+	FilePack varia;
+	varia.open("varia.res");
+
+	Common::SeekableReadStream *s = varia.getStream(1);
 	if (s == NULL)
 		error("invalid resource data");
 
@@ -216,7 +218,7 @@
 	if (teenagent.empty())
 		error("invalid mark animation");
 
-	s = res->varia.getStream(2);
+	s = varia.getStream(2);
 	if (s == NULL)
 		error("invalid resource data");
 
@@ -224,6 +226,7 @@
 	if (teenagent_idle.empty())
 		error("invalid mark animation");
 
+	varia.close();
 	loadObjectData();
 }
 

Modified: scummvm/trunk/engines/teenagent/teenagent.cpp
===================================================================
--- scummvm/trunk/engines/teenagent/teenagent.cpp	2010-03-18 22:54:42 UTC (rev 48294)
+++ scummvm/trunk/engines/teenagent/teenagent.cpp	2010-03-18 23:24:32 UTC (rev 48295)
@@ -325,12 +325,13 @@
 	_system->fillScreen(0);
 	_system->updateScreen();
 
-	Resources *res = Resources::instance();
+	FilePack varia;
+	varia.open("varia.res");
 
 	byte palette[0x400];
 	memset(palette, 0, sizeof(palette));
 	{
-		Common::SeekableReadStream *s = res->varia.getStream(5);
+		Common::SeekableReadStream *s = varia.getStream(5);
 		for(uint c = 0; c < 0x100; ++c) {
 			uint idx = c * 4;
 			s->read(palette + idx, 3);
@@ -343,8 +344,8 @@
 	_system->setPalette(palette, 0, 0x100);
 
 	byte varia_6[21760], varia_9[18302];
-	res->varia.read(6, varia_6, sizeof(varia_6));
-	res->varia.read(9, varia_9, sizeof(varia_9));
+	varia.read(6, varia_6, sizeof(varia_6));
+	varia.read(9, varia_9, sizeof(varia_9));
 
 	byte colors[56 * 160 * 2];
 	memset(colors, 0, sizeof(colors));


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