[Scummvm-cvs-logs] SF.net SVN: scummvm:[40509] scummvm/trunk/engines/sci

thebluegr at users.sourceforge.net thebluegr at users.sourceforge.net
Tue May 12 22:12:50 CEST 2009


Revision: 40509
          http://scummvm.svn.sourceforge.net/scummvm/?rev=40509&view=rev
Author:   thebluegr
Date:     2009-05-12 20:12:49 +0000 (Tue, 12 May 2009)

Log Message:
-----------
Rearranged all the different version checks based on SCI version in versions.h, and added some WIP and unused game flags, which will hopefully replace the SCI version numbers

Modified Paths:
--------------
    scummvm/trunk/engines/sci/sci.h
    scummvm/trunk/engines/sci/scicore/versions.h

Modified: scummvm/trunk/engines/sci/sci.h
===================================================================
--- scummvm/trunk/engines/sci/sci.h	2009-05-12 20:03:10 UTC (rev 40508)
+++ scummvm/trunk/engines/sci/sci.h	2009-05-12 20:12:49 UTC (rev 40509)
@@ -73,6 +73,77 @@
 	int version;
 };
 
+enum SciGameFlags {
+	/*
+	** SCI version flags
+	*/
+	GF_SCI0				= (1 << 0),
+	/*
+	** kDoSound() is different in this version than its SCI0 counterpart
+	*/
+	GF_SCI01			= (1 << 1),
+	GF_SCI1				= (1 << 2),
+	GF_SCI11			= (1 << 3),
+	GF_SCI32			= (1 << 4),
+
+	/*
+	** SCI0 flags
+	*/
+
+	/* First version known not to do this: 0.000.395
+	** Old SCI versions used two word header for script blocks (first word equal
+	** to 0x82, meaning of the second one unknown). New SCI versions used one
+	** word header.
+	*/
+	GF_OLDSCRIPTHEADER	= (1 << 5),
+
+	/* First version known not to do this: 0.000.395
+	** Earlier versions assign 120 degrees to left & right , and 60 to up and down.
+	** Later versions use an even 90 degree distribution.
+	*/
+	GF_OLDANGLES		= (1 << 6),
+
+	/* First version known not to do this: 0.000.490 (PQ2-new)
+	** When a new song is initialized, we store its state and
+    ** resume it when the new one finishes.  Older versions completely
+    ** clobbered the old songs.
+	*/
+	GF_OLDRESUMESONG	= (1 << 7),
+
+	/* First version known not to do this: 0.000.502
+	** Old SCI versions used to interpret the third DrawPic() parameter inversely,
+	** with the opposite default value (obviously).
+	** Also, they used 15 priority zones from 42 to 200 instead of 14 priority
+	** zones from 42 to 190.
+	*/
+	GF_OLDGFXFUNCTIONS	= (1 << 8),
+
+	/* First version known not to do this: 0.000.629
+	** Older SCI versions had simpler code for GetTime()
+	*/
+	GF_OLDGETTIME		= (1 << 9),
+
+	// ----------------------------------------------------------------------------
+
+	/*
+	** SCI1 flags
+	*/
+	
+	/* First version known to do this: 1.000.200
+    ** In later SCI1 versions, the argument of lofs[as]
+	** instructions is absolute rather than relative.
+	*/
+	GF_LOFSABSOLUTE		= (1 << 10),
+
+	/* First version known to do this: 1.000.510
+    ** In later SCI1 versions, CanBeHere is called inversely.
+	** Also in kDisplay(), if the text would not fit on the screen, it
+    ** is moved to the left and upwards until it fits.
+	** Finally, kDoSound() is different than in earlier SCI1 versions.
+	*/
+	GF_LATESCI1			= (1 << 11)
+};
+
 class SciEngine : public Engine {
 public:
 	SciEngine(OSystem *syst, const SciGameDescription *desc);

Modified: scummvm/trunk/engines/sci/scicore/versions.h
===================================================================
--- scummvm/trunk/engines/sci/scicore/versions.h	2009-05-12 20:03:10 UTC (rev 40508)
+++ scummvm/trunk/engines/sci/scicore/versions.h	2009-05-12 20:12:49 UTC (rev 40509)
@@ -46,21 +46,6 @@
 ** - "FTU" means "First To Use"
 */
 
-#define SCI_VERSION_FTU_NEW_GETTIME SCI_VERSION(0,000,629)
-/* These versions of SCI has a different set of subfunctions in GetTime() */
-
-#define SCI_VERSION_FTU_NEWER_DRAWPIC_PARAMETERS SCI_VERSION(0,000,502)
-/* Last version known not to do this: 0.000.435
-** Old SCI versions used to interpret the third DrawPic() parameter inversely,
-** with the opposite default value (obviously)
-*/
-
-#define SCI_VERSION_FTU_PRIORITY_14_ZONES SCI_VERSION(0,000,502)
-/* Last version known to do this: 0.000.490
- * Uses 14 zones from 42 to 190 instead of 15 zones from 42 to 200.
-*/
-
-
 #define SCI_VERSION_FTU_NEW_SCRIPT_HEADER SCI_VERSION(0,000,395)
 /* Last version known not to do this: 0.000.343
 ** Old SCI versions used two word header for script blocks (first word equal
@@ -81,17 +66,33 @@
    clobbered the old songs.
 */
 
-#define SCI_VERSION_FTU_INVERSE_CANBEHERE SCI_VERSION(1,000,510)
-/* FIXME: This shouldn't be a version number.
- * But it'll do for now.
- */
+#define SCI_VERSION_FTU_NEWER_DRAWPIC_PARAMETERS SCI_VERSION(0,000,502)
+/* Last version known not to do this: 0.000.435
+** Old SCI versions used to interpret the third DrawPic() parameter inversely,
+** with the opposite default value (obviously)
+*/
 
+#define SCI_VERSION_FTU_PRIORITY_14_ZONES SCI_VERSION(0,000,502)
+/* Last version known to do this: 0.000.490
+ * Uses 14 zones from 42 to 190 instead of 15 zones from 42 to 200.
+*/
+
+#define SCI_VERSION_FTU_NEW_GETTIME SCI_VERSION(0,000,629)
+/* These versions of SCI has a different set of subfunctions in GetTime() */
+
+#define SCI_VERSION_FTU_DOSOUND_VARIANT_1 SCI_VERSION(1,000,000)
+
 #define SCI_VERSION_FTU_LOFS_ABSOLUTE SCI_VERSION(1,000,200)
 /* First version known to do this: ?
    In later versions (SCI1 and beyond), the argument of lofs[as]
    instructions is absolute rather than relative.
 */
 
+#define SCI_VERSION_FTU_INVERSE_CANBEHERE SCI_VERSION(1,000,510)
+/* FIXME: This shouldn't be a version number.
+ * But it'll do for now.
+ */
+
 #define SCI_VERSION_FTU_DISPLAY_COORDS_FUZZY SCI_VERSION(1,000,510)
 /* First version known to do this: ?
    In later versions of SCI1 kDisplay(), if the text would not fit on
@@ -99,7 +100,6 @@
    fits.
 */
 
-#define SCI_VERSION_FTU_DOSOUND_VARIANT_1 SCI_VERSION(1,000,000)
 #define SCI_VERSION_FTU_DOSOUND_VARIANT_2 SCI_VERSION(1,000,510)
 
 


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