diff options
-rw-r--r-- | engines/hdb/ai-lists.cpp | 169 |
1 files changed, 68 insertions, 101 deletions
diff --git a/engines/hdb/ai-lists.cpp b/engines/hdb/ai-lists.cpp index c272df7555..39b3970a1d 100644 --- a/engines/hdb/ai-lists.cpp +++ b/engines/hdb/ai-lists.cpp @@ -412,113 +412,80 @@ bool AI::activateAction(AIEntity *e, int x, int y, int targetX, int targetY) { tileIndex = g_hdb->_map->getMapBGTileIndex(x, y); // Check which tile is going to activate - if ( tileIndex == _useSwitchOff || tileIndex == _useSwitchOff + 1 ) - success = useSwitch( e, x, y, targetX, targetY, _useSwitchOn ); - else - if ( tileIndex == _useSwitchOn ) - success = useSwitchOn( e, x, y, targetX, targetY, _useSwitchOff ); - else + if (tileIndex == _useSwitchOff || tileIndex == _useSwitchOff + 1) + success = useSwitch(e, x, y, targetX, targetY, _useSwitchOn); + else if (tileIndex == _useSwitchOn) + success = useSwitchOn(e, x, y, targetX, targetY, _useSwitchOff); //------------------------------------------------------------------- - if ( tileIndex == _useHandswitchOff || tileIndex == _useHandswitchOff + 1 ) - success = useSwitch( e, x, y, targetX, targetY, _useHandswitchOn ); - else - if ( tileIndex == _useHandswitchOn ) - success = useSwitchOn( e, x, y, targetX, targetY, _useHandswitchOff ); - else + else if (tileIndex == _useHandswitchOff || tileIndex == _useHandswitchOff + 1) + success = useSwitch(e, x, y, targetX, targetY, _useHandswitchOn); + else if (tileIndex == _useHandswitchOn) + success = useSwitchOn(e, x, y, targetX, targetY, _useHandswitchOff); //------------------------------------------------------------------- - if ( tileIndex == _kcHolderWhiteOff || tileIndex == _kcHolderWhiteOff + 1 ) - success = useLockedSwitch( e, x, y, targetX, targetY, _kcHolderWhiteOn, ITEM_KEYCARD_WHITE, "I need a White Keycard." ); - else - if ( tileIndex == _kcHolderWhiteOn ) - success = useLockedSwitchOn( e, x, y, targetX, targetY, _kcHolderWhiteOff, ITEM_KEYCARD_WHITE ); - else - if ( tileIndex == _kcHolderBlueOff || tileIndex == _kcHolderBlueOff + 1 ) - success = useLockedSwitch( e, x, y, targetX, targetY, _kcHolderBlueOn, ITEM_KEYCARD_BLUE, "I need a Blue Keycard." ); - else - if ( tileIndex == _kcHolderBlueOn ) - success = useLockedSwitchOn( e, x, y, targetX, targetY, _kcHolderBlueOff, ITEM_KEYCARD_BLUE ); - else - if ( tileIndex == _kcHolderRedOff || tileIndex == _kcHolderRedOff + 1 ) - success = useLockedSwitch( e, x, y, targetX, targetY, _kcHolderRedOn, ITEM_KEYCARD_RED, "I need a Red Keycard." ); - else - if ( tileIndex == _kcHolderRedOn ) - success = useLockedSwitchOn( e, x, y, targetX, targetY, _kcHolderRedOff, ITEM_KEYCARD_RED ); - else - if ( tileIndex == _kcHolderGreenOff || tileIndex == _kcHolderGreenOff + 1 ) - success = useLockedSwitch( e, x, y, targetX, targetY, _kcHolderGreenOn, ITEM_KEYCARD_GREEN, "I need a Green Keycard." ); - else - if ( tileIndex == _kcHolderGreenOn ) - success = useLockedSwitchOn( e, x, y, targetX, targetY, _kcHolderGreenOff, ITEM_KEYCARD_GREEN ); - else - if ( tileIndex == _kcHolderPurpleOff || tileIndex == _kcHolderPurpleOff + 1 ) - success = useLockedSwitch( e, x, y, targetX, targetY, _kcHolderPurpleOn, ITEM_KEYCARD_PURPLE, "I need a Purple Keycard." ); - else - if ( tileIndex == _kcHolderPurpleOn ) - success = useLockedSwitchOn( e, x, y, targetX, targetY, _kcHolderPurpleOff, ITEM_KEYCARD_PURPLE ); - else - if ( tileIndex == _kcHolderBlackOff || tileIndex == _kcHolderBlackOff + 1 ) - success = useLockedSwitch( e, x, y, targetX, targetY, _kcHolderBlackOn, ITEM_KEYCARD_BLACK, "I need a Black Keycard." ); - else - if ( tileIndex == _kcHolderBlackOn ) - success = useLockedSwitchOn( e, x, y, targetX, targetY, _kcHolderBlackOff, ITEM_KEYCARD_BLACK ); - else + else if (tileIndex == _kcHolderWhiteOff || tileIndex == _kcHolderWhiteOff + 1) + success = useLockedSwitch(e, x, y, targetX, targetY, _kcHolderWhiteOn, ITEM_KEYCARD_WHITE, "I need a White Keycard."); + else if (tileIndex == _kcHolderWhiteOn) + success = useLockedSwitchOn(e, x, y, targetX, targetY, _kcHolderWhiteOff, ITEM_KEYCARD_WHITE); + else if (tileIndex == _kcHolderBlueOff || tileIndex == _kcHolderBlueOff + 1) + success = useLockedSwitch(e, x, y, targetX, targetY, _kcHolderBlueOn, ITEM_KEYCARD_BLUE, "I need a Blue Keycard."); + else if (tileIndex == _kcHolderBlueOn) + success = useLockedSwitchOn(e, x, y, targetX, targetY, _kcHolderBlueOff, ITEM_KEYCARD_BLUE); + else if (tileIndex == _kcHolderRedOff || tileIndex == _kcHolderRedOff + 1) + success = useLockedSwitch(e, x, y, targetX, targetY, _kcHolderRedOn, ITEM_KEYCARD_RED, "I need a Red Keycard."); + else if (tileIndex == _kcHolderRedOn) + success = useLockedSwitchOn(e, x, y, targetX, targetY, _kcHolderRedOff, ITEM_KEYCARD_RED); + else if (tileIndex == _kcHolderGreenOff || tileIndex == _kcHolderGreenOff + 1) + success = useLockedSwitch(e, x, y, targetX, targetY, _kcHolderGreenOn, ITEM_KEYCARD_GREEN, "I need a Green Keycard."); + else if (tileIndex == _kcHolderGreenOn) + success = useLockedSwitchOn(e, x, y, targetX, targetY, _kcHolderGreenOff, ITEM_KEYCARD_GREEN); + else if (tileIndex == _kcHolderPurpleOff || tileIndex == _kcHolderPurpleOff + 1) + success = useLockedSwitch(e, x, y, targetX, targetY, _kcHolderPurpleOn, ITEM_KEYCARD_PURPLE, "I need a Purple Keycard."); + else if (tileIndex == _kcHolderPurpleOn) + success = useLockedSwitchOn(e, x, y, targetX, targetY, _kcHolderPurpleOff, ITEM_KEYCARD_PURPLE); + else if (tileIndex == _kcHolderBlackOff || tileIndex == _kcHolderBlackOff + 1) + success = useLockedSwitch(e, x, y, targetX, targetY, _kcHolderBlackOn, ITEM_KEYCARD_BLACK, "I need a Black Keycard."); + else if (tileIndex == _kcHolderBlackOn) + success = useLockedSwitchOn(e, x, y, targetX, targetY, _kcHolderBlackOff, ITEM_KEYCARD_BLACK); //------------------------------------------------------------------- - if ( tileIndex == _useSwitch2Off || tileIndex == _useSwitch2Off + 1 ) - success = useSwitch2( e, x, y, targetX, targetY ); - else - if ( tileIndex == _useHolderEmpty || tileIndex == _useHolderEmpty + 1 ) - success = useCellHolder( e, x, y, targetX, targetY ); - else + else if (tileIndex == _useSwitch2Off || tileIndex == _useSwitch2Off + 1) + success = useSwitch2(e, x, y, targetX, targetY); + else if (tileIndex == _useHolderEmpty || tileIndex == _useHolderEmpty + 1) + success = useCellHolder(e, x, y, targetX, targetY); //------------------------------------------------------------------- - if ( tileIndex == _targetDoorN || tileIndex == _targetDoorN + 3 ) - success = useAutoDoorOpenClose( e, x, y ); - else - if ( tileIndex == _targetDoorP || tileIndex == _targetDoorP + 3 ) - success = useDoorOpenCloseBot( e, x, y ); - else - if ( tileIndex == _targetDoorS || tileIndex == _targetDoorS + 3 ) - success = useDoorOpenCloseBot( e, x, y ); - else - if ( tileIndex == _targetDoorNv || tileIndex == _targetDoorNv + 3 ) - success = useAutoDoorOpenClose( e, x, y ); - else - if ( tileIndex == _targetDoorPv || tileIndex == _targetDoorPv + 3 ) - success = useDoorOpenCloseBot( e, x, y ); - else - if ( tileIndex == _targetDoorSv || tileIndex == _targetDoorSv + 3 ) - success = useDoorOpenCloseBot( e, x, y ); - else + else if (tileIndex == _targetDoorN || tileIndex == _targetDoorN + 3) + success = useAutoDoorOpenClose(e, x, y); + else if (tileIndex == _targetDoorP || tileIndex == _targetDoorP + 3) + success = useDoorOpenCloseBot(e, x, y); + else if (tileIndex == _targetDoorS || tileIndex == _targetDoorS + 3) + success = useDoorOpenCloseBot(e, x, y); + else if (tileIndex == _targetDoorNv || tileIndex == _targetDoorNv + 3) + success = useAutoDoorOpenClose(e, x, y); + else if (tileIndex == _targetDoorPv || tileIndex == _targetDoorPv + 3) + success = useDoorOpenCloseBot(e, x, y); + else if (tileIndex == _targetDoorSv || tileIndex == _targetDoorSv + 3) + success = useDoorOpenCloseBot(e, x, y); //------------------------------------------------------------------- - if ( tileIndex == _targetDoorN || tileIndex == _targetDoor2N + 3 ) - success = useAutoDoorOpenClose( e, x, y ); - else - if ( tileIndex == _targetDoorP || tileIndex == _targetDoor2P + 3 ) - success = useDoorOpenCloseBot( e, x, y ); - else - if ( tileIndex == _targetDoorS || tileIndex == _targetDoor2S + 3 ) - success = useDoorOpenCloseBot( e, x, y ); - else - if ( tileIndex == _targetDoorNv || tileIndex == _targetDoor2Nv + 3 ) - success = useAutoDoorOpenClose( e, x, y ); - else - if ( tileIndex == _targetDoorPv || tileIndex == _targetDoor2Pv + 3 ) - success = useDoorOpenCloseBot( e, x, y ); - else - if ( tileIndex == _targetDoorSv || tileIndex == _targetDoor2Sv + 3 ) - success = useDoorOpenCloseBot( e, x, y ); - else + else if (tileIndex == _targetDoorN || tileIndex == _targetDoor2N + 3) + success = useAutoDoorOpenClose(e, x, y); + else if (tileIndex == _targetDoorP || tileIndex == _targetDoor2P + 3) + success = useDoorOpenCloseBot(e, x, y); + else if (tileIndex == _targetDoorS || tileIndex == _targetDoor2S + 3) + success = useDoorOpenCloseBot(e, x, y); + else if (tileIndex == _targetDoorNv || tileIndex == _targetDoor2Nv + 3) + success = useAutoDoorOpenClose(e, x, y); + else if (tileIndex == _targetDoorPv || tileIndex == _targetDoor2Pv + 3) + success = useDoorOpenCloseBot(e, x, y); + else if (tileIndex == _targetDoorSv || tileIndex == _targetDoor2Sv + 3) + success = useDoorOpenCloseBot(e, x, y); //------------------------------------------------------------------- - if ( tileIndex == _touchplateOff ) - success = useTouchplate( e, x, y, targetX, targetY, _touchplateOn ); - else - if ( tileIndex == _touchplateOn ) - success = useTouchplateOn( e, x, y, targetX, targetY, _touchplateOff ); - else - if ( tileIndex == _templeTouchpOff ) - success = useTouchplate( e, x, y, targetX, targetY, _templeTouchpOn ); - else - if ( tileIndex == _templeTouchpOn ) - success = useTouchplateOn( e, x, y, targetX, targetY, _templeTouchpOff ); + else if (tileIndex == _touchplateOff) + success = useTouchplate(e, x, y, targetX, targetY, _touchplateOn); + else if (tileIndex == _touchplateOn) + success = useTouchplateOn(e, x, y, targetX, targetY, _touchplateOff); + else if (tileIndex == _templeTouchpOff) + success = useTouchplate(e, x, y, targetX, targetY, _templeTouchpOn); + else if (tileIndex == _templeTouchpOn) + success = useTouchplateOn(e, x, y, targetX, targetY, _templeTouchpOff); return success; } |