Merge branch 'lcs' of https://github.com/GTAmodding/re3 into lcs

This commit is contained in:
Fire-Head
2021-01-13 20:18:26 +03:00
40 changed files with 709 additions and 544 deletions

View File

@ -1729,7 +1729,7 @@ void CReplay::SaveReplayToHD(void)
CFileMgr::SetDir("");
}
void PlayReplayFromHD(void)
void CReplay::PlayReplayFromHD(void)
{
CFileMgr::SetDirMyDocuments();
int fr = CFileMgr::OpenFile("replay.rep", "rb");
@ -1748,17 +1748,17 @@ void PlayReplayFromHD(void)
return;
}
int slot;
for (slot = 0; CFileMgr::Read(fr, (char*)CReplay::Buffers[slot], sizeof(CReplay::Buffers[slot])); slot++)
CReplay::BufferStatus[slot] = CReplay::REPLAYBUFFER_PLAYBACK;
CReplay::BufferStatus[slot - 1] = CReplay::REPLAYBUFFER_RECORD;
while (slot < CReplay::NUM_REPLAYBUFFERS)
CReplay::BufferStatus[slot++] = CReplay::REPLAYBUFFER_UNUSED;
for (slot = 0; CFileMgr::Read(fr, (char*)Buffers[slot], sizeof(Buffers[slot])); slot++)
BufferStatus[slot] = REPLAYBUFFER_PLAYBACK;
BufferStatus[slot - 1] = REPLAYBUFFER_RECORD;
while (slot < NUM_REPLAYBUFFERS)
BufferStatus[slot++] = REPLAYBUFFER_UNUSED;
CFileMgr::CloseFile(fr);
CFileMgr::SetDir("");
CReplay::TriggerPlayback(CReplay::REPLAYCAMMODE_ASSTORED, 0.0f, 0.0f, 0.0f, false);
CReplay::bPlayingBackFromFile = true;
CReplay::bAllowLookAroundCam = true;
CReplay::StreamAllNecessaryCarsAndPeds();
TriggerPlayback(REPLAYCAMMODE_ASSTORED, 0.0f, 0.0f, 0.0f, false);
bPlayingBackFromFile = true;
bAllowLookAroundCam = true;
StreamAllNecessaryCarsAndPeds();
}
void CReplay::StreamAllNecessaryCarsAndPeds(void)

View File

@ -64,8 +64,6 @@ struct CStoredDetailedAnimationState
uint8 aGroupId2[NUM_PARTIAL_ANIMS_IN_REPLAY];
};
void PlayReplayFromHD(void);
#ifdef GTA_REPLAY
#define REPLAY_STUB
#else
@ -410,12 +408,10 @@ private:
static void EmptyAllPools(void);
static void MarkEverythingAsNew(void);
static void SaveReplayToHD(void);
static void PlayReplayFromHD(void); // out of class in III PC and later because of SecuROM
static void FindFirstFocusCoordinate(CVector *coord);
static void ProcessLookAroundCam(void);
static size_t FindSizeOfPacket(uint8);
static void GoToNextBlock(void);
/* Absolute nonsense, but how could this function end up being outside of class? */
friend void PlayReplayFromHD(void);
#endif
};

View File

@ -785,20 +785,20 @@ int8 CRunningScript::ProcessCommands800To899(int32 command)
}else{
pPed->m_pMyVehicle->RemovePassenger(pPed);
}
if (pPed->m_vehEnterType) {
if (pPed->m_vehDoor) {
if (pPed->GetPedState() == PED_EXIT_CAR || pPed->GetPedState() == PED_DRAG_FROM_CAR) {
uint8 flags = 0;
if (pPed->m_pMyVehicle->IsBike()) {
if (pPed->m_vehEnterType == CAR_DOOR_LF ||
pPed->m_vehEnterType == CAR_DOOR_RF ||
pPed->m_vehEnterType == CAR_WINDSCREEN)
if (pPed->m_vehDoor == CAR_DOOR_LF ||
pPed->m_vehDoor == CAR_DOOR_RF ||
pPed->m_vehDoor == CAR_WINDSCREEN)
flags = CAR_DOOR_FLAG_LF | CAR_DOOR_FLAG_RF;
else if (pPed->m_vehEnterType == CAR_DOOR_LR ||
pPed->m_vehEnterType == CAR_DOOR_RR)
else if (pPed->m_vehDoor == CAR_DOOR_LR ||
pPed->m_vehDoor == CAR_DOOR_RR)
flags = CAR_DOOR_FLAG_LR | CAR_DOOR_FLAG_RR;
}
else {
switch (pPed->m_vehEnterType) {
switch (pPed->m_vehDoor) {
case CAR_DOOR_LF:
flags = pPed->m_pMyVehicle->m_nNumMaxPassengers != 0 ? CAR_DOOR_FLAG_LF : CAR_DOOR_FLAG_LF | CAR_DOOR_FLAG_LR;
break;
@ -814,7 +814,7 @@ int8 CRunningScript::ProcessCommands800To899(int32 command)
}
}
pPed->m_pMyVehicle->m_nGettingOutFlags &= ~flags;
pPed->m_pMyVehicle->ProcessOpenDoor(pPed->m_vehEnterType, NUM_STD_ANIMS, 0.0f);
pPed->m_pMyVehicle->ProcessOpenDoor(pPed->m_vehDoor, NUM_STD_ANIMS, 0.0f);
}
}
}