#include namespace { struct BSTaskletManager { char pad0[0x30]; void* threadHandles[6]; }; static void (*Construct_TaskletManager)(BSTaskletManager*); static void Hook_Construct_TaskletManager(BSTaskletManager* apSelf) { Construct_TaskletManager(apSelf); for (int i = 0; i < 6; i++) { if (!apSelf->threadHandles[i]) continue; auto name = fmt::format("TaskletThread{}", i); Base::SetThreadName(apSelf->threadHandles[i], name.c_str()); } } } // namespace static TiltedPhoques::Initializer s_BSThreadInit( []() { const VersionDbPtr getTaskletManagerInstance(69554); // tasklet naming TiltedPhoques::SwapCall(getTaskletManagerInstance.Get() + 0x63, Construct_TaskletManager, &Hook_Construct_TaskletManager); });