@@ -219,22 +219,26 @@ __declspec(noinline) bool _cdecl OnCStreaming_RequestModel_Mid(int flags, SImgGT
219219 if (ms_ReplacementClothesFileDataMap.empty () && ms_ClothesFileDataMap.empty ())
220220 return false ;
221221
222- // Initialze lookup map if needed
223- static std::map<std::uint32_t , int > blockOffsetToFileIdMap ;
224- static std::map<std:: uint32_t , std::string> blockOffsetToFileNameMap;
225- if (blockOffsetToFileIdMap.empty ())
222+ static std::map<std:: uint32_t , int > blockOffsetToFileIdMap;
223+ std::map<std::uint32_t , std::string > blockOffsetToFileNameMap ;
224+
225+ if (blockOffsetToFileIdMap.empty () || ms_ClothesFileDataMap. size () > 0 )
226226 {
227227 // Check is player.img dir has been loaded by GTA
228228 SPlayerImgItemArray* pItemArray = (SPlayerImgItemArray*)0x00BC12C0 ;
229- std::uint32_t maxArraySize = 542 + ms_ClothesFileDataMap.size ();
229+ std::uint32_t defaultArraySize = 542 ;
230+ std::uint32_t maxArraySize = defaultArraySize + ms_ClothesFileDataMap.size ();
230231
231232 if (!pItemArray->pItems || pItemArray->uiArraySize != maxArraySize)
232233 return false ;
233234
234235 for (std::uint32_t i = 0 ; i < pItemArray->uiArraySize ; i++)
235236 {
236237 SPlayerImgItem* pImgItem = &pItemArray->pItems [i];
237- MapSet (blockOffsetToFileIdMap, pImgItem->uiBlockOffset , i);
238+
239+ if (i < defaultArraySize)
240+ MapSet (blockOffsetToFileIdMap, pImgItem->uiBlockOffset , i);
241+
238242 MapSet (blockOffsetToFileNameMap, pImgItem->uiBlockOffset , pImgItem->szName );
239243 }
240244 }
0 commit comments