internal.h 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #pragma once
  2. #include "../../patterns/image_scan.h"
  3. namespace sunrise::client::hooks::bootflow {
  4. using patterns::resolve_relative;
  5. using patterns::scan_main_image_unique;
  6. using patterns::signature;
  7. using patterns::signature_length;
  8. /**
  9. * Finds the boot-flow step accessor behind `in_world`.
  10. * Nothing is detoured: the accessor is called, so a miss reads as out of world.
  11. * @return True when the target was found.
  12. */
  13. [[nodiscard]] bool install_world_step() noexcept;
  14. /** Clears the boot-flow step accessor. */
  15. void uninstall_world_step() noexcept;
  16. /**
  17. * Attaches the read-only lifetime gate probe, a diagnostic on step 38's joinability gate.
  18. * @return True when the reader and its helpers were found and the detour attached.
  19. */
  20. [[nodiscard]] bool install_lifetime_gate_probe() noexcept;
  21. /** Detaches the lifetime gate probe. */
  22. void uninstall_lifetime_gate_probe() noexcept;
  23. /**
  24. * Attaches the character-select hold, so the sign-in boot step stays on the character-select
  25. * screen instead of falling through to orbit on its own.
  26. * @return True when the target is found and the detour attaches.
  27. */
  28. [[nodiscard]] bool install_character_select_hold() noexcept;
  29. /** Detaches the character-select hold. */
  30. void uninstall_character_select_hold() noexcept;
  31. } // namespace sunrise::client::hooks::bootflow