diff --git a/src/core/Pad.cpp b/src/core/Pad.cpp index 983fc588..b1e91f89 100644 --- a/src/core/Pad.cpp +++ b/src/core/Pad.cpp @@ -221,7 +221,11 @@ void WeaponCheat2() CStreaming::RequestModel(MI_ROCKETLAUNCHER, STREAMFLAGS_DONT_REMOVE); CStreaming::LoadAllRequestedModels(false); +#ifdef FIX_BUGS + FindPlayerPed()->GiveWeapon(WEAPONTYPE_KATANA, 1); +#else FindPlayerPed()->GiveWeapon(WEAPONTYPE_KATANA, 0); +#endif FindPlayerPed()->GiveWeapon(WEAPONTYPE_DETONATOR_GRENADE, 10); FindPlayerPed()->GiveWeapon(WEAPONTYPE_PYTHON, 40); FindPlayerPed()->GiveWeapon(WEAPONTYPE_STUBBY_SHOTGUN, 25); @@ -261,7 +265,11 @@ void WeaponCheat3() CStreaming::RequestModel(MI_MINIGUN2, STREAMFLAGS_DONT_REMOVE); CStreaming::LoadAllRequestedModels(false); +#ifdef FIX_BUGS + FindPlayerPed()->GiveWeapon(WEAPONTYPE_CHAINSAW, 1); +#else FindPlayerPed()->GiveWeapon(WEAPONTYPE_CHAINSAW, 0); +#endif FindPlayerPed()->GiveWeapon(WEAPONTYPE_GRENADE, 10); FindPlayerPed()->GiveWeapon(WEAPONTYPE_PYTHON, 40); FindPlayerPed()->GiveWeapon(WEAPONTYPE_SPAS12_SHOTGUN, 30); diff --git a/src/core/Pools.cpp b/src/core/Pools.cpp index b25fa4e1..cbc57902 100644 --- a/src/core/Pools.cpp +++ b/src/core/Pools.cpp @@ -602,7 +602,7 @@ INITSAVEBUF CStreaming::LoadAllRequestedModels(false); } - pPed->GiveWeapon(pBufferPlayer->GetWeapon(i).m_eWeaponType, pBufferPlayer->GetWeapon(i).m_nAmmoTotal); + pPed->GiveWeapon(pBufferPlayer->GetWeapon(i).m_eWeaponType, pBufferPlayer->GetWeapon(i).m_nAmmoTotal, false); } } diff --git a/src/core/Stats.cpp b/src/core/Stats.cpp index 373c295d..e078e6d0 100644 --- a/src/core/Stats.cpp +++ b/src/core/Stats.cpp @@ -192,13 +192,18 @@ void CStats::Init() KillsSinceLastCheckpoint = 0; TotalLegitimateKills = 0; + + for (int i = 0; i < ARRAY_SIZE(LastMissionPassedName); i++) + LastMissionPassedName[i] = 0; + IndustrialPassed = 0; CommercialPassed = 0; SuburbanPassed = 0; PamphletMissionPassed = 0; NoMoreHurricanes = 0; ShowChaseStatOnScreen = 0; - abSonyCDs[0] = 0; + for (int i = 0; i < ARRAY_SIZE(abSonyCDs); i++) + abSonyCDs[i] = 0; PopulateFavoriteRadioStationList(); NumPropertyOwned = 0; diff --git a/src/peds/Ped.cpp b/src/peds/Ped.cpp index 1b6c0a3b..8c4f7fec 100644 --- a/src/peds/Ped.cpp +++ b/src/peds/Ped.cpp @@ -20077,7 +20077,7 @@ CPed::Load(uint8*& buf) CStreaming::LoadAllRequestedModels(false); } - GiveWeapon(bufWeapon.m_eWeaponType, bufWeapon.m_nAmmoTotal); + GiveWeapon(bufWeapon.m_eWeaponType, bufWeapon.m_nAmmoTotal, false); } } SkipSaveBuf(buf, 252); diff --git a/src/peds/Ped.h b/src/peds/Ped.h index 6fc9ab67..00ce48f4 100644 --- a/src/peds/Ped.h +++ b/src/peds/Ped.h @@ -703,7 +703,7 @@ public: void PlayFootSteps(void); void QuitEnteringCar(void); void BuildPedLists(void); - int32 GiveWeapon(eWeaponType weaponType, uint32 ammo, bool unused = false); + int32 GiveWeapon(eWeaponType weaponType, uint32 ammo, bool unused = true); void CalculateNewOrientation(void); float WorkOutHeadingForMovingFirstPerson(float); void CalculateNewVelocity(void); diff --git a/src/save/GenericGameStorage.cpp b/src/save/GenericGameStorage.cpp index 966f353a..82f66308 100644 --- a/src/save/GenericGameStorage.cpp +++ b/src/save/GenericGameStorage.cpp @@ -148,24 +148,22 @@ GenericSave(int file) // Save simple vars lastMissionPassed = TheText.Get(CStats::LastMissionPassedName[0] ? CStats::LastMissionPassedName : "ITBEG"); - if (lastMissionPassed[0] != '\0') { - AsciiToUnicode("...'", suffix); - suffix[3] = L'\0'; + AsciiToUnicode("...'", suffix); + suffix[3] = L'\0'; #ifdef FIX_BUGS - // fix buffer overflow - int len = UnicodeStrlen(lastMissionPassed); - if (len > ARRAY_SIZE(saveName)-1) - len = ARRAY_SIZE(saveName)-1; - memcpy(saveName, lastMissionPassed, sizeof(wchar) * len); + // fix buffer overflow + int len = UnicodeStrlen(lastMissionPassed); + if (len > ARRAY_SIZE(saveName)-1) + len = ARRAY_SIZE(saveName)-1; + memcpy(saveName, lastMissionPassed, sizeof(wchar) * len); #else - TextCopy(saveName, lastMissionPassed); - int len = UnicodeStrlen(saveName); + TextCopy(saveName, lastMissionPassed); + int len = UnicodeStrlen(saveName); #endif - saveName[len] = '\0'; - if (len > ARRAY_SIZE(saveName)-2) - TextCopy(&saveName[ARRAY_SIZE(saveName)-ARRAY_SIZE(suffix)], suffix); - saveName[ARRAY_SIZE(saveName)-1] = '\0'; - } + saveName[len] = '\0'; + if (len > ARRAY_SIZE(saveName)-2) + TextCopy(&saveName[ARRAY_SIZE(saveName)-ARRAY_SIZE(suffix)], suffix); + saveName[ARRAY_SIZE(saveName)-1] = '\0'; WriteDataToBufferPointer(buf, saveName); GetLocalTime(&saveTime); WriteDataToBufferPointer(buf, saveTime);