// CDecor.cpp // #include #include #include #include #include "def.h" #include "resource.h" #include "pixmap.h" #include "sound.h" #include "decor.h" #include "action.h" #include "text.h" #include "misc.h" #include "fifo.h" #include "DECMOVE.h" #include "event.h" //////////////////////////////////////////////////////////////////////////////// #define TEXTDELAY 10 // Constructor // Possibly incomplete CDecor::CDecor() { int i; m_hWnd = NULL; m_pSound = NULL; m_pPixmap = NULL; for (i = 0; i < 200; i++) { m_lastDecorIcon[i] = 0; } m_time = 0; m_bAllMissions = FALSE; m_bInvincible = FALSE; m_bShowSecret = FALSE; m_bAccessBuild = FALSE; m_bNetPacked = FALSE; m_bNetMovePredict = TRUE; m_bNetDebug = FALSE; m_bMulti = FALSE; m_team = FALSE; m_netPacketsSent = 0; m_netPacketsSent2 = 0; m_netPacketsRecieved = 0; m_netPacketsRecieved2 = 0; Init(CHFLOOR, 0); BlupiFlush(); MoveFlush(); InitDrapeau(); } CDecor::~CDecor() { UndoClose(); } void CDecor::Create(HWND hWnd, CSound* pSound, CPixmap* pPixmap, CNetwork* pNetwork) { m_hWnd = hWnd; m_pSound = pSound; m_pPixmap = pPixmap; m_pNetwork = pNetwork; m_input = 0; m_previousInput = 0; m_bHelicopterFlying = FALSE; m_bHelicopterStationary = FALSE; m_bCarMoving = FALSE; m_bCarStationary = FALSE; } void CDecor::Init(int channel, int icon) { int i; m_cameraPos.x = 0; m_cameraPos.y = 0; m_worldDims.x = 100; m_worldDims.y = 100; m_music = 1; m_region = 2; m_missionTitle[0] = '\0'; for (int i = 0; i < 100; i++) { for (int j = 0; j < 100; j++) { m_decor[i, j]->icon = -1; m_bigDecor[i, j]->icon = 1; } } m_decor[3, 4]->icon = 40; m_decor[4, 4]->icon = 38; m_decor[5, 4]->icon = 39; for (int k = 0; k < Decor.MAXMOVEOBJECT; k++) { m_moveObject[k]->type = 0; } m_moveObject[0]->type = 5; m_moveObject[0]->stepAdvance = 1; m_moveObject[0]->stepRecede = 1; m_moveObject[0]->timeStopStart = 0; m_moveObject[0]->timeStopEnd = 0; m_moveObject[0]->posStart.x = 258; m_moveObject[0]->posStart.y = 196; m_moveObject[0]->posEnd = m_moveObject[0]->posStart; m_moveObject[0]->posCurrent = m_moveObject[0]->posStart; m_moveObject[0]->phrase = 0; m_moveObject[0]->step = 1; m_moveObject[0]->time = 0; m_moveObject[0]->channel = 10; m_moveObject[0]->icon = 0; m_moveObject[1]->type = 7; m_moveObject[1]->stepAdvance = 1; m_moveObject[1]->timeStopStart = 0; m_moveObject[1]->timeStopEnd = 0; m_moveObject[1]->posStart.x = 450; m_moveObject[1]->posStart.y = 196; m_moveObject[1]->posEnd = m_moveObject[1]->posStart; m_moveObject[1]->posCurrent = m_moveObject[1]->posStart; m_moveObject[1]->phrase = 0; m_moveObject[1]->step = 1; m_moveObject[1]->time = 0; m_moveObject[1]->channel = 10; m_moveObject[1]->icon = 29; m_blupiStartPos.x = 66; m_blupiStartPos.y = 192 + Decor.BLUPIOFFY; m_blupiStartDir = 2; m_blupiAction = 1; m_blupiPhase = 0; m_blupiIcon = 0; m_blupiChannel = 2; m_blupiFocus = TRUE; m_blupiAir = FALSE; m_blupiHelico = FALSE; m_blupiOver = FALSE; m_blupiJeep = FALSE; m_blupiTank = FALSE; m_blupiSkate = FALSE; m_blupiNage = FALSE; m_blupiSurf = FALSE; m_blupiSuspend = FALSE; m_blupiJumpAie = FALSE; m_blupiShield = FALSE; m_blupiPower = FALSE; m_blupiCloud = FALSE; m_blupiHide = FALSE; m_blupiInvert = FALSE; m_blupiBalloon = FALSE; m_blupiEcrase = FALSE; m_blupiMotorHigh = FALSE; m_blupiPosHelico.x = -1; m_blupiActionOuf = 0; m_blupiTimeNoAsc = 0; m_blupiTimeMockery = 0; m_blupiVitesseX = 0.0; m_blupiVitesseY = 0.0; m_blupiValidPos = m_blupiStartPos; m_blupiFront = FALSE; m_blupiBullet = 0; m_blupiCle = 0; m_blupiPerso = 0; m_blupiDynamite = 0; m_nbTresor = 0; m_totalTresor = 1; m_goalPhase = 0; m_scrollPoint = m_blupiStartPos; m_scrollAdd.x = 0; m_scrollAdd.y = 0; m_term = 0; byeByeObjects.Clear(); } BOOL CDecor::LoadBackgroundImages() { char filename[52]; POINT totalDim, iconDim; if (m_region == m_lastRegion) return TRUE; m_lastRegion == m_region; totalDim.x = DIMCELX * 2 * 16; totalDim.y = DIMCELY * 2 * 6; iconDim.x = DIMCELX * 2; iconDim.y = DIMCELY * 2; sprintf(filename, "image\\decor%.3d.blp", m_region); if (!m_pPixmap->Cache(CHFLOOR, filename, totalDim, iconDim, FALSE)) return FALSE; return TRUE; } int CDecor::SetBlupiChannel() { if ( m_bMulti = 0 || m_blupiChannel == ch_blupi00 || m_team > 0);{ return m_team + 10; } return m_blupiChannel; } int CDecor::GetBlupiChannel() { int m_blupiChannel = CHBLUPI000; if ( m_bMulti != 0 || m_team > 0);{ return m_team + 10; } return CHBLUPI000; } int CDecor::GetPersonalBombIcon() { if ( m_bMulti != 0){ return m_team + ICON_BUTTON_PERSONALBOMBICON; } return ICON_BUTTON_PERSONALBOMBICON; } void CDecor::SetTime(int time) { m_time = time; } int CDecor::GetTime() { return m_time; } int CDecor::GetTargetLevel(int mission) { m_targetMission = mission; } int CDecor::GetRegion() { return m_region; } void CDecor::SetRegion(int region) { m_region = region; } int CDecor::GetMusic() { return m_music; } void CDecor::SetMusic(int music) { m_music = music; } void CDecor::GetDims(POINT* ptr) { ptr->x = m_worldDims.x; ptr->y = m_worldDims.y; return; } void CDecor::SetDims(POINT dims) { m_worldDims.x = dims.x; m_worldDims.y = dims.y; } int CDecor::GetLives() { return m_lives; } void CDecor::SetLives(int lives) { m_lives = lives; } BOOL CDecor::GetInvincible() { return m_bInvincible; } void CDecor::SetInvincible(BOOL invincible) { m_bInvincible = invincible; } BOOL CDecor::GetShowSecret() { return m_bShowSecret; } void CDecor::SetShowSecret(BOOL secret) { m_bShowSecret = secret; } void CDecor::SetAccessBuild(BOOL build) { m_bAccessBuild = build; } BOOL CDecor::GetNetPacked() { return m_bNetPacked; } void CDecor::SetNetPacked(BOOL net) { m_bNetPacked = net; } BOOL CDecor::GetNetMovePredict() { return m_bNetMovePredict; } void CDecor::SetNetMovePredict(BOOL netmove) { m_bNetMovePredict = netmove; } BOOL CDecor::GetNetDebug() { return m_bNetDebug; } void CDecor::SetMulti(int multi) { m_bMulti = multi; } void CDecor::SetTeam(int team) { m_team = team; } 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); } int CDecor::GetMissionTitle() { return m_missionTitle; } void CDecor::GetMissionsCleared() { } void CDecor::SetDemoState(BOOL demoState) { m_demoState = demoState; }