Add automatic toggle (#707)
Some checks failed
Build coop / build-ubuntu (push) Has been cancelled
Build coop / build-windows (push) Has been cancelled
Build coop / build-macos-arm (push) Has been cancelled
Build coop / build-macos-intel (push) Has been cancelled

This commit is contained in:
Sunk 2025-03-16 23:04:09 -04:00 committed by GitHub
parent f9b6fba0b5
commit 14f98e4b30
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
16 changed files with 51 additions and 6 deletions

View file

@ -75,6 +75,9 @@ FREE_CAMERA_USE_DPAD = "Chování DPad"
FREE_CAMERA_COLLISION = "Kolize kamery"
ROMHACK_CAMERA_TITLE = "ROMHACK\KAMERA"
ROMHACK_CAMERA = "Romhack kamera"
ROMHACK_CAMERA_AUTOMATIC = "Automaticky"
ROMHACK_CAMERA_ON = "Zapnuto"
ROMHACK_CAMERA_Off = "Vypnuto"
ROMHACK_CAMERA_IN_BOWSER = "Použít v soubojích s Bowserem"
ROMHACK_CAMERA_COLLISION = "Kolize kamery"
ROMHACK_CAMERA_L_CENTERING = "L Centrování"

View file

@ -75,6 +75,9 @@ FREE_CAMERA_USE_DPAD = "DPad-gedrag"
FREE_CAMERA_COLLISION = "Camera-botsingen"
ROMHACK_CAMERA_TITLE = "ROMHACK\nCAMERA"
ROMHACK_CAMERA = "Romhack Camera"
ROMHACK_CAMERA_AUTOMATIC = "Automatisch"
ROMHACK_CAMERA_ON = "Aan"
ROMHACK_CAMERA_Off = "Uit"
ROMHACK_CAMERA_IN_BOWSER = "Gebruik in Bowser-gevechten"
ROMHACK_CAMERA_COLLISION = "Camera botsingen"
ROMHACK_CAMERA_L_CENTERING = "L-centrering"

View file

@ -75,6 +75,9 @@ FREE_CAMERA_USE_DPAD = "DPad Behavior"
FREE_CAMERA_COLLISION = "Camera Collisions"
ROMHACK_CAMERA_TITLE = "ROMHACK\nCAMERA"
ROMHACK_CAMERA = "Romhack Camera"
ROMHACK_CAMERA_AUTOMATIC = "Automatic"
ROMHACK_CAMERA_ON = "On"
ROMHACK_CAMERA_Off = "Off"
ROMHACK_CAMERA_IN_BOWSER = "Use in Bowser fights"
ROMHACK_CAMERA_COLLISION = "Camera Collisions"
ROMHACK_CAMERA_L_CENTERING = "L Centering"

View file

@ -75,6 +75,9 @@ FREE_CAMERA_USE_DPAD = "Comportement du DPAD"
FREE_CAMERA_COLLISION = "Collisions de la caméra"
ROMHACK_CAMERA_TITLE = "CAMÉRA\nROMHACK"
ROMHACK_CAMERA = "Caméra Romhack"
ROMHACK_CAMERA_AUTOMATIC = "Automatique"
ROMHACK_CAMERA_ON = "Activé"
ROMHACK_CAMERA_Off = "Désactivé"
ROMHACK_CAMERA_IN_BOWSER = "Utiliser dans les combats contre Bowser"
ROMHACK_CAMERA_COLLISION = "Collisions de caméra"
ROMHACK_CAMERA_L_CENTERING = "Centrage en L"

View file

@ -75,6 +75,9 @@ FREE_CAMERA_USE_DPAD = "DPad-Verhalten"
FREE_CAMERA_COLLISION = "Kamerakollisionen"
ROMHACK_CAMERA_TITLE = "ROMHACK\nKAMERA"
ROMHACK_CAMERA = "Romhack-Kamera"
ROMHACK_CAMERA_AUTOMATIC = "Automatisch"
ROMHACK_CAMERA_ON = "Ein"
ROMHACK_CAMERA_Off = "Aus"
ROMHACK_CAMERA_IN_BOWSER = "In Bowser-Kämpfen verwenden"
ROMHACK_CAMERA_COLLISION = "Kamerakollisionen"
ROMHACK_CAMERA_L_CENTERING = "L-Zentrierung"

View file

@ -75,6 +75,9 @@ FREE_CAMERA_USE_DPAD = "Comportamento del DPad"
FREE_CAMERA_COLLISION = "Collisioni della telecamera"
ROMHACK_CAMERA_TITLE = "TELECAMERA\nROMHACK"
ROMHACK_CAMERA = "Telecamera Romhack"
ROMHACK_CAMERA_AUTOMATIC = "Automatico"
ROMHACK_CAMERA_ON = "Acceso"
ROMHACK_CAMERA_Off = "Spento"
ROMHACK_CAMERA_IN_BOWSER = "Da usare nei combattimenti con Bowser"
ROMHACK_CAMERA_COLLISION = "Collisioni della telecamera"
ROMHACK_CAMERA_L_CENTERING = "Centratura a L"

View file

@ -75,6 +75,9 @@ FREE_CAMERA_USE_DPAD = "DPad の動作"
FREE_CAMERA_COLLISION = "カメラの衝突"
ROMHACK_CAMERA_TITLE = "ROMHACK\nCAMERA"
ROMHACK_CAMERA = "ロムハックカメラ"
ROMHACK_CAMERA_AUTOMATIC = "自動"
ROMHACK_CAMERA_ON = "オン"
ROMHACK_CAMERA_OFF = "オフ"
ROMHACK_CAMERA_IN_BOWSER = "クッパ戦で使用"
ROMHACK_CAMERA_COLLISION = "カメラの衝突"
ROMHACK_CAMERA_L_CENTERING = "Lセンタリング"

View file

@ -75,6 +75,9 @@ FREE_CAMERA_USE_DPAD = "Zachowanie DPada"
FREE_CAMERA_COLLISION = "Kolizje kamery"
ROMHACK_CAMERA_TITLE = "KAMERA\nROMHACK"
ROMHACK_CAMERA = "Kamera Romhack"
ROMHACK_CAMERA_AUTOMATIC = "Automatyczny"
ROMHACK_CAMERA_ON = "Włączony"
ROMHACK_CAMERA_Off = "Wył"
ROMHACK_CAMERA_IN_BOWSER = "Używaj w walkach z Bowserem"
ROMHACK_CAMERA_COLLISION = "Kolizje kamery"
ROMHACK_CAMERA_L_CENTERING = "Wyśrodkowanie L"

View file

@ -75,6 +75,9 @@ FREE_CAMERA_USE_DPAD = "Usar D-Pad"
FREE_CAMERA_COLLISION = "Colisões da câmera"
ROMHACK_CAMERA_TITLE = "CÂMERA\nROMHACK"
ROMHACK_CAMERA = "Câmera Romhack"
ROMHACK_CAMERA_AUTOMATIC = "Automático"
ROMHACK_CAMERA_ON = "Ligada"
ROMHACK_CAMERA_Off = "Desligada"
ROMHACK_CAMERA_IN_BOWSER = "Usar em lutas com o Bowser"
ROMHACK_CAMERA_COLLISION = "Colisões da câmera"
ROMHACK_CAMERA_L_CENTERING = "Centralizar com L"

View file

@ -75,6 +75,9 @@ FREE_CAMERA_USE_DPAD = "Поведение DPad"
FREE_CAMERA_COLLISION = "Коллизии камеры"
ROMHACK_CAMERA_TITLE = "ROMHACK\nCAMERA"
ROMHACK_CAMERA = "Камера Romhack"
ROMHACK_CAMERA_AUTOMATIC = "Автоматически"
ROMHACK_CAMERA_ON = "Вкл"
ROMHACK_CAMERA_Off = "Выключено"
ROMHACK_CAMERA_IN_BOWSER = "Использовать в боях с Боузером"
ROMHACK_CAMERA_COLLISION = "Коллизии камеры"
ROMHACK_CAMERA_L_CENTERING = "Центрирование L"

View file

@ -75,6 +75,9 @@ FREE_CAMERA_USE_DPAD = "Comportamiento del DPad"
FREE_CAMERA_COLLISION = "Colisiones de la cámara"
ROMHACK_CAMERA_TITLE = "CÁMARA\nROMHACK"
ROMHACK_CAMERA = "Cámara Romhack"
ROMHACK_CAMERA_AUTOMATIC = "Automática"
ROMHACK_CAMERA_ON = "Encendida"
ROMHACK_CAMERA_Off = "Apagada"
ROMHACK_CAMERA_IN_BOWSER = "Usar en peleas con Bowser"
ROMHACK_CAMERA_COLLISION = "Colisiones de cámara"
ROMHACK_CAMERA_L_CENTERING = "Centrado L"

View file

@ -12199,8 +12199,13 @@ s32 snap_to_45_degrees(s16 angle) {
void romhack_camera_init_settings(void) {
if (gRomhackCameraSettings.modsOnly) { return; }
enum RomhackCameraOverride override = configEnableRomhackCamera ?
(configRomhackCameraBowserFights ? RCO_ALL_INCLUDING_VANILLA : RCO_ALL_VANILLA_EXCEPT_BOWSER) : RCO_DISABLE;
enum RomhackCameraOverride override = RCO_DISABLE;
if (configEnableRomhackCamera == RCE_AUTOMATIC) {
override = configRomhackCameraBowserFights ? RCO_ALL : RCO_ALL_EXCEPT_BOWSER;
} else if (configEnableRomhackCamera == RCE_ON) {
override = configRomhackCameraBowserFights ? RCO_ALL_INCLUDING_VANILLA : RCO_ALL_VANILLA_EXCEPT_BOWSER;
}
gRomhackCameraSettings.enable = override;
gCameraUseCourseSpecificSettings = (override == RCO_DISABLE && dynos_level_is_vanilla_level(gCurrLevelNum));
gRomhackCameraSettings.collisions = configRomhackCameraHasCollision;

View file

@ -19,6 +19,12 @@ enum RomhackCameraOverride {
RCO_DISABLE
};
enum RomhackCameraEnable {
RCE_AUTOMATIC,
RCE_ON,
RCE_OFF
};
struct RomhackCameraSettings {
enum RomhackCameraOverride enable;
u8 centering;

View file

@ -138,7 +138,7 @@ unsigned int configCameraAggr = 0;
unsigned int configCameraPan = 0;
unsigned int configCameraDegrade = 50; // 0 - 100%
// romhack camera settings
bool configEnableRomhackCamera = false;
unsigned int configEnableRomhackCamera = 0; // 0 for automatic, 1 for force on, 2 for force off
bool configRomhackCameraBowserFights = false;
bool configRomhackCameraHasCollision = false;
bool configRomhackCameraHasCentering = false;
@ -283,7 +283,7 @@ static const struct ConfigOption options[] = {
{.name = "bettercam_pan_level", .type = CONFIG_TYPE_UINT, .uintValue = &configCameraPan},
{.name = "bettercam_degrade", .type = CONFIG_TYPE_UINT, .uintValue = &configCameraDegrade},
// romhack camera settings
{.name = "romhackcam_enable", .type = CONFIG_TYPE_BOOL, .boolValue = &configEnableRomhackCamera},
{.name = "romhackcam_enable", .type = CONFIG_TYPE_UINT, .uintValue = &configEnableRomhackCamera},
{.name = "romhackcam_bowser", .type = CONFIG_TYPE_BOOL, .boolValue = &configRomhackCameraBowserFights},
{.name = "romhackcam_collision", .type = CONFIG_TYPE_BOOL, .boolValue = &configRomhackCameraHasCollision},
{.name = "romhackcam_centering", .type = CONFIG_TYPE_BOOL, .boolValue = &configRomhackCameraHasCentering},

View file

@ -90,7 +90,7 @@ extern unsigned int configCameraAggr;
extern unsigned int configCameraPan;
extern unsigned int configCameraDegrade;
// romhack camera settings
extern bool configEnableRomhackCamera;
extern unsigned int configEnableRomhackCamera;
extern bool configRomhackCameraBowserFights;
extern bool configRomhackCameraHasCollision;
extern bool configRomhackCameraHasCentering;

View file

@ -41,7 +41,8 @@ void djui_panel_romhack_camera_create(struct DjuiBase* caller) {
struct DjuiThreePanel* panel = djui_panel_menu_create(DLANG(CAMERA, ROMHACK_CAMERA_TITLE), false);
struct DjuiBase* body = djui_three_panel_get_body(panel);
{
djui_checkbox_create(body, DLANG(CAMERA, ROMHACK_CAMERA), &configEnableRomhackCamera, djui_panel_romhack_camera_value_changed);
char* choices[3] = { DLANG(CAMERA, ROMHACK_CAMERA_AUTOMATIC), DLANG(CAMERA, ROMHACK_CAMERA_ON), DLANG(CAMERA, ROMHACK_CAMERA_OFF) };
djui_selectionbox_create(body, DLANG(CAMERA, ROMHACK_CAMERA), choices, 3, &configEnableRomhackCamera, djui_panel_romhack_camera_value_changed);
djui_checkbox_create(body, DLANG(CAMERA, ROMHACK_CAMERA_IN_BOWSER), &configRomhackCameraBowserFights, djui_panel_romhack_camera_value_changed);
djui_checkbox_create(body, DLANG(CAMERA, ROMHACK_CAMERA_COLLISION), &configRomhackCameraHasCollision, djui_panel_romhack_camera_value_changed);
djui_checkbox_create(body, DLANG(CAMERA, ROMHACK_CAMERA_L_CENTERING), &configRomhackCameraHasCentering, djui_panel_romhack_camera_value_changed);