[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