mirror of
https://github.com/mitch030504/Wiicompiled_VR_Frame.git
synced 2026-10-06 13:00:26 +02:00
Clicking the right thumbstick flips first person exactly as the F10 checkbox does, and saves it the same way. It works on the VR controllers in either presentation (with a short tick on the right controller) and on any other gamepad while VR is running. It never reached the game: SDL's stick click only lands in Aurora's extended buttons. A click counts on release, and only if the left thumbstick stayed up and the headset settings panel stayed closed throughout, so the two-thumbstick panel chord in gamepad mode never toggles the camera. A gamepad whose right stick click is bound to a GameCube control on its port, as a button or in an input expression, keeps it for the game. The XR side only posts a request; the toggle itself runs on the game thread with the checkbox. [vr] first_person_toggle_click (default true) and a checkbox under the camera toggle turn the click off. mkw_vr_camera_toggle_tests covers the click rule. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
26 lines
1.1 KiB
C++
26 lines
1.1 KiB
C++
#pragma once
|
|
|
|
#include <aurora/aurora.h>
|
|
#include <aurora/event.h>
|
|
|
|
namespace settings_overlay {
|
|
// Apply persistent controller settings once Aurora has discovered host devices.
|
|
void InitializeRuntimeSettings() noexcept;
|
|
// Draw the F10 settings bar before each Aurora present.
|
|
void HandleEvents(const AuroraEvent* events) noexcept;
|
|
void Draw() noexcept;
|
|
bool StartupScreenVisible() noexcept;
|
|
void NotifyStrapInputAccepted() noexcept;
|
|
void AdvancePresentedFrame() noexcept;
|
|
// Re-sends the VR virtual screen's placement to Aurora. Its metres are
|
|
// converted with the world scale currently in effect, so switching the
|
|
// first-person camera on or off has to repeat it.
|
|
void RefreshVrHudVirtualScreen() noexcept;
|
|
// Flips the first-person camera exactly as its F10 checkbox does, on the game
|
|
// thread at the next frame. Callable from any thread (the VR controllers'
|
|
// right-thumbstick click).
|
|
void RequestFirstPersonToggle() noexcept;
|
|
// Put host controllers back to a neutral state before the process ends.
|
|
void ReleaseControllers() noexcept;
|
|
} // namespace settings_overlay
|