aboutsummaryrefslogtreecommitdiff
path: root/sky
diff options
context:
space:
mode:
authorRobert Göffringmann2004-12-16 06:10:11 +0000
committerRobert Göffringmann2004-12-16 06:10:11 +0000
commitadbe2b8c49111e0d80a3a9e2890e7817e48ec60c (patch)
tree490892e959dda93c2b93561ac8ae1a7697587d51 /sky
parente7f44ab3db1e47f01c719cb01b7fe76301d45b0e (diff)
downloadscummvm-rg350-adbe2b8c49111e0d80a3a9e2890e7817e48ec60c.tar.gz
scummvm-rg350-adbe2b8c49111e0d80a3a9e2890e7817e48ec60c.tar.bz2
scummvm-rg350-adbe2b8c49111e0d80a3a9e2890e7817e48ec60c.zip
added some debugging functions
svn-id: r16074
Diffstat (limited to 'sky')
-rw-r--r--sky/compact.cpp34
-rw-r--r--sky/compact.h6
2 files changed, 40 insertions, 0 deletions
diff --git a/sky/compact.cpp b/sky/compact.cpp
index 3b2eee59aa..46e9c11c34 100644
--- a/sky/compact.cpp
+++ b/sky/compact.cpp
@@ -406,4 +406,38 @@ uint8 *SkyCompact::createResetData(uint16 gameVersion) {
error("Unable to find reset data for Beneath a Steel Sky Version 0.0%03d", gameVersion);
}
+// - debugging functions
+
+uint16 SkyCompact::findCptId(void *cpt) {
+ for (uint16 listCnt = 0; listCnt < _numDataLists; listCnt++)
+ for (uint16 elemCnt = 0; elemCnt < _dataListLen[listCnt]; elemCnt++)
+ if (_compacts[listCnt][elemCnt] == cpt)
+ return (listCnt << 12) | elemCnt;
+ // not found
+ debug(1, "Id for Compact %p wasn't found!", cpt);
+ return 0;
+}
+
+uint16 SkyCompact::findCptId(const char *cptName) {
+ for (uint16 listCnt = 0; listCnt < _numDataLists; listCnt++)
+ for (uint16 elemCnt = 0; elemCnt < _dataListLen[listCnt]; elemCnt++)
+ if (_cptNames[listCnt][elemCnt] != 0)
+ if (scumm_stricmp(cptName, _cptNames[listCnt][elemCnt]) == 0)
+ return (listCnt << 12) | elemCnt;
+ // not found
+ debug(1, "Id for Compact %s wasn't found!", cptName);
+ return 0;
+}
+
+uint16 SkyCompact::giveNumDataLists(void) {
+ return _numDataLists;
+}
+
+uint16 SkyCompact::giveDataListLen(uint16 listNum) {
+ if (listNum >= _numDataLists) // list doesn't exist
+ return 0;
+ else
+ return _dataListLen[listNum];
+}
+
} // End of namespace Sky
diff --git a/sky/compact.h b/sky/compact.h
index e772d7be29..97943bfddc 100644
--- a/sky/compact.h
+++ b/sky/compact.h
@@ -31,6 +31,7 @@ class File;
enum CptIds {
CPT_JOEY = 1,
CPT_FOSTER = 3,
+ CPT_MENU_BAR = 0x2E,
CPT_REICH_DOOR_20 = 0x30AB,
CPT_MOVE_LIST = 0xBD //0x8000
};
@@ -65,6 +66,11 @@ public:
uint8 *createResetData(uint16 gameVersion);
uint16 _numSaveIds;
uint16 *_saveIds;
+ // - debugging functions
+ uint16 findCptId(void *cpt);
+ uint16 findCptId(const char *cptName);
+ uint16 giveNumDataLists(void);
+ uint16 giveDataListLen(uint16 listNum);
private:
uint16 _numDataLists;
uint16 *_dataListLen;