aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTravis Howell2009-06-06 10:50:37 +0000
committerTravis Howell2009-06-06 10:50:37 +0000
commitd11d56ae13491f92c667b7210e4f4bac15425349 (patch)
tree8ea9feaa53bb67cc7bb2fb169a0da8d3ce2dd022
parent26b03dd359e28ebb058a6c8d1cd2773ebd4a8ab2 (diff)
downloadscummvm-rg350-d11d56ae13491f92c667b7210e4f4bac15425349.tar.gz
scummvm-rg350-d11d56ae13491f92c667b7210e4f4bac15425349.tar.bz2
scummvm-rg350-d11d56ae13491f92c667b7210e4f4bac15425349.zip
Add logic stub for Backyard Basketball.
svn-id: r41217
-rw-r--r--engines/scumm/detection_tables.h2
-rw-r--r--engines/scumm/he/logic_he.cpp86
-rw-r--r--engines/scumm/he/logic_he.h8
-rw-r--r--engines/scumm/scumm.cpp4
-rw-r--r--engines/scumm/scumm.h1
5 files changed, 100 insertions, 1 deletions
diff --git a/engines/scumm/detection_tables.h b/engines/scumm/detection_tables.h
index 60c9837bb4..abdc5b4e91 100644
--- a/engines/scumm/detection_tables.h
+++ b/engines/scumm/detection_tables.h
@@ -355,7 +355,7 @@ static const GameSettings gameVariantsTable[] = {
// Uses bink in external files for logos
{"Baseball2003", 0, 0, GID_HEGAME, 6, 100, MDT_NONE, GF_USE_KEY | GF_16BIT_COLOR, UNK},
- {"basketball", 0, 0, GID_HEGAME, 6, 100, MDT_NONE, GF_USE_KEY| GF_16BIT_COLOR, UNK},
+ {"basketball", 0, 0, GID_BASKETBALL, 6, 100, MDT_NONE, GF_USE_KEY| GF_16BIT_COLOR, UNK},
{"football2002", 0, 0, GID_FOOTBALL, 6, 100, MDT_NONE, GF_USE_KEY | GF_16BIT_COLOR, UNK},
{"Soccer2004", 0, 0, GID_SOCCER, 6, 100, MDT_NONE, GF_USE_KEY | GF_16BIT_COLOR, UNK},
diff --git a/engines/scumm/he/logic_he.cpp b/engines/scumm/he/logic_he.cpp
index 5f3bdd7018..a095622173 100644
--- a/engines/scumm/he/logic_he.cpp
+++ b/engines/scumm/he/logic_he.cpp
@@ -960,6 +960,92 @@ int LogicHEsoccer::op_1021(int32 *args) {
}
/***********************
+ * Backyard Basketball
+ *
+ */
+
+int LogicHEbasketball::versionID() {
+ return 1;
+}
+
+int32 LogicHEbasketball::dispatch(int op, int numArgs, int32 *args) {
+ int res = 0;
+
+ switch (op) {
+ case 1001:
+ break;
+
+ case 1006:
+ break;
+
+ case 1011:
+ break;
+
+ case 1012:
+ break;
+
+ case 1035:
+ break;
+
+ case 1050:
+ break;
+
+ case 1051:
+ break;
+
+ case 1052:
+ break;
+
+ case 1056:
+ break;
+
+ case 1057:
+ break;
+
+ case 1058:
+ break;
+
+ case 1060:
+ break;
+
+ case 1064:
+ break;
+
+ case 1067:
+ break;
+
+ case 1073:
+ break;
+
+ case 1075:
+ break;
+
+ case 1076:
+ break;
+
+ case 1080:
+ break;
+
+ case 1081:
+ break;
+
+ case 1090:
+ break;
+
+ case 1091:
+ break;
+
+ case 1513:
+ break;
+
+ default:
+ LogicHE::dispatch(op, numArgs, args);
+ }
+
+ return res;
+}
+
+/***********************
* Moonbase Commander
*
*/
diff --git a/engines/scumm/he/logic_he.h b/engines/scumm/he/logic_he.h
index 67b3ce78d3..29304b7468 100644
--- a/engines/scumm/he/logic_he.h
+++ b/engines/scumm/he/logic_he.h
@@ -135,6 +135,14 @@ private:
int op_1021(int32 *args);
};
+class LogicHEbasketball : public LogicHE {
+public:
+ LogicHEbasketball(ScummEngine_v90he *vm) : LogicHE(vm) {}
+
+ int versionID();
+ int32 dispatch(int op, int numArgs, int32 *args);
+};
+
class LogicHEmoonbase : public LogicHE {
public:
LogicHEmoonbase(ScummEngine_v90he *vm) : LogicHE(vm) {}
diff --git a/engines/scumm/scumm.cpp b/engines/scumm/scumm.cpp
index cbfa720e79..07660ab5bf 100644
--- a/engines/scumm/scumm.cpp
+++ b/engines/scumm/scumm.cpp
@@ -1524,6 +1524,10 @@ void ScummEngine_v90he::resetScumm() {
_logicHE = new LogicHEsoccer(this);
break;
+ case GID_BASKETBALL:
+ _logicHE = new LogicHEbasketball(this);
+ break;
+
case GID_MOONBASE:
_logicHE = new LogicHEmoonbase(this);
break;
diff --git a/engines/scumm/scumm.h b/engines/scumm/scumm.h
index ff3852ee83..9ac6f87f26 100644
--- a/engines/scumm/scumm.h
+++ b/engines/scumm/scumm.h
@@ -226,6 +226,7 @@ enum ScummGameId {
GID_FUNSHOP, // Used for all three funshops
GID_FOOTBALL,
GID_SOCCER,
+ GID_BASKETBALL,
GID_MOONBASE,
GID_HECUP // CUP demos
};