1
0
mirror of https://github.com/jummy0/sb2-decomp synced 2025-03-15 04:24:48 +01:00
This commit is contained in:
jummy 2024-09-12 12:48:11 -05:00
parent e08b2248ad
commit 52f2b79b44
9 changed files with 614 additions and 424 deletions

View File

@ -310,7 +310,7 @@ void CDecor::BlupiStep()
int m_blupiSpeedX = 0; // int m_blupiSpeedX = 0; //
int m_blupiSpeedY = 0; // lol. lmao even int m_blupiSpeedY = 0; // lol. lmao even
POINT tinyPoint; POINT tinyPoint;
POINT tinyPoint2; POINT tinyPoint2 = m_blupiPos; // = m_blupiPos ?
BlupiAdjust(); BlupiAdjust();
//m_blupiLastPos = m_blupiPos; //m_blupiLastPos = m_blupiPos;
POINT tinyPoint3 = m_blupiPos; POINT tinyPoint3 = m_blupiPos;
@ -386,7 +386,7 @@ void CDecor::BlupiStep()
rect.bottom = tinyPoint3.y + 20; rect.bottom = tinyPoint3.y + 20;
BOOL flag5 = DecorDetect(rect); BOOL flag5 = DecorDetect(rect);
int detectIcon = m_detectIcon; int detectIcon = m_detectIcon;
if (!m_blupiAir && !m_blupiHelico && !m_blupiOver && !m_blupiBalloon && !m_blupiEcrase && !m_blupiJeep && !m_blupiTank && !m_blupiNage && !m_blupiSurf && !m_blupiSuspend && flag4 && m_blupiFocus) if (!m_blupiAir && !m_blupiHelico && !m_blupiOver && !m_blupiBalloon && !m_blupiEcrase && !m_blupiJeep && !m_blupiTank && !m_blupiNage && !m_blupiSurf && !m_blupiSuspend && flag5 && m_blupiFocus)
{ {
if (m_blupiFocus) if (m_blupiFocus)
{ {
@ -2220,7 +2220,7 @@ void CDecor::BlupiStep()
PlaySound(35, tinyPoint3); PlaySound(35, tinyPoint3);
} }
} }
if ( !m_blupiHelico && !m_blupiOver && !m_blupiBalloon && !m_blupiEcrase && !m_blupiTank && !m_blupiJeep && !m_blupiSkate && !flag4 && m_blupiTransport == -1 && m_blupiFocus) if ( !m_blupiHelico && !m_blupiOver && !m_blupiBalloon && !m_blupiEcrase && !m_blupiTank && !m_blupiJeep && !m_blupiSkate /*&& !flag4*/ && m_blupiTransport == -1 && m_blupiFocus)
{ {
if (m_blupiDynamite > 0) if (m_blupiDynamite > 0)
{ {
@ -4066,7 +4066,7 @@ BOOL CDecor::DecorDetect(RECT rect, BOOL bCaisse)
src.top = i * 16; src.top = i * 16;
src.bottom = src.top + 16; src.bottom = src.top + 16;
RECT tinyRect; RECT tinyRect;
if (IntersectRect(tinyRect, src, rect)) if (IntersectRect(&tinyRect, &src, &rect))
{ {
m_detectIcon = icon; m_detectIcon = icon;
return TRUE; return TRUE;
@ -4089,7 +4089,7 @@ BOOL CDecor::DecorDetect(RECT rect, BOOL bCaisse)
src.top = m_moveObject[num8].posCurrent.y; src.top = m_moveObject[num8].posCurrent.y;
src.bottom = m_moveObject[num8].posCurrent.y + 64; src.bottom = m_moveObject[num8].posCurrent.y + 64;
RECT tinyRect; RECT tinyRect;
if (IntersectRect(tinyRect, src, rect)) if (IntersectRect(&tinyRect, &src, &rect))
{ {
m_detectIcon = m_moveObject[num8].icon; m_detectIcon = m_moveObject[num8].icon;
return TRUE; return TRUE;

View File

@ -493,7 +493,7 @@ void CDecor::MoveObjectStepLine(int i)
tinyRect.top = m_moveObject[i].posCurrent.y; tinyRect.top = m_moveObject[i].posCurrent.y;
tinyRect.bottom = m_moveObject[i].posCurrent.y + 16; tinyRect.bottom = m_moveObject[i].posCurrent.y + 16;
RECT tinyRect2; RECT tinyRect2;
flag = IntersectRect(tinyRect2, tinyRect, src); flag = IntersectRect(&tinyRect2, &tinyRect, &src);
tinyPoint = m_moveObject[i].posCurrent; tinyPoint = m_moveObject[i].posCurrent;
} }
POINT posCurrent; POINT posCurrent;
@ -1553,7 +1553,7 @@ void CDecor::DynamiteStart(int i, int dx, int dy)
src2.top = m_moveObject[i].posCurrent.y; src2.top = m_moveObject[i].posCurrent.y;
src2.bottom = m_moveObject[i].posCurrent.y + 20; src2.bottom = m_moveObject[i].posCurrent.y + 20;
RECT tinyRect; RECT tinyRect;
if (IntersectRect(tinyRect, src2, src)) if (IntersectRect(&tinyRect, &src2, &src))
{ {
if (m_moveObject[i].type == 12) if (m_moveObject[i].type == 12)
{ {
@ -1617,7 +1617,7 @@ int CDecor::AscenseurDetect(RECT rect, POINT oldpos, POINT newpos)
if (num < 30) if (num < 30)
{ {
RECT tinyRect; RECT tinyRect;
if (IntersectRect(tinyRect, src, rect)) if (IntersectRect(&tinyRect, &src, &rect))
{ {
return i; return i;
} }
@ -1630,7 +1630,7 @@ int CDecor::AscenseurDetect(RECT rect, POINT oldpos, POINT newpos)
for (int j = 0; j <= num / 30; j++) for (int j = 0; j <= num / 30; j++)
{ {
RECT tinyRect; RECT tinyRect;
if (IntersectRect(tinyRect, src, src2)) if (IntersectRect(&tinyRect, &src, &src2))
{ {
return i; return i;
} }
@ -1772,7 +1772,7 @@ void CDecor::SearchLinkCaisse(int rank, BOOL bPop)
src2.right = src2.left + 64 + 1; src2.right = src2.left + 64 + 1;
src2.bottom = src2.top + 64 + 1; src2.bottom = src2.top + 64 + 1;
RECT tinyRect; RECT tinyRect;
if (IntersectRect(tinyRect, src2, src) && AddLinkCaisse(num2)) if (IntersectRect(&tinyRect, &src2, &src) && AddLinkCaisse(num2))
{ {
flag = TRUE; flag = TRUE;
} }
@ -1895,7 +1895,7 @@ int CDecor::MockeryDetect(POINT pos)
src2.top = m_moveObject[i].posCurrent.y + 36; src2.top = m_moveObject[i].posCurrent.y + 36;
src2.bottom = m_moveObject[i].posCurrent.y + 60; src2.bottom = m_moveObject[i].posCurrent.y + 60;
RECT tinyRect; RECT tinyRect;
if (IntersectRect(tinyRect, src2, src)) if (IntersectRect(&tinyRect, &src2, &src))
{ {
if (m_moveObject[i].type == 54) if (m_moveObject[i].type == 54)
{ {
@ -1948,7 +1948,7 @@ BOOL CDecor::BlupiElectro(POINT pos)
src2.top = m_blupiPos.y + 11 - 40; src2.top = m_blupiPos.y + 11 - 40;
src2.bottom = m_blupiPos.y + 60 - 2 + 40; src2.bottom = m_blupiPos.y + 60 - 2 + 40;
RECT tinyRect; RECT tinyRect;
return IntersectRect(tinyRect, src, src2); return IntersectRect(&tinyRect, &src, &src2);
} }
void CDecor::MoveObjectFollow(POINT pos) void CDecor::MoveObjectFollow(POINT pos)
@ -1970,7 +1970,7 @@ void CDecor::MoveObjectFollow(POINT pos)
src2.top = m_moveObject[i].posCurrent.y - 100; src2.top = m_moveObject[i].posCurrent.y - 100;
src2.bottom = m_moveObject[i].posCurrent.y + 60 + 100; src2.bottom = m_moveObject[i].posCurrent.y + 60 + 100;
RECT tinyRect; RECT tinyRect;
if (IntersectRect(tinyRect, src2, src)) if (IntersectRect(&tinyRect, &src2, &src))
{ {
m_moveObject[i].type = 97; m_moveObject[i].type = 97;
PlaySound(92, m_moveObject[i].posCurrent); PlaySound(92, m_moveObject[i].posCurrent);
@ -2031,7 +2031,7 @@ int CDecor::MoveAscenseurDetect(POINT pos, int height)
src2.top = m_moveObject[i].posCurrent.y; src2.top = m_moveObject[i].posCurrent.y;
src2.bottom = m_moveObject[i].posCurrent.y + 16; src2.bottom = m_moveObject[i].posCurrent.y + 16;
RECT tinyRect; RECT tinyRect;
if (IntersectRect(tinyRect, src2, src)) if (IntersectRect(&tinyRect, &src2, &src))
{ {
return i; return i;
} }
@ -2057,7 +2057,7 @@ int CDecor::MoveChargeDetect(POINT pos)
src2.top = m_moveObject[i].posCurrent.y + 36; src2.top = m_moveObject[i].posCurrent.y + 36;
src2.bottom = m_moveObject[i].posCurrent.y + 60; src2.bottom = m_moveObject[i].posCurrent.y + 60;
RECT tinyRect; RECT tinyRect;
if (IntersectRect(tinyRect, src2, src)) if (IntersectRect(&tinyRect, &src2, &src))
{ {
return i; return i;
} }
@ -2083,7 +2083,7 @@ int CDecor::MovePersoDetect(POINT pos)
src2.top = m_moveObject[i].posCurrent.y + 36; src2.top = m_moveObject[i].posCurrent.y + 36;
src2.bottom = m_moveObject[i].posCurrent.y + 60; src2.bottom = m_moveObject[i].posCurrent.y + 60;
RECT tinyRect; RECT tinyRect;
if (IntersectRect(tinyRect, src2, src)) if (IntersectRect(&tinyRect, &src2, &src))
{ {
return i; return i;
} }

View File

@ -481,7 +481,7 @@ enum {
WM_BUTTON38, WM_BUTTON38,
WM_BUTTON39, WM_BUTTON39,
WM_DIMS1, WM_DIMS1 = WM_USER + 241,
WM_DIMS2, WM_DIMS2,
WM_DIMS3, WM_DIMS3,
WM_DIMS4, WM_DIMS4,
@ -522,58 +522,58 @@ enum {
WM_PHASE_PLAYMOVIE, WM_PHASE_PLAYMOVIE,
WM_PHASE_WINMOVIE, WM_PHASE_WINMOVIE,
WM_PHASE_1539, WM_PHASE_1539,
WM_PHASE_DOPLAY, WM_PHASE_DOPLAY, // do singleplayer
WM_PHASE_LASTWIN, // PB vestige WM_PHASE_LASTWIN, // PB vestige
WM_PHASE_SETUPp, WM_PHASE_SETUPp,
WM_PHASE_REGION, WM_PHASE_REGION,
WM_PHASE_INSERT, WM_PHASE_INSERT,
WM_PHASE_1544, WM_PHASE_QUITPLAYTEST,
WM_PHASE_GAMER, WM_PHASE_GAMER,
WM_PHASE_WINDESIGN, WM_PHASE_WINDESIGN,
WM_PHASE_LOSTDESIGN, WM_PHASE_LOSTDESIGN,
WM_PHASE_WINMOVIEDESIGN, WM_PHASE_WINMOVIEDESIGN,
WM_PHASE_WINMULTI,
WM_PHASE_LOSTMULTI, WM_PHASE_LOSTMULTI,
WM_PHASE_WINMULTI,
WM_PHASE_WINMOVIEMULTI, WM_PHASE_WINMOVIEMULTI,
WM_PHASE_TESTCD, WM_PHASE_TESTCD,
WM_PHASE_MANUEL, WM_PHASE_MANUEL,
WM_PHASE_PRIVATE, WM_PHASE_PRIVATE,
WM_PHASE_UNDO, WM_PHASE_UNDO, // PB vestige
WM_PHASE_BYE, WM_PHASE_BYE,
WM_PHASE_DEMO, WM_PHASE_DEMO,
WM_PHASE_NAMEDESIGN, WM_PHASE_NAMEDESIGN,
WM_PHASE_WRITEDESIGN, WM_PHASE_WRITEDESIGN, // export design to c:\user
WM_PHASE_READDESIGN, WM_PHASE_READDESIGN, // import design from c:\user
WM_PHASE_CLEARDESIGN, WM_PHASE_CLEARDESIGN,
WM_PHASE_DONAMEGAMER, WM_PHASE_DONAMEGAMER,
WM_PHASE_DOCLEARGAMER, WM_PHASE_DOCLEARGAMER,
WM_PHASE_DONAMEDESIGN, WM_PHASE_DONAMEDESIGN,
WM_PHASE_1565, WM_PHASE_DOWRITEDESIGN,
WM_PHASE_1566, WM_PHASE_DOREADDESIGN,
WM_PHASE_DOCLEARDESIGN, WM_PHASE_DOCLEARDESIGN,
WM_PHASE_SERVICE, WM_PHASE_SERVICE,
WM_PHASE_DPLAY_DO_SERVICE, WM_PHASE_DP_DOSERVICE,
WM_PHASE_DPLAY_CANCEL_SERVICE, WM_PHASE_DP_CANCELSERVICE,
WM_PHASE_SESSION, WM_PHASE_SESSION,
WM_PHASE_1572, WM_PHASE_DP_JOIN,
WM_PHASE_DPLAY_CREATE_LOBBY, WM_PHASE_DP_CREATELOBBY,
WM_PHASE_DPLAY_REFRESH, WM_PHASE_DP_REFRESH,
WM_PHASE_DPLAY_CANCEL_SESSION, WM_PHASE_DP_CANCELSESSION,
WM_PHASE_MULTI, WM_PHASE_MULTI,
WM_PHASE_DPLAY_START_GAME_2, WM_PHASE_DP_STARTMULTI,
WM_PHASE_DPLAY_CANCEL_MULTI, WM_PHASE_DP_CANCELMULTI,
WM_PHASE_CREATE, WM_PHASE_CREATE,
WM_PHASE_DPLAY_CREATE, WM_PHASE_DP_DOCREATE,
WM_PHASE_DPLAY_CANCEL_CREATE, WM_PHASE_DP_CANCELCREATE,
WM_PHASE_STOP, WM_PHASE_STOP, // escape key pause menu during gameplay
WM_PHASE_HELP, WM_PHASE_HELP,
WM_PHASE_GWRITE, WM_PHASE_GWRITE,
WM_PHASE_GREADp, WM_PHASE_GREADp,
WM_PHASE_GREAD, WM_PHASE_GREAD,
WM_PHASE_DOQUIT, WM_PHASE_QUITPLAY,
WM_PHASE_1588, WM_PHASE_1588,
WM_PHASE_INTRO1, // PB vestige WM_PHASE_INTRO1,
WM_PHASE_INTRO2, // PB vestige WM_PHASE_INTRO2,
WM_PREV = WM_USER + 600, WM_PREV = WM_USER + 600,
WM_NEXT, WM_NEXT,

File diff suppressed because it is too large Load Diff

View File

@ -186,7 +186,9 @@ protected:
void MouseRelease(); void MouseRelease();
void MouseCapture(); void MouseCapture();
BOOL FUN_1fbd0(); void DrawMap();
BOOL CheckCDForWorld1();
void NetAdjustLobbyButtons();
protected: protected:
@ -274,7 +276,7 @@ protected:
BOOL m_bDemoPlay; BOOL m_bDemoPlay;
DemoEvent* m_pDemoBuffer; DemoEvent* m_pDemoBuffer;
int m_demoTime; int m_demoTime;
int m_input; int m_keyPress;
int m_demoIndex; int m_demoIndex;
int m_demoEnd; int m_demoEnd;
int m_demoNumber; int m_demoNumber;

View File

@ -89,21 +89,6 @@ int Random(int min, int max)
return (int)n; return (int)n;
} }
BOOL IntersectRect(RECT dst, RECT src1, RECT src2)
{
dst.left = max(src1.left, src2.left);
dst.right = min(src1.right, src2.right);
dst.top = max(src1.top, src2.top);
dst.bottom = min(src1.bottom, src2.bottom);
return IsRectEmpty(&dst);
}
BOOL IsRectEmpty(RECT rect)
{
return rect.left >= rect.right || rect.top >= rect.bottom;
}
void GetCurrentDir(char *pName, int lg) void GetCurrentDir(char *pName, int lg)
{ {
int i; int i;

View File

@ -13,8 +13,6 @@ extern POINT ConvLongToPos(LPARAM lParam);
extern void InitRandom(); extern void InitRandom();
extern int Random(int min, int max); extern int Random(int min, int max);
extern BOOL IntersectRect(RECT dst, RECT src1, RECT src2);
extern BOOL IsRectEmpty(RECT rect);
extern void GetCurrentDir(char *pName, int lg); extern void GetCurrentDir(char *pName, int lg);
extern void AddCDPath(char *pFilename); extern void AddCDPath(char *pFilename);

View File

@ -1696,7 +1696,7 @@ void CPixmap::MouseBackDraw()
} }
// Dessine le lutin dans m_lpDDSBack. // Dessine le lutin dans m_lpDDSBack.
BltFast(m_lpDDSBack, CHELEMENT, dst, rcRect, 1); BltFast(m_lpDDSBack, CHELEMENT, dst, rcRect, 0);
} }
// Sauve le fond sous la souris. // Sauve le fond sous la souris.
@ -1786,18 +1786,18 @@ void CPixmap::MouseBackRestore()
rcRect.left -= dst.x; rcRect.left -= dst.x;
dst.x = 0; dst.x = 0;
} }
if ( dst.x+DIMBLUPIX > LXIMAGE ) if ( dst.x+ rcRect.right - rcRect.left > LXIMAGE )
{ {
rcRect.right -= (dst.x+DIMBLUPIX)-LXIMAGE; rcRect.right -= (dst.x+ rcRect.right - rcRect.left)-LXIMAGE;
} }
if ( dst.y < 0 ) if ( dst.y < 0 )
{ {
rcRect.top -= dst.y; rcRect.top -= dst.y;
dst.y = 0; dst.y = 0;
} }
if ( dst.y+DIMBLUPIY > LYIMAGE ) if ( dst.y+ rcRect.top - rcRect.bottom > LYIMAGE )
{ {
rcRect.bottom -= (dst.y+DIMBLUPIY)-LYIMAGE; rcRect.bottom -= (dst.y+ rcRect.top - rcRect.bottom)-LYIMAGE;
} }
while( TRUE ) while( TRUE )

View File

@ -579,7 +579,7 @@ BOOL CSound::PlayMusic(HWND hWnd, int music)
// MCI will attempt to choose the MIDI mapper as the output port. // MCI will attempt to choose the MIDI mapper as the output port.
mciOpenParms.dwCallback = 0; mciOpenParms.dwCallback = 0;
mciOpenParms.wDeviceID = 0; mciOpenParms.wDeviceID = 0;
mciOpenParms.lpstrDeviceType = (LPSTR)MCI_DEVTYPE_SEQUENCER; mciOpenParms.lpstrDeviceType = "sequencer";
mciOpenParms.lpstrElementName = string; mciOpenParms.lpstrElementName = string;
dwReturn = mciSendCommand(NULL, dwReturn = mciSendCommand(NULL,
MCI_OPEN, MCI_OPEN,
@ -704,7 +704,7 @@ BOOL CSound::PlayCDAudio(HWND hWnd, int track)
mciOpenParms.dwCallback = 0; mciOpenParms.dwCallback = 0;
mciOpenParms.wDeviceID = 0; mciOpenParms.wDeviceID = 0;
mciOpenParms.lpstrAlias = NULL; mciOpenParms.lpstrAlias = NULL;
mciOpenParms.lpstrDeviceType = (LPSTR)MCI_DEVTYPE_CD_AUDIO; mciOpenParms.lpstrDeviceType = "cdaudio";
dwReturn = mciSendCommand(0, dwReturn = mciSendCommand(0,
MCI_OPEN, MCI_OPEN,
MCI_OPEN_TYPE_ID | MCI_OPEN_TYPE, MCI_OPEN_TYPE_ID | MCI_OPEN_TYPE,