a
4
.gitignore
vendored
@ -7,3 +7,7 @@
|
||||
/Debug
|
||||
/x64
|
||||
/Speedy E.e424a3cb
|
||||
/DATA
|
||||
/IMAGE*
|
||||
/MOVIE
|
||||
/SOUND
|
||||
|
3
.gitmodules
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
[submodule "dxsdk3"]
|
||||
path = dxsdk3
|
||||
url = https://github.com/masonmc/dxsdk3.git
|
BIN
Eggbert2.aps
BIN
arrowdl.cur
Normal file
After Width: | Height: | Size: 326 B |
BIN
arrowdow.cur
Normal file
After Width: | Height: | Size: 326 B |
BIN
arrowdr.cur
Normal file
After Width: | Height: | Size: 326 B |
BIN
arrowlef.cur
Normal file
After Width: | Height: | Size: 326 B |
BIN
arrowrig.cur
Normal file
After Width: | Height: | Size: 326 B |
BIN
arrowul.cur
Normal file
After Width: | Height: | Size: 326 B |
BIN
arrowup.cur
Normal file
After Width: | Height: | Size: 326 B |
BIN
arrowur.cur
Normal file
After Width: | Height: | Size: 326 B |
BIN
blupi-d.aps
Normal file
BIN
blupi-e.aps
Normal file
BIN
blupi-f.aps
Normal file
18
blupi.cpp
@ -33,14 +33,14 @@
|
||||
|
||||
// Variables Globals
|
||||
|
||||
HWND g_hWnd; // handle à la fenêtre
|
||||
HWND g_hWnd; // handle à la fenètre
|
||||
CEvent* g_pEvent = NULL;
|
||||
CPixmap* g_pPixmap = NULL; // pixmap principal
|
||||
CSound* g_pSound = NULL; // sound principal
|
||||
CMovie* g_pMovie = NULL; // movie principal
|
||||
CDecor* g_pDecor = NULL;
|
||||
CNetwork* g_pNetwork;
|
||||
char g_CDPath[MAX_PATH]; // chemin d'accès au CD-Rom
|
||||
char g_CDPath[MAX_PATH]; // chemin d'accès au CD-Rom
|
||||
BOOL g_bFullScreen = FALSE; // FALSE si mode de test
|
||||
int g_speedRate = 1;
|
||||
int g_timerInterval = 50; // inverval = 50ms
|
||||
@ -51,7 +51,7 @@ BOOL g_bTrueColorBack;
|
||||
BOOL g_bTrueColorDecor;
|
||||
BOOL g_bCDAudio;
|
||||
int g_something;
|
||||
MMRESULT g_updateTimer; // timer général
|
||||
MMRESULT g_updateTimer; // timer général
|
||||
BOOL g_bActive = TRUE; // is application active ?
|
||||
BOOL g_bTermInit = FALSE; // initialisation en cours
|
||||
int g_objectMax;
|
||||
@ -62,7 +62,7 @@ int g_exploMax;
|
||||
UINT g_lastPhase = 999;
|
||||
|
||||
|
||||
// Lit un numéro décimal.
|
||||
// Lit un numéro décimal.
|
||||
|
||||
int GetNum(char *p)
|
||||
{
|
||||
@ -233,7 +233,7 @@ BOOL ReadConfig (LPSTR lpCmdLine)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// Mise à jour principale. [TODO: Rewrite Variables]
|
||||
// Mise à jour principale. [TODO: Rewrite Variables]
|
||||
|
||||
void UpdateFrame(void)
|
||||
{
|
||||
@ -364,7 +364,7 @@ int Benchmark()
|
||||
}
|
||||
|
||||
|
||||
// Restitue le jeu après une activation en mode fullScreen.
|
||||
// Restitue le jeu après une activation en mode fullScreen.
|
||||
|
||||
BOOL RestoreGame()
|
||||
{
|
||||
@ -374,7 +374,7 @@ BOOL RestoreGame()
|
||||
return g_pPixmap->Restore();
|
||||
}
|
||||
|
||||
// Libère le jeu avant une désactivation en mode fullScreen.
|
||||
// Libère le jeu avant une désactivation en mode fullScreen.
|
||||
|
||||
BOOL FlushGame()
|
||||
{
|
||||
@ -506,7 +506,7 @@ LRESULT CALLBACK WindowProc (HWND hWnd, UINT message,
|
||||
SetWindowTextA(hWnd, "Blupi");
|
||||
if ( g_pSound != NULL ) g_pSound->RestartMusic();
|
||||
}
|
||||
else // désactive ?
|
||||
else // désactive ?
|
||||
{
|
||||
if ( g_bFullScreen )
|
||||
{
|
||||
@ -710,7 +710,7 @@ static BOOL DoInit(HINSTANCE hInstance, LPSTR lpCmdLine, int nCmdShow)
|
||||
return InitFail("Game not correctly installed", FALSE);
|
||||
}
|
||||
|
||||
// Crée le pixmap principal.
|
||||
// Crée le pixmap principal.
|
||||
g_pPixmap = new CPixmap;
|
||||
if (g_pPixmap == NULL) return InitFail("New pixmap", TRUE);
|
||||
|
||||
|
BIN
cursor1.cur
Before Width: | Height: | Size: 326 B After Width: | Height: | Size: 326 B |
@ -16,7 +16,7 @@
|
||||
#include "ddutil.h"
|
||||
#include "misc.h"
|
||||
|
||||
#pragma warning (disable :4996)
|
||||
|
||||
|
||||
|
||||
// Le message :
|
||||
|
35
ddutil.h
@ -1,29 +1,26 @@
|
||||
/*==========================================================================
|
||||
*
|
||||
* Copyright (C) 1995 Microsoft Corporation. All Rights Reserved.
|
||||
*
|
||||
* File: ddutil.cpp
|
||||
* Content: Routines for loading bitmap and palettes from resources
|
||||
*
|
||||
***************************************************************************/
|
||||
|
||||
#pragma once
|
||||
*
|
||||
* Copyright (C) 1995 Microsoft Corporation. All Rights Reserved.
|
||||
*
|
||||
* File: ddutil.cpp
|
||||
* Content: Routines for loading bitmap and palettes from resources
|
||||
*
|
||||
***************************************************************************/
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" { /* Assume C declarations for C++ */
|
||||
#endif /* __cplusplus */
|
||||
|
||||
extern void DDSetDebug(BOOL bDebug);
|
||||
extern IDirectDrawSurface * DDConnectBitmap(IDirectDraw *pdd, HBITMAP hbm);
|
||||
extern IDirectDrawPalette * DDLoadPalette(IDirectDraw *pdd, LPCSTR szBitmap);
|
||||
extern IDirectDrawSurface * DDLoadBitmap(IDirectDraw *pdd, LPCSTR szBitmap, int dx, int dy);
|
||||
extern HRESULT DDReLoadBitmap(IDirectDrawSurface *pdds, LPCSTR szBitmap);
|
||||
extern HRESULT DDCopyBitmap(IDirectDrawSurface *pdds, HBITMAP hbm, int x, int y, int dx, int dy);
|
||||
extern DWORD DDColorMatch(IDirectDrawSurface *pdds, COLORREF rgb);
|
||||
extern HRESULT DDSetColorKey(IDirectDrawSurface *pdds, COLORREF rgb);
|
||||
extern HRESULT DDSetColorKey2(IDirectDrawSurface *pdds, COLORREF rgb1, COLORREF rgb2);
|
||||
extern void DDSetDebug(BOOL bDebug);
|
||||
extern IDirectDrawSurface * DDConnectBitmap(IDirectDraw *pdd, HBITMAP hbm);
|
||||
extern IDirectDrawPalette * DDLoadPalette(IDirectDraw *pdd, LPCSTR szBitmap);
|
||||
extern IDirectDrawSurface * DDLoadBitmap(IDirectDraw *pdd, LPCSTR szBitmap, int dx, int dy);
|
||||
extern HRESULT DDReLoadBitmap(IDirectDrawSurface *pdds, LPCSTR szBitmap);
|
||||
extern HRESULT DDCopyBitmap(IDirectDrawSurface *pdds, HBITMAP hbm, int x, int y, int dx, int dy);
|
||||
extern DWORD DDColorMatch(IDirectDrawSurface *pdds, COLORREF rgb);
|
||||
extern HRESULT DDSetColorKey(IDirectDrawSurface *pdds, COLORREF rgb);
|
||||
extern HRESULT DDSetColorKey2(IDirectDrawSurface *pdds, COLORREF rgb1, COLORREF rgb2);
|
||||
|
||||
/*
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
|
124
decblock.cpp
@ -4,8 +4,10 @@
|
||||
#include "def.h"
|
||||
#include "decor.h"
|
||||
#include "misc.h"
|
||||
#include "obstacle.h"
|
||||
#include "dectables.h"
|
||||
|
||||
BOOL CDecor::BlitzActif(int celx, int cely)
|
||||
BOOL CDecor::BlitzActif(POINT cel)
|
||||
{
|
||||
if (m_phase == WM_PHASE_BUILD) {
|
||||
//TODO: rewrite this like a human
|
||||
@ -13,14 +15,14 @@ BOOL CDecor::BlitzActif(int celx, int cely)
|
||||
return 1 - (((m_time ^ foo) - foo & 1 ^ foo) == foo);
|
||||
}
|
||||
|
||||
POINT pos = { celx * DIMOBJX, cely * DIMOBJY };
|
||||
POINT pos = { cel.x * DIMOBJX, cel.y * DIMOBJY };
|
||||
|
||||
int num = m_time % 100;
|
||||
|
||||
if (m_blupiPos.x >= pos.x - 80 && m_blupiPos.x <= pos.x + 80 &&
|
||||
m_blupiPos.y >= pos.y - 500 && m_blupiPos.y <= pos.y + 500)
|
||||
{
|
||||
if (m_time % 100 < 70 && cely > 0 && m_decor[celx][cely - 1].icon == 0x130)
|
||||
if (m_time % 100 < 70 && cely > 0 && m_decor[cel.x][cel.y - 1].icon == 0x130)
|
||||
{
|
||||
PlaySound(SOUND_BLITZ, pos, 0);
|
||||
}
|
||||
@ -125,7 +127,7 @@ int CDecor::IsWorld(POINT pos)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
int icon = m_decor[pos.x / 64, pos.y / 64]->icon;
|
||||
int icon = m_decor[pos.x / DIMOBJX, pos.y / DIMOBJY]->icon;
|
||||
if (icon >= 158 && icon <= 165)
|
||||
{
|
||||
return icon - 158 + 1;
|
||||
@ -160,17 +162,17 @@ int CDecor::IsWorld(POINT pos)
|
||||
void CDecor::ActiveSwitch(BOOL bState, POINT cel)
|
||||
{
|
||||
POINT pos;
|
||||
pos.x = cel.x * 64;
|
||||
pos.y = cel.y * 64;
|
||||
pos.x = cel.x * DIMOBJX;
|
||||
pos.y = cel.y * DIMOBJY;
|
||||
ModifDecor(pos, bState ? 384 : 385);
|
||||
PlaySoundB(bState ? 77 : 76, pos);
|
||||
PlaySound(bState ? 77 : 76, pos);
|
||||
cel.x -= 20;
|
||||
for (int i = 0; i < 41; i++)
|
||||
{
|
||||
if (cel.x >= 0 && cel.x < 100 && m_decor[cel.x, cel.y]->icon == (bState ? 379 : 378))
|
||||
{
|
||||
pos.x = cel.x * 64;
|
||||
pos.y = cel.y * 64;
|
||||
pos.x = cel.x * DIMOBJX;
|
||||
pos.y = cel.y * DIMOBJY;
|
||||
ModifDecor(pos, bState ? 378 : 379);
|
||||
}
|
||||
cel.x++;
|
||||
@ -190,7 +192,7 @@ int CDecor::GetTypeBarre(POINT pos)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
int icon = m_decor[pos.x / 64, pos.y / 64]->icon;
|
||||
int icon = m_decor[pos.x / DIMOBJX, pos.y / DIMOBJY]->icon;
|
||||
if (icon != 138 && icon != 202)
|
||||
{
|
||||
return 0;
|
||||
@ -199,7 +201,7 @@ int CDecor::GetTypeBarre(POINT pos)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
icon = m_decor[pos.x / 64, pos.y / 64 + 1]->icon;
|
||||
icon = m_decor[pos.x / DIMOBJX, pos.y / DIMOBJY + 1]->icon;
|
||||
if (IsPassIcon(icon))
|
||||
{
|
||||
return 2;
|
||||
@ -217,14 +219,14 @@ int CDecor::GetTypeBarre(POINT pos)
|
||||
BOOL CDecor::IsLave(POINT pos)
|
||||
{
|
||||
pos.x += 30;
|
||||
return pos.x >= 0 && pos.x < 6400 && pos.y >= 0 && pos.y < 6400 && m_decor[pos.x / 64, pos.y / 64]->icon == 68;
|
||||
return pos.x >= 0 && pos.x < 6400 && pos.y >= 0 && pos.y < 6400 && m_decor[pos.x / DIMOBJX, pos.y / DIMOBJY]->icon == 68;
|
||||
}
|
||||
|
||||
BOOL CDecor::IsPiege(POINT pos)
|
||||
{
|
||||
pos.x += 30;
|
||||
pos.y += 60;
|
||||
return pos.x % 64 >= 15 && pos.x % 64 <= 49 && pos.x >= 0 && pos.x < 6400 && pos.y >= 0 && pos.y < 6400 && m_decor[pos.x / 64, pos.y / 64]->icon == 373;
|
||||
return pos.x % 64 >= 15 && pos.x % 64 <= 49 && pos.x >= 0 && pos.x < 6400 && pos.y >= 0 && pos.y < 6400 && m_decor[pos.x / DIMOBJX, pos.y / DIMOBJY]->icon == 373;
|
||||
}
|
||||
|
||||
BOOL CDecor::IsGoutte(POINT pos, BOOL bAlways)
|
||||
@ -238,7 +240,7 @@ BOOL CDecor::IsGoutte(POINT pos, BOOL bAlways)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
int icon = m_decor[pos.x / 64, pos.y / 64]->icon;
|
||||
int icon = m_decor[pos.x / DIMOBJX, pos.y / DIMOBJY]->icon;
|
||||
if (bAlways)
|
||||
{
|
||||
return icon == 404 || icon == 410;
|
||||
@ -249,7 +251,7 @@ BOOL CDecor::IsGoutte(POINT pos, BOOL bAlways)
|
||||
BOOL CDecor::IsScie(POINT pos)
|
||||
{
|
||||
pos.x += 30;
|
||||
return pos.x % 64 >= 4 && pos.x % 64 <= 60 && pos.x >= 0 && pos.x < 6400 && pos.y >= 0 && pos.y < 6400 && m_decor[pos.x / 64, pos.y / 64]->icon == 378;
|
||||
return pos.x % 64 >= 4 && pos.x % 64 <= 60 && pos.x >= 0 && pos.x < 6400 && pos.y >= 0 && pos.y < 6400 && m_decor[pos.x / DIMOBJX, pos.y / DIMOBJY]->icon == 378;
|
||||
}
|
||||
|
||||
BOOL CDecor::IsSwitch(POINT pos, POINT celSwitch)
|
||||
@ -263,9 +265,9 @@ BOOL CDecor::IsSwitch(POINT pos, POINT celSwitch)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
celSwitch.x = pos.x / 64;
|
||||
celSwitch.y = pos.y / 64;
|
||||
return m_decor[pos.x / 64, pos.y / 64]->icon == 384 || m_decor[pos.x / 64, pos.y / 64]->icon == 385;
|
||||
celSwitch.x = pos.x / DIMOBJX;
|
||||
celSwitch.y = pos.y / DIMOBJY;
|
||||
return m_decor[pos.x / DIMOBJX, pos.y / DIMOBJY]->icon == 384 || m_decor[pos.x / DIMOBJX, pos.y / DIMOBJY]->icon == 385;
|
||||
}
|
||||
|
||||
BOOL CDecor::IsEcraseur(POINT pos)
|
||||
@ -275,7 +277,7 @@ BOOL CDecor::IsEcraseur(POINT pos)
|
||||
return FALSE;
|
||||
}
|
||||
pos.x += 30;
|
||||
return pos.x >= 0 && pos.x < 6400 && pos.y >= 0 && pos.y < 6400 && m_decor[pos.x / 64, pos.y / 64]->icon == 317;
|
||||
return pos.x >= 0 && pos.x < 6400 && pos.y >= 0 && pos.y < 6400 && m_decor[pos.x / DIMOBJX, pos.y / DIMOBJY]->icon == 317;
|
||||
}
|
||||
|
||||
BOOL CDecor::IsBlitz(POINT pos, BOOL bAlways)
|
||||
@ -286,8 +288,8 @@ BOOL CDecor::IsBlitz(POINT pos, BOOL bAlways)
|
||||
return FALSE;
|
||||
}
|
||||
POINT tinyPoint;
|
||||
tinyPoint.x = pos.x / 64;
|
||||
tinyPoint.y = pos.y / 64;
|
||||
tinyPoint.x = pos.x / DIMOBJX;
|
||||
tinyPoint.y = pos.y / DIMOBJY;
|
||||
return m_decor[tinyPoint.x, tinyPoint.y]->icon == 305 && (bAlways || BlitzActif(tinyPoint.x, tinyPoint.y));
|
||||
}
|
||||
|
||||
@ -295,31 +297,31 @@ BOOL CDecor::IsRessort(POINT pos)
|
||||
{
|
||||
pos.x += 30;
|
||||
pos.y += 60;
|
||||
return pos.x >= 0 && pos.x < 6400 && pos.y >= 0 && pos.y < 6400 && m_decor[pos.x / 64, pos.y / 64]->icon == 211;
|
||||
return pos.x >= 0 && pos.x < 6400 && pos.y >= 0 && pos.y < 6400 && m_decor[pos.x / DIMOBJX, pos.y / DIMOBJY]->icon == 211;
|
||||
}
|
||||
|
||||
BOOL CDecor::IsTemp(POINT pos)
|
||||
{
|
||||
pos.x += 30;
|
||||
pos.y += 60;
|
||||
return pos.x >= 0 && pos.x < 6400 && pos.y >= 0 && pos.y < 6400 && m_decor[pos.x / 64, pos.y / 64]->icon == 324;
|
||||
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)
|
||||
{
|
||||
pos.x += 30;
|
||||
pos.y += 60;
|
||||
if (pos.x >= 0 && pos.x < 6400 && pos.y >= 0 && pos.y < 6400 && m_decor[pos.x / 64, pos.y / 64]->icon == 364)
|
||||
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 / 64;
|
||||
celBridge.y = pos.y / 64;
|
||||
celBridge.x = pos.x / DIMOBJX;
|
||||
celBridge.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 / 64, pos.y / 64]->icon == 364)
|
||||
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 / 64;
|
||||
celBridge.y = pos.y / 64;
|
||||
celBridge.x = pos.x / DIMOBJX;
|
||||
celBridge.y = pos.y / DIMOBJY;
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
@ -340,11 +342,11 @@ int CDecor::IsDoor(POINT pos, POINT celPorte)
|
||||
pos.x += 30;
|
||||
for (int i = 0; i < 2; i++)
|
||||
{
|
||||
if (pos.x >= 0 && pos.x < 6400 && pos.y >= 0 && pos.y < 6400 && m_decor[pos.x / 64, pos.y / 64]->icon >= 334 && m_decor[pos.x / 64, pos.y / 64]->icon <= 336)
|
||||
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 / 64;
|
||||
celPorte.y = pos.y / 64;
|
||||
return m_decor[pos.x / 64, pos.y / 64]->icon;
|
||||
celPorte.x = pos.x / DIMOBJX;
|
||||
celPorte.y = pos.y / DIMOBJY;
|
||||
return m_decor[pos.x / DIMOBJX, pos.y / DIMOBJY]->icon;
|
||||
}
|
||||
pos.x += num;
|
||||
}
|
||||
@ -353,19 +355,19 @@ int CDecor::IsDoor(POINT pos, POINT celPorte)
|
||||
|
||||
int CDecor::IsTeleporte(POINT pos)
|
||||
{
|
||||
if (pos.x % 64 > 6)
|
||||
if (pos.x % DIMOBJX > 6)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
pos.x += 30;
|
||||
pos.y -= 60;
|
||||
if (pos.x < 0 || pos.x >= 6400 || pos.y < 0 || pos.y >= 6400)
|
||||
if (pos.x < 0 || pos.x >= DIMOBJX * MAXCELX || pos.y < 0 || pos.y >= DIMOBJY * MAXCELY)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
if (m_decor[pos.x / 64, pos.y / 64]->icon >= 330 && m_decor[pos.x / 64, pos.y / 64]->icon <= 333)
|
||||
if (m_decor[pos.x / DIMOBJX, pos.y / DIMOBJY]->icon >= 330 && m_decor[pos.x / DIMOBJX, pos.y / DIMOBJY]->icon <= 333)
|
||||
{
|
||||
return m_decor[pos.x / 64, pos.y / 64]->icon;
|
||||
return m_decor[pos.x / DIMOBJX, pos.y / DIMOBJY]->icon;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
@ -401,7 +403,7 @@ BOOL CDecor::IsSurfWater(POINT pos)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
int icon = m_decor[(pos.x + 30) / 64, pos.y / 64]->icon;
|
||||
int icon = m_decor[(pos.x + 30) / 64, pos.y / DIMOBJY]->icon;
|
||||
int icon2 = m_decor[(pos.x + 30) / 64, (pos.y + BLUPISURF) / 64]->icon;
|
||||
return icon != 92 && icon2 == 92;
|
||||
}
|
||||
@ -409,7 +411,7 @@ BOOL CDecor::IsSurfWater(POINT pos)
|
||||
BOOL CDecor::IsDeepWater(POINT pos)
|
||||
{
|
||||
int num = (pos.x + 30) / 64;
|
||||
int num2 = pos.y / 64;
|
||||
int num2 = pos.y / DIMOBJY;
|
||||
if (num < 0 || num >= 100 || num2 < 0 || num2 >= 100)
|
||||
{
|
||||
return FALSE;
|
||||
@ -474,7 +476,7 @@ BOOL CDecor::IsVentillo(POINT pos)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
int icon = m_decor[pos.x / 64, pos.y / 64]->icon;
|
||||
int icon = m_decor[pos.x / DIMOBJX, pos.y / DIMOBJY]->icon;
|
||||
if (icon < 126 || icon > 137)
|
||||
{
|
||||
return FALSE;
|
||||
@ -528,7 +530,7 @@ BOOL CDecor::IsVentillo(POINT pos)
|
||||
{
|
||||
pos.x += tinyPoint.x;
|
||||
pos.y += tinyPoint.y;
|
||||
if (num != m_decor[pos.x / 64, pos.y / 64]->icon)
|
||||
if (num != m_decor[pos.x / DIMOBJX, pos.y / DIMOBJY]->icon)
|
||||
{
|
||||
break;
|
||||
}
|
||||
@ -539,12 +541,12 @@ BOOL CDecor::IsVentillo(POINT pos)
|
||||
|
||||
void CDecor::ModifDecor(POINT pos, int icon, BOOL bMulti)
|
||||
{// TODO: this
|
||||
int icon2 = m_decor[pos.x / 64, pos.y / 64]->icon;
|
||||
int icon2 = m_decor[pos.x / DIMOBJX, pos.y / DIMOBJY]->icon;
|
||||
if (icon == -1 && icon >= 126 && icon2 <= 137)
|
||||
{
|
||||
ByeByeAdd(1, icon2, pos, 17.0, 1.0);
|
||||
}
|
||||
m_decor[pos.x / 64, pos.y / 64]->icon = icon;
|
||||
m_decor[pos.x / DIMOBJX, pos.y / DIMOBJY]->icon = icon;
|
||||
}
|
||||
|
||||
BOOL CDecor::IsRightBorder(POINT pos, POINT offset)
|
||||
@ -553,50 +555,44 @@ BOOL CDecor::IsRightBorder(POINT pos, POINT offset)
|
||||
}
|
||||
|
||||
|
||||
BOOL CDecor::IsFromage(int x, int y)
|
||||
BOOL CDecor::IsFromage(POINT cel)
|
||||
{
|
||||
if (x < 0 || x >= 100 || y < 0 || y >= 100)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
int icon = m_decor[x, y]->icon;
|
||||
if (!IsValidCel(cel)) return FALSE;
|
||||
|
||||
int icon = m_decor[cel.x][cel.y].icon;
|
||||
return (icon >= 246 && icon <= 249) || icon == 339;
|
||||
}
|
||||
|
||||
BOOL CDecor::IsGrotte(int x, int y)
|
||||
BOOL CDecor::IsGrotte(POINT cel)
|
||||
{
|
||||
if (x < 0 || x >= 100 || y < 0 || y >= 100)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
if (!IsValidCel(cel)) return FALSE;
|
||||
|
||||
int icon = m_decor[x, y]->icon;
|
||||
return icon = 284 || icon == 301 || icon == 337;
|
||||
}
|
||||
|
||||
void CDecor::AdaptMidBorder(int x, int y)
|
||||
void CDecor::AdaptMidBorder(POINT cel)
|
||||
{
|
||||
if (x < 0 || x >= 100 || y < 0 || y >= 100)
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (!IsValidCel(cel)) return;
|
||||
|
||||
int num = 15;
|
||||
if (!IsRightBorder(x, y + 1, 0, -1))
|
||||
if (!IsRightBorder({ cel.x, cel.y + 1 }, { 0, -1 }))
|
||||
{
|
||||
num &= -2;
|
||||
}
|
||||
if (!IsRightBorder(x, y + 1, 0, 1))
|
||||
if (!IsRightBorder({ cel.x, cel.y + 1 }, { 0, 1 }))
|
||||
{
|
||||
num &= -3;
|
||||
}
|
||||
if (!IsRightBorder(x + 1, y, -1, 0))
|
||||
if (!IsRightBorder({ cel.x + 1, cel.y }, { -1, 0 }))
|
||||
{
|
||||
num &= -5;
|
||||
}
|
||||
if (!IsRightBorder(x - 1, y, 1, 0))
|
||||
if (!IsRightBorder({ cel.x - 1, cel.y }, { 1, 0 }))
|
||||
{
|
||||
num &= -9;
|
||||
}
|
||||
int num2 = m_decor[x, y]->icon;
|
||||
int num2 = m_decor[cel.x][cel.y].icon;
|
||||
if (num2 == 156)
|
||||
{
|
||||
num2 = 35;
|
||||
|
53
decblupi.cpp
@ -26,10 +26,10 @@ int CDecor::GetBlupiChannelActual()
|
||||
|
||||
void CDecor::GetBlupiInfo(BOOL* bHelico, BOOL* bJeep, BOOL* bSkate, BOOL* bNage)
|
||||
{
|
||||
bHelico = m_blupiHelico;
|
||||
bJeep = (m_blupiJeep | m_blupiTank);
|
||||
bSkate = m_blupiSkate;
|
||||
bNage = (m_blupiNage | m_blupiSurf);
|
||||
*bHelico = m_blupiHelico;
|
||||
*bJeep = m_blupiJeep | m_blupiTank;
|
||||
*bSkate = m_blupiSkate;
|
||||
*bNage = m_blupiNage | m_blupiSurf;
|
||||
}
|
||||
|
||||
void CDecor::BlupiSearchIcon()
|
||||
@ -70,7 +70,6 @@ void CDecor::BlupiSearchIcon()
|
||||
{
|
||||
num3 = 15;
|
||||
}
|
||||
m_blupiRealRotation = (int)(m_blupiVitesseX * 2.0);
|
||||
}
|
||||
if (m_blupiOver)
|
||||
{
|
||||
@ -141,8 +140,8 @@ BOOL CDecor::BlupiIsGround()
|
||||
if (m_blupiTransport == -1)
|
||||
{
|
||||
RECT rect = BlupiRect(m_blupiPos);
|
||||
rect.top = m_blupiPos.y + 60 - 2;
|
||||
rect.bottom = m_blupiPos.y + 60 - 1;
|
||||
rect.top = m_blupiPos.y + DIMBLUPIY - 2;
|
||||
rect.bottom = m_blupiPos.y + DIMBLUPIY - 1;
|
||||
return DecorDetect(rect, TRUE);
|
||||
}
|
||||
else {
|
||||
@ -156,59 +155,59 @@ RECT CDecor::BlupiRect(POINT pos)
|
||||
if (m_blupiNage || m_blupiSurf)
|
||||
{
|
||||
result.left = pos.x + 12;
|
||||
result.right = pos.x + 60 - 12;
|
||||
if (m_blupiAction == 1)
|
||||
result.right = pos.x + DIMBLUPIX - 12;
|
||||
if (m_blupiAction == ACTION_STOP)
|
||||
{
|
||||
result.top = pos.y + 5;
|
||||
result.bottom = pos.y + 60 - 10;
|
||||
result.bottom = pos.y + DIMBLUPIY - 10;
|
||||
}
|
||||
else
|
||||
{
|
||||
result.top = pos.y + 15;
|
||||
result.bottom = pos.y + 60 - 10;
|
||||
result.bottom = pos.y + DIMBLUPIY - 10;
|
||||
}
|
||||
}
|
||||
else if (m_blupiJeep)
|
||||
{
|
||||
result.left = pos.x + 2;
|
||||
result.right = pos.x + 60 - 2;
|
||||
result.right = pos.x + DIMBLUPIX - 2;
|
||||
result.top = pos.y + 10;
|
||||
result.bottom = pos.y + 60 - 2;
|
||||
result.bottom = pos.y + DIMBLUPIY - 2;
|
||||
}
|
||||
else if (m_blupiTank)
|
||||
{
|
||||
result.left = pos.x + 2;
|
||||
result.right = pos.x + 60 - 2;
|
||||
result.right = pos.x + DIMBLUPIX - 2;
|
||||
result.top = pos.y + 10;
|
||||
result.bottom = pos.y + 60 - 2;
|
||||
result.bottom = pos.y + DIMBLUPIY - 2;
|
||||
}
|
||||
else if (m_blupiOver)
|
||||
{
|
||||
result.left = pos.x + 2;
|
||||
result.right = pos.x + 60 - 2;
|
||||
result.right = pos.x + DIMBLUPIX - 2;
|
||||
result.top = pos.y + 2;
|
||||
result.bottom = pos.y + 60 - 2;
|
||||
result.bottom = pos.y + DIMBLUPIY - 2;
|
||||
}
|
||||
else if (m_blupiBalloon)
|
||||
{
|
||||
result.left = pos.x + 10;
|
||||
result.right = pos.x + 60 - 10;
|
||||
result.right = pos.x + DIMBLUPIX - 10;
|
||||
result.top = pos.y + 5;
|
||||
result.bottom = pos.y + 60 - 2;
|
||||
result.bottom = pos.y + DIMBLUPIY - 2;
|
||||
}
|
||||
else if (m_blupiEcrase)
|
||||
{
|
||||
result.left = pos.x + 5;
|
||||
result.right = pos.x + 60 - 5;
|
||||
result.right = pos.x + DIMBLUPIX - 5;
|
||||
result.top = pos.y + 39;
|
||||
result.bottom = pos.y + 60 - 2;
|
||||
result.bottom = pos.y + DIMBLUPIY - 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
result.left = pos.x + 12;
|
||||
result.right = pos.x + 60 - 12;
|
||||
result.right = pos.x + DIMBLUPIX - 12;
|
||||
result.top = pos.y + 11;
|
||||
result.bottom = pos.y + 60 - 2;
|
||||
result.bottom = pos.y + DIMBLUPIY - 2;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@ -323,7 +322,7 @@ void CDecor::BlupiStep()
|
||||
BlupiDead(75, -1);
|
||||
m_blupiRestart = TRUE;
|
||||
m_blupiAir = TRUE;
|
||||
m_blupiPos.y = m_blupiPos.y / 64 * 64 + BLUPIOFFY;
|
||||
m_blupiPos.y = m_blupipos.y / DIMOBJY * 64 + BLUPIOFFY;
|
||||
PlaySound(8, m_blupiPos);
|
||||
return;
|
||||
}
|
||||
@ -2978,7 +2977,7 @@ void CDecor::BlupiStep()
|
||||
{
|
||||
BlupiDead(76, -1);
|
||||
m_blupiRestart = true;
|
||||
m_blupiPos.y = m_blupiPos.y / 64 * 64 + BLUPIOFFY;
|
||||
m_blupiPos.y = m_blupipos.y / DIMOBJY * 64 + BLUPIOFFY;
|
||||
PlaySound(8, m_blupiPos);
|
||||
}
|
||||
if (IsPiege(m_blupiPos) && !m_blupiOver && !m_blupiJeep && !m_blupiTank && !m_blupiShield && !m_blupiHide && !m_bSuperBlupi && m_blupiFocus)
|
||||
@ -3018,7 +3017,7 @@ void CDecor::BlupiStep()
|
||||
BlupiDead(11, -1);
|
||||
m_blupiRestart = true;
|
||||
m_blupiAir = true;
|
||||
m_blupiPos.y = m_blupiPos.y / 64 * 64 + BLUPIOFFY;
|
||||
m_blupiPos.y = m_blupipos.y / DIMOBJY * 64 + BLUPIOFFY;
|
||||
PlaySound(8, m_blupiPos);
|
||||
}
|
||||
if (IsEcraseur(m_blupiPos) && !m_blupiEcrase && !m_blupiShield && !m_blupiHide && !m_bSuperBlupi && m_blupiFocus)
|
||||
@ -3071,7 +3070,7 @@ void CDecor::BlupiStep()
|
||||
m_blupiVitesse.x = 0.0;
|
||||
m_blupiVitesse.y = 0.0;
|
||||
m_blupiFocus = false;
|
||||
m_blupiPos.x = m_blupiPos.x / 64 * 64;
|
||||
m_blupiPos.x = m_blupipos.x / DIMOBJX * 64;
|
||||
PlaySound(71, m_blupiPos);
|
||||
tinyPoint.x = m_blupiPos.x;
|
||||
tinyPoint.y = m_blupiPos.y - 5;
|
||||
|
@ -249,7 +249,7 @@ void CDecor::PlaceItemFromMenu5(POINT cel, int index, BYTE flags, int currentIco
|
||||
pMob->stepRecede = 1;
|
||||
pMob->timeStopStart = 0;
|
||||
pMob->timeStopEnd = 0;
|
||||
pMob->posStart = { cel.x * 64 + 2, cel.y * 64 + 4 };
|
||||
pMob->posStart = { cel.x * DIMOBJX + 2, cel.y * DIMOBJY + 4 };
|
||||
pMob->posEnd = pMob->posStart;
|
||||
pMob->posCurrent = pMob->posStart;
|
||||
pMob->step = STEP_STOPSTART;
|
||||
@ -268,7 +268,7 @@ void CDecor::PlaceItemFromMenu5(POINT cel, int index, BYTE flags, int currentIco
|
||||
pMob->stepRecede = 1;
|
||||
pMob->timeStopStart = 0;
|
||||
pMob->timeStopEnd = 0;
|
||||
pMob->posStart = { cel.x * 64 + 2, cel.y * 64 };
|
||||
pMob->posStart = { cel.x * DIMOBJX + 2, cel.y * DIMOBJY };
|
||||
pMob->posEnd = pMob->posStart;
|
||||
pMob->posCurrent = pMob->posStart;
|
||||
pMob->step = STEP_STOPSTART;
|
||||
@ -287,7 +287,7 @@ void CDecor::PlaceItemFromMenu5(POINT cel, int index, BYTE flags, int currentIco
|
||||
pMob->stepRecede = 1;
|
||||
pMob->timeStopStart = 0;
|
||||
pMob->timeStopEnd = 0;
|
||||
pMob->posStart = { cel.x * 64, cel.y * 64 };
|
||||
pMob->posStart = { cel.x * DIMOBJX, cel.y * DIMOBJY };
|
||||
pMob->posEnd = pMob->posStart;
|
||||
pMob->posCurrent = pMob->posStart;
|
||||
pMob->step = STEP_STOPSTART;
|
||||
@ -324,7 +324,7 @@ void CDecor::PlaceItemFromMenu5(POINT cel, int index, BYTE flags, int currentIco
|
||||
pMob->stepRecede = 1;
|
||||
pMob->timeStopStart = 0;
|
||||
pMob->timeStopEnd = 0;
|
||||
pMob->posStart = { cel.x * 64 + 2, cel.y * 64 + 8 };
|
||||
pMob->posStart = { cel.x * DIMOBJX + 2, cel.y * DIMOBJY + 8 };
|
||||
pMob->posEnd = pMob->posStart;
|
||||
pMob->posCurrent = pMob->posStart;
|
||||
pMob->step = STEP_STOPSTART;
|
||||
@ -394,7 +394,7 @@ void CDecor::PlaceItemFromMenu7(POINT cel, int index, BYTE flags, int currentIco
|
||||
pMob->stepRecede = 1;
|
||||
pMob->timeStopStart = 0;
|
||||
pMob->timeStopEnd = 0;
|
||||
pMob->posStart = { cel.x * 64 + 2, cel.y * 64 + 4 };
|
||||
pMob->posStart = { cel.x * DIMOBJX + 2, cel.y * DIMOBJY + 4 };
|
||||
pMob->posEnd = pMob->posStart;
|
||||
pMob->posCurrent = pMob->posStart;
|
||||
pMob->step = STEP_STOPSTART;
|
||||
@ -413,7 +413,7 @@ void CDecor::PlaceItemFromMenu7(POINT cel, int index, BYTE flags, int currentIco
|
||||
pMob->stepRecede = 1;
|
||||
pMob->timeStopStart = 0;
|
||||
pMob->timeStopEnd = 0;
|
||||
pMob->posStart = { cel.x * 64 + 2, cel.y * 64 + 8 };
|
||||
pMob->posStart = { cel.x * DIMOBJX + 2, cel.y * DIMOBJY + 8 };
|
||||
pMob->posEnd = pMob->posStart;
|
||||
pMob->posCurrent = pMob->posStart;
|
||||
pMob->step = STEP_STOPSTART;
|
||||
@ -432,7 +432,7 @@ void CDecor::PlaceItemFromMenu7(POINT cel, int index, BYTE flags, int currentIco
|
||||
pMob->stepRecede = 1;
|
||||
pMob->timeStopStart = 0;
|
||||
pMob->timeStopEnd = 0;
|
||||
pMob->posStart = { cel.x * 64 + 2, cel.y * 64 + 8 };
|
||||
pMob->posStart = { cel.x * DIMOBJX + 2, cel.y * DIMOBJY + 8 };
|
||||
pMob->posEnd = pMob->posStart;
|
||||
pMob->posCurrent = pMob->posStart;
|
||||
pMob->step = STEP_STOPSTART;
|
||||
@ -451,7 +451,7 @@ void CDecor::PlaceItemFromMenu7(POINT cel, int index, BYTE flags, int currentIco
|
||||
pMob->stepRecede = 1;
|
||||
pMob->timeStopStart = 0;
|
||||
pMob->timeStopEnd = 0;
|
||||
pMob->posStart = { cel.x * 64 + 2, cel.y * 64 + 8 };
|
||||
pMob->posStart = { cel.x * DIMOBJX + 2, cel.y * DIMOBJY + 8 };
|
||||
pMob->posEnd = pMob->posStart;
|
||||
pMob->posCurrent = pMob->posStart;
|
||||
pMob->step = STEP_STOPSTART;
|
||||
@ -470,7 +470,7 @@ void CDecor::PlaceItemFromMenu7(POINT cel, int index, BYTE flags, int currentIco
|
||||
pMob->stepRecede = 1;
|
||||
pMob->timeStopStart = 0;
|
||||
pMob->timeStopEnd = 0;
|
||||
pMob->posStart = { cel.x * 64 + 2, cel.y * 64 + 6 };
|
||||
pMob->posStart = { cel.x * DIMOBJX + 2, cel.y * DIMOBJY + 6 };
|
||||
pMob->posEnd = pMob->posStart;
|
||||
pMob->posCurrent = pMob->posStart;
|
||||
pMob->step = STEP_STOPSTART;
|
||||
@ -489,7 +489,7 @@ void CDecor::PlaceItemFromMenu7(POINT cel, int index, BYTE flags, int currentIco
|
||||
pMob->stepRecede = 1;
|
||||
pMob->timeStopStart = 0;
|
||||
pMob->timeStopEnd = 0;
|
||||
pMob->posStart = { cel.x * 64 + 2, cel.y * 64 + 4 };
|
||||
pMob->posStart = { cel.x * DIMOBJX + 2, cel.y * DIMOBJY + 4 };
|
||||
pMob->posEnd = pMob->posStart;
|
||||
pMob->posCurrent = pMob->posStart;
|
||||
pMob->step = STEP_STOPSTART;
|
||||
@ -508,7 +508,7 @@ void CDecor::PlaceItemFromMenu7(POINT cel, int index, BYTE flags, int currentIco
|
||||
pMob->stepRecede = 1;
|
||||
pMob->timeStopStart = 0;
|
||||
pMob->timeStopEnd = 0;
|
||||
pMob->posStart = { cel.x * 64 + 2, cel.y * 64 + 4 };
|
||||
pMob->posStart = { cel.x * DIMOBJX + 2, cel.y * DIMOBJY + 4 };
|
||||
pMob->posEnd = pMob->posStart;
|
||||
pMob->posCurrent = pMob->posStart;
|
||||
pMob->step = STEP_STOPSTART;
|
||||
@ -538,7 +538,7 @@ void CDecor::PlaceItemFromMenu7(POINT cel, int index, BYTE flags, int currentIco
|
||||
pMob->stepRecede = 1;
|
||||
pMob->timeStopStart = 0;
|
||||
pMob->timeStopEnd = 0;
|
||||
pMob->posStart = { cel.x * 64 + 2, cel.y * 64 + 6 };
|
||||
pMob->posStart = { cel.x * DIMOBJX + 2, cel.y * DIMOBJY + 6 };
|
||||
pMob->posEnd = pMob->posStart;
|
||||
pMob->posCurrent = pMob->posStart;
|
||||
pMob->step = STEP_STOPSTART;
|
||||
@ -571,7 +571,7 @@ void CDecor::PlaceItemFromMenu7(POINT cel, int index, BYTE flags, int currentIco
|
||||
pMob->stepRecede = 1;
|
||||
pMob->timeStopStart = 0;
|
||||
pMob->timeStopEnd = 0;
|
||||
pMob->posStart = { cel.x * 64 + 2, cel.y * 64 + 6 };
|
||||
pMob->posStart = { cel.x * DIMOBJX + 2, cel.y * DIMOBJY + 6 };
|
||||
pMob->posEnd = pMob->posStart;
|
||||
pMob->posCurrent = pMob->posStart;
|
||||
pMob->step = STEP_STOPSTART;
|
||||
|
646
decor.cpp
@ -13,7 +13,6 @@
|
||||
#include "decor.h"
|
||||
#include "text.h"
|
||||
#include "misc.h"
|
||||
#include "DECMOVE.h"
|
||||
#include "event.h"
|
||||
#include "dectables.h"
|
||||
#include "jauge.h"
|
||||
@ -37,11 +36,19 @@
|
||||
#define TEXTDELAY 10 // tooltip popup delay
|
||||
#define NOTIFDELAY 200
|
||||
|
||||
BOOL IsValidCel(POINT cel)
|
||||
inline BOOL IsValidCel(POINT cel)
|
||||
{
|
||||
return cel.x >= 0 && cel.x < MAXCELX && cel.y >= 0 && cel.y < MAXCELY;
|
||||
}
|
||||
|
||||
inline void CDecor::StopVehicleSound()
|
||||
{
|
||||
StopSound(SOUND_HELICOHIGH);
|
||||
StopSound(SOUND_HELICOLOW);
|
||||
StopSound(SOUND_JEEPHIGH);
|
||||
StopSound(SOUND_JEEPLOW);
|
||||
}
|
||||
|
||||
// Constructor
|
||||
|
||||
CDecor::CDecor()
|
||||
@ -846,35 +853,76 @@ void CDecor::DrawInfo()
|
||||
POINT pos;
|
||||
char text[100];
|
||||
|
||||
if (m_phase == WM_PHASE_PLAY || WM_PHASE_PLAYTEST)
|
||||
if (m_phase == WM_PHASE_PLAY || m_phase == WM_PHASE_PLAYTEST)
|
||||
{
|
||||
for (int i = 4; i != 0; i--) {
|
||||
if (m_notifText[i] != '\0') {
|
||||
pos.x = 10;
|
||||
pos.y = 10;
|
||||
DrawTextB(m_pPixmap, pos, m_notifText[i], 0);
|
||||
DrawText(m_pPixmap, { 10, 10 }, m_notifText[i], 0);
|
||||
}
|
||||
}
|
||||
|
||||
if (m_nbVies > 0) {
|
||||
pos.x = -15;
|
||||
pos = { -15, 417 };
|
||||
for (int i = 0; i < m_nbVies; i++) {
|
||||
pos.y = 417;
|
||||
m_pPixmap->QuickIcon(GetBlupiChannelStandard(), 48, pos);
|
||||
m_pPixmap->QuickIcon(GetBlupiChannelActual(), 48, pos);
|
||||
pos.x += 16;
|
||||
}
|
||||
}
|
||||
|
||||
if (m_blupiBullet > 0) {
|
||||
pos.x = -15;
|
||||
pos.y = 398;
|
||||
pos = { 398, 442 };
|
||||
for (int i = 0; i < m_blupiBullet; i++) {
|
||||
m_pPixmap->QuickIcon(CHELEMENT, 176, pos);
|
||||
pos.x += 4;
|
||||
}
|
||||
}
|
||||
|
||||
//TODO: more
|
||||
if (m_blupiPerso > 0) {
|
||||
m_pPixmap->QuickIcon(CHBUTTON, GetIconPerso(), { 465, 438 });
|
||||
sprintf(text, "=_%d", m_blupiPerso);
|
||||
DrawText(m_pPixmap, { 497, 452 }, text, FONTWHITE);
|
||||
}
|
||||
|
||||
if (m_blupiDynamite > 0) {
|
||||
m_pPixmap->QuickIcon(CHELEMENT, 252, { 505, 414 });
|
||||
}
|
||||
|
||||
if (m_blupiCle | CLE_RED) {
|
||||
m_pPixmap->QuickIcon(CHELEMENT, 215, { 520, 418 });
|
||||
}
|
||||
|
||||
if (m_blupiCle | CLE_GREEN) {
|
||||
m_pPixmap->QuickIcon(CHELEMENT, 222, { 530, 418 });
|
||||
}
|
||||
|
||||
if (m_blupiCle | CLE_BLUE) {
|
||||
m_pPixmap->QuickIcon(CHELEMENT, 229, { 540, 418 });
|
||||
}
|
||||
|
||||
if ((m_mission != 1 && m_mission % 10 != 0) || m_bPrivate)
|
||||
{
|
||||
sprintf(text, "%d/%d", m_nbTresor, m_totalTresor);
|
||||
DrawText(m_pPixmap, { 590, 452 }, text, FONTWHITE);
|
||||
}
|
||||
|
||||
for (int i = 0; i < 2; i++)
|
||||
{
|
||||
if (!(m_jauges[i].GetHide())) m_jauges[i].Draw();
|
||||
}
|
||||
|
||||
if (m_mission == 10 && m_phase == WM_PHASE_PLAY && !m_bPrivate)
|
||||
{
|
||||
switch (m_nbTresor)
|
||||
{
|
||||
case 0:
|
||||
if (m_blupiPos.x > 212) m_blupiPos.x = 212;
|
||||
break;
|
||||
case 1:
|
||||
if (m_blupiPos.x > 788) m_blupiPos.x = 788;
|
||||
break;
|
||||
}
|
||||
// more...
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -883,9 +931,9 @@ POINT CDecor::DecorNextAction()
|
||||
int num = 0;
|
||||
if (m_decorAction == 0 || m_bPause)
|
||||
{
|
||||
m_posDecor;
|
||||
return m_posDecor;
|
||||
}
|
||||
POINT posDecor = m_posDecor;
|
||||
POINT posDecor = m_posDecor;
|
||||
while (table_decor_action[num] != 0)
|
||||
{
|
||||
if (m_decorAction == table_decor_action[num])
|
||||
@ -901,7 +949,7 @@ POINT CDecor::DecorNextAction()
|
||||
}
|
||||
else
|
||||
{
|
||||
num2 = 6400 - (m_drawBounds.right - m_drawBounds.left);
|
||||
num2 = DIMOBJX * MAXCELX - LXIMAGE;
|
||||
}
|
||||
if (posDecor.x < 0)
|
||||
{
|
||||
@ -917,7 +965,7 @@ POINT CDecor::DecorNextAction()
|
||||
}
|
||||
else
|
||||
{
|
||||
num2 = 6400 - (m_drawBounds.bottom - m_drawBounds.top);
|
||||
num2 = DIMOBJY * MAXCELY - LYIMAGE;
|
||||
}
|
||||
if (posDecor.y < 0)
|
||||
{
|
||||
@ -967,11 +1015,11 @@ void CDecor::SetFieldD814(BOOL param)
|
||||
m_bD814 = param;
|
||||
}
|
||||
|
||||
void CDecor::PlaySoundB(int sound, POINT pos, BOOL bLocal)
|
||||
void CDecor::PlaySound(int sound, POINT pos, BOOL bLocal)
|
||||
{
|
||||
if (!bLocal) NetPlaySound(sound, pos);
|
||||
|
||||
m_pSound->PlayImage(sound, { pos.x - m_posDecor.x, pos.y - m_posDecor.y }, -1);
|
||||
m_pSound->PlayImage(sound, pos - m_posDecor, -1);
|
||||
|
||||
switch (sound) {
|
||||
case SOUND_HELICOHIGH:
|
||||
@ -1011,27 +1059,12 @@ void CDecor::StopSound(int sound)
|
||||
|
||||
void CDecor::AdaptMotorVehicleSound(POINT pos)
|
||||
{
|
||||
POINT blupiPos = pos;
|
||||
blupiPos.x -= m_posDecor.x;
|
||||
blupiPos.y -= m_posDecor.y;
|
||||
POINT blupiPos = pos - m_posDecor;
|
||||
|
||||
if (m_bHelicoMarch)
|
||||
{
|
||||
m_pSound->PlayImage(SOUND_HELICOHIGH, blupiPos);
|
||||
}
|
||||
if (m_bHelicoStop)
|
||||
{
|
||||
m_pSound->PlayImage(SOUND_HELICOLOW, blupiPos);
|
||||
}
|
||||
if (m_bJeepMarch)
|
||||
{
|
||||
m_pSound->PlayImage(SOUND_JEEPHIGH, blupiPos);
|
||||
}
|
||||
if (m_bJeepStop)
|
||||
{
|
||||
m_pSound->PlayImage(SOUND_JEEPLOW, blupiPos);
|
||||
}
|
||||
return;
|
||||
if (m_bHelicoMarch) m_pSound->PlayImage(SOUND_HELICOHIGH, blupiPos);
|
||||
if (m_bHelicoStop) m_pSound->PlayImage(SOUND_HELICOLOW, blupiPos);
|
||||
if (m_bJeepMarch) m_pSound->PlayImage(SOUND_JEEPHIGH, blupiPos);
|
||||
if (m_bJeepStop) m_pSound->PlayImage(SOUND_JEEPLOW, blupiPos);
|
||||
}
|
||||
|
||||
void CDecor::VehicleSoundsPhase(int phase)
|
||||
@ -1104,289 +1137,279 @@ void CDecor::SetPause(BOOL bPause)
|
||||
m_bPause = bPause;
|
||||
}
|
||||
|
||||
void CDecor::InitializeDoors(GameData *gameData)
|
||||
void CDecor::InitializeDoors(BYTE* doors)
|
||||
{
|
||||
for (int i = 0; i < MAXMOVEOBJECT; i++)
|
||||
{
|
||||
gameData[i] = m_doors[i];
|
||||
doors[i] = m_doors[i];
|
||||
}
|
||||
}
|
||||
|
||||
void CDecor::MemorizeDoors(BYTE* doors)
|
||||
{
|
||||
int i;
|
||||
|
||||
i = 0;
|
||||
|
||||
do
|
||||
for (int i = 0; i < MAXMOVEOBJECT; i++)
|
||||
{
|
||||
m_doors[i] = doors[i];
|
||||
i++;
|
||||
} while (i < 200);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
void CDecor::SetAllMissions(BOOL bAllMissions)
|
||||
{
|
||||
m_bCheatDoors = CheatDoors;
|
||||
m_bPrivate, m_mission->AdaptDoors;
|
||||
m_bCheatDoors = bAllMissions;
|
||||
AdaptDoors(m_bPrivate, m_mission);
|
||||
return;
|
||||
}
|
||||
|
||||
void CDecor::CheatAction(int cheat)
|
||||
{
|
||||
if (cheat == 2) // cleanall
|
||||
{
|
||||
for (int i = 0; i < MAXMOVEOBJECT; i++)
|
||||
{
|
||||
if (m_moveObject[i].type == 2 || m_moveObject[i].type == 3 || m_moveObject[i].type == 96 ||
|
||||
m_moveObject[i].type == 97 || m_moveObject[i].type == 4 || m_moveObject[i].type == 16 ||
|
||||
m_moveObject[i].type == 17 || m_moveObject[i].type == 20 || m_moveObject[i].type == 44 ||
|
||||
m_moveObject[i].type == 54 || m_moveObject[i].type == 32 || m_moveObject[i].type == 33)
|
||||
{
|
||||
m_decorAction = 1;
|
||||
m_decorPhase = 0;
|
||||
m_moveObject[i].type = 8;
|
||||
m_moveObject[i].phase = 0;
|
||||
MoveObject* mob;
|
||||
|
||||
moveObject = m_moveObject;
|
||||
int num = i;
|
||||
moveObject[num]->posCurrent.x = moveObject[num]->posCurrent.x - 34;
|
||||
moveObject2 = m_moveObject;
|
||||
int num2 = i;
|
||||
moveObject2[num2]->posCurrent.y = moveObject2[num2].posCurrent.y - 34;
|
||||
m_moveObject[i].posStart = m_moveObject[i].posCurrent;
|
||||
m_moveObject[i].posEnd = m_moveObject[i].posCurrent;
|
||||
MoveObjectStepIcon(i);
|
||||
PlaySound(10, m_moveObject[i].posCurrent);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
if (cheat == 6) // funskate
|
||||
{
|
||||
m_blupiAir = FALSE;
|
||||
m_blupiHelico = FALSE;
|
||||
m_blupiOver = FALSE;
|
||||
m_blupiJeep = FALSE;
|
||||
m_blupiTank = FALSE;
|
||||
m_blupiSkate = TRUE;
|
||||
m_blupiNage = FALSE;
|
||||
m_blupiSurf = FALSE;
|
||||
m_blupiVent = FALSE;
|
||||
m_blupiSuspend = FALSE;
|
||||
m_pSound->StopSound(SOUND_HELICOHIGH);
|
||||
StopSound(18);
|
||||
StopSound(29);
|
||||
StopSound(31);
|
||||
}
|
||||
if (cheat == 7) // givecopter
|
||||
{
|
||||
m_blupiAir = FALSE;
|
||||
m_blupiHelico = TRUE;
|
||||
m_blupiOver = FALSE;
|
||||
m_blupiJeep = FALSE;
|
||||
m_blupiTank = FALSE;
|
||||
m_blupiSkate = FALSE;
|
||||
m_blupiNage = FALSE;
|
||||
m_blupiSurf = FALSE;
|
||||
m_blupiVent = FALSE;
|
||||
m_blupiSuspend = FALSE;
|
||||
}
|
||||
if (cheat == 8) // jeepdrive
|
||||
{
|
||||
m_blupiAir = FALSE;
|
||||
m_blupiHelico = FALSE;
|
||||
m_blupiOver = FALSE;
|
||||
m_blupiJeep = TRUE;
|
||||
m_blupiTank = FALSE;
|
||||
m_blupiSkate = FALSE;
|
||||
m_blupiNage = FALSE;
|
||||
m_blupiSurf = FALSE;
|
||||
m_blupiVent = FALSE;
|
||||
m_blupiSuspend = FALSE;
|
||||
}
|
||||
if (cheat == 9) // alltreasure
|
||||
{
|
||||
for (int i = 0; i < MAXMOVEOBJECT; i++)
|
||||
{
|
||||
if (m_moveObject[i].type == 5)
|
||||
{
|
||||
m_moveObject[i].type == 0;
|
||||
m_nbTresor++;
|
||||
OpenDoorsTresor();
|
||||
PlaySound(11, m_moveObject[i].posCurrent);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (cheat == 10) // endgoal
|
||||
{
|
||||
for (int i = 0; i < MAXMOVEOBJECT; i++)
|
||||
{
|
||||
if (m_moveObject[i].type == 7 || m_moveObject[i].type == 21)
|
||||
{
|
||||
m_blupiPos = m_moveObject[i].posCurrent;
|
||||
if (m_nbTresor >= m_totalTresor)
|
||||
{
|
||||
if (m_moveObject[i].type == 21)
|
||||
{
|
||||
m_bFoundCle = TRUE;
|
||||
}
|
||||
StopSound(16);
|
||||
StopSound(18);
|
||||
StopSound(29);
|
||||
StopSound(31);
|
||||
PlaySound(14);
|
||||
m_blupiAction = 13;
|
||||
m_blupiPhase = 0;
|
||||
m_blupiFocus = FALSE;
|
||||
m_blupiFront = TRUE;
|
||||
m_blupiAir = FALSE;
|
||||
m_blupiHelico = FALSE;
|
||||
m_blupiOver = FALSE;
|
||||
m_blupiJeep = TRUE;
|
||||
m_blupiTank = FALSE;
|
||||
m_blupiSkate = FALSE;
|
||||
m_blupiNage = FALSE;
|
||||
m_blupiSurf = FALSE;
|
||||
m_blupiVent = FALSE;
|
||||
m_blupiSuspend = FALSE;
|
||||
m_blupiShield = FALSE;
|
||||
m_blupiPower = FALSE;
|
||||
m_blupiCloud = FALSE;
|
||||
m_blupiHide = FALSE;
|
||||
m_blupiInvert = FALSE;
|
||||
m_blupiBalloon = FALSE;
|
||||
m_blupiEcrase = FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
PlaySound(13, m_moveObject[i].posCurrent);
|
||||
}
|
||||
m_goalPhase = 50;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (cheat == 12) // roundshield
|
||||
{
|
||||
PlaySound(42, m_blupiPos);
|
||||
m_blupiShield = TRUE;
|
||||
m_blupiPower = FALSE;
|
||||
m_blupiCloud = FALSE;
|
||||
m_blupiHide = FALSE;
|
||||
m_blupiTimeShield = 100;
|
||||
m_blupiPosMagic = m_blupiPos;
|
||||
m_jauges[1].SetHide(FALSE);
|
||||
}
|
||||
if (cheat == 13) // quicklollipop
|
||||
{
|
||||
m_blupiAction = 49;
|
||||
m_blupiPhase = 0;
|
||||
m_blupiHelico = FALSE;
|
||||
m_blupiOver = FALSE;
|
||||
m_blupiJeep = FALSE;
|
||||
m_blupiTank = FALSE;
|
||||
m_blupiSkate = FALSE;
|
||||
m_blupiShield = FALSE;
|
||||
m_blupiPower = FALSE;
|
||||
m_blupiCloud = FALSE;
|
||||
m_blupiHide = FALSE;
|
||||
m_blupiFocus = FALSE;
|
||||
PlaySound(50, m_blupiPos);
|
||||
}
|
||||
if (cheat == 14) // tenbombs
|
||||
{
|
||||
m_blupiPerso = 10;
|
||||
PlaySound(60, m_blupiPos);
|
||||
}
|
||||
if (cheat == 15) // birdlime
|
||||
{
|
||||
m_blupiBullet = 10;
|
||||
}
|
||||
if (cheat == 16) // drivetank
|
||||
{
|
||||
m_blupiAir = FALSE;
|
||||
m_blupiHelico = FALSE;
|
||||
m_blupiOver = FALSE;
|
||||
m_blupiJeep = FALSE;
|
||||
m_blupiTank = TRUE;
|
||||
m_blupiSkate = FALSE;
|
||||
m_blupiNage = FALSE;
|
||||
m_blupiSurf = FALSE;
|
||||
m_blupiVent = FALSE;
|
||||
m_blupiSuspend = FALSE;
|
||||
m_blupiCloud = FALSE;
|
||||
m_blupiHide = FALSE;
|
||||
}
|
||||
if (cheat == 17) // powercharge
|
||||
{
|
||||
m_blupiAction = 56;
|
||||
m_blupiPhase = 0;
|
||||
m_blupiHelico = FALSE;
|
||||
m_blupiOver = FALSE;
|
||||
m_blupiJeep = FALSE;
|
||||
m_blupiTank = TRUE;
|
||||
m_blupiSkate = FALSE;
|
||||
m_blupiShield = FALSE;
|
||||
m_blupiPower = FALSE;
|
||||
m_blupiCloud = FALSE;
|
||||
m_blupiHide = FALSE;
|
||||
m_blupiJumpAie = FALSE;
|
||||
m_blupiFocus = FALSE;
|
||||
PlaySound(58, m_blupiPos);
|
||||
}
|
||||
if (cheat == 18) // hidedrink
|
||||
{
|
||||
m_blupiAction = 55;
|
||||
m_blupiPhase = 0;
|
||||
m_blupiHelico = FALSE;
|
||||
m_blupiOver = FALSE;
|
||||
m_blupiJeep = FALSE;
|
||||
m_blupiTank = FALSE;
|
||||
m_blupiSkate = FALSE;
|
||||
m_blupiShield = FALSE;
|
||||
m_blupiPower = FALSE;
|
||||
m_blupiCloud = FALSE;
|
||||
m_blupiHide = FALSE;
|
||||
m_blupiJumpAie = FALSE;
|
||||
m_blupiFocus = FALSE;
|
||||
PlaySound(57, m_blupiPos);
|
||||
}
|
||||
if (cheat == 22) // iovercraft
|
||||
{
|
||||
m_blupiAir = FALSE;
|
||||
m_blupiHelico = FALSE;
|
||||
m_blupiOver = TRUE;
|
||||
m_blupiJeep = FALSE;
|
||||
m_blupiTank = FALSE;
|
||||
m_blupiSkate = FALSE;
|
||||
m_blupiNage = FALSE;
|
||||
m_blupiSurf = FALSE;
|
||||
m_blupiVent = FALSE;
|
||||
m_blupiSuspend = FALSE;
|
||||
}
|
||||
if (cheat == cheat_dynamite)
|
||||
{
|
||||
m_blupiDynamite = 1;
|
||||
PlaySound(60, m_blupiPos);
|
||||
}
|
||||
if (cheat == 24) // wellkeys
|
||||
{
|
||||
m_blupiCle |= 7;
|
||||
}
|
||||
if (m_blupiShield && m_blupiHide && m_blupiCloud && m_blupiPower)
|
||||
switch (cheat)
|
||||
{
|
||||
case 2: // cleanall
|
||||
for (int i = 0; i < MAXMOVEOBJECT; i++)
|
||||
{
|
||||
mob = &m_moveObject[i];
|
||||
switch (mob->type)
|
||||
{
|
||||
case TYPE_BOMBEDOWN:
|
||||
case TYPE_BOMBEUP:
|
||||
case TYPE_BOMBEFOLLOW1:
|
||||
case TYPE_BOMBEFOLLOW2:
|
||||
case TYPE_BULLDOZER:
|
||||
case TYPE_BOMBEMOVE:
|
||||
case TYPE_POISSON:
|
||||
case TYPE_OISEAU:
|
||||
case TYPE_GUEPE:
|
||||
case TYPE_CREATURE:
|
||||
case TYPE_BLUPIHELICO:
|
||||
case TYPE_BLUPITANK:
|
||||
m_decorAction = 1;
|
||||
m_decorPhase = 0;
|
||||
mob->type = TYPE_EXPLO1;
|
||||
mob->phase = 0;
|
||||
mob->posCurrent -= { 34, 34 };
|
||||
mob->posStart = mob->posCurrent;
|
||||
mob->posEnd = mob->posCurrent;
|
||||
MoveObjectStepIcon(i);
|
||||
PlaySound(SOUND_BOUM, mob->posCurrent, FALSE);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 6: // funskate
|
||||
m_blupiAir = FALSE;
|
||||
m_blupiHelico = FALSE;
|
||||
m_blupiOver = FALSE;
|
||||
m_blupiJeep = FALSE;
|
||||
m_blupiTank = FALSE;
|
||||
m_blupiSkate = TRUE;
|
||||
m_blupiNage = FALSE;
|
||||
m_blupiSurf = FALSE;
|
||||
m_blupiVent = FALSE;
|
||||
m_blupiSuspend = FALSE;
|
||||
StopVehicleSound();
|
||||
break;
|
||||
case 7: // givecopter
|
||||
m_blupiAir = FALSE;
|
||||
m_blupiHelico = TRUE;
|
||||
m_blupiOver = FALSE;
|
||||
m_blupiJeep = FALSE;
|
||||
m_blupiTank = FALSE;
|
||||
m_blupiSkate = FALSE;
|
||||
m_blupiNage = FALSE;
|
||||
m_blupiSurf = FALSE;
|
||||
m_blupiVent = FALSE;
|
||||
m_blupiSuspend = FALSE;
|
||||
StopVehicleSound();
|
||||
PlaySound(SOUND_HELICOSTART, m_blupiPos, FALSE);
|
||||
PlaySound(SOUND_HELICOLOW, m_blupiPos, TRUE);
|
||||
break;
|
||||
case 8: // jeepdrive
|
||||
m_blupiAir = FALSE;
|
||||
m_blupiHelico = FALSE;
|
||||
m_blupiOver = FALSE;
|
||||
m_blupiJeep = TRUE;
|
||||
m_blupiTank = FALSE;
|
||||
m_blupiSkate = FALSE;
|
||||
m_blupiNage = FALSE;
|
||||
m_blupiSurf = FALSE;
|
||||
m_blupiVent = FALSE;
|
||||
m_blupiSuspend = FALSE;
|
||||
StopVehicleSound();
|
||||
PlaySound(SOUND_JEEPLOW, m_blupiPos, TRUE);
|
||||
break;
|
||||
case 9: // alltreasure
|
||||
for (int i = 0; i < MAXMOVEOBJECT; i++)
|
||||
{
|
||||
if (m_moveObject[i].type == TYPE_TRESOR)
|
||||
{
|
||||
m_moveObject[i].type = 0;
|
||||
m_nbTresor++;
|
||||
OpenDoorsTresor();
|
||||
PlaySound(SOUND_TRESOR, m_moveObject[i].posCurrent, FALSE);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 10: // endgoal
|
||||
for (int i = 0; i < MAXMOVEOBJECT; i++)
|
||||
{
|
||||
mob = &m_moveObject[i];
|
||||
if (mob->type == TYPE_GOAL || mob->type == TYPE_CLE)
|
||||
{
|
||||
m_blupiPos = mob->posCurrent;
|
||||
if (m_nbTresor >= m_totalTresor)
|
||||
{
|
||||
if (mob->type == TYPE_CLE)
|
||||
{
|
||||
m_bFoundCle = TRUE;
|
||||
}
|
||||
StopVehicleSound();
|
||||
PlaySound(SOUND_ENDOK, mob->posCurrent, FALSE);
|
||||
m_blupiAction = ACTION_WIN;
|
||||
m_blupiPhase = 0;
|
||||
m_blupiFocus = FALSE;
|
||||
m_blupiFront = TRUE;
|
||||
m_blupiAir = FALSE;
|
||||
m_blupiHelico = FALSE;
|
||||
m_blupiOver = FALSE;
|
||||
m_blupiJeep = TRUE;
|
||||
m_blupiTank = FALSE;
|
||||
m_blupiSkate = FALSE;
|
||||
m_blupiNage = FALSE;
|
||||
m_blupiSurf = FALSE;
|
||||
m_blupiVent = FALSE;
|
||||
m_blupiSuspend = FALSE;
|
||||
m_blupiShield = FALSE;
|
||||
m_blupiPower = FALSE;
|
||||
m_blupiCloud = FALSE;
|
||||
m_blupiHide = FALSE;
|
||||
m_blupiInvert = FALSE;
|
||||
m_blupiBalloon = FALSE;
|
||||
m_blupiEcrase = FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
PlaySound(SOUND_ENDKO, mob->posCurrent, FALSE);
|
||||
}
|
||||
m_goalPhase = 50;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 12: // roundshield
|
||||
PlaySound(SOUND_STARTSHIELD, m_blupiPos, FALSE);
|
||||
m_blupiShield = TRUE;
|
||||
m_blupiPower = FALSE;
|
||||
m_blupiCloud = FALSE;
|
||||
m_blupiHide = FALSE;
|
||||
m_blupiTimeShield = 100;
|
||||
m_blupiPosMagic = m_blupiPos;
|
||||
m_jauges[1].SetHide(FALSE);
|
||||
break;
|
||||
case 13: // quicklollipop
|
||||
m_blupiAction = ACTION_SUCETTE;
|
||||
m_blupiPhase = 0;
|
||||
m_blupiHelico = FALSE;
|
||||
m_blupiOver = FALSE;
|
||||
m_blupiJeep = FALSE;
|
||||
m_blupiTank = FALSE;
|
||||
m_blupiSkate = FALSE;
|
||||
m_blupiShield = FALSE;
|
||||
m_blupiPower = FALSE;
|
||||
m_blupiCloud = FALSE;
|
||||
m_blupiHide = FALSE;
|
||||
m_blupiFocus = FALSE;
|
||||
PlaySound(SOUND_SUCETTE, m_blupiPos, FALSE);
|
||||
break;
|
||||
case 14: // tenbombs
|
||||
m_blupiPerso = 10;
|
||||
PlaySound(SOUND_PERSOTAKE, m_blupiPos, FALSE);
|
||||
break;
|
||||
case 15: // birdlime
|
||||
m_blupiBullet = 10;
|
||||
break;
|
||||
case 16: // drivetank
|
||||
m_blupiAir = FALSE;
|
||||
m_blupiHelico = FALSE;
|
||||
m_blupiOver = FALSE;
|
||||
m_blupiJeep = FALSE;
|
||||
m_blupiTank = TRUE;
|
||||
m_blupiSkate = FALSE;
|
||||
m_blupiNage = FALSE;
|
||||
m_blupiSurf = FALSE;
|
||||
m_blupiVent = FALSE;
|
||||
m_blupiSuspend = FALSE;
|
||||
m_blupiCloud = FALSE;
|
||||
m_blupiHide = FALSE;
|
||||
PlaySound(SOUND_JEEPLOW, m_blupiPos, TRUE);
|
||||
break;
|
||||
case 17: // powercharge
|
||||
m_blupiAction = ACTION_CHARGE;
|
||||
m_blupiPhase = 0;
|
||||
m_blupiHelico = FALSE;
|
||||
m_blupiOver = FALSE;
|
||||
m_blupiJeep = FALSE;
|
||||
m_blupiTank = TRUE;
|
||||
m_blupiSkate = FALSE;
|
||||
m_blupiShield = FALSE;
|
||||
m_blupiPower = FALSE;
|
||||
m_blupiCloud = FALSE;
|
||||
m_blupiHide = FALSE;
|
||||
m_blupiJumpAie = FALSE;
|
||||
m_blupiFocus = FALSE;
|
||||
PlaySound(SOUND_CHARGE, m_blupiPos, FALSE);
|
||||
break;
|
||||
case 18: // hidedrink
|
||||
m_blupiAction = ACTION_DRINK;
|
||||
m_blupiPhase = 0;
|
||||
m_blupiHelico = FALSE;
|
||||
m_blupiOver = FALSE;
|
||||
m_blupiJeep = FALSE;
|
||||
m_blupiTank = FALSE;
|
||||
m_blupiSkate = FALSE;
|
||||
m_blupiShield = FALSE;
|
||||
m_blupiPower = FALSE;
|
||||
m_blupiCloud = FALSE;
|
||||
m_blupiHide = FALSE;
|
||||
m_blupiJumpAie = FALSE;
|
||||
m_blupiFocus = FALSE;
|
||||
PlaySound(SOUND_DRINK, m_blupiPos, FALSE);
|
||||
break;
|
||||
case 22: // iovercraft
|
||||
m_blupiAir = FALSE;
|
||||
m_blupiHelico = FALSE;
|
||||
m_blupiOver = TRUE;
|
||||
m_blupiJeep = FALSE;
|
||||
m_blupiTank = FALSE;
|
||||
m_blupiSkate = FALSE;
|
||||
m_blupiNage = FALSE;
|
||||
m_blupiSurf = FALSE;
|
||||
m_blupiVent = FALSE;
|
||||
m_blupiSuspend = FALSE;
|
||||
StopVehicleSound();
|
||||
PlaySound(SOUND_HELICOSTART, m_blupiPos, FALSE);
|
||||
PlaySound(SOUND_HELICOLOW, m_blupiPos, TRUE);
|
||||
break;
|
||||
case 23: // udynamite
|
||||
m_blupiDynamite = 1;
|
||||
PlaySound(SOUND_PERSOTAKE, m_blupiPos, FALSE);
|
||||
break;
|
||||
case 24: // wellkeys
|
||||
m_blupiCle |= CLE_RED | CLE_GREEN | CLE_BLUE;
|
||||
break;
|
||||
}
|
||||
if (!m_blupiShield && !m_blupiHide && !m_blupiCloud && !m_blupiPower)
|
||||
{
|
||||
m_jauges[1].SetHide(TRUE);
|
||||
}
|
||||
if (m_blupiHelico && m_blupiOver)
|
||||
if (!m_blupiHelico && !m_blupiOver)
|
||||
{
|
||||
m_pSound->StopSound(SOUND_HELICOHIGH);
|
||||
StopSound(18);
|
||||
StopSound(SOUND_HELICOHIGH);
|
||||
StopSound(SOUND_HELICOLOW);
|
||||
}
|
||||
if (m_blupiJeep && m_blupiTank)
|
||||
{
|
||||
StopSound(29);
|
||||
StopSound(31);
|
||||
StopSound(SOUND_JEEPHIGH);
|
||||
StopSound(SOUND_JEEPLOW);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1615,17 +1638,14 @@ void CDecor::AdaptDoors(BOOL bPrivate, int mission)
|
||||
|
||||
void CDecor::OpenDoorsTresor()
|
||||
{
|
||||
for (int i = 0; i < 100; i++)
|
||||
for (int x = 0; x < MAXCELX; x++)
|
||||
{
|
||||
for (int j = 0; j < 100; j++)
|
||||
for (int y = 0; y < MAXCELY; y++)
|
||||
{
|
||||
int icon = m_decor[i][j].icon;
|
||||
if (icon >= 421 && icon <= 421 + m_nbTresor - 1)
|
||||
int icon = m_decor[x][y].icon;
|
||||
if (icon >= Object::DoorTreasure_1 && icon <= Object::DoorTreasure_1 + m_nbTresor - 1)
|
||||
{
|
||||
POINT cel;
|
||||
cel.x = i;
|
||||
cel.y = j;
|
||||
OpenDoor(cel);
|
||||
OpenDoor({ x, y });
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1633,25 +1653,25 @@ void CDecor::OpenDoorsTresor()
|
||||
|
||||
void CDecor::OpenDoor(POINT cel)
|
||||
{
|
||||
int icon = m_decor[cel.x, cel.y]->icon;
|
||||
int icon = m_decor[cel.x][cel.y].icon;
|
||||
m_decor[cel.x, cel.y]->icon = -1;
|
||||
int num = MoveObjectFree();
|
||||
m_moveObject[num].type = 22;
|
||||
m_moveObject[num].type = TYPE_DOOR;
|
||||
m_moveObject[num].stepAdvance = 50;
|
||||
m_moveObject[num].stepRecede = 1;
|
||||
m_moveObject[num].timeStopStart = 0;
|
||||
m_moveObject[num].timeStopEnd = 0;
|
||||
m_moveObject[num].posStart.x = 64 * cel.x;
|
||||
m_moveObject[num].posStart.y = 64 * cel.y;
|
||||
m_moveObject[num].posEnd.x = 64 * cel.x;
|
||||
m_moveObject[num].posEnd.y = 64 * (cel.y - 1);
|
||||
m_moveObject[num].posStart.x = DIMOBJX * cel.x;
|
||||
m_moveObject[num].posStart.y = DIMOBJY * cel.y;
|
||||
m_moveObject[num].posEnd.x = DIMOBJX * cel.x;
|
||||
m_moveObject[num].posEnd.y = DIMOBJY * (cel.y - 1);
|
||||
m_moveObject[num].posCurrent = m_moveObject[num].posStart;
|
||||
m_moveObject[num].step = 1;
|
||||
m_moveObject[num].step = STEP_STOPSTART;
|
||||
m_moveObject[num].time = 0;
|
||||
m_moveObject[num].phase = 0;
|
||||
m_moveObject[num].channel = 1;
|
||||
m_moveObject[num].channel = CHOBJECT;
|
||||
m_moveObject[num].icon = icon;
|
||||
PlaySoundB(33, m_moveObject[num].posStart);
|
||||
PlaySound(33, m_moveObject[num].posStart);
|
||||
}
|
||||
|
||||
void CDecor::OpenDoorsWin()
|
||||
@ -1710,8 +1730,8 @@ void CDecor::DoorsLost()
|
||||
}
|
||||
for (int i = 0; i < 2; i++)
|
||||
{
|
||||
int num = pos.x / 64;
|
||||
int num2 = pos.y / 64;
|
||||
int num = pos.x / DIMOBJX;
|
||||
int num2 = pos.y / DIMOBJY;
|
||||
if (num2 < 0)
|
||||
{
|
||||
return FALSE;
|
||||
|
16
decor.h
@ -88,7 +88,7 @@ public:
|
||||
void SetInput(int keys);
|
||||
void SetJoystickEnable(BOOL bJoystick);
|
||||
void SetFieldD814(BOOL param_1);
|
||||
void PlaySoundB(int sound, POINT pos, BOOL bLocal);
|
||||
void PlaySound(int sound, POINT pos, BOOL bLocal);
|
||||
void StopSound(int sound);
|
||||
void AdaptMotorVehicleSound(POINT pos);
|
||||
void VehicleSoundsPhase(int phase);
|
||||
@ -103,7 +103,7 @@ public:
|
||||
void SetNbVies(int nbVies);
|
||||
BOOL GetPause();
|
||||
void SetPause(BOOL bPause);
|
||||
void InitializeDoors(GameData *gameData);
|
||||
void InitializeDoors(BYTE *doors);
|
||||
void MemorizeDoors(BYTE* doors);
|
||||
void SetAllMissions(BOOL bAllMissions);
|
||||
void CheatAction(int cheat);
|
||||
@ -128,7 +128,7 @@ public:
|
||||
BOOL DrawMap(BOOL bPlay, int team);
|
||||
|
||||
// DecBlock.cpp
|
||||
BOOL BlitzActif(int celx, int cely);
|
||||
BOOL BlitzActif(POINT cel);
|
||||
int SoundEnviron(int sound, int obstacle);
|
||||
int IsWorld(POINT pos);
|
||||
void ActiveSwitch(BOOL bState, POINT cel);
|
||||
@ -154,9 +154,9 @@ public:
|
||||
BOOL IsVentillo(POINT pos);
|
||||
void ModifDecor(POINT pos, int icon, BOOL _foo);
|
||||
BOOL IsRightBorder(POINT cel, POINT offset);
|
||||
BOOL IsFromage(int x, int y);
|
||||
BOOL IsGrotte(int x, int y);
|
||||
void AdaptMidBorder(int x, int y);
|
||||
BOOL IsFromage(POINT cel);
|
||||
BOOL IsGrotte(POINT cel);
|
||||
void AdaptMidBorder(POINT cel);
|
||||
void AdaptBorder(POINT cel);
|
||||
|
||||
// DecDesign.cpp
|
||||
@ -275,6 +275,8 @@ public:
|
||||
void OpenGoldsWin();
|
||||
void DoorsLost();
|
||||
|
||||
inline void StopVehicleSound();
|
||||
|
||||
protected:
|
||||
HWND m_hWnd;
|
||||
CSound* m_pSound;
|
||||
@ -421,5 +423,5 @@ protected:
|
||||
|
||||
POINT GetCel (int x, int y);
|
||||
POINT GetCel (POINT cel, int x, int y);
|
||||
BOOL IsValidCel (POINT cel);
|
||||
inline BOOL IsValidCel (POINT cel);
|
||||
POINT GetVector (int direct);
|
183
def.h
@ -5,6 +5,10 @@
|
||||
|
||||
#include <Windows.h>
|
||||
|
||||
// prevent WinAPI from overriding our functions
|
||||
#undef PlaySound
|
||||
#undef DrawText
|
||||
|
||||
#define _DEMO FALSE // TRUE=demo, FALSE=complet
|
||||
#define _INTRO FALSE // TRUE si images d'introduction
|
||||
#define _EGAMES FALSE // TRUE version pour eGames
|
||||
@ -43,10 +47,10 @@
|
||||
#define DIMSTATX 60
|
||||
#define DIMSTATY 30
|
||||
|
||||
#define DIMTEXTX 16 // dimensions max d'un caractère
|
||||
#define DIMTEXTX 16 // dimensions max d'un caractère
|
||||
#define DIMTEXTY 16
|
||||
|
||||
#define DIMLITTLEX 16 // dimensions max d'un petit caractère
|
||||
#define DIMLITTLEX 16 // dimensions max d'un petit caractère
|
||||
#define DIMLITTLEY 12
|
||||
|
||||
#define CHDECOR 0
|
||||
@ -772,109 +776,6 @@ namespace Key {
|
||||
#define WM_DECOR4 (WM_USER+23)
|
||||
#define WM_DECOR5 (WM_USER+24)
|
||||
|
||||
|
||||
#define WM_ACTION_GO (WM_USER+30)
|
||||
#define WM_ACTION_ABAT1 (WM_USER+31)
|
||||
#define WM_ACTION_ABAT2 (WM_USER+32)
|
||||
#define WM_ACTION_ABAT3 (WM_USER+33)
|
||||
#define WM_ACTION_ABAT4 (WM_USER+34)
|
||||
#define WM_ACTION_ABAT5 (WM_USER+35)
|
||||
#define WM_ACTION_ABAT6 (WM_USER+36)
|
||||
#define WM_ACTION_BUILD1 (WM_USER+37)
|
||||
#define WM_ACTION_BUILD2 (WM_USER+38)
|
||||
#define WM_ACTION_BUILD3 (WM_USER+39)
|
||||
#define WM_ACTION_BUILD4 (WM_USER+40)
|
||||
#define WM_ACTION_BUILD5 (WM_USER+41)
|
||||
#define WM_ACTION_BUILD6 (WM_USER+42)
|
||||
#define WM_ACTION_STOP (WM_USER+43)
|
||||
#define WM_ACTION_CARRY (WM_USER+44)
|
||||
#define WM_ACTION_DEPOSE (WM_USER+45)
|
||||
#define WM_ACTION_ROC1 (WM_USER+46)
|
||||
#define WM_ACTION_ROC2 (WM_USER+47)
|
||||
#define WM_ACTION_ROC3 (WM_USER+48)
|
||||
#define WM_ACTION_ROC4 (WM_USER+49)
|
||||
#define WM_ACTION_ROC5 (WM_USER+50)
|
||||
#define WM_ACTION_ROC6 (WM_USER+51)
|
||||
#define WM_ACTION_ROC7 (WM_USER+52)
|
||||
#define WM_ACTION_MUR (WM_USER+53)
|
||||
#define WM_ACTION_CULTIVE (WM_USER+54)
|
||||
#define WM_ACTION_CULTIVE2 (WM_USER+55)
|
||||
#define WM_ACTION_MANGE (WM_USER+56)
|
||||
#define WM_ACTION_MAKE (WM_USER+57)
|
||||
#define WM_ACTION_BUILD (WM_USER+58)
|
||||
#define WM_ACTION_PALIS (WM_USER+59)
|
||||
#define WM_ACTION_NEWBLUPI (WM_USER+60)
|
||||
#define WM_ACTION_PONTE (WM_USER+61)
|
||||
#define WM_ACTION_PONTS (WM_USER+62)
|
||||
#define WM_ACTION_PONTO (WM_USER+63)
|
||||
#define WM_ACTION_PONTN (WM_USER+64)
|
||||
#define WM_ACTION_PONTEL (WM_USER+65)
|
||||
#define WM_ACTION_PONTSL (WM_USER+66)
|
||||
#define WM_ACTION_PONTOL (WM_USER+67)
|
||||
#define WM_ACTION_PONTNL (WM_USER+68)
|
||||
#define WM_ACTION_TOUR (WM_USER+69)
|
||||
#define WM_ACTION_CARRY2 (WM_USER+70)
|
||||
#define WM_ACTION_DEPOSE2 (WM_USER+71)
|
||||
#define WM_ACTION_MANGE2 (WM_USER+72)
|
||||
#define WM_ACTION_BOIT (WM_USER+73)
|
||||
#define WM_ACTION_BOIT2 (WM_USER+74)
|
||||
#define WM_ACTION_LABO (WM_USER+75)
|
||||
#define WM_ACTION_FLEUR1 (WM_USER+76)
|
||||
#define WM_ACTION_FLEUR2 (WM_USER+77)
|
||||
#define WM_ACTION_DYNAMITE (WM_USER+78)
|
||||
#define WM_ACTION_DYNAMITE2 (WM_USER+79)
|
||||
#define WM_ACTION_T_DYNAMITE (WM_USER+80)
|
||||
#define WM_ACTION_FLEUR3 (WM_USER+81)
|
||||
#define WM_ACTION_R_BUILD1 (WM_USER+82)
|
||||
#define WM_ACTION_R_BUILD2 (WM_USER+83)
|
||||
#define WM_ACTION_R_BUILD3 (WM_USER+84)
|
||||
#define WM_ACTION_R_BUILD4 (WM_USER+85)
|
||||
#define WM_ACTION_R_MAKE1 (WM_USER+86)
|
||||
#define WM_ACTION_R_MAKE2 (WM_USER+87)
|
||||
#define WM_ACTION_R_MAKE3 (WM_USER+88)
|
||||
#define WM_ACTION_R_MAKE4 (WM_USER+89)
|
||||
#define WM_ACTION_R_BUILD5 (WM_USER+90)
|
||||
#define WM_ACTION_R_MAKE5 (WM_USER+91)
|
||||
#define WM_ACTION_BATEAUE (WM_USER+92)
|
||||
#define WM_ACTION_BATEAUS (WM_USER+93)
|
||||
#define WM_ACTION_BATEAUO (WM_USER+94)
|
||||
#define WM_ACTION_BATEAUN (WM_USER+95)
|
||||
#define WM_ACTION_BATEAUDE (WM_USER+96)
|
||||
#define WM_ACTION_BATEAUDS (WM_USER+97)
|
||||
#define WM_ACTION_BATEAUDO (WM_USER+98)
|
||||
#define WM_ACTION_BATEAUDN (WM_USER+99)
|
||||
#define WM_ACTION_BATEAUAE (WM_USER+100)
|
||||
#define WM_ACTION_BATEAUAS (WM_USER+101)
|
||||
#define WM_ACTION_BATEAUAO (WM_USER+102)
|
||||
#define WM_ACTION_BATEAUAN (WM_USER+103)
|
||||
#define WM_ACTION_MJEEP (WM_USER+104)
|
||||
#define WM_ACTION_DJEEP (WM_USER+105)
|
||||
#define WM_ACTION_DRAPEAU (WM_USER+106)
|
||||
#define WM_ACTION_DRAPEAU2 (WM_USER+107)
|
||||
#define WM_ACTION_DRAPEAU3 (WM_USER+108)
|
||||
#define WM_ACTION_EXTRAIT (WM_USER+109)
|
||||
#define WM_ACTION_FABJEEP (WM_USER+110)
|
||||
#define WM_ACTION_FABMINE (WM_USER+111)
|
||||
#define WM_ACTION_MINE (WM_USER+112)
|
||||
#define WM_ACTION_MINE2 (WM_USER+113)
|
||||
#define WM_ACTION_R_BUILD6 (WM_USER+114)
|
||||
#define WM_ACTION_R_MAKE6 (WM_USER+115)
|
||||
#define WM_ACTION_E_RAYON (WM_USER+116)
|
||||
#define WM_ACTION_ELECTRO (WM_USER+117)
|
||||
#define WM_ACTION_ELECTROm (WM_USER+118)
|
||||
#define WM_ACTION_GRILLE (WM_USER+119)
|
||||
#define WM_ACTION_MAISON (WM_USER+120)
|
||||
#define WM_ACTION_FABDISC (WM_USER+121)
|
||||
#define WM_ACTION_A_MORT (WM_USER+122)
|
||||
#define WM_ACTION_REPEAT (WM_USER+123)
|
||||
#define WM_ACTION_TELEPORTE00 (WM_USER+124)
|
||||
#define WM_ACTION_TELEPORTE10 (WM_USER+125)
|
||||
#define WM_ACTION_TELEPORTE01 (WM_USER+126)
|
||||
#define WM_ACTION_TELEPORTE11 (WM_USER+127)
|
||||
#define WM_ACTION_FABARMURE (WM_USER+128)
|
||||
#define WM_ACTION_MARMURE (WM_USER+129)
|
||||
#define WM_ACTION_DARMURE (WM_USER+130)
|
||||
|
||||
#define WM_BUTTON0 (WM_USER+200)
|
||||
#define WM_BUTTON1 (WM_USER+201)
|
||||
#define WM_BUTTON2 (WM_USER+202)
|
||||
@ -1451,4 +1352,74 @@ namespace Object {
|
||||
DoorTreasure_19,
|
||||
DoorTreasure_20
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
#define CLE_RED (1 << 0)
|
||||
#define CLE_GREEN (1 << 1)
|
||||
#define CLE_BLUE (1 << 2)
|
||||
|
||||
struct POINT
|
||||
{
|
||||
int x;
|
||||
int y;
|
||||
|
||||
POINT operator+(const POINT& a) const
|
||||
{
|
||||
return { a.x + x, a.y + y };
|
||||
}
|
||||
|
||||
POINT operator-(const POINT& a) const
|
||||
{
|
||||
return { a.x - x, a.y - y };
|
||||
}
|
||||
|
||||
POINT operator*(const POINT& a) const
|
||||
{
|
||||
return { a.x * x, a.y * y };
|
||||
}
|
||||
|
||||
POINT operator/(const POINT& a) const
|
||||
{
|
||||
return { a.x / x, a.y / y };
|
||||
}
|
||||
|
||||
POINT operator*(const int& a) const
|
||||
{
|
||||
return { x * a, y * a };
|
||||
}
|
||||
|
||||
POINT operator/(const int& a) const
|
||||
{
|
||||
return { x / a, y / a };
|
||||
}
|
||||
|
||||
POINT operator+=(const POINT& a)
|
||||
{
|
||||
return { x += a.x, y += a.y };
|
||||
}
|
||||
|
||||
POINT operator-=(const POINT& a)
|
||||
{
|
||||
return { x -= a.x, y -= a.y };
|
||||
}
|
||||
|
||||
POINT operator*=(const POINT& a)
|
||||
{
|
||||
return { x *= a.x, y *= a.y };
|
||||
}
|
||||
|
||||
POINT operator/=(const POINT& a)
|
||||
{
|
||||
return { x /= a.x, y /= a.y };
|
||||
}
|
||||
|
||||
POINT operator*=(const int& a)
|
||||
{
|
||||
return { x *= x, y *= a };
|
||||
}
|
||||
|
||||
POINT operator/=(const int& a)
|
||||
{
|
||||
return { x /= a, y /= a };
|
||||
}
|
||||
};
|
@ -1997,7 +1997,7 @@ BOOL CEvent::AddPhaseText()
|
||||
}
|
||||
if (m_phase == WM_PHASE_INIT)
|
||||
{
|
||||
DrawTextB(m_pPixmap, { 414, 446 }, "Version 2.2", FONTLITTLE);
|
||||
DrawText(m_pPixmap, { 414, 446 }, "Version 2.2", FONTLITTLE);
|
||||
}
|
||||
if (m_phase == WM_PHASE_GAMER)
|
||||
{
|
||||
@ -2007,7 +2007,7 @@ BOOL CEvent::AddPhaseText()
|
||||
POINT pos { 110, 69 };
|
||||
for (int i = 0; i < MAXGAMER; i++)
|
||||
{
|
||||
DrawTextB(m_pPixmap, pos, m_gamerNameList[i], FONTWHITE);
|
||||
DrawText(m_pPixmap, pos, m_gamerNameList[i], FONTWHITE);
|
||||
pos.y += DIMBUTTONY;
|
||||
}
|
||||
|
||||
|
4
misc.h
@ -1,9 +1,5 @@
|
||||
// misc.h
|
||||
//
|
||||
#pragma once
|
||||
#include <stdio.h>
|
||||
#include <minwindef.h>
|
||||
using namespace std;
|
||||
|
||||
extern void InitHInstance(HINSTANCE hInstance);
|
||||
extern void OutputDebug(const char *pMessage);
|
||||
|
@ -196,7 +196,7 @@ BOOL CNetwork::CreateSession(char * pName)
|
||||
desc.lpszSessionNameA = pName;
|
||||
desc.dwSize = sizeof(desc);
|
||||
desc.dwFlags = DPSESSION_KEEPALIVE | DPSESSION_MIGRATEHOST;
|
||||
desc.dwMaxPlayers = MAXPLAYERS;
|
||||
desc.dwMaxPlayers = MAXNETPLAYER;
|
||||
|
||||
hr = m_pDP->Open(&desc, DPOPEN_CREATE);
|
||||
if (hr != DP_OK)
|
||||
@ -242,7 +242,7 @@ BOOL CNetwork::Receive(LPVOID pDest, DWORD dwDataSize, LPDWORD lpdwPlayer)
|
||||
ZeroMemory(pDest, dwDataSize);
|
||||
|
||||
*lpdwPlayer = -1;
|
||||
for (int i = 0; i < MAXPLAYERS; i++)
|
||||
for (int i = 0; i < MAXNETPLAYER; i++)
|
||||
{
|
||||
if (m_players[i].bIsPresent && from == i)
|
||||
{
|
||||
|
161
resource.h
@ -37,48 +37,124 @@
|
||||
#define TX_ACTION_REPEAT 33
|
||||
#define TX_ACTION_QARMURE 34
|
||||
#define TX_ACTION_FABARMURE 35
|
||||
#define TX_IONAMEEX 100
|
||||
#define TX_IOFREE 101
|
||||
#define TX_OWNMISSION 102
|
||||
#define TX_TESTMISSION 103
|
||||
#define TX_BUTTON_JOUER 104
|
||||
#define TX_BUTTON_APPRENDRE 105
|
||||
#define TX_BUTTON_QUITTER 106
|
||||
#define TX_BUTTON_PREVP 107
|
||||
#define TX_BUTTON_NEXTP 108
|
||||
#define TX_BUTTON_PLAYP 109
|
||||
#define TX_BUTTON_BUILDP 110
|
||||
#define TX_BUTTON_TERM 111
|
||||
#define TX_BUTTON_READP 112
|
||||
#define TX_BUTTON_WRITEP 113
|
||||
#define TX_BUTTON_CANCELP 114
|
||||
#define TX_BUTTON_CONTP 115
|
||||
#define TX_BUTTON_REPEAT 116
|
||||
#define TX_CHOOSEPLAYER 117
|
||||
#define TX_PLAYERSNAME 118
|
||||
#define TX_BUTTON_TERMC 119
|
||||
#define TX_CHOOSESIZE 120
|
||||
#define TX_BUTTON_HVSCROLL 121
|
||||
#define TX_BUTTON_ONLYHSCROLL 122
|
||||
#define TX_BUTTON_ONLYVSCROLL 123
|
||||
#define TX_BUTTON_TESTMISSION 124
|
||||
#define TX_PAUSE 125
|
||||
#define TX_MUSIC 149
|
||||
#define TX_READINFO 167
|
||||
#define TX_REGION 178
|
||||
#define TX_INSERT 182
|
||||
#define TX_GAMEPAUSE 197
|
||||
#define TX_FULL_END1 203
|
||||
#define TX_FULL_END2 204
|
||||
#define TX_FULL_END3 205
|
||||
#define TX_FULL_END4 206
|
||||
#define TX_DEMOREC 213
|
||||
#define TX_DEMOPLAY 214
|
||||
#define TX_MULTI_CREATE 250
|
||||
#define TX_MULTI_GNAME 251
|
||||
#define TX_LOAD_CGAME 269
|
||||
#define TX_SAVE_CGAME 270
|
||||
|
||||
#define TX_IONAMEEX 100
|
||||
#define TX_IOFREE 101
|
||||
#define IDR_MENU 102
|
||||
#define TX_TERMMIN 102
|
||||
#define TX_TERMMAX 103
|
||||
#define TX_BUTTON_JOUER 104
|
||||
#define TX_BUTTON_APPRENDRE 105
|
||||
#define TX_BUTTON_QUITTER 106
|
||||
#define TX_BUTTON_PREVP 107
|
||||
#define TX_BUTTON_NEXTP 108
|
||||
#define TX_BUTTON_PLAYP 109
|
||||
#define TX_BUTTON_BUILDP 110
|
||||
#define TX_BUTTON_TERM 111
|
||||
#define TX_BUTTON_READP 112
|
||||
#define TX_BUTTON_WRITEP 113
|
||||
#define TX_BUTTON_CANCELP 114
|
||||
#define TX_BUTTON_CONTP 115
|
||||
#define TX_BUTTON_REPEAT 116
|
||||
#define TX_BUTTON_BUTTON 117
|
||||
#define TX_BUTTON_CTERM 118
|
||||
#define TX_BUTTON_TERMC 119
|
||||
#define TX_BUTTON_TERMHBLUPI 120
|
||||
#define TX_BUTTON_TERMHPLANCHE 121
|
||||
#define TX_BUTTON_TERMFIRE 122
|
||||
#define TX_BUTTON_TERMDEC 123
|
||||
#define TX_BUTTON_TERMINC 124
|
||||
#define TX_PAUSE 125
|
||||
#define TX_JAUGE1 126
|
||||
#define TX_JAUGE2 127
|
||||
#define TX_BUTTON_SETUP 128
|
||||
#define TX_BUTTON_MUSIC 129
|
||||
#define TX_BUTTON_SETUP1 130
|
||||
#define TX_BUTTON_SETUP2 131
|
||||
#define TX_BUTTON_SETUP3 132
|
||||
#define TX_BUTTON_SETUP4 133
|
||||
#define TX_BUTTON_MUSIC1 134
|
||||
#define TX_BUTTON_MUSIC2 135
|
||||
#define TX_BUTTON_MUSIC3 136
|
||||
#define TX_BUTTON_MUSIC4 137
|
||||
#define TX_BUTTON_MUSIC5 138
|
||||
#define TX_BUTTON_MUSIC6 139
|
||||
#define TX_BUTTON_MUSIC7 140
|
||||
#define TX_BUTTON_MUSIC8 141
|
||||
#define TX_BUTTON_MUSIC9 142
|
||||
#define TX_BUTTON_MUSIC10 143
|
||||
#define TX_BUTTON_REGION 144
|
||||
#define TX_BUTTON_TERMMBLUPI 145
|
||||
#define TX_BUTTON_TERMKILL 146
|
||||
#define TX_TERM 147
|
||||
#define TX_BUTTON 148
|
||||
#define TX_MUSIC 149
|
||||
#define TX_SCHOOL 150
|
||||
#define TX_MISSION 151
|
||||
#define TX_IONAMEMI 152
|
||||
#define TX_BUTTON_TERMHTOMATE 153
|
||||
#define TX_BUTTON_SETUP5 154
|
||||
#define TX_BUTTON_SETUP6 155
|
||||
#define TX_BUTTON_SETUP7 156
|
||||
#define TX_BUTTON_SETUP8 157
|
||||
#define TX_OUI 158
|
||||
#define TX_NON 159
|
||||
#define TX_BUTTON_SETUP9 160
|
||||
#define TX_BUTTON_SETUP10 161
|
||||
#define TX_INFO_SETUP1 162
|
||||
#define TX_INFO_SETUP2 163
|
||||
#define TX_INFO_SETUP3 164
|
||||
#define TX_INFO_SETUP4 165
|
||||
#define TX_INFO_SETUP5 166
|
||||
#define TX_INFO_SETUP6 167
|
||||
#define TX_INFO_SETUP7 168
|
||||
#define TX_INFO_SETUP8 169
|
||||
#define TX_INFO_SETUP9 170
|
||||
#define TX_INFO_SETUP10 171
|
||||
#define TX_INFO_SETUP10b 172
|
||||
#define TX_INFO_NOSCROLL 173
|
||||
#define TX_BUTTON_REGION1 174
|
||||
#define TX_BUTTON_REGION2 175
|
||||
#define TX_BUTTON_REGION3 176
|
||||
#define TX_BUTTON_REGION4 177
|
||||
#define TX_REGION 178
|
||||
#define TX_BUTTON_PLAY_STOP 179
|
||||
#define TX_BUTTON_PLAY_SETUP 180
|
||||
#define TX_BUTTON_PLAY_WRITE 181
|
||||
#define TX_INSERT 182
|
||||
#define TX_BUTTON_PREVH 183
|
||||
#define TX_BUTTON_NEXTH 184
|
||||
#define TX_BUTTON_TERMHMETAL 185
|
||||
#define TX_BUTTON_HELP 186
|
||||
#define TX_HELP 187
|
||||
#define TX_BUTTON_PRIVE 188
|
||||
#define TX_PRIVATE 189
|
||||
#define TX_IONAMEPR 190
|
||||
#define TX_PRIVATE_HACHBLUPI 191
|
||||
#define TX_PRIVATE_HACHPLANCHE 192
|
||||
#define TX_PRIVATE_HACHTOMATE 193
|
||||
#define TX_PRIVATE_HACHMETAL 194
|
||||
#define TX_PRIVATE_STOPFIRE 195
|
||||
#define TX_PRIVATE_HOMEBLUPI 196
|
||||
#define TX_PRIVATE_KILLROBOTS 197
|
||||
#define TX_BUTTON_UNDO 198
|
||||
#define TX_DEMO_END1 199
|
||||
#define TX_DEMO_END2 200
|
||||
#define TX_DEMO_END3 201
|
||||
#define TX_DEMO_END4 202
|
||||
#define TX_FULL_END1 203
|
||||
#define TX_FULL_END2 204
|
||||
#define TX_FULL_END3 205
|
||||
#define TX_FULL_END4 206
|
||||
#define TX_PRIVATE_OBJECTIF 207
|
||||
#define TX_PRIVATE_NBBLUPI 208
|
||||
#define TX_BUTTON_SKILL 209
|
||||
#define TX_SKILL1 210
|
||||
#define TX_SKILL2 211
|
||||
#define TX_BUTTON_DEMO 212
|
||||
#define TX_DEMOREC 213
|
||||
#define TX_DEMOPLAY 214
|
||||
#define TX_BUTTON_TERMHROBOT 215
|
||||
#define TX_PRIVATE_HACHROBOT 216
|
||||
#define TX_REPEAT_CULTIVE 500
|
||||
#define TX_REPEAT_FLEUR 501
|
||||
#define TX_REPEAT_FLEURQ 502
|
||||
@ -193,7 +269,6 @@
|
||||
#define TX_LASTWIN2 3201
|
||||
#define TX_LASTWIN3 3202
|
||||
#define IDM_EXIT 40001
|
||||
#define TX_BUTTON_CREATE 6900
|
||||
|
||||
// Next default values for new objects
|
||||
//
|
||||
|
14
resource2.h
Normal file
@ -0,0 +1,14 @@
|
||||
//{{NO_DEPENDENCIES}}
|
||||
// Microsoft Visual C++ generated include file.
|
||||
// Used by speedyblupi.rc
|
||||
|
||||
// Next default values for new objects
|
||||
//
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NEXT_RESOURCE_VALUE 101
|
||||
#define _APS_NEXT_COMMAND_VALUE 40001
|
||||
#define _APS_NEXT_CONTROL_VALUE 1001
|
||||
#define _APS_NEXT_SYMED_VALUE 101
|
||||
#endif
|
||||
#endif
|
19
resrc1.h
Normal file
@ -0,0 +1,19 @@
|
||||
//{{NO_DEPENDENCIES}}
|
||||
// Microsoft Developer Studio generated include file.
|
||||
// Used by Blupi-e.rc
|
||||
//
|
||||
#define TX_DIRECT_N 512
|
||||
#define TX_DIRECT_S 513
|
||||
#define TX_DIRECT_E 514
|
||||
#define TX_DIRECT_O 515
|
||||
|
||||
// Next default values for new objects
|
||||
//
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NEXT_RESOURCE_VALUE 109
|
||||
#define _APS_NEXT_COMMAND_VALUE 40001
|
||||
#define _APS_NEXT_CONTROL_VALUE 1000
|
||||
#define _APS_NEXT_SYMED_VALUE 101
|
||||
#endif
|
||||
#endif
|
BIN
rstemp.rct
Normal file
BIN
speedy.aps
Normal file
63
speedy.rc
Normal file
@ -0,0 +1,63 @@
|
||||
//Microsoft Developer Studio generated resource script.
|
||||
//
|
||||
#include "resource.h"
|
||||
|
||||
#define APSTUDIO_READONLY_SYMBOLS
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 2 resource.
|
||||
//
|
||||
#include "afxres.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#undef APSTUDIO_READONLY_SYMBOLS
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// English (U.S.) resources
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
|
||||
#ifdef _WIN32
|
||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||
#pragma code_page(1252)
|
||||
#endif //_WIN32
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// TEXTINCLUDE
|
||||
//
|
||||
|
||||
1 TEXTINCLUDE DISCARDABLE
|
||||
BEGIN
|
||||
"resource.h\0"
|
||||
END
|
||||
|
||||
2 TEXTINCLUDE DISCARDABLE
|
||||
BEGIN
|
||||
"#include ""afxres.h""\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
3 TEXTINCLUDE DISCARDABLE
|
||||
BEGIN
|
||||
"\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
#endif // English (U.S.) resources
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
#ifndef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 3 resource.
|
||||
//
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#endif // not APSTUDIO_INVOKED
|
||||
|
BIN
speedyblupi.aps
Normal file
335
speedyblupi.dsp
Normal file
@ -0,0 +1,335 @@
|
||||
# Microsoft Developer Studio Project File - Name="speedyblupi" - Package Owner=<4>
|
||||
# Microsoft Developer Studio Generated Build File, Format Version 5.00
|
||||
# ** DO NOT EDIT **
|
||||
|
||||
# TARGTYPE "Win32 (x86) Application" 0x0101
|
||||
|
||||
CFG=speedyblupi - Win32 Debug
|
||||
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
|
||||
!MESSAGE use the Export Makefile command and run
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "speedyblupi.mak".
|
||||
!MESSAGE
|
||||
!MESSAGE You can specify a configuration when running NMAKE
|
||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "speedyblupi.mak" CFG="speedyblupi - Win32 Debug"
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "speedyblupi - Win32 Release" (based on "Win32 (x86) Application")
|
||||
!MESSAGE "speedyblupi - Win32 Debug" (based on "Win32 (x86) Application")
|
||||
!MESSAGE
|
||||
|
||||
# Begin Project
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=cl.exe
|
||||
MTL=midl.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "speedyblupi - Win32 Release"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 0
|
||||
# PROP BASE Output_Dir "Release"
|
||||
# PROP BASE Intermediate_Dir "Release"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# PROP Output_Dir "Release"
|
||||
# PROP Intermediate_Dir "Release"
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
|
||||
# ADD CPP /nologo /W3 /GX /O2 /I "dxsdk3/sdk/inc" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /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"
|
||||
# ADD RSC /l 0x409 /d "NDEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# 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"
|
||||
|
||||
!ELSEIF "$(CFG)" == "speedyblupi - Win32 Debug"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 1
|
||||
# PROP BASE Output_Dir "Debug"
|
||||
# PROP BASE Intermediate_Dir "Debug"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 1
|
||||
# PROP Output_Dir "Debug"
|
||||
# PROP Intermediate_Dir "Debug"
|
||||
# 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 /GX /Zi /Od /I "dxsdk3/sdk/inc" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /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"
|
||||
# ADD RSC /l 0x409 /d "_DEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# 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
|
||||
|
||||
!ENDIF
|
||||
|
||||
# Begin Target
|
||||
|
||||
# Name "speedyblupi - Win32 Release"
|
||||
# Name "speedyblupi - Win32 Debug"
|
||||
# Begin Group "resource"
|
||||
|
||||
# PROP Default_Filter ""
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\arrow.cur
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\arrowdl.cur
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\arrowdow.cur
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\arrowdr.cur
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\arrowlef.cur
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\arrowrig.cur
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\arrowul.cur
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\arrowup.cur
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\arrowur.cur
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=".\blupi-d.rc"
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=".\blupi-e.rc"
|
||||
# PROP Exclude_From_Build 1
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=".\blupi-f.rc"
|
||||
# PROP Exclude_From_Build 1
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\blupi.ico
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\blupi.rct
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\cursor1.cur
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\empty.cur
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\fill.cur
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\map.cur
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\wait.cur
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Group "include"
|
||||
|
||||
# PROP Default_Filter ""
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\actions.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\button.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\ddutil.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\decor.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\dectables.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\def.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\event.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\jauge.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\menu.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\misc.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\movie.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\network.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\obstacle.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\pixmap.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\resource.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\resrc1.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sound.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\text.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\texttables.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\wave.h
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\blupi.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\button.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\ddutil.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\decblock.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\decblupi.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\decdesign.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\decio.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\decmove.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\decnet.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\decor.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\event.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\jauge.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\menu.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\misc.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\movie.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\network.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\pixmap.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sound.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\text.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\wave.cpp
|
||||
# End Source File
|
||||
# End Target
|
||||
# End Project
|
29
speedyblupi.dsw
Normal file
@ -0,0 +1,29 @@
|
||||
Microsoft Developer Studio Workspace File, Format Version 5.00
|
||||
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
|
||||
|
||||
###############################################################################
|
||||
|
||||
Project: "speedyblupi"=.\speedyblupi.dsp - Package Owner=<4>
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<4>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
Global:
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<3>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
BIN
speedyblupi.ncb
Normal file
BIN
speedyblupi.opt
Normal file
109
speedyblupi.plg
Normal file
@ -0,0 +1,109 @@
|
||||
--------------------Configuration: speedyblupi - Win32 Debug--------------------
|
||||
Begining build with project "C:\Users\Jimmy\Documents\GitHub\sb2-decomp\speedyblupi.dsp", at root.
|
||||
Active configuration is Win32 (x86) Application (based on Win32 (x86) Application)
|
||||
|
||||
Project's tools are:
|
||||
"32-bit C/C++ Compiler for 80x86" with flags "/nologo /MLd /W3 /Gm /GX /Zi /Od /I "dxsdk3/sdk/inc" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /Fp"Debug/speedyblupi.pch" /YX /Fo"Debug/" /Fd"Debug/" /FD /c "
|
||||
"OLE Type Library Maker" with flags "/nologo /D "_DEBUG" /mktyplib203 /o NUL /win32 "
|
||||
"Win32 Resource Compiler" with flags "/l 0x409 /fo"Debug/blupi-d.res" /d "_DEBUG" "
|
||||
"Browser Database Maker" with flags "/nologo /o"Debug/speedyblupi.bsc" "
|
||||
"COFF Linker for 80x86" with flags "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 /incremental:yes /pdb:"Debug/speedyblupi.pdb" /debug /machine:I386 /out:"Debug/speedyblupi.exe" /pdbtype:sept /libpath:"dxsdk3/sdk/lib" "
|
||||
"Custom Build" with flags ""
|
||||
"<Component 0xa>" with flags ""
|
||||
|
||||
Creating command line "rc.exe /l 0x409 /fo"Debug/blupi-d.res" /d "_DEBUG" "C:\Users\Jimmy\Documents\GitHub\sb2-decomp\blupi-d.rc""
|
||||
Creating temp file "C:\Users\Jimmy\AppData\Local\Temp\RSP48F6.tmp" with contents </nologo /MLd /W3 /Gm /GX /Zi /Od /I "dxsdk3/sdk/inc" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /Fp"Debug/speedyblupi.pch" /YX /Fo"Debug/" /Fd"Debug/" /FD /c
|
||||
"C:\Users\Jimmy\Documents\GitHub\sb2-decomp\blupi.cpp"
|
||||
"C:\Users\Jimmy\Documents\GitHub\sb2-decomp\decblock.cpp"
|
||||
"C:\Users\Jimmy\Documents\GitHub\sb2-decomp\decblupi.cpp"
|
||||
"C:\Users\Jimmy\Documents\GitHub\sb2-decomp\decdesign.cpp"
|
||||
"C:\Users\Jimmy\Documents\GitHub\sb2-decomp\decio.cpp"
|
||||
"C:\Users\Jimmy\Documents\GitHub\sb2-decomp\decmove.cpp"
|
||||
"C:\Users\Jimmy\Documents\GitHub\sb2-decomp\decnet.cpp"
|
||||
"C:\Users\Jimmy\Documents\GitHub\sb2-decomp\decor.cpp"
|
||||
"C:\Users\Jimmy\Documents\GitHub\sb2-decomp\event.cpp"
|
||||
"C:\Users\Jimmy\Documents\GitHub\sb2-decomp\jauge.cpp"
|
||||
"C:\Users\Jimmy\Documents\GitHub\sb2-decomp\network.cpp"
|
||||
"C:\Users\Jimmy\Documents\GitHub\sb2-decomp\pixmap.cpp"
|
||||
"C:\Users\Jimmy\Documents\GitHub\sb2-decomp\sound.cpp"
|
||||
"C:\Users\Jimmy\Documents\GitHub\sb2-decomp\ddutil.cpp"
|
||||
>
|
||||
Creating command line "cl.exe @C:\Users\Jimmy\AppData\Local\Temp\RSP48F6.tmp"
|
||||
Creating temp file "C:\Users\Jimmy\AppData\Local\Temp\RSP48F7.tmp" with contents <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 /incremental:yes /pdb:"Debug/speedyblupi.pdb" /debug /machine:I386 /out:"Debug/speedyblupi.exe" /pdbtype:sept /libpath:"dxsdk3/sdk/lib"
|
||||
".\Debug\blupi.obj"
|
||||
".\Debug\blupi-d.res"
|
||||
".\Debug\button.obj"
|
||||
".\Debug\decblock.obj"
|
||||
".\Debug\decblupi.obj"
|
||||
".\Debug\decdesign.obj"
|
||||
".\Debug\decio.obj"
|
||||
".\Debug\decmove.obj"
|
||||
".\Debug\decnet.obj"
|
||||
".\Debug\decor.obj"
|
||||
".\Debug\event.obj"
|
||||
".\Debug\jauge.obj"
|
||||
".\Debug\menu.obj"
|
||||
".\Debug\misc.obj"
|
||||
".\Debug\movie.obj"
|
||||
".\Debug\network.obj"
|
||||
".\Debug\pixmap.obj"
|
||||
".\Debug\sound.obj"
|
||||
".\Debug\text.obj"
|
||||
".\Debug\wave.obj"
|
||||
".\Debug\ddutil.obj">
|
||||
Creating command line "link.exe @C:\Users\Jimmy\AppData\Local\Temp\RSP48F7.tmp"
|
||||
Compiling resources...
|
||||
|
||||
|
||||
C:\Users\Jimmy\Documents\GitHub\sb2-decomp\blupi-d.rc (31): error RC2135 : file not found: blupi.ico
|
||||
|
||||
|
||||
C:\Users\Jimmy\Documents\GitHub\sb2-decomp\blupi-d.rc (81): error RC2135 : file not found: map.cur
|
||||
|
||||
|
||||
C:\Users\Jimmy\Documents\GitHub\sb2-decomp\blupi-d.rc (82): error RC2135 : file not found: arrowup.cur
|
||||
|
||||
|
||||
C:\Users\Jimmy\Documents\GitHub\sb2-decomp\blupi-d.rc (83): error RC2135 : file not found: arrowdow.cur
|
||||
|
||||
|
||||
C:\Users\Jimmy\Documents\GitHub\sb2-decomp\blupi-d.rc (84): error RC2135 : file not found: arrowlef.cur
|
||||
|
||||
|
||||
C:\Users\Jimmy\Documents\GitHub\sb2-decomp\blupi-d.rc (85): error RC2135 : file not found: arrowrig.cur
|
||||
|
||||
|
||||
C:\Users\Jimmy\Documents\GitHub\sb2-decomp\blupi-d.rc (86): error RC2135 : file not found: arrowul.cur
|
||||
|
||||
|
||||
C:\Users\Jimmy\Documents\GitHub\sb2-decomp\blupi-d.rc (87): error RC2135 : file not found: arrowur.cur
|
||||
|
||||
|
||||
C:\Users\Jimmy\Documents\GitHub\sb2-decomp\blupi-d.rc (88): error RC2135 : file not found: arrowdr.cur
|
||||
|
||||
|
||||
C:\Users\Jimmy\Documents\GitHub\sb2-decomp\blupi-d.rc (89): error RC2135 : file not found: arrowdl.cur
|
||||
|
||||
|
||||
C:\Users\Jimmy\Documents\GitHub\sb2-decomp\blupi-d.rc (90): error RC2135 : file not found: wait.cur
|
||||
|
||||
|
||||
C:\Users\Jimmy\Documents\GitHub\sb2-decomp\blupi-d.rc (91): error RC2135 : file not found: empty.cur
|
||||
|
||||
|
||||
C:\Users\Jimmy\Documents\GitHub\sb2-decomp\blupi-d.rc (92): error RC2135 : file not found: fill.cur
|
||||
|
||||
|
||||
C:\Users\Jimmy\Documents\GitHub\sb2-decomp\blupi-d.rc (93): error RC2135 : file not found: arrow.cur
|
||||
C:\Users\Jimmy\Documents\GitHub\sb2-decomp\blupi-d.rc (181): error RC2104 : undefined keyword or key name: TX_TERMMIN
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Error executing rc.exe.
|
||||
|
||||
|
||||
|
||||
speedyblupi.exe - 15 error(s), 0 warning(s)
|
BIN
speedyblupi.rc
Normal file
@ -21,8 +21,8 @@
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{E892DD4F-D6B7-4A19-8EC3-AB2625A8A523}</ProjectGuid>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<RootNamespace>planetblupi</RootNamespace>
|
||||
<WindowsTargetPlatformVersion>10.0.22621.0</WindowsTargetPlatformVersion>
|
||||
<RootNamespace>speedyblupi</RootNamespace>
|
||||
<WindowsTargetPlatformVersion>10.0.19041.0</WindowsTargetPlatformVersion>
|
||||
<ProjectName>speedyblupi</ProjectName>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
@ -90,13 +90,16 @@
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<MultiProcessorCompilation>false</MultiProcessorCompilation>
|
||||
<MinimalRebuild>false</MinimalRebuild>
|
||||
<AdditionalIncludeDirectories>dxsdk3\sdk\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<UndefinePreprocessorDefinitions>PlaySound;DrawText</UndefinePreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalDependencies>winmm.lib;ddraw.lib;dsound.lib;dplay.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>dxsdk3\sdk\lib</AdditionalLibraryDirectories>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
@ -107,13 +110,16 @@
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<MultiProcessorCompilation>false</MultiProcessorCompilation>
|
||||
<MinimalRebuild>false</MinimalRebuild>
|
||||
<AdditionalIncludeDirectories>dxsdk3\sdk\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<UndefinePreprocessorDefinitions>PlaySound;DrawText</UndefinePreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalDependencies>winmm.lib;ddraw.lib;dsound.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>dxsdk3\sdk\lib</AdditionalLibraryDirectories>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
@ -126,7 +132,9 @@
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<MultiProcessorCompilation>false</MultiProcessorCompilation>
|
||||
<AdditionalIncludeDirectories>dxsdk3\sdk\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<UndefinePreprocessorDefinitions>PlaySound;DrawText</UndefinePreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
@ -134,6 +142,7 @@
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<AdditionalDependencies>winmm.lib;ddraw.lib;dsound.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>dxsdk3\sdk\lib</AdditionalLibraryDirectories>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
@ -146,7 +155,9 @@
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<MultiProcessorCompilation>false</MultiProcessorCompilation>
|
||||
<AdditionalIncludeDirectories>dxsdk3\sdk\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<UndefinePreprocessorDefinitions>PlaySound;DrawText</UndefinePreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
@ -154,13 +165,18 @@
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<AdditionalDependencies>winmm.lib;ddraw.lib;dsound.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>dxsdk3\sdk\lib</AdditionalLibraryDirectories>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="blupi.cpp" />
|
||||
<ClCompile Include="button.cpp" />
|
||||
<ClCompile Include="ddutil.cpp" />
|
||||
<ClCompile Include="decblock.cpp" />
|
||||
<ClCompile Include="decblupi.cpp" />
|
||||
<ClCompile Include="decio.cpp" />
|
||||
<ClCompile Include="decmove.cpp" />
|
||||
<ClCompile Include="decnet.cpp" />
|
||||
<ClCompile Include="decor.cpp" />
|
||||
<ClCompile Include="event.cpp" />
|
||||
<ClCompile Include="jauge.cpp" />
|
||||
@ -177,7 +193,7 @@
|
||||
<ClInclude Include="actions.h" />
|
||||
<ClInclude Include="button.h" />
|
||||
<ClInclude Include="ddutil.h" />
|
||||
<ClInclude Include="decmove.h" />
|
||||
<ClInclude Include="decdesign.cpp" />
|
||||
<ClInclude Include="decor.h" />
|
||||
<ClInclude Include="dectables.h" />
|
||||
<ClInclude Include="def.h" />
|
||||
@ -205,6 +221,7 @@
|
||||
<None Include="arrowul.cur" />
|
||||
<None Include="arrowup.cur" />
|
||||
<None Include="arrowur.cur" />
|
||||
<None Include="blupi.rct" />
|
||||
<None Include="cursor1.cur" />
|
||||
<None Include="data\config.def" />
|
||||
<None Include="empty.cur" />
|
||||
|
@ -59,6 +59,18 @@
|
||||
<ClCompile Include="network.cpp">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="decio.cpp">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="decmove.cpp">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="decnet.cpp">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="decblock.cpp">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="actions.h">
|
||||
@ -70,9 +82,6 @@
|
||||
<ClInclude Include="ddutil.h">
|
||||
<Filter>Sources</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="decmove.h">
|
||||
<Filter>Sources</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="decor.h">
|
||||
<Filter>Sources</Filter>
|
||||
</ClInclude>
|
||||
@ -121,6 +130,9 @@
|
||||
<ClInclude Include="network.h">
|
||||
<Filter>Sources</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="decdesign.cpp">
|
||||
<Filter>Sources</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="arrow.cur">
|
||||
@ -168,6 +180,9 @@
|
||||
<None Include="data\config.def">
|
||||
<Filter>Data</Filter>
|
||||
</None>
|
||||
<None Include="blupi.rct">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="blupi-d.rc">
|
||||
|
4
speedyblupi.vcxproj.user
Normal file
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup />
|
||||
</Project>
|
22
text.cpp
@ -11,7 +11,7 @@
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
static CharOffset table_offsets[] =
|
||||
static CharProperties table_char[] =
|
||||
{
|
||||
{ 1, 0, 0, -1, 0, 0 },
|
||||
{ 1, 0, 0, -1, 0, 0 },
|
||||
@ -271,7 +271,7 @@ static CharOffset table_offsets[] =
|
||||
{ 1, 0, 0, -1, 0, 0 }
|
||||
};
|
||||
|
||||
// Retourne l'offset pour un caract<EFBFBD>re donn<6E>.
|
||||
// Retourne l'offset pour un caractère donné.
|
||||
|
||||
int GetOffset(char c)
|
||||
{
|
||||
@ -347,24 +347,24 @@ void DrawCharSingle(CPixmap *pPixmap, POINT pos, char *pText, int font)
|
||||
|
||||
void DrawChar(CPixmap *pPixmap, POINT *pos, char c, int font)
|
||||
{
|
||||
POINT pos2 { table_offsets[c].charOffsetX + pos->x, table_offsets[c].charOffsetY + pos->y };
|
||||
DrawCharSingle(pPixmap, pos2, &table_offsets[c].charIcon, font);
|
||||
if (table_offsets[c].accentIcon != -1)
|
||||
POINT pos2 { table_char[c].charOffsetX + pos->x, table_char[c].charOffsetY + pos->y };
|
||||
DrawCharSingle(pPixmap, pos2, &table_char[c].charIcon, font);
|
||||
if (table_char[c].accentIcon != -1)
|
||||
{
|
||||
pos2 = { table_offsets[c].accentOffsetX + pos->x, table_offsets[c].accentOffsetY + pos->y };
|
||||
DrawCharSingle(pPixmap, pos2, &table_offsets[c].accentIcon, font);
|
||||
pos2 = { table_char[c].accentOffsetX + pos->x, table_char[c].accentOffsetY + pos->y };
|
||||
DrawCharSingle(pPixmap, pos2, &table_char[c].accentIcon, font);
|
||||
}
|
||||
pos->x += GetCharWidthB(c, font);
|
||||
}
|
||||
|
||||
void DrawTextLeft(CPixmap *pPixmap, POINT pos, char *pText, int font)
|
||||
{
|
||||
DrawTextB(pPixmap, pos, pText, font);
|
||||
DrawText(pPixmap, pos, pText, font);
|
||||
}
|
||||
|
||||
// Affiche un texte.
|
||||
|
||||
void DrawTextB(CPixmap *pPixmap, POINT pos, char *pText, int font)
|
||||
void DrawText(CPixmap *pPixmap, POINT pos, char *pText, int font)
|
||||
{
|
||||
while (*pText != 0)
|
||||
{
|
||||
@ -433,7 +433,7 @@ void DrawTextRect(CPixmap *pPixmap, POINT pos, char *pText,
|
||||
|
||||
if (pente == 0)
|
||||
{
|
||||
DrawTextB(pPixmap, pos, pDest, font);
|
||||
DrawText(pPixmap, pos, pDest, font);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -478,7 +478,7 @@ void DrawTextCenter(CPixmap *pPixmap, POINT pos, char *pText, int font)
|
||||
pDest = text;
|
||||
start.x = pos.x - GetTextWidth(pDest) / 2;
|
||||
start.y = pos.y;
|
||||
DrawTextB(pPixmap, start, pDest, font);
|
||||
DrawText(pPixmap, start, pDest, font);
|
||||
|
||||
if (pDest[0] == 0) // ligne vide ?
|
||||
{
|
||||
|
4
text.h
@ -16,7 +16,7 @@ typedef struct
|
||||
char accentOffsetX;
|
||||
char accentOffsetY;
|
||||
}
|
||||
CharOffset;
|
||||
CharProperties;
|
||||
|
||||
extern
|
||||
void DrawCharSingle(CPixmap *pPixmap, POINT pos, char *pText, int font);
|
||||
@ -28,7 +28,7 @@ extern
|
||||
void DrawTextLeft(CPixmap *pPixmap, POINT pos, char *pText, int font);
|
||||
|
||||
extern
|
||||
void DrawTextB(CPixmap *pPixmap, POINT pos, char *pText, int font = 0);
|
||||
void DrawText(CPixmap *pPixmap, POINT pos, char *pText, int font = 0);
|
||||
|
||||
extern
|
||||
void DrawTextPente(CPixmap *pPixmap, POINT pos, char *pText,
|
||||
|