diff options
Diffstat (limited to 'src/control')
-rw-r--r-- | src/control/Pickups.cpp | 7 | ||||
-rw-r--r-- | src/control/Replay.cpp | 10 | ||||
-rw-r--r-- | src/control/Replay.h | 3 | ||||
-rw-r--r-- | src/control/Script.cpp | 26 |
4 files changed, 28 insertions, 18 deletions
diff --git a/src/control/Pickups.cpp b/src/control/Pickups.cpp index 2a5863f1..3d76fe5b 100644 --- a/src/control/Pickups.cpp +++ b/src/control/Pickups.cpp @@ -508,7 +508,7 @@ CPickup::Update(CPlayerPed *player, CVehicle *vehicle, int playerId) result = true; Remove(); DMAudio.PlayFrontEndSound(SOUND_PICKUP_HIDDEN_PACKAGE, 0); - return true; + break; case PICKUP_MONEY: CWorld::Players[playerId].m_nMoney += m_nQuantity; sprintf(gString, "$%d", m_nQuantity); @@ -518,12 +518,13 @@ CPickup::Update(CPlayerPed *player, CVehicle *vehicle, int playerId) result = true; Remove(); DMAudio.PlayFrontEndSound(SOUND_PICKUP_MONEY, 0); - return true; + player->Say(SOUND_PED_MUGGING); + break; case PICKUP_ASSET_REVENUE: CWorld::Players[CWorld::PlayerInFocus].m_nMoney += m_fRevenue; m_fRevenue = 0.0f; DMAudio.PlayFrontEndSound(SOUND_PICKUP_MONEY, 0); - return false; + break; case PICKUP_PROPERTY_LOCKED: if (!m_bWasControlMessageShown) { m_bWasControlMessageShown = true; diff --git a/src/control/Replay.cpp b/src/control/Replay.cpp index 4fdd3439..e28bbf35 100644 --- a/src/control/Replay.cpp +++ b/src/control/Replay.cpp @@ -53,7 +53,7 @@ #include "Fluff.h" #include "WaterCreatures.h" -//--MIAMI: file done except TODO +//--MIAMI: file done uint8 CReplay::Mode; CAddressInReplayBuffer CReplay::Record; @@ -158,7 +158,7 @@ static void(*CBArray[])(CAnimBlendAssociation*, void*) = &CPed::FinishedAttackCB, &CPed::FinishFightMoveCB, &PhonePutDownCB, &PhonePickUpCB, &CPed::PedAnimDoorCloseRollingCB, &CPed::FinishJumpCB, &CPed::PedLandCB, &CPed::RestoreHeadingRateCB, &CPed::PedSetQuickDraggedOutCarPositionCB, &CPed::PedSetDraggedOutCarPositionCB, - &CPed::PedSetPreviousStateCB, &CPed::FinishedReloadCB, /*&CPed::PedSetGetInCarPositionCB, TODO(MIAMI)*/ + &CPed::PedSetPreviousStateCB, &CPed::FinishedReloadCB, &CPed::PedSetGetInCarPositionCB, &CPed::PedAnimShuffleCB, &CPed::DeleteSunbatheIdleAnimCB, &StartTalkingOnMobileCB, &FinishTalkingOnMobileCB }; @@ -396,7 +396,8 @@ void CReplay::RecordThisFrame(void) misc->cam_shake_start = TheCamera.m_uiCamShakeStart; misc->cam_shake_strength = TheCamera.m_fCamShakeForce; misc->cur_area = CGame::currArea; - //misc->special_fx_flags; // TODO(MIAMI)!!! + misc->video_cam = CSpecialFX::bVideoCam; + misc->lift_cam = CSpecialFX::bLiftCam; Record.m_nOffset += sizeof(*misc); tEndOfFramePacket* eof = (tEndOfFramePacket*)&Record.m_pBase[Record.m_nOffset]; eof->type = REPLAYPACKET_ENDOFFRAME; @@ -1139,7 +1140,8 @@ bool CReplay::PlayBackThisFrameInterpolation(CAddressInReplayBuffer *buffer, flo tMiscPacket* pm = (tMiscPacket*)&ptr[offset]; TheCamera.m_uiCamShakeStart = pm->cam_shake_start; TheCamera.m_fCamShakeForce = pm->cam_shake_strength; - // TODO(MIAMI): SpecialFX + CSpecialFX::bVideoCam = pm->video_cam; + CSpecialFX::bLiftCam = pm->lift_cam; CGame::currArea = pm->cur_area; buffer->m_nOffset += sizeof(tMiscPacket); break; diff --git a/src/control/Replay.h b/src/control/Replay.h index 42d6ad1a..319d8bd4 100644 --- a/src/control/Replay.h +++ b/src/control/Replay.h @@ -263,7 +263,8 @@ class CReplay uint32 cam_shake_start; float cam_shake_strength; uint8 cur_area; - uint8 special_fx_flags; + uint8 video_cam : 1; + uint8 lift_cam : 1; }; VALIDATE_SIZE(tMiscPacket, 16); diff --git a/src/control/Script.cpp b/src/control/Script.cpp index f85fc076..6aa314f2 100644 --- a/src/control/Script.cpp +++ b/src/control/Script.cpp @@ -88,6 +88,8 @@ #include <stdarg.h> #endif +//--MIAMI: file done + #define PICKUP_PLACEMENT_OFFSET 0.5f #define PED_FIND_Z_OFFSET 5.0f #define COP_PED_FIND_Z_OFFSET 10.0f @@ -9113,12 +9115,16 @@ int8 CRunningScript::ProcessCommands800To899(int32 command) switch (pPed->m_vehEnterType) { case CAR_DOOR_LF: flags = pPed->m_pMyVehicle->m_nNumMaxPassengers != 0 ? CAR_DOOR_FLAG_LF : CAR_DOOR_FLAG_LF | CAR_DOOR_FLAG_LR; + break; case CAR_DOOR_LR: flags = pPed->m_pMyVehicle->m_nNumMaxPassengers != 0 ? CAR_DOOR_FLAG_RF : CAR_DOOR_FLAG_LF | CAR_DOOR_FLAG_LR; + break; case CAR_DOOR_RF: flags = CAR_DOOR_FLAG_RF; + break; case CAR_DOOR_RR: flags = CAR_DOOR_FLAG_RR; + break; } } pPed->m_pMyVehicle->m_nGettingOutFlags &= ~flags; @@ -12119,14 +12125,14 @@ int8 CRunningScript::ProcessCommands1100To1199(int32 command) { int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL); CollectParameters(&m_nIp, 1); - UpdateCompareFlag(*ptr = ScriptParams[0]); + UpdateCompareFlag(*ptr == ScriptParams[0]); return 0; } case COMMAND_IS_INT_LVAR_EQUAL_TO_CONSTANT: { int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_LOCAL); CollectParameters(&m_nIp, 1); - UpdateCompareFlag(*ptr = ScriptParams[0]); + UpdateCompareFlag(*ptr == ScriptParams[0]); return 0; } case COMMAND_GET_DEAD_CHAR_PICKUP_COORDS: @@ -12274,7 +12280,7 @@ int8 CRunningScript::ProcessCommands1200To1299(int32 command) case COMMAND_IS_CONSTANT_GREATER_OR_EQUAL_TO_INT_VAR: { CollectParameters(&m_nIp, 1); - int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_LOCAL); + int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL); UpdateCompareFlag(ScriptParams[0] >= *ptr); return 0; } @@ -15751,7 +15757,7 @@ INITSAVEBUF uint32 script_data_size = SCRIPT_DATA_SIZE; WriteSaveBuf(buf, script_data_size); WriteSaveBuf(buf, OnAMissionFlag); - WriteSaveBuf(buf, NextFreeCollectiveIndex); + WriteSaveBuf(buf, LastMissionPassedTime); for (uint32 i = 0; i < MAX_NUM_BUILDING_SWAPS; i++) { CBuilding* pBuilding = BuildingSwapArray[i].m_pBuilding; uint32 type, handle; @@ -15801,12 +15807,12 @@ INITSAVEBUF WriteSaveBuf(buf, handle); } WriteSaveBuf(buf, bUsingAMultiScriptFile); - WriteSaveBuf(buf, (uint8)0); + WriteSaveBuf(buf, bPlayerHasMetDebbieHarry); WriteSaveBuf(buf, (uint16)0); WriteSaveBuf(buf, MainScriptSize); WriteSaveBuf(buf, LargestMissionScriptSize); WriteSaveBuf(buf, NumberOfMissionScripts); - WriteSaveBuf(buf, (uint16)0); + WriteSaveBuf(buf, NumberOfExclusiveMissionScripts); WriteSaveBuf(buf, runningScripts); for (CRunningScript* pScript = pActiveScripts; pScript; pScript = pScript->GetNext()) pScript->Save(buf); @@ -15823,7 +15829,7 @@ INITSAVEBUF ScriptSpace[i] = ReadSaveBuf<uint8>(buf); script_assert(ReadSaveBuf<uint32>(buf) == SCRIPT_DATA_SIZE); OnAMissionFlag = ReadSaveBuf<uint32>(buf); - NextFreeCollectiveIndex = ReadSaveBuf<uint32>(buf); + LastMissionPassedTime = ReadSaveBuf<uint32>(buf); for (uint32 i = 0; i < MAX_NUM_BUILDING_SWAPS; i++) { uint32 type = ReadSaveBuf<uint32>(buf); uint32 handle = ReadSaveBuf<uint32>(buf); @@ -15871,12 +15877,12 @@ INITSAVEBUF InvisibilitySettingArray[i]->bIsVisible = false; } script_assert(ReadSaveBuf<bool>(buf) == bUsingAMultiScriptFile); - ReadSaveBuf<uint8>(buf); + bPlayerHasMetDebbieHarry = ReadSaveBuf<uint8>(buf); ReadSaveBuf<uint16>(buf); script_assert(ReadSaveBuf<uint32>(buf) == MainScriptSize); script_assert(ReadSaveBuf<uint32>(buf) == LargestMissionScriptSize); script_assert(ReadSaveBuf<uint16>(buf) == NumberOfMissionScripts); - ReadSaveBuf<uint16>(buf); + script_assert(ReadSaveBuf<uint16>(buf) == NumberOfExclusiveMissionScripts); uint32 runningScripts = ReadSaveBuf<uint32>(buf); for (uint32 i = 0; i < runningScripts; i++) StartNewScript(0)->Load(buf); @@ -16103,7 +16109,7 @@ void CTheScripts::CleanUpThisObject(CObject* pObject) if (pObject->ObjectCreatedBy != MISSION_OBJECT) return; pObject->ObjectCreatedBy = TEMP_OBJECT; - pObject->m_nEndOfLifeTime = CTimer::GetTimeInMilliseconds() + 20000; + pObject->m_nEndOfLifeTime = CTimer::GetTimeInMilliseconds() + 20000000; pObject->m_nRefModelIndex = -1; pObject->bUseVehicleColours = false; ++CObject::nNoTempObjects; |