1
0
mirror of https://github.com/jummy0/sb2-decomp synced 2025-03-14 20:23:30 +01:00

fixed blupi anims & lifts, rewrote MoveObjectPriority

mostly
This commit is contained in:
jummy 2024-10-22 18:13:16 -05:00
parent 7252bd99cf
commit 6e939d8a8a
13 changed files with 220 additions and 163 deletions

View File

@ -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

View File

@ -11,7 +11,6 @@
#include <mmsystem.h>
#include <time.h>
#include <sys/timeb.h>
#include <WinBase.h>
#include "def.h"
#include "resource.h"
#include "ddutil.h"

View File

@ -7,7 +7,7 @@
//#include <ddraw.h>
#ifndef POINT
#include <windef.h>
#include <windows.h>
#endif
#include "button.h"

View File

@ -1,7 +1,7 @@
#ifndef BUTTON_H
#define BUTTON_H
#include <windef.h>
#include <windows.h>
#include "decor.h"
#include "pixmap.h"

View File

@ -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;

View File

@ -47,97 +47,114 @@ 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)
{
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))))
{
PlaySound(SOUND_SINGE, m_blupiPos, FALSE);
@ -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);

View File

@ -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[rank].type == TYPE_BALLE)
{
int i = 0;
for (int i = 0; i < MAXMOVEOBJECT; i++)
{
if (m_moveObject[i].type != TYPE_BALLE) break;
}
if (m_moveObject[i].type != TYPE_BALLE)
if (i <= rank)
{
return;
}
j = 0;
while (j < MAXMOVEOBJECT)
{
if (m_moveObject[j].type != TYPE_BALLE)
{
if (j > i)
{
return;
}
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)
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++;
}
}
}

View File

@ -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);

View File

@ -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

View File

@ -4,12 +4,7 @@
#ifndef DEF_H
#define DEF_H
#ifndef WINVER
#define WINVER 0x0400
#endif
#include <windows.h>
#include <WinDef.h>
// 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

View File

@ -5,8 +5,6 @@
//#include <stdlib.h>
//#include <stdio.h>
#include <ddraw.h>
// #include <minwindef.h>
//#include <windef.h>
#include "def.h"
#include "pixmap.h"
#include "sound.h"

View File

@ -3,8 +3,6 @@
#ifndef SOUND_H
#define SOUND_H
//#include <windef.h>
#include "dsound.h"
#include <stdio.h>

View File

@ -4,7 +4,7 @@
import sys
import io
offset = 0x34560
offset = 0x34e60
out = []
with io.open('BLUPI.exe', 'rb') as f: