1111#include  " peds_AnimalFixes.hh" 
1212#include  " peds_MainFixes.hh" 
1313
14+ class  PedRandomizer_PedHashes 
15+ {
16+     std::string m_ForcedPedStr;
17+     std::vector<uint32_t > m_ForcedPedHashes;
18+ 
19+ public: 
20+     /* ******************************************************/ 
21+     PedRandomizer_PedHashes  () = default ;
22+ 
23+     /* ******************************************************/ 
24+     PedRandomizer_PedHashes  (const  std::string &forcedPedStr)
25+         : m_ForcedPedStr (forcedPedStr)
26+     {
27+         UpdateHashes  (forcedPedStr);
28+     }
29+ 
30+     /* ******************************************************/ 
31+     void 
32+     operator = (const  std::string &forcedPedStr)
33+     {
34+         if  (m_ForcedPedStr != forcedPedStr)
35+         {
36+             m_ForcedPedStr = forcedPedStr;
37+             UpdateHashes  (forcedPedStr);
38+         }
39+     }
40+ 
41+     /* ******************************************************/ 
42+     void 
43+     UpdateHashes  (std::string forcedPedStr)
44+     {
45+         m_ForcedPedHashes.clear  ();
46+ 
47+         if  (forcedPedStr.size  ())
48+             {
49+                 while  (true )
50+                     {
51+                         auto  splitPos = forcedPedStr.find  (' ,'  );
52+                         auto  forcedPed = std::string  (forcedPedStr.substr  (0 , splitPos));
53+ 
54+                         //  trimming
55+                         forcedPed.erase  (0 , forcedPed.find_first_not_of  ('  '  ));
56+                         if  (forcedPed.find_last_not_of  ('  '  ) != forcedPed.npos )
57+                             forcedPed.erase  (forcedPed.find_last_not_of  ('  '  ) + 1 );
58+                         
59+                         if  (forcedPed.size  ())
60+                             m_ForcedPedHashes
61+                                 .push_back  (rage::atStringHash  (forcedPed));
62+                         
63+                         if  (splitPos == forcedPedStr.npos )
64+                             {
65+                                 break ;
66+                             }
67+                         
68+                         forcedPedStr.erase  (0 , splitPos + 1 );
69+                     }
70+             }
71+     }
72+ 
73+     /* ******************************************************/ 
74+     const  std::vector<uint32_t > &
75+     Get  () const 
76+     {
77+         return  m_ForcedPedHashes;
78+     }
79+ };
80+ 
1481class  PedRandomizer_Components 
1582{
1683public: 
@@ -21,7 +88,7 @@ public:
2188        {
2289            std::string ForcedPed                = " "  ;
2390            std::string ForcedClipset            = " "  ;
24-             std::vector< uint32_t >  ForcedPedHashes;
91+             PedRandomizer_PedHashes  ForcedPedHashes;
2592            bool         EnableNSFWModels         = false ;
2693            bool         RandomizePlayer          = true ;
2794            bool         RandomizePeds            = true ;
0 commit comments