[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