diff --git a/msvc5/sb2decomp/sb2decomp.dsp b/msvc5/sb2decomp/sb2decomp.dsp index 83416b6..270ace2 100644 --- a/msvc5/sb2decomp/sb2decomp.dsp +++ b/msvc5/sb2decomp/sb2decomp.dsp @@ -42,7 +42,7 @@ RSC=rc.exe # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c -# ADD CPP /nologo /W3 /Gi /GX /O2 /I "..\..\dxsdk3\sdk\inc" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c +# ADD CPP /nologo /W3 /Gi /GX /O2 /I "..\..\dxsdk3\sdk\inc" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_X86_" /D WINVER=0x0400 /YX /FD /c # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32 # ADD BASE RSC /l 0x409 /d "NDEBUG" @@ -52,7 +52,8 @@ BSC32=bscmake.exe # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386 /libpath:"..\..\dxsdk3\sdk\lib" +# ADD LINK32 winmm.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ddraw.lib dsound.lib dplayx.lib dxguid.lib /nologo /subsystem:windows /machine:I386 /libpath:"..\..\dxsdk3\sdk\lib" /FORCE:MULTIPLE +# SUBTRACT LINK32 /pdb:none !ELSEIF "$(CFG)" == "sb2decomp - Win32 Debug" @@ -68,7 +69,7 @@ LINK32=link.exe # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" # ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c -# ADD CPP /nologo /W3 /Gm /Gi /GX /Zi /Od /I "..\..\dxsdk3\sdk\inc" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c +# ADD CPP /nologo /W3 /Gm /Gi /GX /Zi /Od /I "..\..\dxsdk3\sdk\inc" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_X86_" /D WINVER=0x0400 /FR /YX /FD /c # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32 # ADD BASE RSC /l 0x409 /d "_DEBUG" @@ -78,7 +79,8 @@ BSC32=bscmake.exe # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept /libpath:"..\..\dxsdk3\sdk\lib" +# ADD LINK32 winmm.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ddraw.lib dsound.lib dplayx.lib dxguid.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept /libpath:"..\..\dxsdk3\sdk\lib" /FORCE:MULTIPLE +# SUBTRACT LINK32 /pdb:none !ENDIF diff --git a/src/blupi.cpp b/src/blupi.cpp index d01c80f..5b6a7ee 100644 --- a/src/blupi.cpp +++ b/src/blupi.cpp @@ -11,7 +11,6 @@ #include #include #include -#include #include "def.h" #include "resource.h" #include "ddutil.h" diff --git a/src/button.cpp b/src/button.cpp index 0adc9d6..026444d 100644 --- a/src/button.cpp +++ b/src/button.cpp @@ -7,7 +7,7 @@ //#include #ifndef POINT -#include +#include #endif #include "button.h" diff --git a/src/button.h b/src/button.h index 82a45cc..b369c71 100644 --- a/src/button.h +++ b/src/button.h @@ -1,7 +1,7 @@ #ifndef BUTTON_H #define BUTTON_H -#include +#include #include "decor.h" #include "pixmap.h" diff --git a/src/decblock.cpp b/src/decblock.cpp index 5a59c5b..71d21b1 100644 --- a/src/decblock.cpp +++ b/src/decblock.cpp @@ -307,28 +307,28 @@ BOOL CDecor::IsTemp(POINT pos) return pos.x >= 0 && pos.x < 6400 && pos.y >= 0 && pos.y < 6400 && m_decor[pos.x / DIMOBJX][pos.y / DIMOBJY].icon == 324; } -BOOL CDecor::IsBridge(POINT pos, POINT celBridge) +BOOL CDecor::IsBridge(POINT pos, POINT *outCelBridge) { pos.x += 30; pos.y += 60; if (pos.x >= 0 && pos.x < 6400 && pos.y >= 0 && pos.y < 6400 && m_decor[pos.x / DIMOBJX][pos.y / DIMOBJY].icon == 364) { - celBridge.x = pos.x / DIMOBJX; - celBridge.y = pos.y / DIMOBJY; + outCelBridge->x = pos.x / DIMOBJX; + outCelBridge->y = pos.y / DIMOBJY; return TRUE; } pos.y -= 60; if (pos.x >= 0 && pos.x < 6400 && pos.y >= 0 && pos.y < 6400 && m_decor[pos.x / DIMOBJX][pos.y / DIMOBJY].icon == 364) { - celBridge.x = pos.x / DIMOBJX; - celBridge.y = pos.y / DIMOBJY; + outCelBridge->x = pos.x / DIMOBJX; + outCelBridge->y = pos.y / DIMOBJY; return TRUE; } return FALSE; } -int CDecor::IsDoor(POINT pos, POINT celPorte) +int CDecor::IsDoor(POINT pos, POINT *outCelPorte) { int num; if (m_blupiDir == 1) @@ -344,8 +344,8 @@ int CDecor::IsDoor(POINT pos, POINT celPorte) { if (pos.x >= 0 && pos.x < DIMOBJX * MAXCELX && pos.y >= 0 && pos.y < DIMOBJY * MAXCELY && m_decor[pos.x / DIMOBJX][pos.y / DIMOBJY].icon >= 334 && m_decor[pos.x / DIMOBJX][pos.y / DIMOBJY].icon <= 336) { - celPorte.x = pos.x / DIMOBJX; - celPorte.y = pos.y / DIMOBJY; + outCelPorte->x = pos.x / DIMOBJX; + outCelPorte->y = pos.y / DIMOBJY; return m_decor[pos.x / DIMOBJX][pos.y / DIMOBJY].icon; } pos.x += num; diff --git a/src/decblupi.cpp b/src/decblupi.cpp index 9ccb8e3..b9cbcf6 100644 --- a/src/decblupi.cpp +++ b/src/decblupi.cpp @@ -47,96 +47,113 @@ void CDecor::BlupiSearchIcon() if (m_blupiVent && !m_blupiHelico && !m_blupiOver) { - if (action == 0x1) action = 0x8; - if (action == 0x2) action = 0xe; + if (action == ACTION_STOP) action = ACTION_VERTIGO; + if (action == ACTION_MARCH) action = ACTION_PUSH; } if (m_blupiHelico) { - if (action == 0x1) action = 0xf; - if (action == 0x2) action = 0x10; - if (action == 0x3) action = 0x11; - if (action == 0xa) action = 0xf; - if (action == 0x9) action = 0xf; + if (action == ACTION_STOP) action = ACTION_STOPHELICO; + if (action == ACTION_MARCH) action = ACTION_MARCHHELICO; + if (action == ACTION_TURN) action = ACTION_TURNHELICO; + if (action == ACTION_ADVANCE) action = ACTION_STOPHELICO; + if (action == ACTION_RECEDE) action = ACTION_STOPHELICO; } if (m_blupiOver) { - if (action == 0x1) action = 0x43; - if (action == 0x2) action = 0x44; - if (action == 0x3) action = 0x45; - if (action == 0xa) action = 0x43; - if (action == 0x9) action = 0x43; + if (action == ACTION_STOP) action = ACTION_STOPOVER; + if (action == ACTION_MARCH) action = ACTION_MARCHOVER; + if (action == ACTION_TURN) action = ACTION_TURNOVER; + if (action == ACTION_ADVANCE) action = ACTION_STOPOVER; + if (action == ACTION_RECEDE) action = ACTION_STOPOVER; } if (m_blupiJeep) { - if (action == 0x1) action = 0x19; - if (action == 0x2) action = 0x1a; - if (action == 0xa) action = 0x1a; - if (action == 0x3) action = 0x1b; + if (action == ACTION_STOP) action = ACTION_STOPJEEP; + if (action == ACTION_MARCH) action = ACTION_MARCHJEEP; + if (action == ACTION_ADVANCE) action = ACTION_MARCHJEEP; + if (action == ACTION_TURN) action = ACTION_TURNJEEP; } if (m_blupiTank) { - if (action == 0x1) action = 0x32; - if (action == 0x2) action = 0x33; - if (action == 0xa) action = 0x33; - if (action == 0x3) action = 0x34; + if (action == ACTION_STOP) action = ACTION_STOPTANK; + if (action == ACTION_MARCH) action = ACTION_MARCHTANK; + if (action == ACTION_ADVANCE) action = ACTION_MARCHTANK; + if (action == ACTION_TURN) action = ACTION_TURNTANK; } if (m_blupiSkate) { - if (action == 0x1) action = 0x25; - if (action == 0x2) action = 0x26; - if (action == 0xa) action = 0x26; - if (action == 0x3) action = 0x27; - if (action == 0x3b) action = 0x27; - if (action == 0x4) action = 0x28; - if (action == 0x5) action = 0x29; + if (action == ACTION_STOP) action = ACTION_STOPSKATE; + if (action == ACTION_MARCH) action = ACTION_MARCHSKATE; + if (action == ACTION_ADVANCE) action = ACTION_MARCHSKATE; + if (action == ACTION_TURN) action = ACTION_TURNSKATE; + if (action == ACTION_TURNAIR) action = ACTION_TURNSKATE; + if (action == ACTION_JUMP) action = ACTION_JUMPSKATE; + if (action == ACTION_AIR) action = ACTION_AIRSKATE; } if (m_blupiNage) { - if (action == 0x1) action = 0x12; - if (action == 0x2) action = 0x13; - if (action == 0x3) action = 0x14; - if ((m_blupiVitesse).x == 0) + if (action == ACTION_STOP) action = ACTION_STOPNAGE; + if (action == ACTION_MARCH) action = ACTION_MARCHNAGE; + if (action == ACTION_TURN) action = ACTION_TURNNAGE; + if (m_blupiVitesse.x == 0) { - if (action == 0x12) action = 0x15; - if (action == 0x13) action = 0x16; + if (action == ACTION_STOPNAGE) action = ACTION_STOPSURF; + if (action == ACTION_MARCHNAGE) action = ACTION_MARCHSURF; } } if (m_blupiSurf) { - if (action == 0x1) action = 0x15; - if (action == 0x2) action = 0x16; - if (action == 0x3) action = 0x17; + if (action == ACTION_STOP) action = ACTION_STOPSURF; + if (action == ACTION_MARCH) action = ACTION_MARCHSURF; + if (action == ACTION_TURN) action = ACTION_TURNSURF; } if (m_blupiSuspend) { - if (action == 0x1) action = 0x1f; - if (action == 0x2) action = 0x20; - if (action == 0x3) action = 0x21; - if (action == 0x4) action = 0x22; + if (action == ACTION_STOP) action = ACTION_STOPSUSPEND; + if (action == ACTION_MARCH) action = ACTION_MARCHSUSPEND; + if (action == ACTION_TURN) action = ACTION_TURNSUSPEND; + if (action == ACTION_JUMP) action = ACTION_JUMPSUSPEND; } - if (m_blupiBalloon) action = 0x42; + if (m_blupiBalloon) action = ACTION_BALLOON; if (m_blupiEcrase) { - if (action == 0x1) action = 0x48; - if (action == 0x2) action = 0x49; - if (action == 0x3) action = 0x49; + if (action == ACTION_STOP) action = ACTION_STOPECRASE; + if (action == ACTION_MARCH) action = ACTION_MARCHECRASE; + if (action == ACTION_TURN) action = ACTION_MARCHECRASE; } - if ((action == 0x1) && - ((((((phase = m_blupiPhase % 330, phase == 0x7d || (phase == 0x81)) || (phase == 0x87)) || (((phase == 0x8b || (phase == 0xd7)) || ((phase == 0xdb || ((phase == 0xe1 || (phase == 0xe5)))))))) || - ((phase == 0xeb || (((phase == 0xef || (phase == 0xf5)) || (phase == 0xf9)))))) || (((phase == 0xff || (phase == 0x103)) || ((phase == 0x109 || (phase == 0x10d)))))))) + if (action == ACTION_STOP) { - PlaySound(SOUND_PATIENT, m_blupiPos, FALSE); + phase = m_blupiPhase % 330; + if (phase == 125 || + phase == 129 || + phase == 135 || + phase == 139 || + phase == 215 || + phase == 219 || + phase == 225 || + phase == 229 || + phase == 235 || + phase == 239 || + phase == 245 || + phase == 249 || + phase == 255 || + phase == 259 || + phase == 265 || + phase == 269) + { + PlaySound(SOUND_PATIENT, m_blupiPos, FALSE); + } } if ((action == 0x1f) && (((phase = m_blupiPhase % 328, phase == 0x76 || (phase == 0xe6)) || (phase == 0x116)))) { @@ -150,14 +167,12 @@ void CDecor::BlupiSearchIcon() { if (action == table_blupi[i]) { - if ((table_blupi[i + 2] == 0 || m_blupiPhase <= table_blupi[i + 2]) && table_blupi[i + 1] != 0) + phase = table_blupi[i + 2]; + if (phase == 0 || m_blupiPhase <= phase) { - icon = table_blupi[i + 3 + m_blupiPhase % table_blupi[i + 1]]; - } - else - { - icon = table_blupi[i + 3 + table_blupi[i + 2]]; + phase = m_blupiPhase % table_blupi[i + 1]; } + icon = table_blupi[i + 3 + phase]; break; } } @@ -495,7 +510,7 @@ void CDecor::BlupiStep() m_blupiAction = ACTION_AIR; m_blupiPhase = 0; } - if (m_keyPress & KEY_LEFT && m_blupiFocus) + if (m_keyPress & KEY_LEFT && m_blupiFocus) // this is wrong { m_blupiVitesse.y = (m_blupiPower ? -25 : -19); } @@ -613,8 +628,8 @@ void CDecor::BlupiStep() { m_blupiTransport = icon; bAirStart = FALSE; - PlaySound(SOUND_JUMPEND, end); - end.y = m_moveObject[num].posCurrent.y - DIMOBJY + BLUPIOFFY; + PlaySound(SOUND_JUMPEND, end, FALSE); + end.y = m_moveObject[icon].posCurrent.y - DIMOBJY + BLUPIOFFY; if (m_blupiFocus) { if (m_blupiVitesse.y > 20) @@ -3014,13 +3029,13 @@ void CDecor::BlupiStep() tinyPoint.y = m_blupiPos.y - 5; ObjectStart(tinyPoint, 92, 0); } - if (IsBridge(m_blupiPos, tinyPoint2) && m_blupiFocus) + if (IsBridge(m_blupiPos, &tinyPoint2) && m_blupiFocus) { tinyPoint2.x *= DIMOBJX; tinyPoint2.y *= DIMOBJY; ObjectStart(tinyPoint2, TYPE_BRIDGE, 0); } - int num2 = IsDoor(m_blupiPos, tinyPoint2); + int num2 = IsDoor(m_blupiPos, &tinyPoint2); if (num2 != -1 && (m_blupiCle & 1 << num2 - 334) != 0) { OpenDoor(tinyPoint2); @@ -3797,7 +3812,7 @@ void CDecor::BlupiStep() { StopSound(47); } - if (m_blupiFocus && !m_blupiAir && (!m_blupiHelico || BlupiIsGround()) && (!m_blupiOver || BlupiIsGround()) && !m_blupiBalloon && !m_blupiEcrase && !m_blupiShield && !m_blupiHide && !bIsOpen && !bIsOpen2 && m_blupiTransport == -1 && !IsLave(m_blupiPos) && !IsPiege(m_blupiPos) && !IsGoutte(m_blupiPos, TRUE) && !IsScie(m_blupiPos) && !IsBridge(m_blupiPos, tinyPoint) && IsTeleporte(m_blupiPos) == -1 && !IsBlitz(m_blupiPos, TRUE) && !IsTemp(m_blupiPos) && !IsBalleTraj(m_blupiPos) && !IsMoveTraj(m_blupiPos)) + if (m_blupiFocus && !m_blupiAir && (!m_blupiHelico || BlupiIsGround()) && (!m_blupiOver || BlupiIsGround()) && !m_blupiBalloon && !m_blupiEcrase && !m_blupiShield && !m_blupiHide && !bIsOpen && !bIsOpen2 && m_blupiTransport == -1 && !IsLave(m_blupiPos) && !IsPiege(m_blupiPos) && !IsGoutte(m_blupiPos, TRUE) && !IsScie(m_blupiPos) && !IsBridge(m_blupiPos, &tinyPoint) && IsTeleporte(m_blupiPos) == -1 && !IsBlitz(m_blupiPos, TRUE) && !IsTemp(m_blupiPos) && !IsBalleTraj(m_blupiPos) && !IsMoveTraj(m_blupiPos)) { if (m_blupiFifoNb > 0) { @@ -3864,7 +3879,7 @@ void CDecor::BlupiStep() // DEBUG v sprintf(m_notifText[0], "blupiAction %d", m_blupiAction); - sprintf(m_notifText[1], "blupiPhase %d", m_blupiPhase); + sprintf(m_notifText[1], "blupiIcon %d", m_blupiIcon); sprintf(m_notifText[2], "blupiPos { %d, %d }", m_blupiPos.x, m_blupiPos.y); sprintf(m_notifText[3], "blupiVitesse { %d, %d }", m_blupiVitesse.x, m_blupiVitesse.y); sprintf(m_notifText[4], "time %d", m_time); diff --git a/src/decmove.cpp b/src/decmove.cpp index 5438d06..e14a9ad 100644 --- a/src/decmove.cpp +++ b/src/decmove.cpp @@ -283,15 +283,15 @@ BOOL CDecor::ObjectStart(POINT pos, int type, int speed, BOOL bMulti) { POINT tinyPoint = pos; int num2 = speed; - int num3 = 0; + int dist = 0; if (num2 > 50) { num2 -= 50; POINT dir; dir.x = 0; dir.y = 1; - num3 = SearchDistRight(tinyPoint, dir, type); - tinyPoint.y += num3; + dist = SearchDistRight(tinyPoint, dir, type); + tinyPoint.y += dist; } else if (num < -50) { @@ -299,26 +299,26 @@ BOOL CDecor::ObjectStart(POINT pos, int type, int speed, BOOL bMulti) POINT dir; dir.x = 0; dir.y = -1; - num3 = SearchDistRight(tinyPoint, dir, type); - tinyPoint.y -= num3; + dist = SearchDistRight(tinyPoint, dir, type); + tinyPoint.y -= dist; } else if (num2 > 0) { POINT dir; dir.x = 1; dir.y = 0; - num3 = SearchDistRight(tinyPoint, dir, type); - tinyPoint.x += num3; + dist = SearchDistRight(tinyPoint, dir, type); + tinyPoint.x += dist; } else if (num2 < 0) { POINT dir; dir.x = -1; dir.y = 0; - num3 = SearchDistRight(tinyPoint, dir, type); - tinyPoint.x -= num3; + dist = SearchDistRight(tinyPoint, dir, type); + tinyPoint.x -= dist; } - if (num3 == 0) + if (dist == 0) { if (type == TYPE_BALLE) { @@ -330,7 +330,7 @@ BOOL CDecor::ObjectStart(POINT pos, int type, int speed, BOOL bMulti) { m_moveObject[num].posEnd = tinyPoint; m_moveObject[num].timeStopStart = 0; - m_moveObject[num].stepAdvance = abs(num2 * num3 / 64); + m_moveObject[num].stepAdvance = abs(dist * num2 / 64); m_moveObject[num].step = STEP_ADVANCE; m_moveObject[num].time = 0; } @@ -1347,7 +1347,7 @@ void CDecor::MoveObjectStepIcon(int i) if ((m_moveObject[i].posStart.x < m_moveObject[i].posEnd.x && m_moveObject[i].step == STEP_STOPSTART) || (m_moveObject[i].posStart.x > m_moveObject[i].posEnd.x && m_moveObject[i].step == STEP_STOPEND)) { pos.x = m_moveObject[i].posCurrent.x - 30; - pos.y = m_moveObject[i].posCurrent.x + BLUPIOFFY; + pos.y = m_moveObject[i].posCurrent.y + BLUPIOFFY; speed = -5; } else @@ -1576,30 +1576,24 @@ int CDecor::AscenseurDetect(RECT rect, POINT oldpos, POINT newpos) { return -1; } - int num = newpos.y - oldpos.y; - int num2; - if (num < 0) - { - num2 = -30; - } - else - { - num2 = 30; - } - num = abs(num); + int dy = abs(newpos.y - oldpos.y); + int dirY = newpos.y < oldpos.y ? -1 : 1; + for (int i = 0; i < MAXMOVEOBJECT; i++) { - if (m_moveObject[i].type == 1 || m_moveObject[i].type == 47 || m_moveObject[i].type == 48) + if (m_moveObject[i].type == TYPE_ASCENSEUR || + m_moveObject[i].type == TYPE_ASCENSEURs || + m_moveObject[i].type == TYPE_ASCENSEURsi) { RECT src; src.left = m_moveObject[i].posCurrent.x; - src.right = m_moveObject[i].posCurrent.x + 64; + src.right = m_moveObject[i].posCurrent.x + DIMOBJX; src.top = m_moveObject[i].posCurrent.y; src.bottom = m_moveObject[i].posCurrent.y + 16; - if (num < 30) + if (dy < LIFT_RANGE_Y) { - RECT tinyRect = { 0, 0, 0, 0 }; - if (IntersectRect(&tinyRect, &src, &rect)) + RECT dest = { 0, 0, 0, 0 }; + if (IntersectRect(&dest, &src, &rect)) { return i; } @@ -1607,17 +1601,17 @@ int CDecor::AscenseurDetect(RECT rect, POINT oldpos, POINT newpos) else { RECT src2 = rect; - src2.top -= num / 30 * num2; - src2.bottom -= num / 30 * num2; - for (int j = 0; j <= num / 30; j++) + src2.top -= dy / LIFT_RANGE_Y * LIFT_RANGE_Y * dirY; + src2.bottom -= dy / LIFT_RANGE_Y * LIFT_RANGE_Y * dirY; + for (int j = 0; j <= dy / LIFT_RANGE_Y; j++) { - RECT tinyRect = { 0, 0, 0, 0 }; - if (IntersectRect(&tinyRect, &src, &src2)) + RECT dest = { 0, 0, 0, 0 }; + if (IntersectRect(&dest, &src, &src2)) { return i; } - src2.top += num2; - src2.bottom += num; + src2.top += dirY * LIFT_RANGE_Y; + src2.bottom += dy; } } @@ -2276,40 +2270,29 @@ void CDecor::MoveObjectSort() m_nbLinkCaisse = 0; } -void CDecor::MoveObjectPriority(int i) +void CDecor::MoveObjectPriority(int rank) { - MoveObject src; - int j; + MoveObject tempMob; - if (i == 0) + if (rank != 0) { - return; - } - if (m_moveObject[i].type != TYPE_BALLE) - { - return; - } - j = 0; - while (j < MAXMOVEOBJECT) - { - if (m_moveObject[j].type != TYPE_BALLE) + if (m_moveObject[rank].type == TYPE_BALLE) { - if (j > i) + int i = 0; + for (int i = 0; i < MAXMOVEOBJECT; i++) { - return; + if (m_moveObject[i].type != TYPE_BALLE) break; } - MoveObjectCopy(&src, &m_moveObject[i]); - MoveObjectCopy(&m_moveObject[i], &m_moveObject[j]); - MoveObjectCopy(&m_moveObject[j], &src); - if (m_moveObject[i].type == TYPE_CAISSE || m_moveObject[j].type == TYPE_CAISSE) + if (i <= rank) { - UpdateCaisse(); + MoveObjectCopy(&tempMob, &m_moveObject[rank]); + MoveObjectCopy(&m_moveObject[rank], &m_moveObject[i]); + MoveObjectCopy(&m_moveObject[i], &tempMob); + if (m_moveObject[rank].type == TYPE_CAISSE || tempMob.type == TYPE_CAISSE) + { + UpdateCaisse(); + } } - return; - } - else - { - j++; } } } diff --git a/src/decor.h b/src/decor.h index b20e6c4..4f0794f 100644 --- a/src/decor.h +++ b/src/decor.h @@ -278,8 +278,8 @@ public: BOOL IsBlitz(POINT pos, BOOL bAlways); BOOL IsRessort(POINT pos); BOOL IsTemp(POINT pos); - BOOL IsBridge(POINT pos, POINT celBridge); - int IsDoor(POINT pos, POINT celPorte); + BOOL IsBridge(POINT pos, POINT *outCelBridge); + int IsDoor(POINT pos, POINT *outCelPorte); int IsTeleporte(POINT pos); BOOL SearchTeleporte(POINT pos, POINT newpos); BOOL IsSurfWater(POINT pos); diff --git a/src/dectables.h b/src/dectables.h index 5b98355..a07dcf7 100644 --- a/src/dectables.h +++ b/src/dectables.h @@ -536,20 +536,6 @@ extern int table_366f8[] = { 0x1c, 0x1d, 0x1e, 0x1f }; extern int table_36710[] = { 0x2d, 0x2e, 0x2f, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c}; extern int table_36748[] = { 0x42, 0x43, 0x44, 0x45 }; - - -extern int table_blupi[] = { - 5, 0, 6, 0, 7, 0, 7, 0, 6, 0, 5, 0, 4, 0, 2, 0, 0, 0, -2, 0, -4, 0, -5, 0, -6, 0, -7, 0, -7, 0, -6, 0, -5, 0, -4, 0, -2, 0, 0, 0, 2, 0, 4, 0, 5, 0, 6, 0, 7, 0, 7, 0, 6, 0, 5, 0, 4, 0, 2, 0, 0, 0, -2, 0, -4, 0, -5, 0, -6, 0, -7, 0, -7, 0, -6, 0, -5, 0, -4, 0, -2, 0, 0, 0, 2, 0, 4, 0, 5, 0, 6, 0, 7, 0, 7, 0, 6, 0, 5, 0, 4, 0, 2, 0, 0, 0, -2, 0, -4, 0, -5, 0, -6, 0, -7, 0, -7, 0, -6, 0, -5, 0, -4, 0, -2, 0, 0, 0, 2, 0, 4, 0, 5, 0, 6, 0, 7, 0, 7, 0, 6, 0, 5, 0, 4, 0, 2, 0, 0, 0, -2, 0, -4, 0, -5, 0, -6, 0, -7, 0, -7, 0, -6, 0, -5, 0, -4, 0, -2, 0, -1, 0, 0, 0, 14, 10, 2, 3, 4, 5, 6, 7, 8, 9, 1, 11, 12, 13, 14, 0, 10, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 0, 4, 15, 16, 17, 18, 0, 2, 73, 22, 0, 7, 78, 79, 80, 81, 82, 83, 84, 4, 87, 88, 89, 90, 0, 2, 85, 86, 0, 5, 396, 388, 389, 390, 391, 3, 398, 399, 400, 3, 87, 88, 89, 1, 153, 2, 154, 155, 0, 1, 185, 7, 41, 42, 43, 44, 45, 46, 47, 12, 215, 216, 217, 218, 219, 220, 221, 222, 230, 231, 233, 234, 0, 8, 223, 224, 225, 226, 227, 228, 229, 232, 0, 1, 157, 5, 139, 140, 141, 142, 143, 7, 186, 187, 188, 189, 190, 191, 192, 5, 193, 194, 195, 196, 197, 1, 68, 2, 91, 92, 0, 4, 126, 129, 132, 135, 0, 4, 110, 114, 118, 122, 0, 11, 76, 77, 199, 198, 200, 201, 235, 236, 375, 376, 377, 3, 403, 401, 402, 3, 20, 21, 22, 4, 16, 17, 18, 19, 0, 3, 23, 24, 25, 2, 26, 27, 0, 4, 28, 29, 30, 31, 0, 12, 45, 46, 47, 36, 37, 38, 39, 40, 41, 42, 43, 44, 0, 4, 66, 67, 68, 69, 0, 23, 158, 159, 160, 161, 162, 163, 164, 165, 309, 411, 412, 413, 414, 415, 174, 175, 176, 177, 178, 179, 180, 181, 184, 2, 182, 183, 0, 3, 334, 335, 336, 20, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 0, 2, 378, 384, 0, 15, 29, 10, 2, 3, 4, 5, 6, 7, 8, 9, 1, 11, 12, 13, 14, 6, 19, 20, 21, 23, 24, 28, 0, 4, 15, 16, 17, 18, 0, 7, 78, 79, 80, 81, 82, 83, 84, 4, 87, 88, 89, 90, 0, 3, 153, 74, 75, 7, 41, 42, 43, 44, 45, 46, 47, 8, 215, 216, 217, 218, 219, 220, 230, 231, 0, 5, 226, 227, 228, 229, 232, 4, 157, 109, 108, 107, 0, 1, 338, 4, 261, 262, 263, 283, 0, 3, 251, -252, 253, 2, 387, 397, 0, 1, 340, 1, 361, 5, 139, 140, 141, 142, 143, 7, 186, 187, 188, 189, 190, 191, 192, 3, 32, 33, 34, 10, 2, 4, 79, 84, 143, 219, 230, 246, 341, 396, 0, 4, 330, 331, 332, 333, 0, 35, 18, 0, 276, 276, 277, 277, 278, 278, 279, 279, 280, 280, 281, 281, 282, 282, 283, 283, 284, 284, 1, 330, 0, 0, 0, 0, 0, 0, 23, 23, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 23, 23, 23, 23, 23, 0, 0, 0, 0, 0, 0, 0, 0, 23, 23, 23, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 23, 23, 23, 23, 0, 0, 0, 23, 23, 23, 0, 0, 0, 0, 0, 0, 133, 133, 0, 0, 0, 133, 133, 0, 0, 0, 0, 0, 0, 0, 133, 133, 0, 0, 0, 0, 23, 23, 23, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 23, 0, 0, 0, 0, 0, 23, 23, 23, 0, 0, 0, 135, 135, 136, 136, 137, 137, 137, 137, 137, 137, 137, 137, 138, 138, 137, 137, 137, 138, 138, 137, 137, 137, 138, 138, 137, 137, 137, 138, 138, 137, 137, 137, 137, 137, 137, 136, 136, 135, 135, 135, 0, 0, 0, 0, 0, 23, 23, 23, 0, 0, 133, 133, 0, 0, 0, 23, 23, 23, 23, 0, 0, 0, 0, 0, 0, 0, 23, 23, 0, 0, 0, 0, 0, 0, 0, 0, 133, 133, 0, 0, 0, 0, 0, 23, 23, 23, 23, 0, 0, 0, 135, 135, 136, 136, 137, 137, 137, 137, 137, 137, 137, 137, 138, 138, 137, 137, 137, 138, 138, 137, 137, 137, 138, 138, 137, 137, 137, 138, 138, 137, 137, 137, 138, 138, 137, 137, 137, 138, 138, 137, 137, 137, 138, 138, 137, 137, 137, 138, 138, 137, 137, 137, 138, 138, 137, 137, 137, 138, 138, 137, 137, 137, 138, 138, 137, 137, 137, 138, 138, 137, 137, 137, 137, 137, 137, 136, 136, 135, 135, 135, 0, 0, 0, 0, 0, 23, 23, 23, 0, 0, 133, 133, 0, 0, 0, 23, 23, 23, 23, 0, 0, 0, 0, 0, 0, 0, 23, 23, 0, 0, 0, 0, 0, 0, 0, 0, 133, 133, 0, 0, 0, 0, 0, 23, 23, 23, 23, 0, 0, 0, 2, 6, 0, 5, 6, 7, 8, 9, 10, 60, 3, 0, 19, 18, 19, 3, 6, 0, 1, 1, 2, 2, 3, 3, 4, 3, 0, 17, 18, 19, 5, 5, 4, 169, 26, 170, 170, 27, 59, 6, 0, 3, 3, 2, 2, 1, 1, 61, 5, 0, 34, 35, 34, 34, 33, 62, 2, 0, 35, 34, 6, 3, 2, 33, 34, 35, 7, 1, 0, 44, 8, 8, 0, 0, 169, 26, 170, 27, 171, 28, 172, 9, 6, 0, 5, 6, 7, 8, 9, 10, 10, 6, 0, 5, 6, 7, 8, 9, 10, 13, 6, 0, 41, 41, 42, 42, 43, 43, 11, 70, 0, 40, 40, 40, 40, 41, 41, 41, 41, 40, -40, 40, 40, 40, 40, 40, 41, 41, 41, 40, 40, 40, 40, 40, 40, 40, 41, 41, 41, 40, 40, 42, 42, 42, 43, 43, 43, 44, 44, 44, 45, 45, 45, 46, 46, 47, 47, 46, 46, 47, 47, 46, 46, 47, 47, 46, 46, 47, 47, 46, 46, 47, 47, 46, 46, 47, 47, 46, 46, 47, 47, 75, 1, 0, -1, 76, 70, 0, 40, 40, 40, 40, 41, 41, 41, 41, 40, 40, 40, 40, 40, 40, 40, 41, 41, 41, 40, 40, 40, 40, 40, 40, 40, 41, 41, 41, 40, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 77, 110, 0, 324, 325, 324, 325, 324, 325, 324, 325, 324, 325, 324, 325, 324, 325, 324, 325, 324, 325, 324, 325, 324, 324, 325, 325, 326, 326, 327, 327, 328, 328, 329, 329, 330, 330, 331, 331, 332, 332, 333, 333, 334, 334, 333, 333, 332, 332, 331, 331, 330, 330, 329, 329, 329, 330, 330, 330, 331, 331, 331, 332, 332, 332, 333, 333, 333, 334, 334, 334, 333, 333, 333, 332, 332, 332, 331, 331, 331, 330, 330, 330, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 78, 1, 0, -1, 79, 1, 0, -1, 80, 1, 0, -1, 81, 1, 0, -1, 14, 6, 0, 49, 50, 51, 52, 53, 54, 29, 6, 0, 126, 125, 124, 123, 122, 121, 28, 6, 0, 122, 122, 122, 125, 125, 125, 15, 1, 0, 61, 16, 8, 0, 61, 62, 63, 62, 61, 64, 65, 64, 17, 10, 0, 71, 71, 72, 72, 73, 73, 74, 74, 75, 75, 67, 1, 0, 315, 68, 12, 0, 296, 297, 298, 299, 300, 301, 302, 301, 300, 299, 298, 297, 69, 7, 0, 296, 310, 311, 312, 313, 314, 303, 18, 10, 0, 76, 76, 76, 76, 76, 76, 77, 77, 77, 77, 19, 14, 0, 76, 76, 77, 77, 78, 78, 79, 79, 80, 80, 81, 81, 39, 39, 20, 10, 0, 88, 88, 89, 89, 90, 90, 91, 91, 92, 92, 21, 12, 0, 93, 93, 94, 94, 95, 95, 96, 96, 97, 97, 98, 98, 22, 12, 0, 93, 93, 94, 94, 95, 95, 96, 96, 97, 97, 98, 98, 23, 10, 0, 105, 105, 106, 106, 107, 107, 108, 108, 109, 109, 24, 90, 0, 93, 96, 98, 94, 95, 93, 95, 98, 93, 94, 96, 96, 94 -, 94, 98, 98, 93, 93, 97, 97, 94, 94, 94, 96, 96, 96, 93, 93, 93, 93, 94, 94, 94, 94, 94, 97, 97, 97, 97, 97, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 79, 79, 76, 76, 76, 76, 79, 79, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 25, 8, 0, 111, 111, 110, 110, 111, 111, 112, 112, 26, 8, 0, 111, 111, 110, 110, 111, 111, 112, 112, 27, 7, 0, 112, 113, 114, 115, 116, 117, 118, 30, 12, 0, 25, 25, 29, 29, 46, 46, 47, 47, 46, 46, 29, 29, 31, 328, 0, 156, 156, 156, 156, 157, 157, 157, 157, 158, 158, 158, 158, 157, 157, 157, 157, 156, 156, 156, 156, 157, 157, 157, 157, 158, 158, 158, 158, 157, 157, 157, 157, 156, 156, 156, 156, 157, 157, 157, 157, 158, 158, 158, 158, 157, 157, 157, 157, 156, 156, 156, 156, 157, 157, 157, 157, 158, 158, 158, 158, 157, 157, 157, 157, 156, 156, 156, 156, 157, 157, 157, 157, 158, 158, 158, 158, 157, 157, 157, 157, 156, 156, 156, 156, 157, 157, 157, 157, 158, 158, 158, 158, 157, 157, 157, 157, 156, 156, 156, 156, 157, 157, 157, 157, 158, 158, 158, 158, 157, 157, 157, 157, 144, 144, 143, 143, 151, 151, 162, 162, 163, 163, 164, 164, 163, 163, 162, 162, 163, 163, 164, 164, 163, 163, 162, 162, 163, 163, 164, 164, 163, 163, 162, 162, 163, 163, 164, 164, 163, 163, 162, 162, 151, 151, 143, 143, 144, 144, 157, 157, 156, 156, 156, 156, 157, 157, 157, 157, 158, 158, 158, 158, 157, 157, 157, 157, 156, 156, 156, 156, 157, 157, 157, 157, 158, 158, 158, 158, 157, 157, 157, 157, 156, 156, 156, 156, 157, 157, 157, 157, 158, 158, 158, 158, 157, 157, 157, 157, 156, 156, 156, 156, 157, 157, 157, 157, 158, 158, 158, 158, 157, 157, 157, 157, 144, 144, 143, 143, 151, 151, 162, 162, 163, 163, 164, 164, 163, 163, 162, 162, 163, 163, 164, 164, 163, 163, 162, 162, 163, 163, 164, 164, 163, 163, 162, 162, 163, 163, 164, 164, 163, 163, 162, 162, 151, 151, 143, 143, 151, 151, 162, 162, 163, 163, 164, 164, 163, 163, 162, 162, 163, 163, 164, 164, 163, 163, 162, 162, 163, 163, 164, 164, 163, 163, 162, 162, 163, 163, 164, 164, 163, 163, 162, 162, 16 -, -3, 163, 164, 164, 163, 163, 162, 162, 163, 163, 164, 164, 163, 163, 162, 162, 151, 151, 143, 143, 144, 144, 157, 157, 32, 12, 0, 144, 144, 145, 145, 146, 146, 145, 145, 144, 144, 143, 143, 33, 10, 0, 151, 151, 152, 152, 153, 153, 154, 154, 155, 155, 34, 10, 0, 157, 157, 165, 165, 165, 165, 166, 166, 166, 166, 36, 32, 0, 135, 177, 177, 178, 178, 179, 179, 180, 180, 179, 179, 178, 178, 179, 179, 180, 180, 179, 179, 178, 178, 179, 179, 180, 180, 179, 179, 178, 178, 177, 177, 135, 37, 140, 0, 182, 182, 182, 182, 208, 208, 208, 208, 208, 182, 182, 182, 182, 182, 182, 208, 208, 208, 208, 208, 194, 194, 194, 182, 182, 182, 182, 208, 208, 208, 208, 208, 182, 182, 182, 182, 182, 182, 208, 208, 208, 208, 182, 182, 182, 182, 182, 182, 182, 182, 194, 195, 196, 197, 198, 198, 197, 197, 196, 196, 197, 197, 198, 198, 197, 197, 196, 195, 194, 182, 182, 182, 208, 208, 208, 208, 208, 208, 182, 182, 182, 182, 182, 208, 208, 208, 208, 208, 182, 182, 194, 195, 196, 197, 198, 198, 197, 197, 196, 196, 197, 197, 198, 198, 197, 197, 196, 196, 197, 197, 198, 198, 197, 197, 196, 195, 194, 182, 182, 182, 182, 182, 182, 182, 208, 208, 208, 208, 208, 208, 210, 210, 211, 211, 211, 211, 211, 211, 210, 210, 38, 96, 0, 182, 183, 184, 185, 186, 187, 182, 183, 184, 185, 186, 187, 182, 183, 184, 185, 186, 187, 182, 182, 182, 182, 182, 182, 182, 183, 184, 185, 186, 187, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 183, 184, 185, 186, 187, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 183, 184, 185, 186, 187, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 39, 7, 0, 194, 195, 196, 197, 198, 199, 200, 40, 3, 0, 210, 211, 212, 41, 8, 0, 213, 213, 214, 214, 215, 215, 214, 214, 42, 20, 0, 17, 17, 18, 18, 19, 19, 1, 1, 215, 215, 214, 214, 213, 213, 212, 212, 211, 211, 210, 210, 43, 20, 0, 210, 210, 211, 211, 212, 212, 213, 213, 214, 214, 215, 215, 1, 1, 19, 19, 18, 18, 17, 17, 44, 29, 0, 1, 1, 222, 222, 222, 222, 223, - 223, 224, 224, 225, 225, 225, 225, 225, 224, 223, 222, 222, 222, 223, 223, 224, 224, 225, 225, 225, 1, 1, 45, 29, 0, 1, 1, 222, 222, 222, 222, 223, 223, 224, 224, 225, 225, 225, 225, 225, 224, 223, 222, 222, 222, 223, 223, 224, 224, 225, 225, 225, 1, 1, 46, 32, 0, 1, 1, 227, 227, 228, 228, 229, 229, 228, 228, 227, 227, 226, 226, 227, 227, 228, 228, 229, 229, 228, 228, 227, 227, 226, 226, 227, 227, 228, 228, 1, 1, 47, 34, 0, 135, 135, 136, 136, 137, 137, 231, 231, 231, 231, 230, 230, 231, 231, 231, 231, 230, 230, 231, 231, 231, 231, 230, 230, 231, 231, 231, 231, 137, 137, 136, 136, 135, 135, 48, 40, 0, 0, 0, 135, 135, 136, 136, 137, 137, 232, 233, 232, 233, 232, 233, 232, 233, 232, 233, 232, 233, 232, 233, 232, 233, 232, 233, 232, 233, 232, 233, 232, 233, 137, 137, 136, 136, 135, 135, 0, 0, 65, 44, 0, 1, 1, 288, 288, 289, 289, 290, 290, 290, 289, 288, 288, 289, 289, 290, 290, 290, 289, 288, 288, 289, 289, 290, 290, 290, 289, 288, 288, 289, 289, 290, 290, 290, 289, 288, 288, 289, 289, 290, 290, 290, 289, 1, 1, 49, 36, 0, 1, 1, 234, 234, 235, 235, 236, 236, 235, 235, 234, 234, 235, 235, 236, 236, 235, 235, 234, 234, 235, 235, 236, 236, 235, 235, 234, 234, 235, 235, 236, 236, 235, 235, 1, 1, 50, 64, 0, 238, 238, 239, 239, 240, 240, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 240, 240, 241, 241, 240, 240, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 240, 240, 241, 241, 240, 240, 241, 241, 241, 241, 241, 241, 241, 241, 240, 240, 239, 239, 238, 238, 238, 238, 238, 238, 237, 237, 238, 238, 237, 237, 51, 8, 0, 238, 238, 237, 237, 238, 238, 239, 239, 52, 12, 0, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 53, 6, 0, 251, 251, 238, 238, 238, 238, 54, 25, 0, 168, 168, 169, 169, 170, 170, 171, 171, 170, 170, 169, 169, 168, 168, 169, 169, 169, 168, 168, 169, 169, 170, 170, 169, 168, 55, 4, 0, 253, 253, 254, 254, 56, 64, 0, 1, 3, 270, 268, 1, 3, 270, 268, 1, 3, 270, 268, 1, 3, 270, 268, 1, 3, 270, 268, 1, 3, 270, 268, 1, 3, 270, 268, 1, 3, 270, 268, 1, 2, 3, 4, 270, 269, 268, 0, 1, 2, 3, 4, 2 -, -70, 269, 268, 0, 1, 1, 2, 2, 3, 3, 4, 4, 270, 270 -}; - extern int table_mirror[] = { 4, 3, 2, 1, 0, 11, 12, 13, 14, 15, 16, 5, 6, 7, 8, 9, 10, 20, 21, 22, 17, 18, 19, 24, 23, 25, 30, 31, 32, 29, 26, 27, 28, 36, 37, 38, 33, 34, 35, 40, 39, 41, 42, 43, 45, 44, 46, 47, 48, 55, 56, 57, 58, 59, 60, 49, 50, 51, 52, 53, 54, 66, 67, 68, 69, 70, 61, 62, 63, 64, 65, 75, 74, 73, 72, 71, 82, 83, 84, 85, 86, 87, 76, 77, 78, 79, 80, 81, 92, 91, 90, 89, 88, 99, 100, 101, 102, 103, 104, 93, 94, 95, 96, 97, 98, 109, 108, 107, 106, 105, 120, 119, 118, 117, 116, 115, 114, 113, 112, 111, 110, 127, 128, 129, 130, 131, 132, 121, 122, 123, 124, 125, 126, 134, 133, 139, 140, 141, 142, 135, 136, 137, 138, 147, 148, 149, 150, 143, 144, 145, 146, 155, 154, 153, 152, 151, 159, 160, 161, 156, 157, 158, 162, 163, 164, 167, 168, 165, 166, 173, 174, 175, 176, 169, 170, 171, 172, 181, 180, 179, 178, 177, 188, 189, 190, 191, 192, 193, 182, 183, 184, 185, 186, 187, 201, 202, 203, 204, 205, 206, 207, 194, 195, 196, 197, 198, 199, 200, 209, 208, 216, 217, 218, 219, 220, 221, 210, 211, 212, 213, 214, 215, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 250, 249, 248, 247, 246, 245, 244, 243, 242, 241, 240, 239, 238, 237, 252, 251, 255, 256, 253, 254, 257, 258, 259, 260, 261, 262, 285, 286, 287, 266, 267, 270, 269, 268, 271, 272, 273, 275, 274, 276, 277, 278, 279, 280, 281, 282, 283, 284, 263, 264, 265, 288, 289, 290, 291, 292, 293, 294, 295, 303, 304, 305, 306, 307, 308, 309, 296, 297, 298, 299, 300, 301, 302, 314, 313, 312, 311, 310, 316, 315, 323, 322, 321, 320, 319, 318, 317, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334 }; @@ -559,4 +545,83 @@ extern int table_ressort[] = 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd4, 0xd3, 0xd2 }; +extern int table_blupi[] = { + 35, 18, 0, 276, 276, 277, 277, 278, 278, 279, 279, 280, 280, 281, 281, 282, 282, 283, 283, 284, 284, 1, 330, 0, 0, 0, 0, 0, 0, 23, 23, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 23, 23, 23, 23, 23, 23, 0, 0, 0, 0, 0, 0, 0, 0, 23, 23, 23, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 23, 23, 23, 23, 0, 0, 0, 23, 23, 23, 0, 0, 0, 0, 0, 0, 133, 133, 0, 0 + , 0, 133, 133, 0, 0, 0, 0, 0, 0, 0, 133, 133, 0, 0, 0, 0, 23, 23, 23, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 23, 0, 0, 0, 0, 0, 23, 23, 23, 0, 0, 0, 135, 135, 136, + 136, 137, 137, 137, 137, 137, 137, 137, 137, 138, 138, 137, 137, 137, 138, 138, 137, 137, 137, 138, 138, 137, 137, 137, 138, 138, 137, 137, 137, 137, 137, 137, 136, + 136, 135, 135, 135, 0, 0, 0, 0, 0, 23, 23, 23, 0, 0, 133, 133, 0, 0, 0, 23, 23, 23, 23, 0, 0, 0, 0, 0, 0, 0, 23, 23, 0, 0, 0, 0, 0, 0, 0, 0, 133, 133, 0, 0, 0, 0, 0, + 23, 23, 23, 23, 0, 0, 0, 135, 135, 136, 136, 137, 137, 137, 137, 137, 137, 137, 137, 138, 138, 137, 137, 137, 138, 138, 137, 137, 137, 138, 138, 137, 137, 137, 138, + 138, 137, 137, 137, 138, 138, 137, 137, 137, 138, 138, 137, 137, 137, 138, 138, 137, 137, 137, 138, 138, 137, 137, 137, 138, 138, 137, 137, 137, 138, 138, 137, 137, + 137, 138, 138, 137, 137, 137, 138, 138, 137, 137, 137, 137, 137, 137, 136, 136, 135, 135, 135, 0, 0, 0, 0, 0, 23, 23, 23, 0, 0, 133, 133, 0, 0, 0, 23, 23, 23, 23, 0, 0 + , 0, 0, 0, 0, 0, 23, 23, 0, 0, 0, 0, 0, 0, 0, 0, 133, 133, 0, 0, 0, 0, 0, 23, 23, 23, 23, 0, 0, 0, 2, 6, 0, 5, 6, 7, 8, 9, 10, 60, 3, 0, 19, 18, 19, 3, 6, 0, 1, 1, 2, + 2, 3, 3, 4, 3, 0, 17, 18, 19, 5, 5, 4, 169, 26, 170, 170, 27, 59, 6, 0, 3, 3, 2, 2, 1, 1, 61, 5, 0, 34, 35, 34, 34, 33, 62, 2, 0, 35, 34, 6, 3, 2, 33, 34, 35, 7, 1, 0, + 44, 8, 8, 0, 0, 169, 26, 170, 27, 171, 28, 172, 9, 6, 0, 5, 6, 7, 8, 9, 10, 10, 6, 0, 5, 6, 7, 8, 9, 10, 13, 6, 0, 41, 41, 42, 42, 43, 43, 11, 70, 0, 40, 40, 40, 40, + 41, 41, 41, 41, 40, 40, 40, 40, 40, 40, 40, 41, 41, 41, 40, 40, 40, 40, 40, 40, 40, 41, 41, 41, 40, 40, 42, 42, 42, 43, 43, 43, 44, 44, 44, 45, 45, 45, 46, 46, 47, 47, + 46, 46, 47, 47, 46, 46, 47, 47, 46, 46, 47, 47, 46, 46, 47, 47, 46, 46, 47, 47, 46, 46, 47, 47, 75, 1, 0, -1, 76, 70, 0, 40, 40, 40, 40, 41, 41, 41, 41, 40, 40, 40, + 40, 40, 40, 40, 41, 41, 41, 40, 40, 40, 40, 40, 40, 40, 41, 41, 41, 40, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 + , -1, -1, -1, -1, -1, 77, 110, 0, 324, 325, 324, 325, 324, 325, 324, 325, 324, 325, 324, 325, 324, 325, 324, 325, 324, 325, 324, 325, 324, 324, 325, 325, 326, 326, 327 + , 327, 328, 328, 329, 329, 330, 330, 331, 331, 332, 332, 333, 333, 334, 334, 333, 333, 332, 332, 331, 331, 330, 330, 329, 329, 329, 330, 330, 330, 331, 331, 331, 332, + 332, 332, 333, 333, 333, 334, 334, 334, 333, 333, 333, 332, 332, 332, 331, 331, 331, 330, 330, 330, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 78, 1, 0, -1, 79, 1, 0, -1, 80, 1, 0, -1, 81, 1, 0, -1, 14, 6, 0, 49, 50, 51, 52, + 53, 54, 29, 6, 0, 126, 125, 124, 123, 122, 121, 28, 6, 0, 122, 122, 122, 125, 125, 125, 15, 1, 0, 61, 16, 8, 0, 61, 62, 63, 62, 61, 64, 65, 64, 17, 10, 0, 71, 71, 72, + 72, 73, 73, 74, 74, 75, 75, 67, 1, 0, 315, 68, 12, 0, 296, 297, 298, 299, 300, 301, 302, 301, 300, 299, 298, 297, 69, 7, 0, 296, 310, 311, 312, 313, 314, 303, 18, 10, + 0, 76, 76, 76, 76, 76, 76, 77, 77, 77, 77, 19, 14, 0, 76, 76, 77, 77, 78, 78, 79, 79, 80, 80, 81, 81, 39, 39, 20, 10, 0, 88, 88, 89, 89, 90, 90, 91, 91, 92, 92, 21, 12 + , 0, 93, 93, 94, 94, 95, 95, 96, 96, 97, 97, 98, 98, 22, 12, 0, 93, 93, 94, 94, 95, 95, 96, 96, 97, 97, 98, 98, 23, 10, 0, 105, 105, 106, 106, 107, 107, 108, 108, 109, + 109, 24, 90, 0, 93, 96, 98, 94, 95, 93, 95, 98, 93, 94, 96, 96, 94, 94, 98, 98, 93, 93, 97, 97, 94, 94, 94, 96, 96, 96, 93, 93, 93, 93, 94, 94, 94, 94, 94, 97, 97, 97 + , 97, 97, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 79, 79, 76, 76, 76, 76, 79, 79, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, + 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 25, 8, 0, 111, 111, 110, 110, 111, 111, 112, 112, 26, 8, 0, 111, 111, 110, 110, 111, 111, 112, 112, 27, 7, 0, 112, 113, 114 + , 115, 116, 117, 118, 30, 12, 0, 25, 25, 29, 29, 46, 46, 47, 47, 46, 46, 29, 29, 31, 328, 0, 156, 156, 156, 156, 157, 157, 157, 157, 158, 158, 158, 158, 157, 157, 157, + 157, 156, 156, 156, 156, 157, 157, 157, 157, 158, 158, 158, 158, 157, 157, 157, 157, 156, 156, 156, 156, 157, 157, 157, 157, 158, 158, 158, 158, 157, 157, 157, 157, + 156, 156, 156, 156, 157, 157, 157, 157, 158, 158, 158, 158, 157, 157, 157, 157, 156, 156, 156, 156, 157, 157, 157, 157, 158, 158, 158, 158, 157, 157, 157, 157, 156, + 156, 156, 156, 157, 157, 157, 157, 158, 158, 158, 158, 157, 157, 157, 157, 156, 156, 156, 156, 157, 157, 157, 157, 158, 158, 158, 158, 157, 157, 157, 157, 144, 144, + 143, 143, 151, 151, 162, 162, 163, 163, 164, 164, 163, 163, 162, 162, 163, 163, 164, 164, 163, 163, 162, 162, 163, 163, 164, 164, 163, 163, 162, 162, 163, 163, 164, + 164, 163, 163, 162, 162, 151, 151, 143, 143, 144, 144, 157, 157, 156, 156, 156, 156, 157, 157, 157, 157, 158, 158, 158, 158, 157, 157, 157, 157, 156, 156, 156, 156, + 157, 157, 157, 157, 158, 158, 158, 158, 157, 157, 157, 157, 156, 156, 156, 156, 157, 157, 157, 157, 158, 158, 158, 158, 157, 157, 157, 157, 156, 156, 156, 156, 157, + 157, 157, 157, 158, 158, 158, 158, 157, 157, 157, 157, 144, 144, 143, 143, 151, 151, 162, 162, 163, 163, 164, 164, 163, 163, 162, 162, 163, 163, 164, 164, 163, 163, + 162, 162, 163, 163, 164, 164, 163, 163, 162, 162, 163, 163, 164, 164, 163, 163, 162, 162, 151, 151, 143, 143, 151, 151, 162, 162, 163, 163, 164, 164, 163, 163, 162, + 162, 163, 163, 164, 164, 163, 163, 162, 162, 163, 163, 164, 164, 163, 163, 162, 162, 163, 163, 164, 164, 163, 163, 162, 162, 163, 163, 164, 164, 163, 163, 162, 162, + 163, 163, 164, 164, 163, 163, 162, 162, 151, 151, 143, 143, 144, 144, 157, 157, 32, 12, 0, 144, 144, 145, 145, 146, 146, 145, 145, 144, 144, 143, 143, 33, 10, 0, 151, + 151, 152, 152, 153, 153, 154, 154, 155, 155, 34, 10, 0, 157, 157, 165, 165, 165, 165, 166, 166, 166, 166, 36, 32, 0, 135, 177, 177, 178, 178, 179, 179, 180, 180, 179, + 179, 178, 178, 179, 179, 180, 180, 179, 179, 178, 178, 179, 179, 180, 180, 179, 179, 178, 178, 177, 177, 135, 37, 140, 0, 182, 182, 182, 182, 208, 208, 208, 208, 208, + 182, 182, 182, 182, 182, 182, 208, 208, 208, 208, 208, 194, 194, 194, 182, 182, 182, 182, 208, 208, 208, 208, 208, 182, 182, 182, 182, 182, 182, 208, 208, 208, 208, + 182, 182, 182, 182, 182, 182, 182, 182, 194, 195, 196, 197, 198, 198, 197, 197, 196, 196, 197, 197, 198, 198, 197, 197, 196, 195, 194, 182, 182, 182, 208, 208, 208, + 208, 208, 208, 182, 182, 182, 182, 182, 208, 208, 208, 208, 208, 182, 182, 194, 195, 196, 197, 198, 198, 197, 197, 196, 196, 197, 197, 198, 198, 197, 197, 196, 196, + 197, 197, 198, 198, 197, 197, 196, 195, 194, 182, 182, 182, 182, 182, 182, 182, 208, 208, 208, 208, 208, 208, 210, 210, 211, 211, 211, 211, 211, 211, 210, 210, 38, 96, + 0, 182, 183, 184, 185, 186, 187, 182, 183, 184, 185, 186, 187, 182, 183, 184, 185, 186, 187, 182, 182, 182, 182, 182, 182, 182, 183, 184, 185, 186, 187, 182, 182, 182 + , 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 183, 184, 185, 186, 187, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, + 182, 183, 184, 185, 186, 187, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 39, 7, 0, 194, + 195, 196, 197, 198, 199, 200, 40, 3, 0, 210, 211, 212, 41, 8, 0, 213, 213, 214, 214, 215, 215, 214, 214, 42, 20, 0, 17, 17, 18, 18, 19, 19, 1, 1, 215, 215, 214, 214, + 213, 213, 212, 212, 211, 211, 210, 210, 43, 20, 0, 210, 210, 211, 211, 212, 212, 213, 213, 214, 214, 215, 215, 1, 1, 19, 19, 18, 18, 17, 17, 44, 29, 0, 1, 1, 222, 222, + 222, 222, 223, 223, 224, 224, 225, 225, 225, 225, 225, 224, 223, 222, 222, 222, 223, 223, 224, 224, 225, 225, 225, 1, 1, 45, 29, 0, 1, 1, 222, 222, 222, 222, 223, 223 + , 224, 224, 225, 225, 225, 225, 225, 224, 223, 222, 222, 222, 223, 223, 224, 224, 225, 225, 225, 1, 1, 46, 32, 0, 1, 1, 227, 227, 228, 228, 229, 229, 228, 228, 227, + 227, 226, 226, 227, 227, 228, 228, 229, 229, 228, 228, 227, 227, 226, 226, 227, 227, 228, 228, 1, 1, 47, 34, 0, 135, 135, 136, 136, 137, 137, 231, 231, 231, 231, 230, + 230, 231, 231, 231, 231, 230, 230, 231, 231, 231, 231, 230, 230, 231, 231, 231, 231, 137, 137, 136, 136, 135, 135, 48, 40, 0, 0, 0, 135, 135, 136, 136, 137, 137, 232, + 233, 232, 233, 232, 233, 232, 233, 232, 233, 232, 233, 232, 233, 232, 233, 232, 233, 232, 233, 232, 233, 232, 233, 137, 137, 136, 136, 135, 135, 0, 0, 65, 44, 0, 1, 1, + 288, 288, 289, 289, 290, 290, 290, 289, 288, 288, 289, 289, 290, 290, 290, 289, 288, 288, 289, 289, 290, 290, 290, 289, 288, 288, 289, 289, 290, 290, 290, 289, 288, + 288, 289, 289, 290, 290, 290, 289, 1, 1, 49, 36, 0, 1, 1, 234, 234, 235, 235, 236, 236, 235, 235, 234, 234, 235, 235, 236, 236, 235, 235, 234, 234, 235, 235, 236, 236, + 235, 235, 234, 234, 235, 235, 236, 236, 235, 235, 1, 1, 50, 64, 0, 238, 238, 239, 239, 240, 240, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 240, 240, 241, 241, + 240, 240, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 240, 240, 241, 241, 240, 240, 241, 241, 241, 241, 241, 241, 241, 241, 240, 240, 239, 239, 238, + 238, 238, 238, 238, 238, 237, 237, 238, 238, 237, 237, 51, 8, 0, 238, 238, 237, 237, 238, 238, 239, 239, 52, 12, 0, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 53, 6, 0, 251, 251, 238, 238, 238, 238, 54, 25, 0, 168, 168, 169, 169, 170, 170, 171, 171, 170, 170, 169, 169, 168, 168, 169, 169, 169, 168, 168, 169, 169, + 170, 170, 169, 168, 55, 4, 0, 253, 253, 254, 254, 56, 64, 0, 1, 3, 270, 268, 1, 3, 270, 268, 1, 3, 270, 268, 1, 3, 270, 268, 1, 3, 270, 268, 1, 3, 270, 268, 1, 3, 270, + 268, 1, 3, 270, 268, 1, 2, 3, 4, 270, 269, 268, 0, 1, 2, 3, 4, 270, 269, 268, 0, 1, 1, 2, 2, 3, 3, 4, 4, 270, 270, 269, 269, 268, 268, 0, 0, 57, 90, 0, 266, 267, 266, + 267, 266, 267, 266, 267, 266, 267, 266, 267, 266, 267, 266, 267, 266, 267, 266, 267, 266, 267, 266, 267, 266, 267, 266, 267, 266, 267, 40, 40, 40, 40, 41, 41, 41, 41, + 40, 40, 40, 40, 40, 40, 40, 41, 41, 41, 40, 40, 40, 40, 40, 40, 40, 41, 41, 41, 40, 40, 42, 42, 42, 43, 43, 43, 44, 44, 44, 45, 45, 45, 46, 46, 47, 47, 46, 46, 47, 47 + , 46, 46, 47, 47, 46, 46, 47, 47, 46, 46, 82, 10, 0, 0, 268, 268, 269, 269, 269, 269, 268, 268, 0, 58, 14, 0, 274, 274, 271, 271, 271, 271, 272, 272, 273, 273, 273, + 273, 274, 274, 66, 16, 0, 291, 291, 292, 292, 293, 293, 294, 294, 295, 295, 294, 294, 293, 293, 292, 292, 72, 1, 0, 320, 73, 24, 0, 319, 319, 318, 318, 317, 317, 318, + 318, 319, 319, 320, 320, 321, 321, 322, 322, 323, 323, 322, 322, 321, 321, 320, 320, 74, 128, 0, 1, 1, 2, 2, 3, 3, 4, 4, 270, 270, 269, 269, 268, 268, 0, 0, 1, 2, 3, 4 + , 270, 269, 268, 0, 1, 2, 3, 4, 270, 269, 268, 0, 1, 3, 270, 268, 2, 4, 269, 0, 1, 3, 270, 268, 2, 4, 269, 0, -1, 3, 270, -1, 2, -1, 269, 0, 1, -1, -1, 268, -1, -1, + 269, -1, -1, -1, -1, 270, -1, -1, 2, -1, -1, -1, -1, -1, -1, 29, 46, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 + , -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 63, 92, 0, 263, 264, 265, 264, 263, 264, 265, 264, 263, 264, 265, 264 + , 263, 264, 265, 264, 263, 264, 265, 264, 263, 264, 265, 264, 263, 264, 265, 264, 263, 264, 265, 264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 23, 23, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 23, 23, 0, 0, 0, 0, 0, 0, 0, 133, 133, 0, 0, 0, 133, 133, 0, 0, 0, 0, 0, 0, 0, 133, 133, 0, 0, 0, 0, 23, 23, 23, 23, 0, 0, 0, 0, 64, 104, 0, 1, 1, 2, 2, 3, 3, + 285, 286, 287, 286, 285, 286, 287, 286, 285, 286, 287, 286, 285, 286, 287, 286, 285, 286, 287, 286, 285, 286, 287, 286, 285, 286, 287, 286, 285, 286, 287, 286, 3, 3, 2 + , 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 23, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 23, 0, 0, 0, 0, 0, 0, 0, 133, 133, 0, 0, 0, 133, 133, 0, 0, 0, 0, 0, 0, 0, 133, + 133, 0, 0, 0, 0, 23, 23, 23, 23, 0, 0, 0, 0, 83, 60, 0, 1, 1, 288, 288, 289, 289, 290, 290, 290, 289, 288, 288, 289, 289, 290, 290, 290, 289, 288, 288, 289, 289, 290, + 290, 290, 289, 288, 288, 289, 289, 290, 290, 290, 289, 288, 288, 289, 289, 290, 290, 290, 289, 288, 288, 289, 289, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, + 290, 290, 1, 1, 0 +}; + #endif \ No newline at end of file diff --git a/src/def.h b/src/def.h index e8998b3..33213e8 100644 --- a/src/def.h +++ b/src/def.h @@ -4,12 +4,7 @@ #ifndef DEF_H #define DEF_H -#ifndef WINVER -#define WINVER 0x0400 -#endif - #include -#include // prevent WinAPI from overriding our functions #undef PlaySound @@ -29,11 +24,13 @@ #define MAXGAMER 8 #define MAXNETPLAYER 4 +#define MAXTEAM 4 #define MAXNETMESSAGE 20 #define MAXMOVEOBJECT 200 #define MAXNOTIF 5 #define MAXFIFOPOS 10 #define MAXCHAT 6 +#define LIFT_RANGE_Y 30 #define LXIMAGE 640 // dimensions de la fenêtre de jeu #define LYIMAGE 480 diff --git a/src/jauge.cpp b/src/jauge.cpp index 3a172cd..f94a787 100644 --- a/src/jauge.cpp +++ b/src/jauge.cpp @@ -5,8 +5,6 @@ //#include //#include #include -// #include -//#include #include "def.h" #include "pixmap.h" #include "sound.h" diff --git a/src/sound.h b/src/sound.h index c34bf27..54c9a11 100644 --- a/src/sound.h +++ b/src/sound.h @@ -3,8 +3,6 @@ #ifndef SOUND_H #define SOUND_H -//#include - #include "dsound.h" #include diff --git a/util/extract_tableblupi.py b/util/extract_tableblupi.py index 74906c0..8bfda46 100644 --- a/util/extract_tableblupi.py +++ b/util/extract_tableblupi.py @@ -4,7 +4,7 @@ import sys import io -offset = 0x34560 +offset = 0x34e60 out = [] with io.open('BLUPI.exe', 'rb') as f: