aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine/kernel32.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/sci/engine/kernel32.cpp')
-rw-r--r--engines/sci/engine/kernel32.cpp145
1 files changed, 0 insertions, 145 deletions
diff --git a/engines/sci/engine/kernel32.cpp b/engines/sci/engine/kernel32.cpp
index db6a91335b..64fed6cec3 100644
--- a/engines/sci/engine/kernel32.cpp
+++ b/engines/sci/engine/kernel32.cpp
@@ -457,34 +457,6 @@ reg_t kArray(EngineState *s, int argc, reg_t *argv) {
return NULL_REG;
}
-reg_t kListAt(EngineState *s, int argc, reg_t *argv) {
- if (argc != 2) {
- warning("kListAt called with %d parameters", argc);
- return NULL_REG;
- }
-
- List *list = s->_segMan->lookupList(argv[0]);
- reg_t curAddress = list->first;
- Node *curNode = s->_segMan->lookupNode(curAddress);
- reg_t curObject = curNode->value;
- int16 listIndex = argv[1].toUint16();
- int curIndex = 0;
-
- while (curIndex != listIndex) {
- if (curNode->succ.isNull()) { // end of the list?
- return NULL_REG;
- }
-
- curAddress = curNode->succ;
- curNode = s->_segMan->lookupNode(curAddress);
- curObject = curNode->value;
-
- curIndex++;
- }
-
- return curObject;
-}
-
reg_t kString(EngineState *s, int argc, reg_t *argv) {
switch (argv[0].toUint16()) {
case 0: { // New
@@ -728,123 +700,6 @@ reg_t kFrameOut(EngineState *s, int argc, reg_t *argv) {
return NULL_REG;
}
-reg_t kListIndexOf(EngineState *s, int argc, reg_t *argv) {
- List *list = s->_segMan->lookupList(argv[0]);
-
- reg_t curAddress = list->first;
- Node *curNode = s->_segMan->lookupNode(curAddress);
- reg_t curObject;
- uint16 curIndex = 0;
-
- while (curNode) {
- curObject = curNode->value;
- if (curObject == argv[1])
- return make_reg(0, curIndex);
-
- curAddress = curNode->succ;
- curNode = s->_segMan->lookupNode(curAddress);
- curIndex++;
- }
-
- return SIGNAL_REG;
-}
-
-reg_t kListEachElementDo(EngineState *s, int argc, reg_t *argv) {
- List *list = s->_segMan->lookupList(argv[0]);
-
- reg_t curAddress = list->first;
- Node *curNode = s->_segMan->lookupNode(curAddress);
- reg_t curObject;
- Selector slc = argv[1].toUint16();
-
- ObjVarRef address;
-
- while (curNode) {
- curObject = curNode->value;
-
- // First, check if the target selector is a variable
- if (lookup_selector(s->_segMan, curObject, slc, &address, NULL) == kSelectorVariable) {
- // This can only happen with 3 params (list, target selector, variable)
- if (argc != 3) {
- warning("kListEachElementDo: Attempted to modify a variable selector with %d params", argc);
- } else {
- write_selector(s->_segMan, curObject, slc, argv[2]);
- }
- } else {
- // FIXME: Yes, this is an ugly hack...
- if (argc == 2) {
- invoke_selector(s, curObject, slc, kContinueOnInvalidSelector, argv, argc, 0);
- } else if (argc == 3) {
- invoke_selector(s, curObject, slc, kContinueOnInvalidSelector, argv, argc, 1, argv[2]);
- } else if (argc == 4) {
- invoke_selector(s, curObject, slc, kContinueOnInvalidSelector, argv, argc, 2, argv[2], argv[3]);
- } else if (argc == 5) {
- invoke_selector(s, curObject, slc, kContinueOnInvalidSelector, argv, argc, 3, argv[2], argv[3], argv[4]);
- } else {
- warning("kListEachElementDo: called with %d params", argc);
- }
- }
-
- // Lookup node again, since the nodetable it was in may have been reallocated
- curNode = s->_segMan->lookupNode(curAddress);
-
- curAddress = curNode->succ;
- curNode = s->_segMan->lookupNode(curAddress);
- }
-
-
- return s->r_acc;
-}
-
-reg_t kListFirstTrue(EngineState *s, int argc, reg_t *argv) {
- List *list = s->_segMan->lookupList(argv[0]);
-
- reg_t curAddress = list->first;
- Node *curNode = s->_segMan->lookupNode(curAddress);
- reg_t curObject;
- Selector slc = argv[1].toUint16();
-
- ObjVarRef address;
-
- s->r_acc = NULL_REG; // reset the accumulator
-
- while (curNode) {
- curObject = curNode->value;
-
- // First, check if the target selector is a variable
- if (lookup_selector(s->_segMan, curObject, slc, &address, NULL) == kSelectorVariable) {
- // Can this happen with variable selectors?
- warning("kListFirstTrue: Attempted to access a variable selector");
- } else {
- // FIXME: Yes, this is an ugly hack...
- if (argc == 2) {
- invoke_selector(s, curObject, slc, kContinueOnInvalidSelector, argv, argc, 0);
- } else if (argc == 3) {
- invoke_selector(s, curObject, slc, kContinueOnInvalidSelector, argv, argc, 1, argv[2]);
- } else if (argc == 4) {
- invoke_selector(s, curObject, slc, kContinueOnInvalidSelector, argv, argc, 2, argv[2], argv[3]);
- } else if (argc == 5) {
- invoke_selector(s, curObject, slc, kContinueOnInvalidSelector, argv, argc, 3, argv[2], argv[3], argv[4]);
- } else {
- warning("kListFirstTrue: called with %d params", argc);
- }
-
- // Check if the result is true
- if (s->r_acc != NULL_REG)
- return curObject;
- }
-
- // Lookup node again, since the nodetable it was in may have been reallocated
- curNode = s->_segMan->lookupNode(curAddress);
-
- curAddress = curNode->succ;
- curNode = s->_segMan->lookupNode(curAddress);
- }
-
- // No selector returned true
- return NULL_REG;
-}
-
reg_t kOnMe(EngineState *s, int argc, reg_t *argv) {
// Tests if the cursor is on the passed object