[Scummvm-cvs-logs] SF.net SVN: scummvm: [22561] scummvm/trunk/engines/kyra

eriktorbjorn at users.sourceforge.net eriktorbjorn at users.sourceforge.net
Sun May 21 11:17:12 CEST 2006


Revision: 22561
Author:   eriktorbjorn
Date:     2006-05-21 11:16:34 -0700 (Sun, 21 May 2006)
ViewCVS:  http://svn.sourceforge.net/scummvm/?rev=22561&view=rev

Log Message:
-----------
At LordHoto's request...

* The VQA move player isn't as similar to the WSA movie player as we first
  envisioned, so the VQA player no longer inherits from Movie. It does retain
  a fairly similar calling interface, though.

* Use the Kyra engine's idea of screen dimensions, rather than the backend's.

Modified Paths:
--------------
    scummvm/trunk/engines/kyra/kyra3.cpp
    scummvm/trunk/engines/kyra/vqa.cpp
    scummvm/trunk/engines/kyra/wsamovie.h

Added Paths:
-----------
    scummvm/trunk/engines/kyra/vqa.h
Modified: scummvm/trunk/engines/kyra/kyra3.cpp
===================================================================
--- scummvm/trunk/engines/kyra/kyra3.cpp	2006-05-21 17:28:03 UTC (rev 22560)
+++ scummvm/trunk/engines/kyra/kyra3.cpp	2006-05-21 18:16:34 UTC (rev 22561)
@@ -25,6 +25,7 @@
 #include "kyra/wsamovie.h"
 #include "kyra/sound.h"
 #include "kyra/text.h"
+#include "kyra/vqa.h"
 
 #include "common/system.h"
 #include "common/config-manager.h"
@@ -160,7 +161,7 @@
 
 	snprintf(filename, sizeof(filename), "%s%d.VQA", name, size);
 
-	vqa.open(filename, 0, NULL);
+	vqa.open(filename);
 	if (vqa.opened()) {
 		vqa.setDrawPage(0);
 		vqa.play();

Modified: scummvm/trunk/engines/kyra/vqa.cpp
===================================================================
--- scummvm/trunk/engines/kyra/vqa.cpp	2006-05-21 17:28:03 UTC (rev 22560)
+++ scummvm/trunk/engines/kyra/vqa.cpp	2006-05-21 18:16:34 UTC (rev 22561)
@@ -34,13 +34,16 @@
 #include "sound/audiostream.h"
 #include "sound/mixer.h"
 #include "kyra/sound.h"
-#include "kyra/wsamovie.h"
 #include "kyra/screen.h"
+#include "kyra/vqa.h"
 
 namespace Kyra {
 
-VQAMovie::VQAMovie(KyraEngine *vm, OSystem *system) : Movie(vm) {
+VQAMovie::VQAMovie(KyraEngine *vm, OSystem *system) {
 	_system = system;
+	_vm = vm;
+	_opened = false;
+	_x = _y = _drawPage = -1;
 }
 
 VQAMovie::~VQAMovie() {
@@ -246,7 +249,7 @@
 	}
 }
 
-void VQAMovie::open(const char *filename, int dummy1, uint8 *dummy2) {
+void VQAMovie::open(const char *filename) {
 	debugC(9, kDebugLevelMovie, "VQAMovie::open('%s')", filename);
 	close();
 
@@ -312,8 +315,8 @@
 				}
 			}
 
-			setX((_system->getWidth() - _header.width) / 2);
-			setY((_system->getHeight() - _header.height) / 2);
+			setX((Screen::SCREEN_W - _header.width) / 2);
+			setY((Screen::SCREEN_H - _header.height) / 2);
 
 			// HACK: I've only seen 8-bit mono audio in Kyra 3
 

Added: scummvm/trunk/engines/kyra/vqa.h
===================================================================
--- scummvm/trunk/engines/kyra/vqa.h	                        (rev 0)
+++ scummvm/trunk/engines/kyra/vqa.h	2006-05-21 18:16:34 UTC (rev 22561)
@@ -0,0 +1,122 @@
+/* ScummVM - Scumm Interpreter
+ * Copyright (C) 2006 The ScummVM project
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * $URL$
+ * $Id$
+ *
+ */
+
+#ifndef VQA_H
+#define VQA_H
+
+class OSystem;
+
+namespace Kyra {
+
+class KyraEngine;
+
+class VQAMovie {
+public:
+	VQAMovie(KyraEngine *vm, OSystem *system);
+	~VQAMovie();
+
+	bool opened() { return _opened; }
+	int frames() { return _opened ? _header.numFrames : -1; }
+
+	// It's unlikely that we ever want to change the movie position from
+	// its default.
+
+	void setX(int x) { _x = x; }
+	void setY(int y) { _y = y; }
+
+	void setDrawPage(int page) { _drawPage = page; }
+
+	void open(const char *filename);
+	void close();
+	void play();
+
+protected:
+	OSystem *_system;
+	KyraEngine *_vm;
+
+	bool _opened;
+	int _x, _y;
+	int _drawPage;
+
+	struct VQAHeader {
+		uint16 version;
+		uint16 flags;
+		uint16 numFrames;
+		uint16 width;
+		uint16 height;
+		uint8 blockW;
+		uint8 blockH;
+		uint8 frameRate;
+		uint8 cbParts;
+		uint16 colors;
+		uint16 maxBlocks;
+		uint32 unk1;
+		uint16 unk2;
+		uint16 freq;
+		uint8 channels;
+		uint8 bits;
+		uint32 unk3;
+		uint16 unk4;
+		uint32 maxCBFZSize;
+		uint32 unk5;
+	};
+
+	struct Buffer {
+		void *data;
+		uint32 size;
+	};
+
+	Buffer _buffers[2];
+
+	void initBuffers();
+	void *allocBuffer(int num, uint32 size);
+	void freeBuffers();
+
+	int decodeFormat80(byte *inbuf, byte *outbuf);
+	void decodeSND1(byte *inbuf, uint32 insize, byte *outbuf, uint32 outsize);
+
+	void displayFrame(int frameNum);
+
+	Common::File _file;
+
+	VQAHeader _header;
+	uint32 *_frameInfo;
+	byte *_codeBook;
+	byte *_partialCodeBook;
+	bool _compressedCodeBook;
+	int _partialCodeBookSize;
+	int _numPartialCodeBooks;
+	uint32 _numVectorPointers;
+	uint16 *_vectorPointers;
+
+	byte _palette[4 * 256];
+	byte *_frame;
+
+	Audio::AppendableAudioStream *_stream;
+	Audio::SoundHandle *_sound;
+
+	uint32 readTag();
+};
+
+} // end of namespace Kyra
+
+#endif


Property changes on: scummvm/trunk/engines/kyra/vqa.h
___________________________________________________________________
Name: svn:mime-type
   + text/plain
Name: svn:keywords
   + Date Rev Author URL Id
Name: svn:eol-style
   + native

Modified: scummvm/trunk/engines/kyra/wsamovie.h
===================================================================
--- scummvm/trunk/engines/kyra/wsamovie.h	2006-05-21 17:28:03 UTC (rev 22560)
+++ scummvm/trunk/engines/kyra/wsamovie.h	2006-05-21 18:16:34 UTC (rev 22561)
@@ -114,84 +114,6 @@
 	int16 _yAdd;
 };
 
-// Kyra 3 VQA movies. Should perhaps be in another header file.
-
-class VQAMovie : public Movie {
-public:
-	VQAMovie(KyraEngine *vm, OSystem *system);
-	~VQAMovie();
-
-	// Only the first parameter is used.
-	void open(const char *filename, int offscreen, uint8 *palette);
-	void close();
-
-	int frames() { return _opened ? _header.numFrames : -1; }
-
-	// should not be used (maybe don't use Movie as a baseclass then?)
-	void displayFrame(int frameNum);
-
-	void play();
-protected:
-	OSystem *_system;
-
-	struct VQAHeader {
-		uint16 version;
-		uint16 flags;
-		uint16 numFrames;
-		uint16 width;
-		uint16 height;
-		uint8 blockW;
-		uint8 blockH;
-		uint8 frameRate;
-		uint8 cbParts;
-		uint16 colors;
-		uint16 maxBlocks;
-		uint32 unk1;
-		uint16 unk2;
-		uint16 freq;
-		uint8 channels;
-		uint8 bits;
-		uint32 unk3;
-		uint16 unk4;
-		uint32 maxCBFZSize;
-		uint32 unk5;
-	};
-
-	struct Buffer {
-		void *data;
-		uint32 size;
-	};
-
-	Buffer _buffers[2];
-
-	void initBuffers();
-	void *allocBuffer(int num, uint32 size);
-	void freeBuffers();
-
-	int decodeFormat80(byte *inbuf, byte *outbuf);
-	void decodeSND1(byte *inbuf, uint32 insize, byte *outbuf, uint32 outsize);
-
-	Common::File _file;
-
-	VQAHeader _header;
-	uint32 *_frameInfo;
-	byte *_codeBook;
-	byte *_partialCodeBook;
-	bool _compressedCodeBook;
-	int _partialCodeBookSize;
-	int _numPartialCodeBooks;
-	uint32 _numVectorPointers;
-	uint16 *_vectorPointers;
-
-	byte _palette[4 * 256];
-	byte *_frame;
-
-	Audio::AppendableAudioStream *_stream;
-	Audio::SoundHandle *_sound;
-
-	uint32 readTag();
-};
-
 } // end of namespace Kyra
 
 #endif


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