[Scummvm-cvs-logs] CVS: residual engine.cpp,1.95,1.96 engine.h,1.36,1.37 localize.cpp,1.12,1.13 lua.cpp,1.157,1.158 main.cpp,1.49,1.50 resource.cpp,1.26,1.27 scene.cpp,1.45,1.46 scene.h,1.30,1.31 textsplit.cpp,1.10,1.11

Pawel Kolodziejski aquadran at users.sourceforge.net
Sat Aug 27 09:10:25 CEST 2005


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

Modified Files:
	engine.cpp engine.h localize.cpp lua.cpp main.cpp resource.cpp 
	scene.cpp scene.h textsplit.cpp 
Log Message:
basic grim demo support

Index: engine.cpp
===================================================================
RCS file: /cvsroot/scummvm/residual/engine.cpp,v
retrieving revision 1.95
retrieving revision 1.96
diff -u -d -r1.95 -r1.96
--- engine.cpp	20 Aug 2005 19:04:50 -0000	1.95
+++ engine.cpp	27 Aug 2005 16:08:44 -0000	1.96
@@ -35,6 +35,7 @@
 
 extern Imuse *g_imuse;
 int g_imuseState = -1;
+int g_flags = 0;
 
 #ifdef _WIN32
 

Index: engine.h
===================================================================
RCS file: /cvsroot/scummvm/residual/engine.h,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -d -r1.36 -r1.37
--- engine.h	14 Aug 2005 13:26:37 -0000	1.36
+++ engine.h	27 Aug 2005 16:08:44 -0000	1.37
@@ -38,6 +38,10 @@
 #define ENGINE_MODE_SMUSH	3
 #define ENGINE_MODE_DRAW	4
 
+extern int g_flags;
+
+#define GF_DEMO		1
+
 // Fake SDLK_* values for joystick and mouse events
 enum {
 	SDLK_JOY1_B1 = SDLK_LAST,

Index: localize.cpp
===================================================================
RCS file: /cvsroot/scummvm/residual/localize.cpp,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -d -r1.12 -r1.13
--- localize.cpp	10 Jul 2005 18:57:27 -0000	1.12
+++ localize.cpp	27 Aug 2005 16:08:44 -0000	1.13
@@ -19,6 +19,7 @@
 #include "debug.h"
 #include "localize.h"
 #include "registry.h"
+#include "engine.h"
 
 #include <cstdio>
 #include <cstring>
@@ -29,6 +30,9 @@
 	std::FILE *f;
 	const char *namesToTry[] = { "/GRIM.TAB", "/Grim.tab", "/grim.tab" };
 
+	if (g_flags & GF_DEMO)
+		return;
+
 	for (unsigned i = 0; i < sizeof(namesToTry) / sizeof(namesToTry[0]); i++) {
 		const char *datadir = g_registry->get("DataDir", NULL);
 		std::string fname = (datadir != NULL ? datadir : ".");

Index: lua.cpp
===================================================================
RCS file: /cvsroot/scummvm/residual/lua.cpp,v
retrieving revision 1.157
retrieving revision 1.158
diff -u -d -r1.157 -r1.158
--- lua.cpp	20 Aug 2005 22:05:55 -0000	1.157
+++ lua.cpp	27 Aug 2005 16:08:44 -0000	1.158
@@ -2990,6 +2990,9 @@
 	if(debugLevel == DEBUG_ERROR || debugLevel == DEBUG_ALL)
 		error("OPCODE USAGE VERIFICATION: SetEmergencyFont");
 }
+static void LoadBundle() {
+	// loading grimdemo1.lab is allready handled
+}
 
 /* Generate debug information for all functions
  *
@@ -3119,7 +3122,6 @@
 STUB_FUNC(GetCameraFOV)
 STUB_FUNC(SetCameraFOV)
 STUB_FUNC(GetCameraRoll)
-STUB_FUNC(LoadBundle)
 STUB_FUNC(ActorShadow)
 STUB_FUNC(ActorPuckOrient)
 STUB_FUNC(GetMemoryUsage)

Index: main.cpp
===================================================================
RCS file: /cvsroot/scummvm/residual/main.cpp,v
retrieving revision 1.49
retrieving revision 1.50
diff -u -d -r1.49 -r1.50
--- main.cpp	10 Jul 2005 18:57:27 -0000	1.49
+++ main.cpp	27 Aug 2005 16:08:44 -0000	1.50
@@ -171,7 +171,9 @@
 		g_driver = new DriverGL(640, 480, 24, fullscreen);
 	g_imuse = new Imuse(20);
 
-	Bitmap *splash_bm = g_resourceloader->loadBitmap("splash.bm");
+	Bitmap *splash_bm = NULL;
+	if (!(g_flags & GF_DEMO))
+		splash_bm = g_resourceloader->loadBitmap("splash.bm");
 
 	SDL_Event event;
 	
@@ -184,7 +186,8 @@
 #endif	
 			g_driver->clearScreen();
 
-			splash_bm->draw();
+			if (!(g_flags & GF_DEMO))
+				splash_bm->draw();
 
 			g_driver->flipBuffer();
 #ifndef MACOSX

Index: resource.cpp
===================================================================
RCS file: /cvsroot/scummvm/residual/resource.cpp,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -d -r1.26 -r1.27
--- resource.cpp	17 Jul 2005 23:40:21 -0000	1.26
+++ resource.cpp	27 Aug 2005 16:08:44 -0000	1.27
@@ -26,6 +26,7 @@
 #include "keyframe.h"
 #include "material.h"
 #include "model.h"
+#include "engine.h"
 #include "lipsynch.h"
 
 #include <cstring>
@@ -62,16 +63,19 @@
 #ifdef _WIN32
 	do {
 		int namelen = strlen(find_file_data.cFileName);
-		if ((namelen > 4) && (stricmp(find_file_data.cFileName + namelen - 4, ".lab") == 0)) {
+		if (namelen > 4 && ((stricmp(find_file_data.cFileName + namelen - 4, ".lab") == 0) || (stricmp(find_file_data.cFileName + namelen - 4, ".mus") == 0))) {
 			std::string fullname = dir_str + find_file_data.cFileName;
 			Lab *l = new Lab(fullname.c_str());
 			lab_counter++;
-			if (l->isOpen())
+			if (l->isOpen()) {
 				if (strstr(find_file_data.cFileName, "005"))
 					_labs.push_front(l);
-				else
+				else {
+					if (strstr(find_file_data.cFileName, "gfdemo01"))
+						g_flags |= GF_DEMO;
 					_labs.push_back(l);
-			else
+				}
+			} else
 				delete l;
 		}
 	} while (FindNextFile(d, &find_file_data));
@@ -80,7 +84,7 @@
 	dirent *de;
 	while ((de = readdir(d)) != NULL) {
 		int namelen = strlen(de->d_name);
-		if (namelen > 4 && strcasecmp(de->d_name + namelen - 4, ".lab") == 0) {
+		if (namelen > 4 && ((strcasecmp(de->d_name + namelen - 4, ".lab") == 0) || (strcasecmp(de->d_name + namelen - 4, ".mus") == 0))) {
 			std::string fullname = dir_str + de->d_name;
 			Lab *l = new Lab(fullname.c_str());
 			lab_counter++;
@@ -88,8 +92,11 @@
 				// Handle the Grim 1.1 patch's datafile
 				if (strstr(de->d_name, "005"))
 					_labs.push_front(l);
-				else
+				else {
+					if (strstr(find_file_data.cFileName, "gfdemo01"))
+						g_flags |= GF_DEMO;
 					_labs.push_back(l);
+				}
 			else
 				delete l;
 		}

Index: scene.cpp
===================================================================
RCS file: /cvsroot/scummvm/residual/scene.cpp,v
retrieving revision 1.45
retrieving revision 1.46
diff -u -d -r1.45 -r1.46
--- scene.cpp	10 Aug 2005 08:33:45 -0000	1.45
+++ scene.cpp	27 Aug 2005 16:08:44 -0000	1.46
@@ -24,6 +24,7 @@
 #include "colormap.h"
 #include "vector3d.h"
 #include "driver.h"
+#include "engine.h"
 
 #include "imuse/imuse.h"
 
@@ -44,6 +45,15 @@
 		_cmaps[i] = g_resourceloader->loadColormap(cmap_name);
 	}
 
+	if (g_flags & GF_DEMO) {
+		ts.expectString("section: objectstates");
+		ts.scanString(" tot_objects %d", 1, &_numObjectStates);
+		char object_name[256];
+		ts.scanString(" object %256s", 1, object_name);
+	} else {
+		_numObjectStates = 0;
+	}
+
 	ts.expectString("section: setups");
 	ts.scanString(" numsetups %d", 1, &_numSetups);
 	_setups = new Setup[_numSetups];
@@ -138,6 +148,8 @@
 	ts.scanString(" fov %f", 1, &_fov);
 	ts.scanString(" nclip %f", 1, &_nclip);
 	ts.scanString(" fclip %f", 1, &_fclip);
+	if (ts.checkString("object_art"))
+		ts.scanString(" object_art %256s", 1, &buf);
 }
 
 void Scene::Light::load(TextSplitter &ts) {

Index: scene.h
===================================================================
RCS file: /cvsroot/scummvm/residual/scene.h,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -d -r1.30 -r1.31
--- scene.h	10 Aug 2005 08:33:45 -0000	1.30
+++ scene.h	27 Aug 2005 16:08:44 -0000	1.31
@@ -128,7 +128,7 @@
 	std::string _name;
 	int _numCmaps;
 	ResPtr<CMap> *_cmaps;
-	int _numSetups, _numLights, _numSectors;
+	int _numSetups, _numLights, _numSectors, _numObjectStates;
 	bool _enableLights;
 	Sector *_sectors;
 	Light *_lights;

Index: textsplit.cpp
===================================================================
RCS file: /cvsroot/scummvm/residual/textsplit.cpp,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -d -r1.10 -r1.11
--- textsplit.cpp	1 Jan 2005 12:27:56 -0000	1.10
+++ textsplit.cpp	27 Aug 2005 16:08:44 -0000	1.11
@@ -36,11 +36,22 @@
 	unsigned int f08 = va_arg(ap, long);
 	unsigned int f09 = va_arg(ap, long);
 	unsigned int f10 = va_arg(ap, long);
+	unsigned int f11 = va_arg(ap, long);
+	unsigned int f12 = va_arg(ap, long);
+	unsigned int f13 = va_arg(ap, long);
+	unsigned int f14 = va_arg(ap, long);
+	unsigned int f15 = va_arg(ap, long);
+	unsigned int f16 = va_arg(ap, long);
+	unsigned int f17 = va_arg(ap, long);
+	unsigned int f18 = va_arg(ap, long);
+	unsigned int f19 = va_arg(ap, long);
+	unsigned int f20 = va_arg(ap, long);
 
-	if (field_count > 10)
+	if (field_count > 20)
 		error("Too many fields requested of residual_vsscanf (%d)", field_count);
 
-	return sscanf(str, format, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10);
+	return sscanf(str, format, f01, f02, f03, f04, f05, f06, f07, f08, f09, f10,
+			f11, f12, f13, f14, f15, f16, f17, f18, f19, f20);
 }
 
 TextSplitter::TextSplitter(const char *data, int len) {





More information about the Scummvm-git-logs mailing list