@@ -75,18 +75,46 @@ MEMBER_HOOK( 0x006be7b0, T2Locale, T2Locale_GetString, const TWCHAR*, TINT a_iNu
7575 return CallOriginal ( a_iNumString );
7676}
7777
78+ // TBOOL g_bSpoofRandom = TFALSE;
79+ //
80+ // MEMBER_HOOK( 0x006b5850, Toshi::TRandom, TRandom_Isaac, void )
81+ // {
82+ // if ( g_bSpoofRandom )
83+ // {
84+ // m_uiRndCnt = RANDSIZ - 1;
85+ //
86+ // for (TINT i = 0; i < RANDSIZ; i++)
87+ // {
88+ // m_pRandrsl[ i ] = 0;
89+ // }
90+ // }
91+ // else CallOriginal();
92+ // }
93+ //
94+ // MEMBER_HOOK( 0x00429b00, AGameStateController, AGameStateController_InsertGameState, void, AGameState* a_pGameState )
95+ // {
96+ // CallOriginal( a_pGameState );
97+ //
98+ // if ( g_bIsFunCategory )
99+ // {
100+ // auto pARandom = *(TCHAR**)( 0x0077de10 );
101+ // auto pTRandom = (TRandom_Isaac::_hook_obj*)( pARandom + 4 );
102+ //
103+ // g_bSpoofRandom = a_pGameState->GetClass()->IsA( (TClass*)0x007833b8 ); // Spoof if ACookingMiniGame
104+ //
105+ // pTRandom->_hook_func(); // Call TRandom_Isaac hook
106+ // }
107+ // }
108+
109+ HOOK ( 0x004010d0 , UNK_GetRandomFloat, TFLOAT, Toshi::TRandom*, TFLOAT a_flUpper )
110+ {
111+ // Always drop items instead of coins when kicking destructible objects
112+ return 0 .0f ;
113+ }
114+
78115void NewGameStarted ()
79116{
80117 AUIManager::GetSingleton ()->GetTimer ().Start ();
81-
82- if ( g_bIsFunCategory )
83- {
84- auto pARandom = *(TCHAR**)( 0x0077de10 );
85- auto pTRandom = (TRandom*)(pARandom + 4 );
86-
87- // Reset random seed
88- pTRandom->SetSeed ( 999999 );
89- }
90118}
91119
92120void AGUI2_MainPostRenderCallback ()
@@ -273,6 +301,11 @@ class ABYSpeedrunHelper : public AModInstance
273301 ABikeRaceMicroGame::ms_aVariants[ i ].iNumLaps = 1 ;
274302 }
275303
304+ // Derandomizer
305+ // InstallHook<TRandom_Isaac>();
306+ // InstallHook<AGameStateController_InsertGameState>();
307+ InstallHook<UNK_GetRandomFloat>();
308+
276309 // Don't waste stamina in main game
277310 InstallHook<APlayerSimProfile_Update>();
278311
0 commit comments