From 8d1431a5ab0efe7c4f84f7c0fcdff10f8fe39ad1 Mon Sep 17 00:00:00 2001 From: Max Horn Date: Wed, 10 Mar 2010 20:56:54 +0000 Subject: AGOS: cleanup svn-id: r48227 --- engines/agos/rooms.cpp | 99 ++++++++++++++++++++++++++------------------------ 1 file changed, 51 insertions(+), 48 deletions(-) (limited to 'engines/agos/rooms.cpp') diff --git a/engines/agos/rooms.cpp b/engines/agos/rooms.cpp index c390269fec..91c8a53681 100644 --- a/engines/agos/rooms.cpp +++ b/engines/agos/rooms.cpp @@ -263,62 +263,65 @@ void AGOSEngine::moveDirn(Item *i, uint x) { // Elvira 2 specific int AGOSEngine_Elvira2::changeExitStates(SubSuperRoom *sr, int n, int d, uint16 s) { int b, bd; - uint16 mask = 3; - uint16 bs = s; + uint16 mask; switch (d) { - case 0: - b =- (sr->roomX); bd = 2; - if (((n % (sr->roomX * sr->roomY)) / sr->roomX) == 0) - return(0); - else - break; - case 1: - b = 1; bd = 3; - if (((n % (sr->roomX * sr->roomY)) % sr->roomX) == 0) - return 0; - else - break; - case 2: - b = sr->roomX; bd = 0; - if (((n % (sr->roomX * sr->roomY)) / sr->roomX) == (sr->roomY - 1)) - return 0; - else - break; - case 3: - b =- 1; bd = 1; - if (((n % (sr->roomX * sr->roomY)) % sr->roomX) == 1) - return 0; - else - break; - case 4: - b =- (sr->roomX * sr->roomY); bd = 5; - if (n < (sr->roomX * sr->roomY)) - return 0; - else - break; - case 5: - b = sr->roomX * sr->roomY; bd = 4; - if (n > (sr->roomX * sr->roomY * (sr->roomZ - 1))) - return 0; - else - break; - default: + case 0: + b = -(sr->roomX); + bd = 2; + if (((n % (sr->roomX * sr->roomY)) / sr->roomX) == 0) + return 0; + else + break; + case 1: + b = 1; + bd = 3; + if (((n % (sr->roomX * sr->roomY)) % sr->roomX) == 0) return 0; + else + break; + case 2: + b = sr->roomX; + bd = 0; + if (((n % (sr->roomX * sr->roomY)) / sr->roomX) == (sr->roomY - 1)) + return 0; + else + break; + case 3: + b = -1; + bd = 1; + if (((n % (sr->roomX * sr->roomY)) % sr->roomX) == 1) + return 0; + else + break; + case 4: + b = -(sr->roomX * sr->roomY); + bd = 5; + if (n < (sr->roomX * sr->roomY)) + return 0; + else + break; + case 5: + b = sr->roomX * sr->roomY; + bd = 4; + if (n > (sr->roomX * sr->roomY * (sr->roomZ - 1))) + return 0; + else + break; + default: + return 0; } + n--; d <<= 1; - mask <<= d; - s <<= d; + mask = (3 << d); sr->roomExitStates[n] &= ~mask; - sr->roomExitStates[n] |= s; - mask = 3; - n += b; + sr->roomExitStates[n] |= (s << d); + bd <<= 1; - mask <<= bd; - bs <<= bd; - sr->roomExitStates[n] &= ~mask; - sr->roomExitStates[n] |= bs; + mask = (3 << bd); + sr->roomExitStates[n + b] &= ~mask; + sr->roomExitStates[n + b] |= (s << bd); return 1; } -- cgit v1.2.3