mirror of
https://github.com/coop-deluxe/sm64coopdx.git
synced 2025-10-30 08:01:01 +00:00
More settings to the Camera settings menu (#555)
Sherbie's suggestions from #497 and #538, as well as suggestions from others on discord. Add 2 new camera settings to free camera, being camera collision and dpad usage. Add an entire new camera submenu for romhack camera, which are now no longer exclusive to romhacks.
This commit is contained in:
parent
3792f0aebb
commit
edacdcc7e4
37 changed files with 1997 additions and 460 deletions
|
|
@ -116,7 +116,7 @@ override_disallowed_functions = {
|
|||
"src/game/obj_behaviors_2.c": [ "wiggler_jumped_on_attack_handler", "huge_goomba_weakly_attacked" ],
|
||||
"src/game/level_info.h": [ "_name_table" ],
|
||||
"src/pc/lua/utils/smlua_obj_utils.h": [ "spawn_object_remember_field" ],
|
||||
"src/game/camera.h": [ "update_camera", "init_camera", "stub_camera", "^reset_camera", "move_point_along_spline" ],
|
||||
"src/game/camera.h": [ "update_camera", "init_camera", "stub_camera", "^reset_camera", "move_point_along_spline", "romhack_camera_init_settings", "romhack_camera_reset_settings" ],
|
||||
"src/game/behavior_actions.h": [ "bhv_dust_smoke_loop", "bhv_init_room" ],
|
||||
"src/pc/lua/utils/smlua_audio_utils.h": [ "smlua_audio_utils_override", "audio_custom_shutdown", "smlua_audio_custom_deinit", "audio_sample_destroy_pending_copies", "audio_custom_update_volume" ],
|
||||
"src/pc/djui/djui_hud_utils.h": [ "djui_hud_render_texture", "djui_hud_render_texture_raw", "djui_hud_render_texture_tile", "djui_hud_render_texture_tile_raw" ],
|
||||
|
|
|
|||
|
|
@ -2530,6 +2530,15 @@ RCO_ALL_EXCEPT_BOWSER = 1
|
|||
--- @type RomhackCameraOverride
|
||||
RCO_NONE = 2
|
||||
|
||||
--- @type RomhackCameraOverride
|
||||
RCO_ALL_INCLUDING_VANILLA = 3
|
||||
|
||||
--- @type RomhackCameraOverride
|
||||
RCO_ALL_VANILLA_EXCEPT_BOWSER = 4
|
||||
|
||||
--- @type RomhackCameraOverride
|
||||
RCO_DISABLE = 5
|
||||
|
||||
--- @class CharacterSound
|
||||
|
||||
--- @type CharacterSound
|
||||
|
|
|
|||
|
|
@ -3392,12 +3392,6 @@ function resolve_geometry_collisions(pos, lastGood)
|
|||
-- ...
|
||||
end
|
||||
|
||||
--- @param enable integer
|
||||
--- Toggles collision settings for the ROM hack camera. This enables or disables specific collision behaviors in modded levels
|
||||
function rom_hack_cam_set_collisions(enable)
|
||||
-- ...
|
||||
end
|
||||
|
||||
--- @param c Camera
|
||||
--- @param cPos Vec3f
|
||||
--- @param avoidYaw Pointer_integer
|
||||
|
|
@ -3614,6 +3608,13 @@ function skip_camera_interpolation()
|
|||
-- ...
|
||||
end
|
||||
|
||||
--- @param angle integer
|
||||
--- @return integer
|
||||
--- Takes in an SM64 angle unit and returns the nearest 45 degree angle, also in SM64 angle units. Useful when needing to align angles (camera, yaw, etc.)
|
||||
function snap_to_45_degrees(angle)
|
||||
-- ...
|
||||
end
|
||||
|
||||
--- @param c Camera
|
||||
--- Resets the camera's state while retaining some settings, such as position or mode. This is often used when soft-resetting gameplay without reinitialization
|
||||
function soft_reset_camera(c)
|
||||
|
|
@ -8884,12 +8885,30 @@ function camera_config_enable_analog_cam(enable)
|
|||
-- ...
|
||||
end
|
||||
|
||||
--- @param enable boolean
|
||||
--- Overrides if Camera Collision is enabled
|
||||
function camera_config_enable_camera_collisions(enable)
|
||||
-- ...
|
||||
end
|
||||
|
||||
--- @param enable boolean
|
||||
--- Overrides if the L button will center the camera
|
||||
function camera_config_enable_centering(enable)
|
||||
-- ...
|
||||
end
|
||||
|
||||
--- @param enable boolean
|
||||
--- Overrides if Free Camera is enabled
|
||||
function camera_config_enable_free_cam(enable)
|
||||
-- ...
|
||||
end
|
||||
|
||||
--- @param enable boolean
|
||||
--- Overrides if Freecam DPad Behavior is enabled
|
||||
function camera_config_enable_freecam_dpad(enable)
|
||||
-- ...
|
||||
end
|
||||
|
||||
--- @param enable boolean
|
||||
--- Overrides if camera mouse look is enabled
|
||||
function camera_config_enable_mouse_look(enable)
|
||||
|
|
@ -8901,6 +8920,12 @@ function camera_config_get_aggression()
|
|||
-- ...
|
||||
end
|
||||
|
||||
--- @return boolean
|
||||
--- Gets if the L button will center the camera
|
||||
function camera_config_get_centering()
|
||||
-- ...
|
||||
end
|
||||
|
||||
--- @return integer
|
||||
function camera_config_get_deceleration()
|
||||
-- ...
|
||||
|
|
@ -8945,6 +8970,18 @@ function camera_config_is_free_cam_enabled()
|
|||
-- ...
|
||||
end
|
||||
|
||||
--- @return boolean
|
||||
--- Checks if Camera Collision is enabled
|
||||
function camera_config_is_free_camera_collision_enabled()
|
||||
-- ...
|
||||
end
|
||||
|
||||
--- @return boolean
|
||||
--- Checks if Freecam DPad Behavior is enabled
|
||||
function camera_config_is_freecam_dpad_enabled()
|
||||
-- ...
|
||||
end
|
||||
|
||||
--- @return boolean
|
||||
--- Checks if Mouse Look is enabled
|
||||
function camera_config_is_mouse_look_enabled()
|
||||
|
|
@ -8998,12 +9035,24 @@ function camera_freeze()
|
|||
-- ...
|
||||
end
|
||||
|
||||
--- @return integer
|
||||
--- Gets if the romhack camera should fly above poison gas
|
||||
function camera_get_allow_toxic_gas_camera()
|
||||
-- ...
|
||||
end
|
||||
|
||||
--- @return boolean
|
||||
--- Checks if the camera should account for surfaces
|
||||
function camera_get_checking_surfaces()
|
||||
-- ...
|
||||
end
|
||||
|
||||
--- @return RomhackCameraOverride
|
||||
--- Gets the current romhack camera override status
|
||||
function camera_get_romhack_override()
|
||||
-- ...
|
||||
end
|
||||
|
||||
--- @return boolean
|
||||
--- Checks if the camera is frozen
|
||||
function camera_is_frozen()
|
||||
|
|
@ -9016,7 +9065,7 @@ function camera_reset_overrides()
|
|||
end
|
||||
|
||||
--- @param allow integer
|
||||
--- Sets if the romhack camera should allow centering
|
||||
--- Sets if the romhack camera should allow centering, triggered with the L button
|
||||
function camera_romhack_allow_centering(allow)
|
||||
-- ...
|
||||
end
|
||||
|
|
@ -9027,6 +9076,78 @@ function camera_romhack_allow_dpad_usage(allow)
|
|||
-- ...
|
||||
end
|
||||
|
||||
--- @param allow integer
|
||||
--- Sets if only mods are allowed to modify the camera (Enabling prevents the player from modifying the camera through the settings)
|
||||
function camera_romhack_allow_only_mods(allow)
|
||||
-- ...
|
||||
end
|
||||
|
||||
--- @return integer
|
||||
--- Gets if the romhack camera should allow centering
|
||||
function camera_romhack_get_allow_centering()
|
||||
-- ...
|
||||
end
|
||||
|
||||
--- @return integer
|
||||
--- Gets if the romhack camera should allow D-Pad movement
|
||||
function camera_romhack_get_allow_dpad_usage()
|
||||
-- ...
|
||||
end
|
||||
|
||||
--- @return integer
|
||||
--- Gets if the romhack camera has surface collisions
|
||||
function camera_romhack_get_collisions()
|
||||
-- ...
|
||||
end
|
||||
|
||||
--- @return integer
|
||||
--- Gets the romhack camera's zoomed in distance
|
||||
function camera_romhack_get_zoomed_in_dist()
|
||||
-- ...
|
||||
end
|
||||
|
||||
--- @return integer
|
||||
--- Gets the romhack camera's zoomed in height
|
||||
function camera_romhack_get_zoomed_in_height()
|
||||
-- ...
|
||||
end
|
||||
|
||||
--- @return integer
|
||||
--- Gets the romhack camera's additional zoomed out distance
|
||||
function camera_romhack_get_zoomed_out_dist()
|
||||
-- ...
|
||||
end
|
||||
|
||||
--- @return integer
|
||||
--- Gets the romhack camera's additional zoomed out height
|
||||
function camera_romhack_get_zoomed_out_height()
|
||||
-- ...
|
||||
end
|
||||
|
||||
--- @param val integer
|
||||
--- Sets the romhack camera's zoomed in distance (Default: 900)
|
||||
function camera_romhack_set_zoomed_in_dist(val)
|
||||
-- ...
|
||||
end
|
||||
|
||||
--- @param val integer
|
||||
--- Sets the romhack camera's zoomed in height (Default: 300)
|
||||
function camera_romhack_set_zoomed_in_height(val)
|
||||
-- ...
|
||||
end
|
||||
|
||||
--- @param val integer
|
||||
--- Sets the romhack camera's zoomed out additional distance (Default: 500)
|
||||
function camera_romhack_set_zoomed_out_dist(val)
|
||||
-- ...
|
||||
end
|
||||
|
||||
--- @param val integer
|
||||
--- Sets the romhack camera's zoomed out additional height (Default: 150)
|
||||
function camera_romhack_set_zoomed_out_height(val)
|
||||
-- ...
|
||||
end
|
||||
|
||||
--- @param value boolean
|
||||
--- Sets if the camera should account for surfaces
|
||||
function camera_set_checking_surfaces(value)
|
||||
|
|
@ -9044,6 +9165,12 @@ function camera_unfreeze()
|
|||
-- ...
|
||||
end
|
||||
|
||||
--- @param enable integer
|
||||
--- Toggles collision settings for the ROM hack camera. This enables or disables specific collision behaviors in modded levels
|
||||
function rom_hack_cam_set_collisions(enable)
|
||||
-- ...
|
||||
end
|
||||
|
||||
--- @param x number
|
||||
--- @param y number
|
||||
--- @param z number
|
||||
|
|
|
|||
|
|
@ -2197,6 +2197,18 @@
|
|||
--- @field public hitPos Vec3f
|
||||
--- @field public surface Surface
|
||||
|
||||
--- @class RomhackCameraSettings
|
||||
--- @field public centering integer
|
||||
--- @field public collisions integer
|
||||
--- @field public dpad integer
|
||||
--- @field public enable RomhackCameraOverride
|
||||
--- @field public modsOnly integer
|
||||
--- @field public slowFall integer
|
||||
--- @field public zoomedInDist integer
|
||||
--- @field public zoomedInHeight integer
|
||||
--- @field public zoomedOutDist integer
|
||||
--- @field public zoomedOutHeight integer
|
||||
|
||||
--- @class ServerSettings
|
||||
--- @field public bouncyLevelBounds BouncyLevelBounds
|
||||
--- @field public bubbleDeath integer
|
||||
|
|
|
|||
|
|
@ -843,6 +843,9 @@
|
|||
| RCO_ALL | 0 |
|
||||
| RCO_ALL_EXCEPT_BOWSER | 1 |
|
||||
| RCO_NONE | 2 |
|
||||
| RCO_ALL_INCLUDING_VANILLA | 3 |
|
||||
| RCO_ALL_VANILLA_EXCEPT_BOWSER | 4 |
|
||||
| RCO_DISABLE | 5 |
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
|
|
|
|||
|
|
@ -1534,29 +1534,6 @@ Resolves collisions between the camera and level geometry. Adjusts the camera's
|
|||
|
||||
<br />
|
||||
|
||||
## [rom_hack_cam_set_collisions](#rom_hack_cam_set_collisions)
|
||||
|
||||
### Description
|
||||
Toggles collision settings for the ROM hack camera. This enables or disables specific collision behaviors in modded levels
|
||||
|
||||
### Lua Example
|
||||
`rom_hack_cam_set_collisions(enable)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| enable | `integer` |
|
||||
|
||||
### Returns
|
||||
- None
|
||||
|
||||
### C Prototype
|
||||
`void rom_hack_cam_set_collisions(u8 enable);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [rotate_camera_around_walls](#rotate_camera_around_walls)
|
||||
|
||||
### Description
|
||||
|
|
@ -2240,6 +2217,29 @@ Skips camera interpolation for a frame, locking the camera instantly to the targ
|
|||
|
||||
<br />
|
||||
|
||||
## [snap_to_45_degrees](#snap_to_45_degrees)
|
||||
|
||||
### Description
|
||||
Takes in an SM64 angle unit and returns the nearest 45 degree angle, also in SM64 angle units. Useful when needing to align angles (camera, yaw, etc.)
|
||||
|
||||
### Lua Example
|
||||
`local integerValue = snap_to_45_degrees(angle)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| angle | `integer` |
|
||||
|
||||
### Returns
|
||||
- `integer`
|
||||
|
||||
### C Prototype
|
||||
`s32 snap_to_45_degrees(s16 angle);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [soft_reset_camera](#soft_reset_camera)
|
||||
|
||||
### Description
|
||||
|
|
|
|||
|
|
@ -6838,6 +6838,52 @@ Overrides if Analog Camera is enabled
|
|||
|
||||
<br />
|
||||
|
||||
## [camera_config_enable_camera_collisions](#camera_config_enable_camera_collisions)
|
||||
|
||||
### Description
|
||||
Overrides if Camera Collision is enabled
|
||||
|
||||
### Lua Example
|
||||
`camera_config_enable_camera_collisions(enable)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| enable | `boolean` |
|
||||
|
||||
### Returns
|
||||
- None
|
||||
|
||||
### C Prototype
|
||||
`void camera_config_enable_camera_collisions(bool enable);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [camera_config_enable_centering](#camera_config_enable_centering)
|
||||
|
||||
### Description
|
||||
Overrides if the L button will center the camera
|
||||
|
||||
### Lua Example
|
||||
`camera_config_enable_centering(enable)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| enable | `boolean` |
|
||||
|
||||
### Returns
|
||||
- None
|
||||
|
||||
### C Prototype
|
||||
`void camera_config_enable_centering(bool enable);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [camera_config_enable_free_cam](#camera_config_enable_free_cam)
|
||||
|
||||
### Description
|
||||
|
|
@ -6861,6 +6907,29 @@ Overrides if Free Camera is enabled
|
|||
|
||||
<br />
|
||||
|
||||
## [camera_config_enable_freecam_dpad](#camera_config_enable_freecam_dpad)
|
||||
|
||||
### Description
|
||||
Overrides if Freecam DPad Behavior is enabled
|
||||
|
||||
### Lua Example
|
||||
`camera_config_enable_freecam_dpad(enable)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| enable | `boolean` |
|
||||
|
||||
### Returns
|
||||
- None
|
||||
|
||||
### C Prototype
|
||||
`void camera_config_enable_freecam_dpad(bool enable);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [camera_config_enable_mouse_look](#camera_config_enable_mouse_look)
|
||||
|
||||
### Description
|
||||
|
|
@ -6902,6 +6971,27 @@ Overrides if camera mouse look is enabled
|
|||
|
||||
<br />
|
||||
|
||||
## [camera_config_get_centering](#camera_config_get_centering)
|
||||
|
||||
### Description
|
||||
Gets if the L button will center the camera
|
||||
|
||||
### Lua Example
|
||||
`local booleanValue = camera_config_get_centering()`
|
||||
|
||||
### Parameters
|
||||
- None
|
||||
|
||||
### Returns
|
||||
- `boolean`
|
||||
|
||||
### C Prototype
|
||||
`bool camera_config_get_centering(void);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [camera_config_get_deceleration](#camera_config_get_deceleration)
|
||||
|
||||
### Lua Example
|
||||
|
|
@ -7062,6 +7152,48 @@ Checks if Free Camera is enabled
|
|||
|
||||
<br />
|
||||
|
||||
## [camera_config_is_free_camera_collision_enabled](#camera_config_is_free_camera_collision_enabled)
|
||||
|
||||
### Description
|
||||
Checks if Camera Collision is enabled
|
||||
|
||||
### Lua Example
|
||||
`local booleanValue = camera_config_is_free_camera_collision_enabled()`
|
||||
|
||||
### Parameters
|
||||
- None
|
||||
|
||||
### Returns
|
||||
- `boolean`
|
||||
|
||||
### C Prototype
|
||||
`bool camera_config_is_free_camera_collision_enabled(void);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [camera_config_is_freecam_dpad_enabled](#camera_config_is_freecam_dpad_enabled)
|
||||
|
||||
### Description
|
||||
Checks if Freecam DPad Behavior is enabled
|
||||
|
||||
### Lua Example
|
||||
`local booleanValue = camera_config_is_freecam_dpad_enabled()`
|
||||
|
||||
### Parameters
|
||||
- None
|
||||
|
||||
### Returns
|
||||
- `boolean`
|
||||
|
||||
### C Prototype
|
||||
`bool camera_config_is_freecam_dpad_enabled(void);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [camera_config_is_mouse_look_enabled](#camera_config_is_mouse_look_enabled)
|
||||
|
||||
### Description
|
||||
|
|
@ -7261,6 +7393,27 @@ Freezes the camera by not updating it
|
|||
|
||||
<br />
|
||||
|
||||
## [camera_get_allow_toxic_gas_camera](#camera_get_allow_toxic_gas_camera)
|
||||
|
||||
### Description
|
||||
Gets if the romhack camera should fly above poison gas
|
||||
|
||||
### Lua Example
|
||||
`local integerValue = camera_get_allow_toxic_gas_camera()`
|
||||
|
||||
### Parameters
|
||||
- None
|
||||
|
||||
### Returns
|
||||
- `integer`
|
||||
|
||||
### C Prototype
|
||||
`u8 camera_get_allow_toxic_gas_camera(void);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [camera_get_checking_surfaces](#camera_get_checking_surfaces)
|
||||
|
||||
### Description
|
||||
|
|
@ -7282,6 +7435,27 @@ Checks if the camera should account for surfaces
|
|||
|
||||
<br />
|
||||
|
||||
## [camera_get_romhack_override](#camera_get_romhack_override)
|
||||
|
||||
### Description
|
||||
Gets the current romhack camera override status
|
||||
|
||||
### Lua Example
|
||||
`local enumValue = camera_get_romhack_override()`
|
||||
|
||||
### Parameters
|
||||
- None
|
||||
|
||||
### Returns
|
||||
[enum RomhackCameraOverride](constants.md#enum-RomhackCameraOverride)
|
||||
|
||||
### C Prototype
|
||||
`enum RomhackCameraOverride camera_get_romhack_override(void);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [camera_is_frozen](#camera_is_frozen)
|
||||
|
||||
### Description
|
||||
|
|
@ -7327,7 +7501,7 @@ Resets camera config overrides
|
|||
## [camera_romhack_allow_centering](#camera_romhack_allow_centering)
|
||||
|
||||
### Description
|
||||
Sets if the romhack camera should allow centering
|
||||
Sets if the romhack camera should allow centering, triggered with the L button
|
||||
|
||||
### Lua Example
|
||||
`camera_romhack_allow_centering(allow)`
|
||||
|
|
@ -7370,6 +7544,268 @@ Sets if the romhack camera should allow D-Pad movement
|
|||
|
||||
<br />
|
||||
|
||||
## [camera_romhack_allow_only_mods](#camera_romhack_allow_only_mods)
|
||||
|
||||
### Description
|
||||
Sets if only mods are allowed to modify the camera (Enabling prevents the player from modifying the camera through the settings)
|
||||
|
||||
### Lua Example
|
||||
`camera_romhack_allow_only_mods(allow)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| allow | `integer` |
|
||||
|
||||
### Returns
|
||||
- None
|
||||
|
||||
### C Prototype
|
||||
`void camera_romhack_allow_only_mods(u8 allow);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [camera_romhack_get_allow_centering](#camera_romhack_get_allow_centering)
|
||||
|
||||
### Description
|
||||
Gets if the romhack camera should allow centering
|
||||
|
||||
### Lua Example
|
||||
`local integerValue = camera_romhack_get_allow_centering()`
|
||||
|
||||
### Parameters
|
||||
- None
|
||||
|
||||
### Returns
|
||||
- `integer`
|
||||
|
||||
### C Prototype
|
||||
`u8 camera_romhack_get_allow_centering(void);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [camera_romhack_get_allow_dpad_usage](#camera_romhack_get_allow_dpad_usage)
|
||||
|
||||
### Description
|
||||
Gets if the romhack camera should allow D-Pad movement
|
||||
|
||||
### Lua Example
|
||||
`local integerValue = camera_romhack_get_allow_dpad_usage()`
|
||||
|
||||
### Parameters
|
||||
- None
|
||||
|
||||
### Returns
|
||||
- `integer`
|
||||
|
||||
### C Prototype
|
||||
`u8 camera_romhack_get_allow_dpad_usage(void);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [camera_romhack_get_collisions](#camera_romhack_get_collisions)
|
||||
|
||||
### Description
|
||||
Gets if the romhack camera has surface collisions
|
||||
|
||||
### Lua Example
|
||||
`local integerValue = camera_romhack_get_collisions()`
|
||||
|
||||
### Parameters
|
||||
- None
|
||||
|
||||
### Returns
|
||||
- `integer`
|
||||
|
||||
### C Prototype
|
||||
`u8 camera_romhack_get_collisions(void);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [camera_romhack_get_zoomed_in_dist](#camera_romhack_get_zoomed_in_dist)
|
||||
|
||||
### Description
|
||||
Gets the romhack camera's zoomed in distance
|
||||
|
||||
### Lua Example
|
||||
`local integerValue = camera_romhack_get_zoomed_in_dist()`
|
||||
|
||||
### Parameters
|
||||
- None
|
||||
|
||||
### Returns
|
||||
- `integer`
|
||||
|
||||
### C Prototype
|
||||
`u32 camera_romhack_get_zoomed_in_dist(void);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [camera_romhack_get_zoomed_in_height](#camera_romhack_get_zoomed_in_height)
|
||||
|
||||
### Description
|
||||
Gets the romhack camera's zoomed in height
|
||||
|
||||
### Lua Example
|
||||
`local integerValue = camera_romhack_get_zoomed_in_height()`
|
||||
|
||||
### Parameters
|
||||
- None
|
||||
|
||||
### Returns
|
||||
- `integer`
|
||||
|
||||
### C Prototype
|
||||
`u32 camera_romhack_get_zoomed_in_height(void);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [camera_romhack_get_zoomed_out_dist](#camera_romhack_get_zoomed_out_dist)
|
||||
|
||||
### Description
|
||||
Gets the romhack camera's additional zoomed out distance
|
||||
|
||||
### Lua Example
|
||||
`local integerValue = camera_romhack_get_zoomed_out_dist()`
|
||||
|
||||
### Parameters
|
||||
- None
|
||||
|
||||
### Returns
|
||||
- `integer`
|
||||
|
||||
### C Prototype
|
||||
`u32 camera_romhack_get_zoomed_out_dist(void);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [camera_romhack_get_zoomed_out_height](#camera_romhack_get_zoomed_out_height)
|
||||
|
||||
### Description
|
||||
Gets the romhack camera's additional zoomed out height
|
||||
|
||||
### Lua Example
|
||||
`local integerValue = camera_romhack_get_zoomed_out_height()`
|
||||
|
||||
### Parameters
|
||||
- None
|
||||
|
||||
### Returns
|
||||
- `integer`
|
||||
|
||||
### C Prototype
|
||||
`u32 camera_romhack_get_zoomed_out_height(void);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [camera_romhack_set_zoomed_in_dist](#camera_romhack_set_zoomed_in_dist)
|
||||
|
||||
### Description
|
||||
Sets the romhack camera's zoomed in distance (Default: 900)
|
||||
|
||||
### Lua Example
|
||||
`camera_romhack_set_zoomed_in_dist(val)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| val | `integer` |
|
||||
|
||||
### Returns
|
||||
- None
|
||||
|
||||
### C Prototype
|
||||
`void camera_romhack_set_zoomed_in_dist(u32 val);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [camera_romhack_set_zoomed_in_height](#camera_romhack_set_zoomed_in_height)
|
||||
|
||||
### Description
|
||||
Sets the romhack camera's zoomed in height (Default: 300)
|
||||
|
||||
### Lua Example
|
||||
`camera_romhack_set_zoomed_in_height(val)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| val | `integer` |
|
||||
|
||||
### Returns
|
||||
- None
|
||||
|
||||
### C Prototype
|
||||
`void camera_romhack_set_zoomed_in_height(u32 val);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [camera_romhack_set_zoomed_out_dist](#camera_romhack_set_zoomed_out_dist)
|
||||
|
||||
### Description
|
||||
Sets the romhack camera's zoomed out additional distance (Default: 500)
|
||||
|
||||
### Lua Example
|
||||
`camera_romhack_set_zoomed_out_dist(val)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| val | `integer` |
|
||||
|
||||
### Returns
|
||||
- None
|
||||
|
||||
### C Prototype
|
||||
`void camera_romhack_set_zoomed_out_dist(u32 val);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [camera_romhack_set_zoomed_out_height](#camera_romhack_set_zoomed_out_height)
|
||||
|
||||
### Description
|
||||
Sets the romhack camera's zoomed out additional height (Default: 150)
|
||||
|
||||
### Lua Example
|
||||
`camera_romhack_set_zoomed_out_height(val)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| val | `integer` |
|
||||
|
||||
### Returns
|
||||
- None
|
||||
|
||||
### C Prototype
|
||||
`void camera_romhack_set_zoomed_out_height(u32 val);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [camera_set_checking_surfaces](#camera_set_checking_surfaces)
|
||||
|
||||
### Description
|
||||
|
|
@ -7437,6 +7873,29 @@ Unfreezes the camera
|
|||
|
||||
<br />
|
||||
|
||||
## [rom_hack_cam_set_collisions](#rom_hack_cam_set_collisions)
|
||||
|
||||
### Description
|
||||
Toggles collision settings for the ROM hack camera. This enables or disables specific collision behaviors in modded levels
|
||||
|
||||
### Lua Example
|
||||
`rom_hack_cam_set_collisions(enable)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| enable | `integer` |
|
||||
|
||||
### Returns
|
||||
- None
|
||||
|
||||
### C Prototype
|
||||
`void rom_hack_cam_set_collisions(u8 enable);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
---
|
||||
# functions from smlua_collision_utils.h
|
||||
|
||||
|
|
@ -8210,296 +8669,6 @@ Sets a value of the global vertex shading color
|
|||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
---
|
||||
# functions from smlua_level_utils.h
|
||||
|
||||
<br />
|
||||
|
||||
|
||||
## [level_is_vanilla_level](#level_is_vanilla_level)
|
||||
|
||||
### Description
|
||||
Checks if `levelNum` is a vanilla level
|
||||
|
||||
### Lua Example
|
||||
`local booleanValue = level_is_vanilla_level(levelNum)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| levelNum | `integer` |
|
||||
|
||||
### Returns
|
||||
- `boolean`
|
||||
|
||||
### C Prototype
|
||||
`bool level_is_vanilla_level(s16 levelNum);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [level_register](#level_register)
|
||||
|
||||
### Description
|
||||
Registers a fully custom level. Level ID begins at 50
|
||||
|
||||
### Lua Example
|
||||
`local integerValue = level_register(scriptEntryName, courseNum, fullName, shortName, acousticReach, echoLevel1, echoLevel2, echoLevel3)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| scriptEntryName | `string` |
|
||||
| courseNum | `integer` |
|
||||
| fullName | `string` |
|
||||
| shortName | `string` |
|
||||
| acousticReach | `integer` |
|
||||
| echoLevel1 | `integer` |
|
||||
| echoLevel2 | `integer` |
|
||||
| echoLevel3 | `integer` |
|
||||
|
||||
### Returns
|
||||
- `integer`
|
||||
|
||||
### C Prototype
|
||||
`s16 level_register(const char* scriptEntryName, s16 courseNum, const char* fullName, const char* shortName, u32 acousticReach, u32 echoLevel1, u32 echoLevel2, u32 echoLevel3);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [smlua_level_util_change_area](#smlua_level_util_change_area)
|
||||
|
||||
### Description
|
||||
Instantly changes the current area to `areaIndex`
|
||||
|
||||
### Lua Example
|
||||
`smlua_level_util_change_area(areaIndex)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| areaIndex | `integer` |
|
||||
|
||||
### Returns
|
||||
- None
|
||||
|
||||
### C Prototype
|
||||
`void smlua_level_util_change_area(s32 areaIndex);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [smlua_level_util_get_info](#smlua_level_util_get_info)
|
||||
|
||||
### Description
|
||||
Gets information on a custom level from `levelNum`
|
||||
|
||||
### Lua Example
|
||||
`local CustomLevelInfoValue = smlua_level_util_get_info(levelNum)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| levelNum | `integer` |
|
||||
|
||||
### Returns
|
||||
[CustomLevelInfo](structs.md#CustomLevelInfo)
|
||||
|
||||
### C Prototype
|
||||
`struct CustomLevelInfo* smlua_level_util_get_info(s16 levelNum);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [smlua_level_util_get_info_from_course_num](#smlua_level_util_get_info_from_course_num)
|
||||
|
||||
### Description
|
||||
Gets information on a custom level from `courseNum`
|
||||
|
||||
### Lua Example
|
||||
`local CustomLevelInfoValue = smlua_level_util_get_info_from_course_num(courseNum)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| courseNum | `integer` |
|
||||
|
||||
### Returns
|
||||
[CustomLevelInfo](structs.md#CustomLevelInfo)
|
||||
|
||||
### C Prototype
|
||||
`struct CustomLevelInfo* smlua_level_util_get_info_from_course_num(u8 courseNum);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [smlua_level_util_get_info_from_short_name](#smlua_level_util_get_info_from_short_name)
|
||||
|
||||
### Description
|
||||
Gets information on a custom level from `shortName`
|
||||
|
||||
### Lua Example
|
||||
`local CustomLevelInfoValue = smlua_level_util_get_info_from_short_name(shortName)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| shortName | `string` |
|
||||
|
||||
### Returns
|
||||
[CustomLevelInfo](structs.md#CustomLevelInfo)
|
||||
|
||||
### C Prototype
|
||||
`struct CustomLevelInfo* smlua_level_util_get_info_from_short_name(const char* shortName);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [warp_exit_level](#warp_exit_level)
|
||||
|
||||
### Description
|
||||
Exits the current level after `aDelay`
|
||||
|
||||
### Lua Example
|
||||
`local booleanValue = warp_exit_level(aDelay)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| aDelay | `integer` |
|
||||
|
||||
### Returns
|
||||
- `boolean`
|
||||
|
||||
### C Prototype
|
||||
`bool warp_exit_level(s32 aDelay);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [warp_restart_level](#warp_restart_level)
|
||||
|
||||
### Description
|
||||
Restarts the current level
|
||||
|
||||
### Lua Example
|
||||
`local booleanValue = warp_restart_level()`
|
||||
|
||||
### Parameters
|
||||
- None
|
||||
|
||||
### Returns
|
||||
- `boolean`
|
||||
|
||||
### C Prototype
|
||||
`bool warp_restart_level(void);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [warp_to_castle](#warp_to_castle)
|
||||
|
||||
### Description
|
||||
Warps back to the castle from `aLevel`
|
||||
|
||||
### Lua Example
|
||||
`local booleanValue = warp_to_castle(aLevel)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| aLevel | `integer` |
|
||||
|
||||
### Returns
|
||||
- `boolean`
|
||||
|
||||
### C Prototype
|
||||
`bool warp_to_castle(s32 aLevel);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [warp_to_level](#warp_to_level)
|
||||
|
||||
### Description
|
||||
Warps to `aArea` of `aLevel` in `aAct`
|
||||
|
||||
### Lua Example
|
||||
`local booleanValue = warp_to_level(aLevel, aArea, aAct)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| aLevel | `integer` |
|
||||
| aArea | `integer` |
|
||||
| aAct | `integer` |
|
||||
|
||||
### Returns
|
||||
- `boolean`
|
||||
|
||||
### C Prototype
|
||||
`bool warp_to_level(s32 aLevel, s32 aArea, s32 aAct);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [warp_to_start_level](#warp_to_start_level)
|
||||
|
||||
### Description
|
||||
Warps to the start level (Castle Grounds by default)
|
||||
|
||||
### Lua Example
|
||||
`local booleanValue = warp_to_start_level()`
|
||||
|
||||
### Parameters
|
||||
- None
|
||||
|
||||
### Returns
|
||||
- `boolean`
|
||||
|
||||
### C Prototype
|
||||
`bool warp_to_start_level(void);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [warp_to_warpnode](#warp_to_warpnode)
|
||||
|
||||
### Description
|
||||
Warps to `aWarpId` of `aArea` in `aLevel` during `aAct`
|
||||
|
||||
### Lua Example
|
||||
`local booleanValue = warp_to_warpnode(aLevel, aArea, aAct, aWarpId)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| aLevel | `integer` |
|
||||
| aArea | `integer` |
|
||||
| aAct | `integer` |
|
||||
| aWarpId | `integer` |
|
||||
|
||||
### Returns
|
||||
- `boolean`
|
||||
|
||||
### C Prototype
|
||||
`bool warp_to_warpnode(s32 aLevel, s32 aArea, s32 aAct, s32 aWarpId);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -5,6 +5,296 @@
|
|||
[< prev](functions-5.md) | [1](functions.md) | [2](functions-2.md) | [3](functions-3.md) | [4](functions-4.md) | [5](functions-5.md) | 6]
|
||||
|
||||
|
||||
---
|
||||
# functions from smlua_level_utils.h
|
||||
|
||||
<br />
|
||||
|
||||
|
||||
## [level_is_vanilla_level](#level_is_vanilla_level)
|
||||
|
||||
### Description
|
||||
Checks if `levelNum` is a vanilla level
|
||||
|
||||
### Lua Example
|
||||
`local booleanValue = level_is_vanilla_level(levelNum)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| levelNum | `integer` |
|
||||
|
||||
### Returns
|
||||
- `boolean`
|
||||
|
||||
### C Prototype
|
||||
`bool level_is_vanilla_level(s16 levelNum);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [level_register](#level_register)
|
||||
|
||||
### Description
|
||||
Registers a fully custom level. Level ID begins at 50
|
||||
|
||||
### Lua Example
|
||||
`local integerValue = level_register(scriptEntryName, courseNum, fullName, shortName, acousticReach, echoLevel1, echoLevel2, echoLevel3)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| scriptEntryName | `string` |
|
||||
| courseNum | `integer` |
|
||||
| fullName | `string` |
|
||||
| shortName | `string` |
|
||||
| acousticReach | `integer` |
|
||||
| echoLevel1 | `integer` |
|
||||
| echoLevel2 | `integer` |
|
||||
| echoLevel3 | `integer` |
|
||||
|
||||
### Returns
|
||||
- `integer`
|
||||
|
||||
### C Prototype
|
||||
`s16 level_register(const char* scriptEntryName, s16 courseNum, const char* fullName, const char* shortName, u32 acousticReach, u32 echoLevel1, u32 echoLevel2, u32 echoLevel3);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [smlua_level_util_change_area](#smlua_level_util_change_area)
|
||||
|
||||
### Description
|
||||
Instantly changes the current area to `areaIndex`
|
||||
|
||||
### Lua Example
|
||||
`smlua_level_util_change_area(areaIndex)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| areaIndex | `integer` |
|
||||
|
||||
### Returns
|
||||
- None
|
||||
|
||||
### C Prototype
|
||||
`void smlua_level_util_change_area(s32 areaIndex);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [smlua_level_util_get_info](#smlua_level_util_get_info)
|
||||
|
||||
### Description
|
||||
Gets information on a custom level from `levelNum`
|
||||
|
||||
### Lua Example
|
||||
`local CustomLevelInfoValue = smlua_level_util_get_info(levelNum)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| levelNum | `integer` |
|
||||
|
||||
### Returns
|
||||
[CustomLevelInfo](structs.md#CustomLevelInfo)
|
||||
|
||||
### C Prototype
|
||||
`struct CustomLevelInfo* smlua_level_util_get_info(s16 levelNum);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [smlua_level_util_get_info_from_course_num](#smlua_level_util_get_info_from_course_num)
|
||||
|
||||
### Description
|
||||
Gets information on a custom level from `courseNum`
|
||||
|
||||
### Lua Example
|
||||
`local CustomLevelInfoValue = smlua_level_util_get_info_from_course_num(courseNum)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| courseNum | `integer` |
|
||||
|
||||
### Returns
|
||||
[CustomLevelInfo](structs.md#CustomLevelInfo)
|
||||
|
||||
### C Prototype
|
||||
`struct CustomLevelInfo* smlua_level_util_get_info_from_course_num(u8 courseNum);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [smlua_level_util_get_info_from_short_name](#smlua_level_util_get_info_from_short_name)
|
||||
|
||||
### Description
|
||||
Gets information on a custom level from `shortName`
|
||||
|
||||
### Lua Example
|
||||
`local CustomLevelInfoValue = smlua_level_util_get_info_from_short_name(shortName)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| shortName | `string` |
|
||||
|
||||
### Returns
|
||||
[CustomLevelInfo](structs.md#CustomLevelInfo)
|
||||
|
||||
### C Prototype
|
||||
`struct CustomLevelInfo* smlua_level_util_get_info_from_short_name(const char* shortName);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [warp_exit_level](#warp_exit_level)
|
||||
|
||||
### Description
|
||||
Exits the current level after `aDelay`
|
||||
|
||||
### Lua Example
|
||||
`local booleanValue = warp_exit_level(aDelay)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| aDelay | `integer` |
|
||||
|
||||
### Returns
|
||||
- `boolean`
|
||||
|
||||
### C Prototype
|
||||
`bool warp_exit_level(s32 aDelay);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [warp_restart_level](#warp_restart_level)
|
||||
|
||||
### Description
|
||||
Restarts the current level
|
||||
|
||||
### Lua Example
|
||||
`local booleanValue = warp_restart_level()`
|
||||
|
||||
### Parameters
|
||||
- None
|
||||
|
||||
### Returns
|
||||
- `boolean`
|
||||
|
||||
### C Prototype
|
||||
`bool warp_restart_level(void);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [warp_to_castle](#warp_to_castle)
|
||||
|
||||
### Description
|
||||
Warps back to the castle from `aLevel`
|
||||
|
||||
### Lua Example
|
||||
`local booleanValue = warp_to_castle(aLevel)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| aLevel | `integer` |
|
||||
|
||||
### Returns
|
||||
- `boolean`
|
||||
|
||||
### C Prototype
|
||||
`bool warp_to_castle(s32 aLevel);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [warp_to_level](#warp_to_level)
|
||||
|
||||
### Description
|
||||
Warps to `aArea` of `aLevel` in `aAct`
|
||||
|
||||
### Lua Example
|
||||
`local booleanValue = warp_to_level(aLevel, aArea, aAct)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| aLevel | `integer` |
|
||||
| aArea | `integer` |
|
||||
| aAct | `integer` |
|
||||
|
||||
### Returns
|
||||
- `boolean`
|
||||
|
||||
### C Prototype
|
||||
`bool warp_to_level(s32 aLevel, s32 aArea, s32 aAct);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [warp_to_start_level](#warp_to_start_level)
|
||||
|
||||
### Description
|
||||
Warps to the start level (Castle Grounds by default)
|
||||
|
||||
### Lua Example
|
||||
`local booleanValue = warp_to_start_level()`
|
||||
|
||||
### Parameters
|
||||
- None
|
||||
|
||||
### Returns
|
||||
- `boolean`
|
||||
|
||||
### C Prototype
|
||||
`bool warp_to_start_level(void);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [warp_to_warpnode](#warp_to_warpnode)
|
||||
|
||||
### Description
|
||||
Warps to `aWarpId` of `aArea` in `aLevel` during `aAct`
|
||||
|
||||
### Lua Example
|
||||
`local booleanValue = warp_to_warpnode(aLevel, aArea, aAct, aWarpId)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| aLevel | `integer` |
|
||||
| aArea | `integer` |
|
||||
| aAct | `integer` |
|
||||
| aWarpId | `integer` |
|
||||
|
||||
### Returns
|
||||
- `boolean`
|
||||
|
||||
### C Prototype
|
||||
`bool warp_to_warpnode(s32 aLevel, s32 aArea, s32 aAct, s32 aWarpId);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
---
|
||||
# functions from smlua_math_utils.h
|
||||
|
||||
|
|
|
|||
|
|
@ -685,7 +685,6 @@
|
|||
- [random_vec3s](functions-3.md#random_vec3s)
|
||||
- [reset_camera](functions-3.md#reset_camera)
|
||||
- [resolve_geometry_collisions](functions-3.md#resolve_geometry_collisions)
|
||||
- [rom_hack_cam_set_collisions](functions-3.md#rom_hack_cam_set_collisions)
|
||||
- [rotate_camera_around_walls](functions-3.md#rotate_camera_around_walls)
|
||||
- [rotate_in_xz](functions-3.md#rotate_in_xz)
|
||||
- [rotate_in_yz](functions-3.md#rotate_in_yz)
|
||||
|
|
@ -714,6 +713,7 @@
|
|||
- [shake_camera_roll](functions-3.md#shake_camera_roll)
|
||||
- [shake_camera_yaw](functions-3.md#shake_camera_yaw)
|
||||
- [skip_camera_interpolation](functions-3.md#skip_camera_interpolation)
|
||||
- [snap_to_45_degrees](functions-3.md#snap_to_45_degrees)
|
||||
- [soft_reset_camera](functions-3.md#soft_reset_camera)
|
||||
- [start_cutscene](functions-3.md#start_cutscene)
|
||||
- [start_object_cutscene_without_focus](functions-3.md#start_object_cutscene_without_focus)
|
||||
|
|
@ -1650,9 +1650,13 @@
|
|||
- smlua_camera_utils.h
|
||||
- [camera_allow_toxic_gas_camera](functions-5.md#camera_allow_toxic_gas_camera)
|
||||
- [camera_config_enable_analog_cam](functions-5.md#camera_config_enable_analog_cam)
|
||||
- [camera_config_enable_camera_collisions](functions-5.md#camera_config_enable_camera_collisions)
|
||||
- [camera_config_enable_centering](functions-5.md#camera_config_enable_centering)
|
||||
- [camera_config_enable_free_cam](functions-5.md#camera_config_enable_free_cam)
|
||||
- [camera_config_enable_freecam_dpad](functions-5.md#camera_config_enable_freecam_dpad)
|
||||
- [camera_config_enable_mouse_look](functions-5.md#camera_config_enable_mouse_look)
|
||||
- [camera_config_get_aggression](functions-5.md#camera_config_get_aggression)
|
||||
- [camera_config_get_centering](functions-5.md#camera_config_get_centering)
|
||||
- [camera_config_get_deceleration](functions-5.md#camera_config_get_deceleration)
|
||||
- [camera_config_get_pan_level](functions-5.md#camera_config_get_pan_level)
|
||||
- [camera_config_get_x_sensitivity](functions-5.md#camera_config_get_x_sensitivity)
|
||||
|
|
@ -1661,6 +1665,8 @@
|
|||
- [camera_config_invert_y](functions-5.md#camera_config_invert_y)
|
||||
- [camera_config_is_analog_cam_enabled](functions-5.md#camera_config_is_analog_cam_enabled)
|
||||
- [camera_config_is_free_cam_enabled](functions-5.md#camera_config_is_free_cam_enabled)
|
||||
- [camera_config_is_free_camera_collision_enabled](functions-5.md#camera_config_is_free_camera_collision_enabled)
|
||||
- [camera_config_is_freecam_dpad_enabled](functions-5.md#camera_config_is_freecam_dpad_enabled)
|
||||
- [camera_config_is_mouse_look_enabled](functions-5.md#camera_config_is_mouse_look_enabled)
|
||||
- [camera_config_is_x_inverted](functions-5.md#camera_config_is_x_inverted)
|
||||
- [camera_config_is_y_inverted](functions-5.md#camera_config_is_y_inverted)
|
||||
|
|
@ -1670,14 +1676,29 @@
|
|||
- [camera_config_set_x_sensitivity](functions-5.md#camera_config_set_x_sensitivity)
|
||||
- [camera_config_set_y_sensitivity](functions-5.md#camera_config_set_y_sensitivity)
|
||||
- [camera_freeze](functions-5.md#camera_freeze)
|
||||
- [camera_get_allow_toxic_gas_camera](functions-5.md#camera_get_allow_toxic_gas_camera)
|
||||
- [camera_get_checking_surfaces](functions-5.md#camera_get_checking_surfaces)
|
||||
- [camera_get_romhack_override](functions-5.md#camera_get_romhack_override)
|
||||
- [camera_is_frozen](functions-5.md#camera_is_frozen)
|
||||
- [camera_reset_overrides](functions-5.md#camera_reset_overrides)
|
||||
- [camera_romhack_allow_centering](functions-5.md#camera_romhack_allow_centering)
|
||||
- [camera_romhack_allow_dpad_usage](functions-5.md#camera_romhack_allow_dpad_usage)
|
||||
- [camera_romhack_allow_only_mods](functions-5.md#camera_romhack_allow_only_mods)
|
||||
- [camera_romhack_get_allow_centering](functions-5.md#camera_romhack_get_allow_centering)
|
||||
- [camera_romhack_get_allow_dpad_usage](functions-5.md#camera_romhack_get_allow_dpad_usage)
|
||||
- [camera_romhack_get_collisions](functions-5.md#camera_romhack_get_collisions)
|
||||
- [camera_romhack_get_zoomed_in_dist](functions-5.md#camera_romhack_get_zoomed_in_dist)
|
||||
- [camera_romhack_get_zoomed_in_height](functions-5.md#camera_romhack_get_zoomed_in_height)
|
||||
- [camera_romhack_get_zoomed_out_dist](functions-5.md#camera_romhack_get_zoomed_out_dist)
|
||||
- [camera_romhack_get_zoomed_out_height](functions-5.md#camera_romhack_get_zoomed_out_height)
|
||||
- [camera_romhack_set_zoomed_in_dist](functions-5.md#camera_romhack_set_zoomed_in_dist)
|
||||
- [camera_romhack_set_zoomed_in_height](functions-5.md#camera_romhack_set_zoomed_in_height)
|
||||
- [camera_romhack_set_zoomed_out_dist](functions-5.md#camera_romhack_set_zoomed_out_dist)
|
||||
- [camera_romhack_set_zoomed_out_height](functions-5.md#camera_romhack_set_zoomed_out_height)
|
||||
- [camera_set_checking_surfaces](functions-5.md#camera_set_checking_surfaces)
|
||||
- [camera_set_romhack_override](functions-5.md#camera_set_romhack_override)
|
||||
- [camera_unfreeze](functions-5.md#camera_unfreeze)
|
||||
- [rom_hack_cam_set_collisions](functions-5.md#rom_hack_cam_set_collisions)
|
||||
|
||||
<br />
|
||||
|
||||
|
|
@ -1726,18 +1747,18 @@
|
|||
<br />
|
||||
|
||||
- smlua_level_utils.h
|
||||
- [level_is_vanilla_level](functions-5.md#level_is_vanilla_level)
|
||||
- [level_register](functions-5.md#level_register)
|
||||
- [smlua_level_util_change_area](functions-5.md#smlua_level_util_change_area)
|
||||
- [smlua_level_util_get_info](functions-5.md#smlua_level_util_get_info)
|
||||
- [smlua_level_util_get_info_from_course_num](functions-5.md#smlua_level_util_get_info_from_course_num)
|
||||
- [smlua_level_util_get_info_from_short_name](functions-5.md#smlua_level_util_get_info_from_short_name)
|
||||
- [warp_exit_level](functions-5.md#warp_exit_level)
|
||||
- [warp_restart_level](functions-5.md#warp_restart_level)
|
||||
- [warp_to_castle](functions-5.md#warp_to_castle)
|
||||
- [warp_to_level](functions-5.md#warp_to_level)
|
||||
- [warp_to_start_level](functions-5.md#warp_to_start_level)
|
||||
- [warp_to_warpnode](functions-5.md#warp_to_warpnode)
|
||||
- [level_is_vanilla_level](functions-6.md#level_is_vanilla_level)
|
||||
- [level_register](functions-6.md#level_register)
|
||||
- [smlua_level_util_change_area](functions-6.md#smlua_level_util_change_area)
|
||||
- [smlua_level_util_get_info](functions-6.md#smlua_level_util_get_info)
|
||||
- [smlua_level_util_get_info_from_course_num](functions-6.md#smlua_level_util_get_info_from_course_num)
|
||||
- [smlua_level_util_get_info_from_short_name](functions-6.md#smlua_level_util_get_info_from_short_name)
|
||||
- [warp_exit_level](functions-6.md#warp_exit_level)
|
||||
- [warp_restart_level](functions-6.md#warp_restart_level)
|
||||
- [warp_to_castle](functions-6.md#warp_to_castle)
|
||||
- [warp_to_level](functions-6.md#warp_to_level)
|
||||
- [warp_to_start_level](functions-6.md#warp_to_start_level)
|
||||
- [warp_to_warpnode](functions-6.md#warp_to_warpnode)
|
||||
|
||||
<br />
|
||||
|
||||
|
|
|
|||
|
|
@ -92,6 +92,7 @@
|
|||
- [PlayerGeometry](#PlayerGeometry)
|
||||
- [PlayerPalette](#PlayerPalette)
|
||||
- [RayIntersectionInfo](#RayIntersectionInfo)
|
||||
- [RomhackCameraSettings](#RomhackCameraSettings)
|
||||
- [SPTask](#SPTask)
|
||||
- [ServerSettings](#ServerSettings)
|
||||
- [SoundState](#SoundState)
|
||||
|
|
@ -2971,6 +2972,25 @@
|
|||
|
||||
<br />
|
||||
|
||||
## [RomhackCameraSettings](#RomhackCameraSettings)
|
||||
|
||||
| Field | Type | Access |
|
||||
| ----- | ---- | ------ |
|
||||
| centering | `integer` | |
|
||||
| collisions | `integer` | |
|
||||
| dpad | `integer` | |
|
||||
| enable | [enum RomhackCameraOverride](constants.md#enum-RomhackCameraOverride) | |
|
||||
| modsOnly | `integer` | |
|
||||
| slowFall | `integer` | |
|
||||
| zoomedInDist | `integer` | |
|
||||
| zoomedInHeight | `integer` | |
|
||||
| zoomedOutDist | `integer` | |
|
||||
| zoomedOutHeight | `integer` | |
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [ServerSettings](#ServerSettings)
|
||||
|
||||
| Field | Type | Access |
|
||||
|
|
|
|||
|
|
@ -69,6 +69,22 @@ YES = "Ano"
|
|||
CAMERA = "KAMERA"
|
||||
FREE_CAMERA = "Volná kamera"
|
||||
ANALOG_CAMERA = "Analogová kamera"
|
||||
FREE_CAMERA_TITLE = "KAMERA ZDARMA"
|
||||
FREE_CAMERA_L_CENTERING = "L Centrování"
|
||||
FREE_CAMERA_USE_DPAD = "Chování DPad"
|
||||
FREE_CAMERA_COLLISION = "Kolize kamery"
|
||||
ROMHACK_CAMERA_TITLE = "ROMHACK\KAMERA"
|
||||
ROMHACK_CAMERA = "Romhack kamera"
|
||||
ROMHACK_CAMERA_IN_BOWSER = "Použít v soubojích s Bowserem"
|
||||
ROMHACK_CAMERA_COLLISION = "Kolize kamery"
|
||||
ROMHACK_CAMERA_L_CENTERING = "L Centrování"
|
||||
ROMHACK_CAMERA_USE_DPAD = "Chování DPadu"
|
||||
ROMHACK_CAMERA_SLOW_FALL = "Pomalý pád"
|
||||
ROMHACK_CAMERA_ZOOMED_IN_DIST = "Přiblížená vzdálenost"
|
||||
ROMHACK_CAMERA_ZOOMED_OUT_DIST = "Zvětšená vzdálenost“"
|
||||
ROMHACK_CAMERA_ZOOMED_IN_HEIGHT = "Přiblížená výška"
|
||||
ROMHACK_CAMERA_ZOOMED_OUT_HEIGHT = "Zvětšená výška"
|
||||
CAMERA_TOXIC_GAS = "Nastavení pro toxický plyn"
|
||||
MOUSE_LOOK = "Myš pro ovládání kamery"
|
||||
INVERT_X = "Převrátit X"
|
||||
INVERT_Y = "Převrátit Y"
|
||||
|
|
|
|||
|
|
@ -69,6 +69,22 @@ YES = "Ja"
|
|||
CAMERA = "CAMERA"
|
||||
FREE_CAMERA = "Vrije Camera"
|
||||
ANALOG_CAMERA = "Analoge Camera"
|
||||
FREE_CAMERA_TITLE = "GRATIS CAMERA"
|
||||
FREE_CAMERA_L_CENTERING = "L Centreren"
|
||||
FREE_CAMERA_USE_DPAD = "DPad-gedrag"
|
||||
FREE_CAMERA_COLLISION = "Camera-botsingen"
|
||||
ROMHACK_CAMERA_TITLE = "ROMHACK\nCAMERA"
|
||||
ROMHACK_CAMERA = "Romhack Camera"
|
||||
ROMHACK_CAMERA_IN_BOWSER = "Gebruik in Bowser-gevechten"
|
||||
ROMHACK_CAMERA_COLLISION = "Camera botsingen"
|
||||
ROMHACK_CAMERA_L_CENTERING = "L-centrering"
|
||||
ROMHACK_CAMERA_USE_DPAD = "DPad gedrag"
|
||||
ROMHACK_CAMERA_SLOW_FALL = "Langzame val"
|
||||
ROMHACK_CAMERA_ZOOMED_IN_DIST = "Ingezoomde afstand"
|
||||
ROMHACK_CAMERA_ZOOMED_OUT_DIST = "Uitzoom afstand"
|
||||
ROMHACK_CAMERA_ZOOMED_IN_HEIGHT = "Ingezoomde hoogte"
|
||||
ROMHACK_CAMERA_ZOOMED_OUT_HEIGHT = "Uitzoomhoogte"
|
||||
CAMERA_TOXIC_GAS = "Aanpassen voor giftig gas"
|
||||
MOUSE_LOOK = "Muis Camera"
|
||||
INVERT_X = "Keer X om"
|
||||
INVERT_Y = "Keer Y om"
|
||||
|
|
|
|||
|
|
@ -69,6 +69,22 @@ YES = "Yes"
|
|||
CAMERA = "CAMERA"
|
||||
FREE_CAMERA = "Free Camera"
|
||||
ANALOG_CAMERA = "Analog Camera"
|
||||
FREE_CAMERA_TITLE = "FREE CAMERA"
|
||||
FREE_CAMERA_L_CENTERING = "L Centering"
|
||||
FREE_CAMERA_USE_DPAD = "DPad Behavior"
|
||||
FREE_CAMERA_COLLISION = "Camera Collisions"
|
||||
ROMHACK_CAMERA_TITLE = "ROMHACK\nCAMERA"
|
||||
ROMHACK_CAMERA = "Romhack Camera"
|
||||
ROMHACK_CAMERA_IN_BOWSER = "Use in Bowser fights"
|
||||
ROMHACK_CAMERA_COLLISION = "Camera Collisions"
|
||||
ROMHACK_CAMERA_L_CENTERING = "L Centering"
|
||||
ROMHACK_CAMERA_USE_DPAD = "DPad Behavior"
|
||||
ROMHACK_CAMERA_SLOW_FALL = "Slow Fall"
|
||||
ROMHACK_CAMERA_ZOOMED_IN_DIST = "Zoomed In Distance"
|
||||
ROMHACK_CAMERA_ZOOMED_OUT_DIST = "Zoomed Out Distance"
|
||||
ROMHACK_CAMERA_ZOOMED_IN_HEIGHT = "Zoomed In Height"
|
||||
ROMHACK_CAMERA_ZOOMED_OUT_HEIGHT = "Zoomed Out Height"
|
||||
CAMERA_TOXIC_GAS = "Adjust for toxic gas"
|
||||
MOUSE_LOOK = "Mouse Look"
|
||||
INVERT_X = "Invert X"
|
||||
INVERT_Y = "Invert Y"
|
||||
|
|
|
|||
|
|
@ -69,6 +69,22 @@ YES = "Oui"
|
|||
CAMERA = "CAMÉRA"
|
||||
FREE_CAMERA = "Caméra Libre"
|
||||
ANALOG_CAMERA = "Caméra Analogique"
|
||||
FREE_CAMERA_TITLE = "CAMÉRA LIBRE"
|
||||
FREE_CAMERA_L_CENTERING = "Centrage en L"
|
||||
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_IN_BOWSER = "Utiliser dans les combats contre Bowser"
|
||||
ROMHACK_CAMERA_COLLISION = "Collisions de caméra"
|
||||
ROMHACK_CAMERA_L_CENTERING = "Centrage en L"
|
||||
ROMHACK_CAMERA_USE_DPAD = "Comportement du DPAD"
|
||||
ROMHACK_CAMERA_SLOW_FALL = "Chute lente"
|
||||
ROMHACK_CAMERA_ZOOMED_IN_DIST = "Distance zoomée"
|
||||
ROMHACK_CAMERA_ZOOMED_OUT_DIST = "Distance zoomée"
|
||||
ROMHACK_CAMERA_ZOOMED_IN_HEIGHT = "Hauteur du zoom avant"
|
||||
ROMHACK_CAMERA_ZOOMED_OUT_HEIGHT = "Hauteur du zoom arrière"
|
||||
CAMERA_TOXIC_GAS = "Ajustement pour les gaz toxiques"
|
||||
MOUSE_LOOK = "Souris comme Caméra"
|
||||
INVERT_X = "Inverser l'axe X"
|
||||
INVERT_Y = "Inverser l'axe Y"
|
||||
|
|
|
|||
|
|
@ -69,6 +69,22 @@ YES = "Ja"
|
|||
CAMERA = "KAMERA"
|
||||
FREE_CAMERA = "Freie Kamera"
|
||||
ANALOG_CAMERA = "Analoge Kamera"
|
||||
FREE_CAMERA_TITLE = "FREIE KAMERA"
|
||||
FREE_CAMERA_L_CENTERING = "L-Zentrierung"
|
||||
FREE_CAMERA_USE_DPAD = "DPad-Verhalten"
|
||||
FREE_CAMERA_COLLISION = "Kamerakollisionen"
|
||||
ROMHACK_CAMERA_TITLE = "ROMHACK\nKAMERA"
|
||||
ROMHACK_CAMERA = "Romhack-Kamera"
|
||||
ROMHACK_CAMERA_IN_BOWSER = "In Bowser-Kämpfen verwenden"
|
||||
ROMHACK_CAMERA_COLLISION = "Kamerakollisionen"
|
||||
ROMHACK_CAMERA_L_CENTERING = "L-Zentrierung"
|
||||
ROMHACK_CAMERA_USE_DPAD = "DPad-Verhalten"
|
||||
ROMHACK_CAMERA_SLOW_FALL = "Langsamer Fall"
|
||||
ROMHACK_CAMERA_ZOOMED_IN_DIST = "Vergrößerter Abstand"
|
||||
ROMHACK_CAMERA_ZOOMED_OUT_DIST = "Herausgezoomte Entfernung"
|
||||
ROMHACK_CAMERA_ZOOMED_IN_HEIGHT = "Vergrößerte Höhe"
|
||||
ROMHACK_CAMERA_ZOOMED_OUT_HEIGHT = "Herausgezoomte Höhe"
|
||||
CAMERA_TOXIC_GAS = "Einstellung für giftige Gase"
|
||||
MOUSE_LOOK = "Mausansicht"
|
||||
INVERT_X = "X invertieren"
|
||||
INVERT_Y = "Y invertieren"
|
||||
|
|
|
|||
|
|
@ -69,6 +69,22 @@ YES = "Si"
|
|||
CAMERA = "TELECAMERA"
|
||||
FREE_CAMERA = "Telecamera libera"
|
||||
ANALOG_CAMERA = "Telecamera analogica"
|
||||
FREE_CAMERA_TITLE = "FOTOCAMERA\nLIBERA"
|
||||
FREE_CAMERA_L_CENTERING = "Centratura a L"
|
||||
FREE_CAMERA_USE_DPAD = "Comportamento del DPad"
|
||||
FREE_CAMERA_COLLISION = "Collisioni della telecamera"
|
||||
ROMHACK_CAMERA_TITLE = "TELECAMERA\nROMHACK"
|
||||
ROMHACK_CAMERA = "Telecamera Romhack"
|
||||
ROMHACK_CAMERA_IN_BOWSER = "Da usare nei combattimenti con Bowser"
|
||||
ROMHACK_CAMERA_COLLISION = "Collisioni della telecamera"
|
||||
ROMHACK_CAMERA_L_CENTERING = "Centratura a L"
|
||||
ROMHACK_CAMERA_USE_DPAD = "Comportamento del DPad"
|
||||
ROMHACK_CAMERA_SLOW_FALL = "Caduta lenta"
|
||||
ROMHACK_CAMERA_ZOOMED_IN_DIST = "Distanza zoomata"
|
||||
ROMHACK_CAMERA_ZOOMED_OUT_DIST = "Distanza ingrandita"
|
||||
ROMHACK_CAMERA_ZOOMED_IN_HEIGHT = "Altezza ingrandita"
|
||||
ROMHACK_CAMERA_ZOOMED_OUT_HEIGHT = "Altezza ingrandimento"
|
||||
CAMERA_TOXIC_GAS = "Regola per i gas tossici"
|
||||
MOUSE_LOOK = "Telecamera con mouse"
|
||||
INVERT_X = "Inverti X"
|
||||
INVERT_Y = "Inverti Y"
|
||||
|
|
|
|||
|
|
@ -69,6 +69,22 @@ YES = "はい"
|
|||
CAMERA = "CAMERA"
|
||||
FREE_CAMERA = "フリーカメラ"
|
||||
ANALOG_CAMERA = "アナログカメラ"
|
||||
FREE_CAMERA_TITLE = "FREE CAMERA"
|
||||
FREE_CAMERA_L_CENTERING = "Lセンタリング"
|
||||
FREE_CAMERA_USE_DPAD = "DPad の動作"
|
||||
FREE_CAMERA_COLLISION = "カメラの衝突"
|
||||
ROMHACK_CAMERA_TITLE = "ROMHACK\nCAMERA"
|
||||
ROMHACK_CAMERA = "ロムハックカメラ"
|
||||
ROMHACK_CAMERA_IN_BOWSER = "クッパ戦で使用"
|
||||
ROMHACK_CAMERA_COLLISION = "カメラの衝突"
|
||||
ROMHACK_CAMERA_L_CENTERING = "Lセンタリング"
|
||||
ROMHACK_CAMERA_USE_DPAD = "DPad の動作"
|
||||
ROMHACK_CAMERA_SLOW_FALL = "スローフォール"
|
||||
ROMHACK_CAMERA_ZOOMED_IN_DIST = "ズームイン距離"
|
||||
ROMHACK_CAMERA_ZOOMED_OUT_DIST = "ズームアウトした距離"
|
||||
ROMHACK_CAMERA_ZOOMED_IN_HEIGHT = "ズームした高さ"
|
||||
ROMHACK_CAMERA_ZOOMED_OUT_HEIGHT = "ズームアウトした高さ"
|
||||
CAMERA_TOXIC_GAS = "有毒ガスの調整"
|
||||
MOUSE_LOOK = "マウスでの操作"
|
||||
INVERT_X = "X方向のカメラ反転"
|
||||
INVERT_Y = "Y方向のカメラ反転"
|
||||
|
|
|
|||
|
|
@ -69,6 +69,22 @@ YES = "Tak"
|
|||
CAMERA = "KAMERA"
|
||||
FREE_CAMERA = "Wolna Kamera"
|
||||
ANALOG_CAMERA = "Analogowa Kamera"
|
||||
FREE_CAMERA_TITLE = "DARMOWA\nKAMERA"
|
||||
FREE_CAMERA_L_CENTERING = "Wyśrodkowanie L"
|
||||
FREE_CAMERA_USE_DPAD = "Zachowanie DPada"
|
||||
FREE_CAMERA_COLLISION = "Kolizje kamery"
|
||||
ROMHACK_CAMERA_TITLE = "KAMERA\nROMHACK"
|
||||
ROMHACK_CAMERA = "Kamera Romhack"
|
||||
ROMHACK_CAMERA_IN_BOWSER = "Używaj w walkach z Bowserem"
|
||||
ROMHACK_CAMERA_COLLISION = "Kolizje kamery"
|
||||
ROMHACK_CAMERA_L_CENTERING = "Wyśrodkowanie L"
|
||||
ROMHACK_CAMERA_USE_DPAD = "Zachowanie DPada"
|
||||
ROMHACK_CAMERA_SLOW_FALL = "Powolne opadanie"
|
||||
ROMHACK_CAMERA_ZOOMED_IN_DIST = "Powiększona odległość"
|
||||
ROMHACK_CAMERA_ZOOMED_OUT_DIST = "Powiększona odległość"
|
||||
ROMHACK_CAMERA_ZOOMED_IN_HEIGHT = "Powiększona wysokość"
|
||||
ROMHACK_CAMERA_ZOOMED_OUT_HEIGHT = "Powiększona wysokość"
|
||||
CAMERA_TOXIC_GAS = "Dostosuj dla toksycznego gazu"
|
||||
MOUSE_LOOK = "Patrzenie Myszą"
|
||||
INVERT_X = "Odwróć Oś X"
|
||||
INVERT_Y = "Odwróć Oś Y"
|
||||
|
|
|
|||
|
|
@ -69,6 +69,22 @@ YES = "Sim"
|
|||
CAMERA = "CÂMERA"
|
||||
FREE_CAMERA = "Câmera livre"
|
||||
ANALOG_CAMERA = "Câmera analógica"
|
||||
FREE_CAMERA_TITLE = "CÂMARA LIVRE"
|
||||
FREE_CAMERA_L_CENTERING = "Centragem em L"
|
||||
FREE_CAMERA_USE_DPAD = "Comportamento do DPad"
|
||||
FREE_CAMERA_COLLISION = "Colisões de Câmara"
|
||||
ROMHACK_CAMERA_TITLE = "CÂMERA\nROMHACK"
|
||||
ROMHACK_CAMERA = "Câmera Romhack"
|
||||
ROMHACK_CAMERA_IN_BOWSER = "Usar em combates com o Bowser"
|
||||
ROMHACK_CAMERA_COLLISION = "Colisões de Câmara"
|
||||
ROMHACK_CAMERA_L_CENTERING = "Centragem em L"
|
||||
ROMHACK_CAMERA_USE_DPAD = "Comportamento do DPad"
|
||||
ROMHACK_CAMERA_SLOW_FALL = "Queda lenta"
|
||||
ROMHACK_CAMERA_ZOOMED_IN_DIST = "Distância de Ampliação"
|
||||
ROMHACK_CAMERA_ZOOMED_OUT_DIST = "Distância de zoom reduzido"
|
||||
ROMHACK_CAMERA_ZOOMED_IN_HEIGHT = "Altura da ampliação"
|
||||
ROMHACK_CAMERA_ZOOMED_OUT_HEIGHT = "Altura da ampliação"
|
||||
CAMERA_TOXIC_GAS = "Ajustar para gás tóxico"
|
||||
MOUSE_LOOK = "Movimento com mouse"
|
||||
INVERT_X = "Inverter eixo X"
|
||||
INVERT_Y = "Inverter eixo Y"
|
||||
|
|
|
|||
|
|
@ -69,6 +69,22 @@ YES = "Да"
|
|||
CAMERA = "CAMERA"
|
||||
FREE_CAMERA = "Свободная камера"
|
||||
ANALOG_CAMERA = "Аналоговая камера"
|
||||
FREE_CAMERA_TITLE = "FREE CAMERA"
|
||||
FREE_CAMERA_L_CENTERING = "Центрирование L"
|
||||
FREE_CAMERA_USE_DPAD = "Поведение DPad"
|
||||
FREE_CAMERA_COLLISION = "Коллизии камеры"
|
||||
ROMHACK_CAMERA_TITLE = "ROMHACK\nCAMERA"
|
||||
ROMHACK_CAMERA = "Камера Romhack"
|
||||
ROMHACK_CAMERA_IN_BOWSER = "Использовать в боях с Боузером"
|
||||
ROMHACK_CAMERA_COLLISION = "Коллизии камеры"
|
||||
ROMHACK_CAMERA_L_CENTERING = "Центрирование L"
|
||||
ROMHACK_CAMERA_USE_DPAD = "Поведение DPad"
|
||||
ROMHACK_CAMERA_SLOW_FALL = "Медленное падение"
|
||||
ROMHACK_CAMERA_ZOOMED_IN_DIST = "Расстояние приближения"
|
||||
ROMHACK_CAMERA_ZOOMED_OUT_DIST = "Увеличенное расстояние"
|
||||
ROMHACK_CAMERA_ZOOMED_IN_HEIGHT = "Увеличенная высота"
|
||||
ROMHACK_CAMERA_ZOOMED_OUT_HEIGHT = "Высота уменьшенного изображения"
|
||||
CAMERA_TOXIC_GAS = "Настроить на токсичный газ"
|
||||
MOUSE_LOOK = "Использовать мышь"
|
||||
INVERT_X = "Инвертировать X"
|
||||
INVERT_Y = "Инвертировать Y"
|
||||
|
|
|
|||
|
|
@ -69,6 +69,22 @@ YES = "Sí"
|
|||
CAMERA = "CÁMARA"
|
||||
FREE_CAMERA = "Cámara libre"
|
||||
ANALOG_CAMERA = "Cámara analógica"
|
||||
FREE_CAMERA_TITLE = "CÁMARA LIBRE"
|
||||
FREE_CAMERA_L_CENTERING = "Centrado L"
|
||||
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_IN_BOWSER = "Usar en peleas con Bowser"
|
||||
ROMHACK_CAMERA_COLLISION = "Colisiones de cámara"
|
||||
ROMHACK_CAMERA_L_CENTERING = "Centrado L"
|
||||
ROMHACK_CAMERA_USE_DPAD = "Comportamiento del DPad"
|
||||
ROMHACK_CAMERA_SLOW_FALL = "Caída lenta"
|
||||
ROMHACK_CAMERA_ZOOMED_IN_DIST = "Distancia ampliada"
|
||||
ROMHACK_CAMERA_ZOOMED_OUT_DIST = "Distancia de alejamiento"
|
||||
ROMHACK_CAMERA_ZOOMED_IN_HEIGHT = "Altura ampliada"
|
||||
ROMHACK_CAMERA_ZOOMED_OUT_HEIGHT = "Altura de reducción"
|
||||
CAMERA_TOXIC_GAS = "Ajuste para gases tóxicos"
|
||||
MOUSE_LOOK = "Movimiento con mouse"
|
||||
INVERT_X = "Invertir eje X"
|
||||
INVERT_Y = "Invertir eje Y"
|
||||
|
|
|
|||
|
|
@ -26,8 +26,6 @@ local sRoundEndTimeout = 3 * 60 * 30 -- three minutes
|
|||
local pauseExitTimer = 0
|
||||
local canLeave = false
|
||||
local sFlashingIndex = 0
|
||||
local puX = 0
|
||||
local puZ = 0
|
||||
local np = gNetworkPlayers[0]
|
||||
local cannonTimer = 0
|
||||
|
||||
|
|
@ -138,6 +136,14 @@ local function update()
|
|||
if network_is_server() then
|
||||
server_update()
|
||||
end
|
||||
|
||||
-- Force several camera configs
|
||||
camera_config_enable_camera_collisions(true)
|
||||
rom_hack_cam_set_collisions(1)
|
||||
camera_romhack_set_zoomed_in_dist(900)
|
||||
camera_romhack_set_zoomed_out_dist(1400)
|
||||
camera_romhack_set_zoomed_in_height(300)
|
||||
camera_romhack_set_zoomed_out_height(450)
|
||||
end
|
||||
|
||||
local function screen_transition(trans)
|
||||
|
|
@ -228,17 +234,7 @@ local function mario_update(m)
|
|||
end
|
||||
|
||||
-- pu prevention
|
||||
if m.pos.x >= 0 then
|
||||
puX = math_floor((8192 + m.pos.x) / 65536)
|
||||
else
|
||||
puX = math_ceil((-8192 + m.pos.x) / 65536)
|
||||
end
|
||||
if m.pos.z >= 0 then
|
||||
puZ = math_floor((8192 + m.pos.z) / 65536)
|
||||
else
|
||||
puZ = math_ceil((-8192 + m.pos.z) / 65536)
|
||||
end
|
||||
if puX ~= 0 or puZ ~= 0 then
|
||||
if m.playerIndex == 0 and (m.pos.x > 0x7FFF or m.pos.x < -0x8000 or m.pos.z > 0x7FFF or m.pos.z < -0x8000) then
|
||||
s.seeking = true
|
||||
warp_restart_level()
|
||||
end
|
||||
|
|
|
|||
|
|
@ -42,3 +42,6 @@ extern u16 newcam_intendedmode;
|
|||
|
||||
extern u16 newcam_mode;
|
||||
extern s16 newcam_yaw;
|
||||
|
||||
extern u8 gFreeCameraUseDpad;
|
||||
extern u8 gFreeCameraHasCollision;
|
||||
|
|
@ -119,6 +119,11 @@ u16 newcam_modeflags;
|
|||
s16 newcam_saved_mode = -1;
|
||||
s16 newcam_saved_defmode = -1;
|
||||
|
||||
u8 gFreeCameraUseDpad = FALSE;
|
||||
u8 gFreeCameraHasCollision = TRUE;
|
||||
u8 sFreeCameraDirectionLocked = FALSE;
|
||||
u8 sFreeCameraLCentering = TRUE;
|
||||
|
||||
extern bool gDjuiInMainMenu;
|
||||
|
||||
///This is called at every level initialisation.
|
||||
|
|
@ -186,15 +191,18 @@ void newcam_toggle(bool enabled) {
|
|||
|
||||
///These are the default settings for Puppycam. You may change them to change how they'll be set for first timers.
|
||||
void newcam_init_settings(void) {
|
||||
newcam_sensitivityX = newcam_clamp(camera_config_get_x_sensitivity(), 1, 100) * 5;
|
||||
newcam_sensitivityY = newcam_clamp(camera_config_get_y_sensitivity(), 1, 100) * 5;
|
||||
newcam_aggression = newcam_clamp(camera_config_get_aggression(), 0, 100);
|
||||
newcam_panlevel = newcam_clamp(camera_config_get_pan_level(), 0, 100);
|
||||
newcam_invertX = (s16)camera_config_is_x_inverted();
|
||||
newcam_invertY = (s16)camera_config_is_y_inverted();
|
||||
newcam_mouse = (u8)camera_config_is_mouse_look_enabled();
|
||||
newcam_analogue = (s16)camera_config_is_analog_cam_enabled();
|
||||
newcam_degrade = (f32)camera_config_get_deceleration();
|
||||
newcam_sensitivityX = newcam_clamp(camera_config_get_x_sensitivity(), 1, 100) * 5;
|
||||
newcam_sensitivityY = newcam_clamp(camera_config_get_y_sensitivity(), 1, 100) * 5;
|
||||
newcam_aggression = newcam_clamp(camera_config_get_aggression(), 0, 100);
|
||||
newcam_panlevel = newcam_clamp(camera_config_get_pan_level(), 0, 100);
|
||||
newcam_invertX = (s16)camera_config_is_x_inverted();
|
||||
newcam_invertY = (s16)camera_config_is_y_inverted();
|
||||
newcam_mouse = (u8)camera_config_is_mouse_look_enabled();
|
||||
newcam_analogue = (s16)camera_config_is_analog_cam_enabled();
|
||||
newcam_degrade = (f32)camera_config_get_deceleration();
|
||||
gFreeCameraUseDpad = (u8)camera_config_is_freecam_dpad_enabled();
|
||||
gFreeCameraHasCollision = (u8)camera_config_is_free_camera_collision_enabled();
|
||||
sFreeCameraLCentering = (u8)camera_config_get_centering();
|
||||
|
||||
// setup main menu camera
|
||||
if (gDjuiInMainMenu) { newcam_tilt = 5; }
|
||||
|
|
@ -203,15 +211,18 @@ void newcam_init_settings(void) {
|
|||
}
|
||||
|
||||
void newcam_init_settings_override(bool override) {
|
||||
newcam_sensitivityX = newcam_clamp(camera_config_get_x_sensitivity(), 1, 100) * 5;
|
||||
newcam_sensitivityY = newcam_clamp(camera_config_get_y_sensitivity(), 1, 100) * 5;
|
||||
newcam_aggression = newcam_clamp(camera_config_get_aggression(), 0, 100);
|
||||
newcam_panlevel = newcam_clamp(camera_config_get_pan_level(), 0, 100);
|
||||
newcam_invertX = (s16)camera_config_is_x_inverted();
|
||||
newcam_invertY = (s16)camera_config_is_y_inverted();
|
||||
newcam_mouse = (u8)camera_config_is_mouse_look_enabled();
|
||||
newcam_analogue = (s16)camera_config_is_analog_cam_enabled();
|
||||
newcam_degrade = (f32)camera_config_get_deceleration();
|
||||
newcam_sensitivityX = newcam_clamp(camera_config_get_x_sensitivity(), 1, 100) * 5;
|
||||
newcam_sensitivityY = newcam_clamp(camera_config_get_y_sensitivity(), 1, 100) * 5;
|
||||
newcam_aggression = newcam_clamp(camera_config_get_aggression(), 0, 100);
|
||||
newcam_panlevel = newcam_clamp(camera_config_get_pan_level(), 0, 100);
|
||||
newcam_invertX = (s16)camera_config_is_x_inverted();
|
||||
newcam_invertY = (s16)camera_config_is_y_inverted();
|
||||
newcam_mouse = (u8)camera_config_is_mouse_look_enabled();
|
||||
newcam_analogue = (s16)camera_config_is_analog_cam_enabled();
|
||||
newcam_degrade = (f32)camera_config_get_deceleration();
|
||||
gFreeCameraUseDpad = (u8)camera_config_is_freecam_dpad_enabled();
|
||||
gFreeCameraHasCollision = (u8)camera_config_is_free_camera_collision_enabled();
|
||||
sFreeCameraLCentering = (u8)camera_config_get_centering();
|
||||
|
||||
// setup main menu camera
|
||||
if (gDjuiInMainMenu) { newcam_tilt = 5; }
|
||||
|
|
@ -288,6 +299,7 @@ static int ivrt(u8 axis) {
|
|||
static void newcam_rotate_button(void) {
|
||||
f32 intendedXMag;
|
||||
f32 intendedYMag;
|
||||
s16 prevNewcamYaw = newcam_yaw_acc;
|
||||
|
||||
if ((newcam_modeflags & NC_FLAG_8D || newcam_modeflags & NC_FLAG_4D) && newcam_modeflags & NC_FLAG_XTURN) {
|
||||
//8 directional camera rotation input for buttons.
|
||||
|
|
@ -402,9 +414,30 @@ static void newcam_rotate_button(void) {
|
|||
}
|
||||
|
||||
if ((newcam_mouse == 1) && !gDjuiInMainMenu && !gDjuiChatBoxFocus && !gDjuiConsoleFocus) {
|
||||
newcam_yaw += ivrt(0) * mouse_x * 16;
|
||||
if (!gFreeCameraUseDpad || !sFreeCameraDirectionLocked) {
|
||||
newcam_yaw += ivrt(0) * mouse_x * 16;
|
||||
}
|
||||
newcam_tilt += ivrt(1) * mouse_y * 16;
|
||||
}
|
||||
|
||||
// Dpad behaviors
|
||||
if (gFreeCameraUseDpad) {
|
||||
// Make dpad up head to the nearest cardinal direction
|
||||
if (gPlayer1Controller->buttonPressed & U_JPAD) {
|
||||
newcam_yaw = snap_to_45_degrees(newcam_yaw);
|
||||
}
|
||||
// Make dpad left/right increment 45 degrees
|
||||
else if (gPlayer1Controller->buttonPressed & L_JPAD) { newcam_yaw += ivrt(0)*DEGREES(45); }
|
||||
else if (gPlayer1Controller->buttonPressed & R_JPAD) { newcam_yaw -= ivrt(0)*DEGREES(45); }
|
||||
// Make dpad down lock the current camera direction
|
||||
else if (gPlayer1Controller->buttonPressed & D_JPAD) {
|
||||
sFreeCameraDirectionLocked = !sFreeCameraDirectionLocked;
|
||||
}
|
||||
}
|
||||
|
||||
if (gFreeCameraUseDpad && sFreeCameraDirectionLocked) {
|
||||
newcam_yaw_acc = prevNewcamYaw;
|
||||
}
|
||||
}
|
||||
|
||||
static void newcam_zoom_button(void) {
|
||||
|
|
@ -426,7 +459,7 @@ static void newcam_zoom_button(void) {
|
|||
newcam_distance = newcam_distance_target;
|
||||
}
|
||||
|
||||
if ((gPlayer1Controller->buttonDown & L_TRIG) && (newcam_modeflags & NC_FLAG_ZOOM)) {
|
||||
if (sFreeCameraLCentering && (gPlayer1Controller->buttonDown & L_TRIG) && (newcam_modeflags & NC_FLAG_ZOOM)) {
|
||||
//When you press L, set the flag for centering the camera. Afterwards, start setting the yaw to the Player's yaw at the time.
|
||||
newcam_yaw_target = -gMarioStates[0].faceAngle[1]-0x4000;
|
||||
newcam_centering = 1;
|
||||
|
|
@ -692,7 +725,7 @@ static void newcam_position_cam(void) {
|
|||
newcam_lookat[2] = newcam_pos_target[2]-newcam_pan_z;
|
||||
|
||||
newcam_level_bounds();
|
||||
if (newcam_modeflags & NC_FLAG_COLLISION) {
|
||||
if (gFreeCameraHasCollision && newcam_modeflags & NC_FLAG_COLLISION) {
|
||||
newcam_collision();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -43,10 +43,33 @@
|
|||
static u8 sSoftResettingCamera = FALSE;
|
||||
u8 gCameraUseCourseSpecificSettings = TRUE;
|
||||
u8 gOverrideFreezeCamera = FALSE;
|
||||
enum RomhackCameraOverride gOverrideRomhackCamera = RCO_ALL;
|
||||
u8 gRomhackCameraAllowCentering = TRUE;
|
||||
u8 gOverrideAllowToxicGasCamera = FALSE;
|
||||
u8 gRomhackCameraAllowDpad = FALSE;
|
||||
|
||||
struct RomhackCameraSettings gRomhackCameraSettings = {
|
||||
.enable = RCO_ALL,
|
||||
.centering = FALSE,
|
||||
.collisions = FALSE,
|
||||
.dpad = FALSE,
|
||||
.slowFall = TRUE,
|
||||
.zoomedInDist = 900,
|
||||
.zoomedOutDist = 1400,
|
||||
.zoomedInHeight = 300,
|
||||
.zoomedOutHeight = 450,
|
||||
.modsOnly = FALSE
|
||||
};
|
||||
|
||||
void romhack_camera_reset_settings(void) {
|
||||
gRomhackCameraSettings.enable = RCO_ALL;
|
||||
gRomhackCameraSettings.centering = FALSE;
|
||||
gRomhackCameraSettings.collisions = FALSE;
|
||||
gRomhackCameraSettings.dpad = FALSE;
|
||||
gRomhackCameraSettings.slowFall = TRUE;
|
||||
gRomhackCameraSettings.zoomedInDist = 900;
|
||||
gRomhackCameraSettings.zoomedOutDist = 1400;
|
||||
gRomhackCameraSettings.zoomedInHeight = 300;
|
||||
gRomhackCameraSettings.zoomedOutHeight = 450;
|
||||
gRomhackCameraSettings.modsOnly = FALSE;
|
||||
}
|
||||
|
||||
/**
|
||||
* @file camera.c
|
||||
|
|
@ -3108,18 +3131,33 @@ void update_lakitu(struct Camera *c) {
|
|||
|
||||
extern bool gIsDemoActive;
|
||||
static void update_romhack_camera_override(struct Camera *c) {
|
||||
if (gOverrideRomhackCamera == RCO_NONE) { return; }
|
||||
if (c->mode == CAMERA_MODE_ROM_HACK) { return; }
|
||||
if (dynos_level_is_vanilla_level(gCurrLevelNum)) { return; }
|
||||
if (gRomhackCameraSettings.enable == RCO_NONE) { return; }
|
||||
else if (gRomhackCameraSettings.enable == RCO_DISABLE) {
|
||||
c->mode = c->defMode;
|
||||
set_camera_mode(c, c->defMode, 0);
|
||||
gRomhackCameraSettings.enable = RCO_NONE;
|
||||
return;
|
||||
}
|
||||
if (gIsDemoActive) { return; }
|
||||
|
||||
if (gOverrideRomhackCamera == RCO_ALL_EXCEPT_BOWSER) {
|
||||
if (gCurrLevelNum == LEVEL_BOWSER_1 || gCurrLevelNum == LEVEL_BOWSER_2 || gCurrLevelNum == LEVEL_BOWSER_3) {
|
||||
if ((gRomhackCameraSettings.enable != RCO_ALL_INCLUDING_VANILLA && gRomhackCameraSettings.enable != RCO_ALL_VANILLA_EXCEPT_BOWSER) &&
|
||||
dynos_level_is_vanilla_level(gCurrLevelNum)) {
|
||||
return;
|
||||
} else if ((gRomhackCameraSettings.enable == RCO_ALL_EXCEPT_BOWSER || gRomhackCameraSettings.enable == RCO_ALL_VANILLA_EXCEPT_BOWSER) &&
|
||||
(gCurrLevelNum == LEVEL_BOWSER_1 || gCurrLevelNum == LEVEL_BOWSER_2 || gCurrLevelNum == LEVEL_BOWSER_3)) {
|
||||
if (c->mode == CAMERA_MODE_ROM_HACK) {
|
||||
c->mode = c->defMode;
|
||||
set_camera_mode(c, c->defMode, 0);
|
||||
}
|
||||
return;
|
||||
} else {
|
||||
if (c->mode == CAMERA_MODE_BOSS_FIGHT) {
|
||||
set_camera_mode(c, CAMERA_MODE_ROM_HACK, 0);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (!allow_romhack_camera_override_mode(c->mode)) { return; }
|
||||
if (c->mode == CAMERA_MODE_ROM_HACK || !allow_romhack_camera_override_mode(c->mode)) { return; }
|
||||
|
||||
set_camera_mode(c, CAMERA_MODE_ROM_HACK, 0);
|
||||
}
|
||||
|
|
@ -3632,6 +3670,7 @@ void init_camera(struct Camera *c) {
|
|||
|
||||
newcam_init(c, sSoftResettingCamera);
|
||||
newcam_init_settings();
|
||||
romhack_camera_init_settings();
|
||||
|
||||
sSoftResettingCamera = FALSE;
|
||||
}
|
||||
|
|
@ -12142,7 +12181,6 @@ static u8 sRomHackZoom = 1;
|
|||
static s8 sRomHackIsUpdate = 0;
|
||||
static f32 sRomHackWaterFocus = 0;
|
||||
static f32 sRomHackWaterPitchOffset = 0;
|
||||
u8 gRomHackCamSetCollisions = TRUE;
|
||||
|
||||
s32 snap_to_45_degrees(s16 angle) {
|
||||
if (angle % DEGREES(45)) {
|
||||
|
|
@ -12159,14 +12197,27 @@ s32 snap_to_45_degrees(s16 angle) {
|
|||
return angle;
|
||||
}
|
||||
|
||||
void rom_hack_cam_set_collisions(u8 enable) {
|
||||
gRomHackCamSetCollisions = enable;
|
||||
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;
|
||||
gRomhackCameraSettings.enable = override;
|
||||
gCameraUseCourseSpecificSettings = (override == RCO_DISABLE && dynos_level_is_vanilla_level(gCurrLevelNum));
|
||||
gRomhackCameraSettings.collisions = configRomhackCameraHasCollision;
|
||||
gRomhackCameraSettings.centering = configRomhackCameraHasCentering;
|
||||
gRomhackCameraSettings.dpad = configRomhackCameraDpadBehavior;
|
||||
gOverrideAllowToxicGasCamera = configCameraToxicGas;
|
||||
gRomhackCameraSettings.slowFall = configRomhackCameraSlowFall;
|
||||
gRomhackCameraSettings.zoomedInDist = configRomhackCameraZoomedInDist;
|
||||
gRomhackCameraSettings.zoomedOutDist = configRomhackCameraZoomedOutDist;
|
||||
gRomhackCameraSettings.zoomedInHeight = configRomhackCameraZoomedInHeight;
|
||||
gRomhackCameraSettings.zoomedOutHeight = configRomhackCameraZoomedOutHeight;
|
||||
}
|
||||
|
||||
static u8 rom_hack_cam_can_see_mario(Vec3f desiredPos) {
|
||||
// do collision checking
|
||||
struct Surface *surf = NULL;
|
||||
if (!gRomHackCamSetCollisions) {
|
||||
if (!gRomhackCameraSettings.collisions) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -12306,7 +12357,7 @@ void mode_rom_hack_camera(struct Camera *c) {
|
|||
}
|
||||
|
||||
// Thank you hackersm64
|
||||
if (gRomhackCameraAllowDpad) {
|
||||
if (gRomhackCameraSettings.dpad) {
|
||||
if (gMarioStates[0].controller->buttonPressed & U_JPAD) {
|
||||
sRomHackYaw = DEGREES(180 + 90) - gMarioStates[0].faceAngle[1];
|
||||
} else if (gMarioStates[0].controller->buttonDown & L_JPAD) {
|
||||
|
|
@ -12319,12 +12370,12 @@ void mode_rom_hack_camera(struct Camera *c) {
|
|||
}
|
||||
|
||||
// center
|
||||
if (gMarioStates[0].controller->buttonPressed & L_TRIG && gRomhackCameraAllowCentering) {
|
||||
if (gMarioStates[0].controller->buttonPressed & L_TRIG && gRomhackCameraSettings.centering) {
|
||||
center_rom_hack_camera();
|
||||
}
|
||||
|
||||
// clamp yaw
|
||||
if (!gRomhackCameraAllowDpad) {
|
||||
if (!gRomhackCameraSettings.dpad) {
|
||||
sRomHackYaw = (sRomHackYaw / DEGREES(45)) * DEGREES(45);
|
||||
}
|
||||
|
||||
|
|
@ -12335,8 +12386,8 @@ void mode_rom_hack_camera(struct Camera *c) {
|
|||
sRomHackIsUpdate = 0;
|
||||
|
||||
// figure out desired position
|
||||
f32 desiredDist = sRomHackZoom ? 900 : 1400;
|
||||
f32 desiredHeight = sRomHackZoom ? 300 : 450;
|
||||
f32 desiredDist = sRomHackZoom ? gRomhackCameraSettings.zoomedInDist : gRomhackCameraSettings.zoomedInDist + gRomhackCameraSettings.zoomedOutDist;
|
||||
f32 desiredHeight = sRomHackZoom ? gRomhackCameraSettings.zoomedInHeight : gRomhackCameraSettings.zoomedInHeight + gRomhackCameraSettings.zoomedOutHeight;
|
||||
f32* mPos = &gMarioStates[0].pos[0];
|
||||
pos[0] = mPos[0] + coss(sRomHackYaw) * desiredDist;
|
||||
pos[1] = mPos[1] + desiredHeight;
|
||||
|
|
@ -12381,12 +12432,14 @@ void mode_rom_hack_camera(struct Camera *c) {
|
|||
|
||||
// tween
|
||||
c->pos[0] = c->pos[0] * 0.6 + oldPos[0] * 0.4;
|
||||
{
|
||||
if (gRomhackCameraSettings.slowFall) {
|
||||
f32 approachRate = 20.0f;
|
||||
f32 goalHeight = c->pos[1];
|
||||
approachRate += ABS(oldPos[1] - goalHeight) / 20;
|
||||
c->pos[1] = oldPos[1];
|
||||
approach_camera_height(c, goalHeight, approachRate);
|
||||
} else {
|
||||
c->pos[1] = c->pos[1] * 0.6 + oldPos[1] * 0.4;
|
||||
}
|
||||
c->pos[2] = c->pos[2] * 0.6 + oldPos[2] * 0.4;
|
||||
|
||||
|
|
@ -12404,6 +12457,8 @@ void mode_rom_hack_camera(struct Camera *c) {
|
|||
// update area yaw
|
||||
sAreaYaw = sRomHackYaw;
|
||||
sAreaYawChange = sAreaYaw - oldAreaYaw;
|
||||
|
||||
set_camera_height(c, c->pos[1]);
|
||||
}
|
||||
|
||||
s32 update_rom_hack_camera(struct Camera *c, Vec3f focus, Vec3f pos) {
|
||||
|
|
@ -12430,9 +12485,6 @@ s32 update_rom_hack_camera(struct Camera *c, Vec3f focus, Vec3f pos) {
|
|||
calc_y_to_curr_floor(&posY, 1.f, 200.f, &focusY, 0.9f, 200.f);
|
||||
focus_on_mario(focus, pos, posY + yOff, focusY + yOff, sLakituDist + baseDist, pitch, sAreaYaw);
|
||||
pan_ahead_of_player(c);
|
||||
if (gCameraUseCourseSpecificSettings && c->mode != CAMERA_MODE_ROM_HACK && gCurrLevelArea == AREA_DDD_SUB) {
|
||||
camYaw = clamp_positions_and_find_yaw(pos, focus, 6839.f, 995.f, 5994.f, -3945.f);
|
||||
}
|
||||
|
||||
// adjust focus when under water
|
||||
struct MarioState* m = &gMarioStates[0];
|
||||
|
|
|
|||
|
|
@ -14,13 +14,27 @@ enum RomhackCameraOverride {
|
|||
RCO_ALL,
|
||||
RCO_ALL_EXCEPT_BOWSER,
|
||||
RCO_NONE,
|
||||
RCO_ALL_INCLUDING_VANILLA,
|
||||
RCO_ALL_VANILLA_EXCEPT_BOWSER,
|
||||
RCO_DISABLE
|
||||
};
|
||||
|
||||
struct RomhackCameraSettings {
|
||||
enum RomhackCameraOverride enable;
|
||||
u8 centering;
|
||||
u8 dpad;
|
||||
u8 collisions;
|
||||
u8 slowFall;
|
||||
u32 zoomedInDist;
|
||||
u32 zoomedOutDist;
|
||||
u32 zoomedInHeight;
|
||||
u32 zoomedOutHeight;
|
||||
u8 modsOnly;
|
||||
};
|
||||
extern struct RomhackCameraSettings gRomhackCameraSettings;
|
||||
|
||||
extern u8 gOverrideFreezeCamera;
|
||||
extern enum RomhackCameraOverride gOverrideRomhackCamera;
|
||||
extern u8 gRomhackCameraAllowCentering;
|
||||
extern u8 gOverrideAllowToxicGasCamera;
|
||||
extern u8 gRomhackCameraAllowDpad;
|
||||
|
||||
/**
|
||||
* @file camera.h
|
||||
|
|
@ -1234,22 +1248,25 @@ This is useful for predefined static views in specific areas
|
|||
|descriptionEnd| */
|
||||
s32 set_camera_mode_fixed(struct Camera* c, s16 x, s16 y, s16 z);
|
||||
|
||||
/* |description|
|
||||
Takes in an SM64 angle unit and returns the nearest 45 degree angle, also in SM64 angle units.
|
||||
Useful when needing to align angles (camera, yaw, etc.)
|
||||
|descriptionEnd| */
|
||||
s32 snap_to_45_degrees(s16 angle);
|
||||
|
||||
/* |description|
|
||||
Toggles whether the camera uses course-specific settings.
|
||||
This is useful for enabling or disabling custom behaviors in specific courses or areas
|
||||
|descriptionEnd| */
|
||||
void camera_set_use_course_specific_settings(u8 enable);
|
||||
|
||||
/* |description|
|
||||
Toggles collision settings for the ROM hack camera.
|
||||
This enables or disables specific collision behaviors in modded levels
|
||||
|descriptionEnd| */
|
||||
void rom_hack_cam_set_collisions(u8 enable);
|
||||
|
||||
/* |description|
|
||||
Centers the ROM hack camera.
|
||||
This function is designed for non-standard level layouts and modded game environments
|
||||
|descriptionEnd| */
|
||||
void center_rom_hack_camera(void);
|
||||
|
||||
void romhack_camera_init_settings(void);
|
||||
void romhack_camera_reset_settings(void);
|
||||
|
||||
#endif // CAMERA_H
|
||||
|
|
|
|||
|
|
@ -126,16 +126,32 @@ bool configBackgroundGamepad = true;
|
|||
bool configDisableGamepads = false;
|
||||
bool configUseStandardKeyBindingsChat = false;
|
||||
// free camera settings
|
||||
bool configEnableCamera = false;
|
||||
bool configCameraAnalog = false;
|
||||
bool configEnableFreeCamera = false;
|
||||
bool configFreeCameraAnalog = false;
|
||||
bool configFreeCameraLCentering = false;
|
||||
bool configFreeCameraDpadBehavior = false;
|
||||
bool configFreeCameraHasCollision = true;
|
||||
bool configCameraMouse = false;
|
||||
bool configCameraInvertX = false;
|
||||
bool configCameraInvertY = true;
|
||||
unsigned int configCameraXSens = 50;
|
||||
unsigned int configCameraYSens = 50;
|
||||
unsigned int configCameraAggr = 0;
|
||||
unsigned int configCameraPan = 0;
|
||||
unsigned int configCameraDegrade = 50; // 0 - 100%
|
||||
// romhack camera settings
|
||||
bool configEnableRomhackCamera = false;
|
||||
bool configRomhackCameraBowserFights = false;
|
||||
bool configRomhackCameraHasCollision = false;
|
||||
bool configRomhackCameraHasCentering = false;
|
||||
bool configRomhackCameraDpadBehavior = false;
|
||||
bool configRomhackCameraSlowFall = true;
|
||||
bool configCameraToxicGas = true;
|
||||
unsigned int configRomhackCameraZoomedInDist = 900;
|
||||
unsigned int configRomhackCameraZoomedOutDist = 1400;
|
||||
unsigned int configRomhackCameraZoomedInHeight = 300;
|
||||
unsigned int configRomhackCameraZoomedOutHeight = 450;
|
||||
// common camera settings
|
||||
bool configCameraInvertX = false;
|
||||
bool configCameraInvertY = true;
|
||||
// debug
|
||||
bool configLuaProfiler = false;
|
||||
bool configDebugPrint = false;
|
||||
|
|
@ -253,8 +269,11 @@ static const struct ConfigOption options[] = {
|
|||
#endif
|
||||
{.name = "use_standard_key_bindings_chat", .type = CONFIG_TYPE_BOOL, .boolValue = &configUseStandardKeyBindingsChat},
|
||||
// free camera settings
|
||||
{.name = "bettercam_enable", .type = CONFIG_TYPE_BOOL, .boolValue = &configEnableCamera},
|
||||
{.name = "bettercam_analog", .type = CONFIG_TYPE_BOOL, .boolValue = &configCameraAnalog},
|
||||
{.name = "bettercam_enable", .type = CONFIG_TYPE_BOOL, .boolValue = &configEnableFreeCamera},
|
||||
{.name = "bettercam_analog", .type = CONFIG_TYPE_BOOL, .boolValue = &configFreeCameraAnalog},
|
||||
{.name = "bettercam_centering", .type = CONFIG_TYPE_BOOL, .boolValue = &configFreeCameraLCentering},
|
||||
{.name = "bettercam_dpad", .type = CONFIG_TYPE_BOOL, .boolValue = &configFreeCameraDpadBehavior},
|
||||
{.name = "bettercam_collision", .type = CONFIG_TYPE_BOOL, .boolValue = &configFreeCameraHasCollision},
|
||||
{.name = "bettercam_mouse_look", .type = CONFIG_TYPE_BOOL, .boolValue = &configCameraMouse},
|
||||
{.name = "bettercam_invertx", .type = CONFIG_TYPE_BOOL, .boolValue = &configCameraInvertX},
|
||||
{.name = "bettercam_inverty", .type = CONFIG_TYPE_BOOL, .boolValue = &configCameraInvertY},
|
||||
|
|
@ -263,6 +282,18 @@ static const struct ConfigOption options[] = {
|
|||
{.name = "bettercam_aggression", .type = CONFIG_TYPE_UINT, .uintValue = &configCameraAggr},
|
||||
{.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_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},
|
||||
{.name = "romhackcam_dpad", .type = CONFIG_TYPE_BOOL, .boolValue = &configRomhackCameraDpadBehavior},
|
||||
{.name = "romhackcam_slowfall", .type = CONFIG_TYPE_BOOL, .boolValue = &configRomhackCameraSlowFall},
|
||||
{.name = "romhackcam_toxic_gas", .type = CONFIG_TYPE_BOOL, .boolValue = &configCameraToxicGas},
|
||||
{.name = "romhackcam_zi_dist", .type = CONFIG_TYPE_UINT, .uintValue = &configRomhackCameraZoomedInDist},
|
||||
{.name = "romhackcam_zo_dist", .type = CONFIG_TYPE_UINT, .uintValue = &configRomhackCameraZoomedOutDist},
|
||||
{.name = "romhackcam_zi_height", .type = CONFIG_TYPE_UINT, .uintValue = &configRomhackCameraZoomedInHeight},
|
||||
{.name = "romhackcam_zo_height", .type = CONFIG_TYPE_UINT, .uintValue = &configRomhackCameraZoomedOutHeight},
|
||||
// debug
|
||||
{.name = "debug_offset", .type = CONFIG_TYPE_U64, .u64Value = &gPcDebug.bhvOffset},
|
||||
{.name = "debug_tags", .type = CONFIG_TYPE_U64, .u64Value = gPcDebug.tags},
|
||||
|
|
|
|||
|
|
@ -78,16 +78,32 @@ extern bool configBackgroundGamepad;
|
|||
extern bool configDisableGamepads;
|
||||
extern bool configUseStandardKeyBindingsChat;
|
||||
// free camera settings
|
||||
extern bool configEnableCamera;
|
||||
extern bool configCameraAnalog;
|
||||
extern bool configEnableFreeCamera;
|
||||
extern bool configFreeCameraAnalog;
|
||||
extern bool configFreeCameraLCentering;
|
||||
extern bool configFreeCameraDpadBehavior;
|
||||
extern bool configFreeCameraHasCollision;
|
||||
extern bool configCameraMouse;
|
||||
extern bool configCameraInvertX;
|
||||
extern bool configCameraInvertY;
|
||||
extern unsigned int configCameraXSens;
|
||||
extern unsigned int configCameraYSens;
|
||||
extern unsigned int configCameraAggr;
|
||||
extern unsigned int configCameraPan;
|
||||
extern unsigned int configCameraDegrade;
|
||||
// romhack camera settings
|
||||
extern bool configEnableRomhackCamera;
|
||||
extern bool configRomhackCameraBowserFights;
|
||||
extern bool configRomhackCameraHasCollision;
|
||||
extern bool configRomhackCameraHasCentering;
|
||||
extern bool configRomhackCameraDpadBehavior;
|
||||
extern bool configRomhackCameraSlowFall;
|
||||
extern bool configCameraToxicGas;
|
||||
extern unsigned int configRomhackCameraZoomedInDist;
|
||||
extern unsigned int configRomhackCameraZoomedOutDist;
|
||||
extern unsigned int configRomhackCameraZoomedInHeight;
|
||||
extern unsigned int configRomhackCameraZoomedOutHeight;
|
||||
// common camera settings
|
||||
extern bool configCameraInvertX;
|
||||
extern bool configCameraInvertY;
|
||||
// debug
|
||||
extern bool configLuaProfiler;
|
||||
extern bool configDebugPrint;
|
||||
|
|
|
|||
|
|
@ -7,27 +7,69 @@
|
|||
#include "game/first_person_cam.h"
|
||||
#include "pc/lua/utils/smlua_misc_utils.h"
|
||||
|
||||
static void djui_panel_camera_value_changed(UNUSED struct DjuiBase* caller) {
|
||||
static void djui_panel_free_camera_value_changed(UNUSED struct DjuiBase* caller) {
|
||||
newcam_init_settings();
|
||||
}
|
||||
|
||||
void djui_panel_camera_create(struct DjuiBase* caller) {
|
||||
struct DjuiThreePanel* panel = djui_panel_menu_create(DLANG(CAMERA, CAMERA), false);
|
||||
static void djui_panel_romhack_camera_value_changed(UNUSED struct DjuiBase* caller) {
|
||||
romhack_camera_init_settings();
|
||||
}
|
||||
|
||||
void djui_panel_free_camera_create(struct DjuiBase* caller) {
|
||||
struct DjuiThreePanel* panel = djui_panel_menu_create(DLANG(CAMERA, FREE_CAMERA_TITLE), false);
|
||||
struct DjuiBase* body = djui_three_panel_get_body(panel);
|
||||
{
|
||||
djui_checkbox_create(body, DLANG(CAMERA, FREE_CAMERA), &configEnableCamera, djui_panel_camera_value_changed);
|
||||
djui_checkbox_create(body, DLANG(CAMERA, ANALOG_CAMERA), &configCameraAnalog, djui_panel_camera_value_changed);
|
||||
djui_checkbox_create(body, DLANG(CAMERA, MOUSE_LOOK), &configCameraMouse, djui_panel_camera_value_changed);
|
||||
djui_checkbox_create(body, DLANG(CAMERA, INVERT_X), &configCameraInvertX, djui_panel_camera_value_changed);
|
||||
djui_checkbox_create(body, DLANG(CAMERA, INVERT_Y), &configCameraInvertY, djui_panel_camera_value_changed);
|
||||
djui_slider_create(body, DLANG(CAMERA, X_SENSITIVITY), &configCameraXSens, 1, 100, djui_panel_camera_value_changed);
|
||||
djui_slider_create(body, DLANG(CAMERA, Y_SENSITIVITY), &configCameraYSens, 1, 100, djui_panel_camera_value_changed);
|
||||
djui_slider_create(body, DLANG(CAMERA, AGGRESSION), &configCameraAggr, 0, 100, djui_panel_camera_value_changed);
|
||||
djui_slider_create(body, DLANG(CAMERA, PAN_LEVEL), &configCameraPan, 0, 100, djui_panel_camera_value_changed);
|
||||
djui_slider_create(body, DLANG(CAMERA, DECELERATION), &configCameraDegrade, 0, 100, djui_panel_camera_value_changed);
|
||||
djui_checkbox_create(body, DLANG(CAMERA, FREE_CAMERA), &configEnableFreeCamera, djui_panel_free_camera_value_changed);
|
||||
djui_checkbox_create(body, DLANG(CAMERA, ANALOG_CAMERA), &configFreeCameraAnalog, djui_panel_free_camera_value_changed);
|
||||
djui_checkbox_create(body, DLANG(CAMERA, ROMHACK_CAMERA_L_CENTERING), &configFreeCameraLCentering, djui_panel_free_camera_value_changed);
|
||||
djui_checkbox_create(body, DLANG(CAMERA, FREE_CAMERA_USE_DPAD), &configFreeCameraDpadBehavior, djui_panel_free_camera_value_changed);
|
||||
djui_checkbox_create(body, DLANG(CAMERA, FREE_CAMERA_COLLISION), &configFreeCameraHasCollision, djui_panel_free_camera_value_changed);
|
||||
djui_checkbox_create(body, DLANG(CAMERA, MOUSE_LOOK), &configCameraMouse, djui_panel_free_camera_value_changed);
|
||||
djui_slider_create(body, DLANG(CAMERA, X_SENSITIVITY), &configCameraXSens, 1, 100, djui_panel_free_camera_value_changed);
|
||||
djui_slider_create(body, DLANG(CAMERA, Y_SENSITIVITY), &configCameraYSens, 1, 100, djui_panel_free_camera_value_changed);
|
||||
djui_slider_create(body, DLANG(CAMERA, AGGRESSION), &configCameraAggr, 0, 100, djui_panel_free_camera_value_changed);
|
||||
djui_slider_create(body, DLANG(CAMERA, PAN_LEVEL), &configCameraPan, 0, 100, djui_panel_free_camera_value_changed);
|
||||
djui_slider_create(body, DLANG(CAMERA, DECELERATION), &configCameraDegrade, 0, 100, djui_panel_free_camera_value_changed);
|
||||
|
||||
djui_button_create(body, DLANG(MENU, BACK), DJUI_BUTTON_STYLE_BACK, djui_panel_menu_back);
|
||||
}
|
||||
|
||||
djui_panel_add(caller, panel, NULL);
|
||||
}
|
||||
|
||||
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);
|
||||
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);
|
||||
djui_checkbox_create(body, DLANG(CAMERA, ROMHACK_CAMERA_USE_DPAD), &configRomhackCameraDpadBehavior, djui_panel_romhack_camera_value_changed);
|
||||
djui_checkbox_create(body, DLANG(CAMERA, ROMHACK_CAMERA_SLOW_FALL), &configRomhackCameraSlowFall, djui_panel_romhack_camera_value_changed);
|
||||
djui_slider_create(body, DLANG(CAMERA, ROMHACK_CAMERA_ZOOMED_IN_DIST), &configRomhackCameraZoomedInDist, 700, 1200, djui_panel_romhack_camera_value_changed);
|
||||
djui_slider_create(body, DLANG(CAMERA, ROMHACK_CAMERA_ZOOMED_OUT_DIST), &configRomhackCameraZoomedOutDist, 100, 600, djui_panel_romhack_camera_value_changed);
|
||||
djui_slider_create(body, DLANG(CAMERA, ROMHACK_CAMERA_ZOOMED_IN_HEIGHT), &configRomhackCameraZoomedInHeight, 150, 500, djui_panel_romhack_camera_value_changed);
|
||||
djui_slider_create(body, DLANG(CAMERA, ROMHACK_CAMERA_ZOOMED_OUT_HEIGHT), &configRomhackCameraZoomedOutHeight, 100, 500, djui_panel_romhack_camera_value_changed);
|
||||
djui_checkbox_create(body, DLANG(CAMERA, CAMERA_TOXIC_GAS), &configCameraToxicGas, djui_panel_romhack_camera_value_changed);
|
||||
|
||||
djui_button_create(body, DLANG(MENU, BACK), DJUI_BUTTON_STYLE_BACK, djui_panel_menu_back);
|
||||
}
|
||||
|
||||
djui_panel_add(caller, panel, NULL);
|
||||
}
|
||||
|
||||
void djui_panel_camera_create(struct DjuiBase* caller) {
|
||||
struct DjuiThreePanel* panel = djui_panel_menu_create(DLANG(CAMERA, CAMERA), false);
|
||||
struct DjuiBase* body = djui_three_panel_get_body(panel);
|
||||
{
|
||||
djui_button_create(body, DLANG(CAMERA, FREE_CAMERA), DJUI_BUTTON_STYLE_NORMAL, djui_panel_free_camera_create);
|
||||
djui_button_create(body, DLANG(CAMERA, ROMHACK_CAMERA), DJUI_BUTTON_STYLE_NORMAL, djui_panel_romhack_camera_create);
|
||||
djui_checkbox_create(body, DLANG(CAMERA, INVERT_X), &configCameraInvertX, djui_panel_free_camera_value_changed);
|
||||
djui_checkbox_create(body, DLANG(CAMERA, INVERT_Y), &configCameraInvertY, djui_panel_free_camera_value_changed);
|
||||
|
||||
djui_button_create(body, DLANG(MENU, BACK), DJUI_BUTTON_STYLE_BACK, djui_panel_menu_back);
|
||||
}
|
||||
|
||||
djui_panel_add(caller, panel, NULL);
|
||||
}
|
||||
|
|
@ -1,4 +1,5 @@
|
|||
#pragma once
|
||||
#include "djui.h"
|
||||
|
||||
void djui_panel_camera_create(struct DjuiBase* caller);
|
||||
void djui_panel_free_camera_create(struct DjuiBase* caller);
|
||||
void djui_panel_camera_create(struct DjuiBase* caller);
|
||||
|
|
@ -2545,6 +2545,20 @@ static struct LuaObjectField sRayIntersectionInfoFields[LUA_RAY_INTERSECTION_INF
|
|||
{ "surface", LVT_COBJECT_P, offsetof(struct RayIntersectionInfo, surface), false, LOT_SURFACE, 1, sizeof(struct Surface*) },
|
||||
};
|
||||
|
||||
#define LUA_ROMHACK_CAMERA_SETTINGS_FIELD_COUNT 10
|
||||
static struct LuaObjectField sRomhackCameraSettingsFields[LUA_ROMHACK_CAMERA_SETTINGS_FIELD_COUNT] = {
|
||||
{ "centering", LVT_U8, offsetof(struct RomhackCameraSettings, centering), false, LOT_NONE, 1, sizeof(u8) },
|
||||
{ "collisions", LVT_U8, offsetof(struct RomhackCameraSettings, collisions), false, LOT_NONE, 1, sizeof(u8) },
|
||||
{ "dpad", LVT_U8, offsetof(struct RomhackCameraSettings, dpad), false, LOT_NONE, 1, sizeof(u8) },
|
||||
{ "enable", LVT_S32, offsetof(struct RomhackCameraSettings, enable), false, LOT_NONE, 1, sizeof(enum RomhackCameraOverride) },
|
||||
{ "modsOnly", LVT_U8, offsetof(struct RomhackCameraSettings, modsOnly), false, LOT_NONE, 1, sizeof(u8) },
|
||||
{ "slowFall", LVT_U8, offsetof(struct RomhackCameraSettings, slowFall), false, LOT_NONE, 1, sizeof(u8) },
|
||||
{ "zoomedInDist", LVT_U32, offsetof(struct RomhackCameraSettings, zoomedInDist), false, LOT_NONE, 1, sizeof(u32) },
|
||||
{ "zoomedInHeight", LVT_U32, offsetof(struct RomhackCameraSettings, zoomedInHeight), false, LOT_NONE, 1, sizeof(u32) },
|
||||
{ "zoomedOutDist", LVT_U32, offsetof(struct RomhackCameraSettings, zoomedOutDist), false, LOT_NONE, 1, sizeof(u32) },
|
||||
{ "zoomedOutHeight", LVT_U32, offsetof(struct RomhackCameraSettings, zoomedOutHeight), false, LOT_NONE, 1, sizeof(u32) },
|
||||
};
|
||||
|
||||
#define LUA_SERVER_SETTINGS_FIELD_COUNT 13
|
||||
static struct LuaObjectField sServerSettingsFields[LUA_SERVER_SETTINGS_FIELD_COUNT] = {
|
||||
{ "bouncyLevelBounds", LVT_S32, offsetof(struct ServerSettings, bouncyLevelBounds), false, LOT_NONE, 1, sizeof(enum BouncyLevelBounds) },
|
||||
|
|
@ -2867,6 +2881,7 @@ struct LuaObjectTable sLuaObjectAutogenTable[LOT_AUTOGEN_MAX - LOT_AUTOGEN_MIN]
|
|||
{ LOT_PLAYERGEOMETRY, sPlayerGeometryFields, LUA_PLAYER_GEOMETRY_FIELD_COUNT },
|
||||
{ LOT_PLAYERPALETTE, sPlayerPaletteFields, LUA_PLAYER_PALETTE_FIELD_COUNT },
|
||||
{ LOT_RAYINTERSECTIONINFO, sRayIntersectionInfoFields, LUA_RAY_INTERSECTION_INFO_FIELD_COUNT },
|
||||
{ LOT_ROMHACKCAMERASETTINGS, sRomhackCameraSettingsFields, LUA_ROMHACK_CAMERA_SETTINGS_FIELD_COUNT },
|
||||
{ LOT_SERVERSETTINGS, sServerSettingsFields, LUA_SERVER_SETTINGS_FIELD_COUNT },
|
||||
{ LOT_SOUNDSTATE, sSoundStateFields, LUA_SOUND_STATE_FIELD_COUNT },
|
||||
{ LOT_SPAWNINFO, sSpawnInfoFields, LUA_SPAWN_INFO_FIELD_COUNT },
|
||||
|
|
|
|||
|
|
@ -106,6 +106,7 @@ enum LuaObjectAutogenType {
|
|||
LOT_PLAYERGEOMETRY,
|
||||
LOT_PLAYERPALETTE,
|
||||
LOT_RAYINTERSECTIONINFO,
|
||||
LOT_ROMHACKCAMERASETTINGS,
|
||||
LOT_SERVERSETTINGS,
|
||||
LOT_SOUNDSTATE,
|
||||
LOT_SPAWNINFO,
|
||||
|
|
|
|||
|
|
@ -837,6 +837,9 @@ char gSmluaConstants[] = ""
|
|||
"RCO_ALL=0\n"
|
||||
"RCO_ALL_EXCEPT_BOWSER=1\n"
|
||||
"RCO_NONE=2\n"
|
||||
"RCO_ALL_INCLUDING_VANILLA=3\n"
|
||||
"RCO_ALL_VANILLA_EXCEPT_BOWSER=4\n"
|
||||
"RCO_DISABLE=5\n"
|
||||
"CAM_MODE_MARIO_ACTIVE=0x01\n"
|
||||
"CAM_MODE_LAKITU_WAS_ZOOMED_OUT=0x02\n"
|
||||
"CAM_MODE_MARIO_SELECTED=0x04\n"
|
||||
|
|
|
|||
|
|
@ -11071,23 +11071,6 @@ int smlua_func_resolve_geometry_collisions(lua_State* L) {
|
|||
return 1;
|
||||
}
|
||||
|
||||
int smlua_func_rom_hack_cam_set_collisions(lua_State* L) {
|
||||
if (L == NULL) { return 0; }
|
||||
|
||||
int top = lua_gettop(L);
|
||||
if (top != 1) {
|
||||
LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "rom_hack_cam_set_collisions", 1, top);
|
||||
return 0;
|
||||
}
|
||||
|
||||
u8 enable = smlua_to_integer(L, 1);
|
||||
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "rom_hack_cam_set_collisions"); return 0; }
|
||||
|
||||
rom_hack_cam_set_collisions(enable);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int smlua_func_rotate_camera_around_walls(lua_State* L) {
|
||||
if (L == NULL) { return 0; }
|
||||
|
||||
|
|
@ -11716,6 +11699,23 @@ int smlua_func_skip_camera_interpolation(UNUSED lua_State* L) {
|
|||
return 1;
|
||||
}
|
||||
|
||||
int smlua_func_snap_to_45_degrees(lua_State* L) {
|
||||
if (L == NULL) { return 0; }
|
||||
|
||||
int top = lua_gettop(L);
|
||||
if (top != 1) {
|
||||
LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "snap_to_45_degrees", 1, top);
|
||||
return 0;
|
||||
}
|
||||
|
||||
s16 angle = smlua_to_integer(L, 1);
|
||||
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "snap_to_45_degrees"); return 0; }
|
||||
|
||||
lua_pushinteger(L, snap_to_45_degrees(angle));
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int smlua_func_soft_reset_camera(lua_State* L) {
|
||||
if (L == NULL) { return 0; }
|
||||
|
||||
|
|
@ -27476,6 +27476,40 @@ int smlua_func_camera_config_enable_analog_cam(lua_State* L) {
|
|||
return 1;
|
||||
}
|
||||
|
||||
int smlua_func_camera_config_enable_camera_collisions(lua_State* L) {
|
||||
if (L == NULL) { return 0; }
|
||||
|
||||
int top = lua_gettop(L);
|
||||
if (top != 1) {
|
||||
LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "camera_config_enable_camera_collisions", 1, top);
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool enable = smlua_to_boolean(L, 1);
|
||||
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "camera_config_enable_camera_collisions"); return 0; }
|
||||
|
||||
camera_config_enable_camera_collisions(enable);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int smlua_func_camera_config_enable_centering(lua_State* L) {
|
||||
if (L == NULL) { return 0; }
|
||||
|
||||
int top = lua_gettop(L);
|
||||
if (top != 1) {
|
||||
LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "camera_config_enable_centering", 1, top);
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool enable = smlua_to_boolean(L, 1);
|
||||
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "camera_config_enable_centering"); return 0; }
|
||||
|
||||
camera_config_enable_centering(enable);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int smlua_func_camera_config_enable_free_cam(lua_State* L) {
|
||||
if (L == NULL) { return 0; }
|
||||
|
||||
|
|
@ -27493,6 +27527,23 @@ int smlua_func_camera_config_enable_free_cam(lua_State* L) {
|
|||
return 1;
|
||||
}
|
||||
|
||||
int smlua_func_camera_config_enable_freecam_dpad(lua_State* L) {
|
||||
if (L == NULL) { return 0; }
|
||||
|
||||
int top = lua_gettop(L);
|
||||
if (top != 1) {
|
||||
LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "camera_config_enable_freecam_dpad", 1, top);
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool enable = smlua_to_boolean(L, 1);
|
||||
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "camera_config_enable_freecam_dpad"); return 0; }
|
||||
|
||||
camera_config_enable_freecam_dpad(enable);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int smlua_func_camera_config_enable_mouse_look(lua_State* L) {
|
||||
if (L == NULL) { return 0; }
|
||||
|
||||
|
|
@ -27525,6 +27576,21 @@ int smlua_func_camera_config_get_aggression(UNUSED lua_State* L) {
|
|||
return 1;
|
||||
}
|
||||
|
||||
int smlua_func_camera_config_get_centering(UNUSED lua_State* L) {
|
||||
if (L == NULL) { return 0; }
|
||||
|
||||
int top = lua_gettop(L);
|
||||
if (top != 0) {
|
||||
LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "camera_config_get_centering", 0, top);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
lua_pushboolean(L, camera_config_get_centering());
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int smlua_func_camera_config_get_deceleration(UNUSED lua_State* L) {
|
||||
if (L == NULL) { return 0; }
|
||||
|
||||
|
|
@ -27649,6 +27715,36 @@ int smlua_func_camera_config_is_free_cam_enabled(UNUSED lua_State* L) {
|
|||
return 1;
|
||||
}
|
||||
|
||||
int smlua_func_camera_config_is_free_camera_collision_enabled(UNUSED lua_State* L) {
|
||||
if (L == NULL) { return 0; }
|
||||
|
||||
int top = lua_gettop(L);
|
||||
if (top != 0) {
|
||||
LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "camera_config_is_free_camera_collision_enabled", 0, top);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
lua_pushboolean(L, camera_config_is_free_camera_collision_enabled());
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int smlua_func_camera_config_is_freecam_dpad_enabled(UNUSED lua_State* L) {
|
||||
if (L == NULL) { return 0; }
|
||||
|
||||
int top = lua_gettop(L);
|
||||
if (top != 0) {
|
||||
LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "camera_config_is_freecam_dpad_enabled", 0, top);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
lua_pushboolean(L, camera_config_is_freecam_dpad_enabled());
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int smlua_func_camera_config_is_mouse_look_enabled(UNUSED lua_State* L) {
|
||||
if (L == NULL) { return 0; }
|
||||
|
||||
|
|
@ -27794,6 +27890,21 @@ int smlua_func_camera_freeze(UNUSED lua_State* L) {
|
|||
return 1;
|
||||
}
|
||||
|
||||
int smlua_func_camera_get_allow_toxic_gas_camera(UNUSED lua_State* L) {
|
||||
if (L == NULL) { return 0; }
|
||||
|
||||
int top = lua_gettop(L);
|
||||
if (top != 0) {
|
||||
LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "camera_get_allow_toxic_gas_camera", 0, top);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
lua_pushinteger(L, camera_get_allow_toxic_gas_camera());
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int smlua_func_camera_get_checking_surfaces(UNUSED lua_State* L) {
|
||||
if (L == NULL) { return 0; }
|
||||
|
||||
|
|
@ -27809,6 +27920,21 @@ int smlua_func_camera_get_checking_surfaces(UNUSED lua_State* L) {
|
|||
return 1;
|
||||
}
|
||||
|
||||
int smlua_func_camera_get_romhack_override(UNUSED lua_State* L) {
|
||||
if (L == NULL) { return 0; }
|
||||
|
||||
int top = lua_gettop(L);
|
||||
if (top != 0) {
|
||||
LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "camera_get_romhack_override", 0, top);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
lua_pushinteger(L, camera_get_romhack_override());
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int smlua_func_camera_is_frozen(UNUSED lua_State* L) {
|
||||
if (L == NULL) { return 0; }
|
||||
|
||||
|
|
@ -27873,6 +27999,196 @@ int smlua_func_camera_romhack_allow_dpad_usage(lua_State* L) {
|
|||
return 1;
|
||||
}
|
||||
|
||||
int smlua_func_camera_romhack_allow_only_mods(lua_State* L) {
|
||||
if (L == NULL) { return 0; }
|
||||
|
||||
int top = lua_gettop(L);
|
||||
if (top != 1) {
|
||||
LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "camera_romhack_allow_only_mods", 1, top);
|
||||
return 0;
|
||||
}
|
||||
|
||||
u8 allow = smlua_to_integer(L, 1);
|
||||
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "camera_romhack_allow_only_mods"); return 0; }
|
||||
|
||||
camera_romhack_allow_only_mods(allow);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int smlua_func_camera_romhack_get_allow_centering(UNUSED lua_State* L) {
|
||||
if (L == NULL) { return 0; }
|
||||
|
||||
int top = lua_gettop(L);
|
||||
if (top != 0) {
|
||||
LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "camera_romhack_get_allow_centering", 0, top);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
lua_pushinteger(L, camera_romhack_get_allow_centering());
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int smlua_func_camera_romhack_get_allow_dpad_usage(UNUSED lua_State* L) {
|
||||
if (L == NULL) { return 0; }
|
||||
|
||||
int top = lua_gettop(L);
|
||||
if (top != 0) {
|
||||
LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "camera_romhack_get_allow_dpad_usage", 0, top);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
lua_pushinteger(L, camera_romhack_get_allow_dpad_usage());
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int smlua_func_camera_romhack_get_collisions(UNUSED lua_State* L) {
|
||||
if (L == NULL) { return 0; }
|
||||
|
||||
int top = lua_gettop(L);
|
||||
if (top != 0) {
|
||||
LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "camera_romhack_get_collisions", 0, top);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
lua_pushinteger(L, camera_romhack_get_collisions());
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int smlua_func_camera_romhack_get_zoomed_in_dist(UNUSED lua_State* L) {
|
||||
if (L == NULL) { return 0; }
|
||||
|
||||
int top = lua_gettop(L);
|
||||
if (top != 0) {
|
||||
LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "camera_romhack_get_zoomed_in_dist", 0, top);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
lua_pushinteger(L, camera_romhack_get_zoomed_in_dist());
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int smlua_func_camera_romhack_get_zoomed_in_height(UNUSED lua_State* L) {
|
||||
if (L == NULL) { return 0; }
|
||||
|
||||
int top = lua_gettop(L);
|
||||
if (top != 0) {
|
||||
LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "camera_romhack_get_zoomed_in_height", 0, top);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
lua_pushinteger(L, camera_romhack_get_zoomed_in_height());
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int smlua_func_camera_romhack_get_zoomed_out_dist(UNUSED lua_State* L) {
|
||||
if (L == NULL) { return 0; }
|
||||
|
||||
int top = lua_gettop(L);
|
||||
if (top != 0) {
|
||||
LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "camera_romhack_get_zoomed_out_dist", 0, top);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
lua_pushinteger(L, camera_romhack_get_zoomed_out_dist());
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int smlua_func_camera_romhack_get_zoomed_out_height(UNUSED lua_State* L) {
|
||||
if (L == NULL) { return 0; }
|
||||
|
||||
int top = lua_gettop(L);
|
||||
if (top != 0) {
|
||||
LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "camera_romhack_get_zoomed_out_height", 0, top);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
lua_pushinteger(L, camera_romhack_get_zoomed_out_height());
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int smlua_func_camera_romhack_set_zoomed_in_dist(lua_State* L) {
|
||||
if (L == NULL) { return 0; }
|
||||
|
||||
int top = lua_gettop(L);
|
||||
if (top != 1) {
|
||||
LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "camera_romhack_set_zoomed_in_dist", 1, top);
|
||||
return 0;
|
||||
}
|
||||
|
||||
u32 val = smlua_to_integer(L, 1);
|
||||
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "camera_romhack_set_zoomed_in_dist"); return 0; }
|
||||
|
||||
camera_romhack_set_zoomed_in_dist(val);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int smlua_func_camera_romhack_set_zoomed_in_height(lua_State* L) {
|
||||
if (L == NULL) { return 0; }
|
||||
|
||||
int top = lua_gettop(L);
|
||||
if (top != 1) {
|
||||
LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "camera_romhack_set_zoomed_in_height", 1, top);
|
||||
return 0;
|
||||
}
|
||||
|
||||
u32 val = smlua_to_integer(L, 1);
|
||||
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "camera_romhack_set_zoomed_in_height"); return 0; }
|
||||
|
||||
camera_romhack_set_zoomed_in_height(val);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int smlua_func_camera_romhack_set_zoomed_out_dist(lua_State* L) {
|
||||
if (L == NULL) { return 0; }
|
||||
|
||||
int top = lua_gettop(L);
|
||||
if (top != 1) {
|
||||
LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "camera_romhack_set_zoomed_out_dist", 1, top);
|
||||
return 0;
|
||||
}
|
||||
|
||||
u32 val = smlua_to_integer(L, 1);
|
||||
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "camera_romhack_set_zoomed_out_dist"); return 0; }
|
||||
|
||||
camera_romhack_set_zoomed_out_dist(val);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int smlua_func_camera_romhack_set_zoomed_out_height(lua_State* L) {
|
||||
if (L == NULL) { return 0; }
|
||||
|
||||
int top = lua_gettop(L);
|
||||
if (top != 1) {
|
||||
LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "camera_romhack_set_zoomed_out_height", 1, top);
|
||||
return 0;
|
||||
}
|
||||
|
||||
u32 val = smlua_to_integer(L, 1);
|
||||
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "camera_romhack_set_zoomed_out_height"); return 0; }
|
||||
|
||||
camera_romhack_set_zoomed_out_height(val);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int smlua_func_camera_set_checking_surfaces(lua_State* L) {
|
||||
if (L == NULL) { return 0; }
|
||||
|
||||
|
|
@ -27922,6 +28238,23 @@ int smlua_func_camera_unfreeze(UNUSED lua_State* L) {
|
|||
return 1;
|
||||
}
|
||||
|
||||
int smlua_func_rom_hack_cam_set_collisions(lua_State* L) {
|
||||
if (L == NULL) { return 0; }
|
||||
|
||||
int top = lua_gettop(L);
|
||||
if (top != 1) {
|
||||
LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "rom_hack_cam_set_collisions", 1, top);
|
||||
return 0;
|
||||
}
|
||||
|
||||
u8 enable = smlua_to_integer(L, 1);
|
||||
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "rom_hack_cam_set_collisions"); return 0; }
|
||||
|
||||
rom_hack_cam_set_collisions(enable);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/////////////////////////////
|
||||
// smlua_collision_utils.h //
|
||||
/////////////////////////////
|
||||
|
|
@ -32805,7 +33138,6 @@ void smlua_bind_functions_autogen(void) {
|
|||
smlua_bind_function(L, "random_vec3s", smlua_func_random_vec3s);
|
||||
smlua_bind_function(L, "reset_camera", smlua_func_reset_camera);
|
||||
smlua_bind_function(L, "resolve_geometry_collisions", smlua_func_resolve_geometry_collisions);
|
||||
smlua_bind_function(L, "rom_hack_cam_set_collisions", smlua_func_rom_hack_cam_set_collisions);
|
||||
smlua_bind_function(L, "rotate_camera_around_walls", smlua_func_rotate_camera_around_walls);
|
||||
smlua_bind_function(L, "rotate_in_xz", smlua_func_rotate_in_xz);
|
||||
smlua_bind_function(L, "rotate_in_yz", smlua_func_rotate_in_yz);
|
||||
|
|
@ -32834,6 +33166,7 @@ void smlua_bind_functions_autogen(void) {
|
|||
smlua_bind_function(L, "shake_camera_roll", smlua_func_shake_camera_roll);
|
||||
smlua_bind_function(L, "shake_camera_yaw", smlua_func_shake_camera_yaw);
|
||||
smlua_bind_function(L, "skip_camera_interpolation", smlua_func_skip_camera_interpolation);
|
||||
smlua_bind_function(L, "snap_to_45_degrees", smlua_func_snap_to_45_degrees);
|
||||
smlua_bind_function(L, "soft_reset_camera", smlua_func_soft_reset_camera);
|
||||
smlua_bind_function(L, "start_cutscene", smlua_func_start_cutscene);
|
||||
smlua_bind_function(L, "start_object_cutscene_without_focus", smlua_func_start_object_cutscene_without_focus);
|
||||
|
|
@ -33710,9 +34043,13 @@ void smlua_bind_functions_autogen(void) {
|
|||
// smlua_camera_utils.h
|
||||
smlua_bind_function(L, "camera_allow_toxic_gas_camera", smlua_func_camera_allow_toxic_gas_camera);
|
||||
smlua_bind_function(L, "camera_config_enable_analog_cam", smlua_func_camera_config_enable_analog_cam);
|
||||
smlua_bind_function(L, "camera_config_enable_camera_collisions", smlua_func_camera_config_enable_camera_collisions);
|
||||
smlua_bind_function(L, "camera_config_enable_centering", smlua_func_camera_config_enable_centering);
|
||||
smlua_bind_function(L, "camera_config_enable_free_cam", smlua_func_camera_config_enable_free_cam);
|
||||
smlua_bind_function(L, "camera_config_enable_freecam_dpad", smlua_func_camera_config_enable_freecam_dpad);
|
||||
smlua_bind_function(L, "camera_config_enable_mouse_look", smlua_func_camera_config_enable_mouse_look);
|
||||
smlua_bind_function(L, "camera_config_get_aggression", smlua_func_camera_config_get_aggression);
|
||||
smlua_bind_function(L, "camera_config_get_centering", smlua_func_camera_config_get_centering);
|
||||
smlua_bind_function(L, "camera_config_get_deceleration", smlua_func_camera_config_get_deceleration);
|
||||
smlua_bind_function(L, "camera_config_get_pan_level", smlua_func_camera_config_get_pan_level);
|
||||
smlua_bind_function(L, "camera_config_get_x_sensitivity", smlua_func_camera_config_get_x_sensitivity);
|
||||
|
|
@ -33721,6 +34058,8 @@ void smlua_bind_functions_autogen(void) {
|
|||
smlua_bind_function(L, "camera_config_invert_y", smlua_func_camera_config_invert_y);
|
||||
smlua_bind_function(L, "camera_config_is_analog_cam_enabled", smlua_func_camera_config_is_analog_cam_enabled);
|
||||
smlua_bind_function(L, "camera_config_is_free_cam_enabled", smlua_func_camera_config_is_free_cam_enabled);
|
||||
smlua_bind_function(L, "camera_config_is_free_camera_collision_enabled", smlua_func_camera_config_is_free_camera_collision_enabled);
|
||||
smlua_bind_function(L, "camera_config_is_freecam_dpad_enabled", smlua_func_camera_config_is_freecam_dpad_enabled);
|
||||
smlua_bind_function(L, "camera_config_is_mouse_look_enabled", smlua_func_camera_config_is_mouse_look_enabled);
|
||||
smlua_bind_function(L, "camera_config_is_x_inverted", smlua_func_camera_config_is_x_inverted);
|
||||
smlua_bind_function(L, "camera_config_is_y_inverted", smlua_func_camera_config_is_y_inverted);
|
||||
|
|
@ -33730,14 +34069,29 @@ void smlua_bind_functions_autogen(void) {
|
|||
smlua_bind_function(L, "camera_config_set_x_sensitivity", smlua_func_camera_config_set_x_sensitivity);
|
||||
smlua_bind_function(L, "camera_config_set_y_sensitivity", smlua_func_camera_config_set_y_sensitivity);
|
||||
smlua_bind_function(L, "camera_freeze", smlua_func_camera_freeze);
|
||||
smlua_bind_function(L, "camera_get_allow_toxic_gas_camera", smlua_func_camera_get_allow_toxic_gas_camera);
|
||||
smlua_bind_function(L, "camera_get_checking_surfaces", smlua_func_camera_get_checking_surfaces);
|
||||
smlua_bind_function(L, "camera_get_romhack_override", smlua_func_camera_get_romhack_override);
|
||||
smlua_bind_function(L, "camera_is_frozen", smlua_func_camera_is_frozen);
|
||||
smlua_bind_function(L, "camera_reset_overrides", smlua_func_camera_reset_overrides);
|
||||
smlua_bind_function(L, "camera_romhack_allow_centering", smlua_func_camera_romhack_allow_centering);
|
||||
smlua_bind_function(L, "camera_romhack_allow_dpad_usage", smlua_func_camera_romhack_allow_dpad_usage);
|
||||
smlua_bind_function(L, "camera_romhack_allow_only_mods", smlua_func_camera_romhack_allow_only_mods);
|
||||
smlua_bind_function(L, "camera_romhack_get_allow_centering", smlua_func_camera_romhack_get_allow_centering);
|
||||
smlua_bind_function(L, "camera_romhack_get_allow_dpad_usage", smlua_func_camera_romhack_get_allow_dpad_usage);
|
||||
smlua_bind_function(L, "camera_romhack_get_collisions", smlua_func_camera_romhack_get_collisions);
|
||||
smlua_bind_function(L, "camera_romhack_get_zoomed_in_dist", smlua_func_camera_romhack_get_zoomed_in_dist);
|
||||
smlua_bind_function(L, "camera_romhack_get_zoomed_in_height", smlua_func_camera_romhack_get_zoomed_in_height);
|
||||
smlua_bind_function(L, "camera_romhack_get_zoomed_out_dist", smlua_func_camera_romhack_get_zoomed_out_dist);
|
||||
smlua_bind_function(L, "camera_romhack_get_zoomed_out_height", smlua_func_camera_romhack_get_zoomed_out_height);
|
||||
smlua_bind_function(L, "camera_romhack_set_zoomed_in_dist", smlua_func_camera_romhack_set_zoomed_in_dist);
|
||||
smlua_bind_function(L, "camera_romhack_set_zoomed_in_height", smlua_func_camera_romhack_set_zoomed_in_height);
|
||||
smlua_bind_function(L, "camera_romhack_set_zoomed_out_dist", smlua_func_camera_romhack_set_zoomed_out_dist);
|
||||
smlua_bind_function(L, "camera_romhack_set_zoomed_out_height", smlua_func_camera_romhack_set_zoomed_out_height);
|
||||
smlua_bind_function(L, "camera_set_checking_surfaces", smlua_func_camera_set_checking_surfaces);
|
||||
smlua_bind_function(L, "camera_set_romhack_override", smlua_func_camera_set_romhack_override);
|
||||
smlua_bind_function(L, "camera_unfreeze", smlua_func_camera_unfreeze);
|
||||
smlua_bind_function(L, "rom_hack_cam_set_collisions", smlua_func_rom_hack_cam_set_collisions);
|
||||
|
||||
// smlua_collision_utils.h
|
||||
smlua_bind_function(L, "collision_find_ceil", smlua_func_collision_find_ceil);
|
||||
|
|
|
|||
|
|
@ -2,16 +2,19 @@
|
|||
#include "game/bettercamera.h"
|
||||
#include "game/object_list_processor.h"
|
||||
|
||||
static struct CameraOverride sOverrideCameraXSens = { 0 };
|
||||
static struct CameraOverride sOverrideCameraYSens = { 0 };
|
||||
static struct CameraOverride sOverrideCameraAggr = { 0 };
|
||||
static struct CameraOverride sOverrideCameraPan = { 0 };
|
||||
static struct CameraOverride sOverrideCameraDegrade = { 0 };
|
||||
static struct CameraOverride sOverrideCameraInvertX = { 0 };
|
||||
static struct CameraOverride sOverrideCameraInvertY = { 0 };
|
||||
static struct CameraOverride sOverrideEnableCamera = { 0 };
|
||||
static struct CameraOverride sOverrideCameraAnalog = { 0 };
|
||||
static struct CameraOverride sOverrideCameraMouse = { 0 };
|
||||
static struct CameraOverride sOverrideCameraXSens = { 0 };
|
||||
static struct CameraOverride sOverrideCameraYSens = { 0 };
|
||||
static struct CameraOverride sOverrideCameraAggr = { 0 };
|
||||
static struct CameraOverride sOverrideCameraPan = { 0 };
|
||||
static struct CameraOverride sOverrideCameraDegrade = { 0 };
|
||||
static struct CameraOverride sOverrideCameraInvertX = { 0 };
|
||||
static struct CameraOverride sOverrideCameraInvertY = { 0 };
|
||||
static struct CameraOverride sOverrideEnableCamera = { 0 };
|
||||
static struct CameraOverride sOverrideCameraAnalog = { 0 };
|
||||
static struct CameraOverride sOverrideCameraMouse = { 0 };
|
||||
static struct CameraOverride sOverrideCameraLCentering = { 0 };
|
||||
static struct CameraOverride sOverrideCameraFreecamDpad = { 0 };
|
||||
static struct CameraOverride sOverrideCameraFreecamCollision = { 0 };
|
||||
|
||||
void camera_reset_overrides(void) {
|
||||
sOverrideCameraXSens.override = false;
|
||||
|
|
@ -24,6 +27,9 @@ void camera_reset_overrides(void) {
|
|||
sOverrideEnableCamera.override = false;
|
||||
sOverrideCameraAnalog.override = false;
|
||||
sOverrideCameraMouse.override = false;
|
||||
sOverrideCameraLCentering.override = false;
|
||||
sOverrideCameraFreecamDpad.override = false;
|
||||
sOverrideCameraFreecamCollision.override = false;
|
||||
}
|
||||
|
||||
void camera_freeze(void) {
|
||||
|
|
@ -38,12 +44,16 @@ bool camera_is_frozen(void) {
|
|||
return gOverrideFreezeCamera;
|
||||
}
|
||||
|
||||
void camera_romhack_allow_only_mods(u8 allow) {
|
||||
gRomhackCameraSettings.modsOnly = allow;
|
||||
}
|
||||
|
||||
void camera_set_romhack_override(enum RomhackCameraOverride rco) {
|
||||
gOverrideRomhackCamera = rco;
|
||||
gRomhackCameraSettings.enable = rco;
|
||||
}
|
||||
|
||||
void camera_romhack_allow_centering(u8 allow) {
|
||||
gRomhackCameraAllowCentering = allow;
|
||||
gRomhackCameraSettings.centering = allow;
|
||||
}
|
||||
|
||||
void camera_allow_toxic_gas_camera(u8 allow) {
|
||||
|
|
@ -51,15 +61,79 @@ void camera_allow_toxic_gas_camera(u8 allow) {
|
|||
}
|
||||
|
||||
void camera_romhack_allow_dpad_usage(u8 allow) {
|
||||
gRomhackCameraAllowDpad = allow;
|
||||
gRomhackCameraSettings.dpad = allow;
|
||||
}
|
||||
|
||||
void rom_hack_cam_set_collisions(u8 enable) {
|
||||
gRomhackCameraSettings.collisions = enable;
|
||||
}
|
||||
|
||||
void camera_romhack_set_zoomed_in_dist(u32 val) {
|
||||
gRomhackCameraSettings.zoomedInDist = val;
|
||||
}
|
||||
|
||||
void camera_romhack_set_zoomed_out_dist(u32 val) {
|
||||
gRomhackCameraSettings.zoomedOutDist = val;
|
||||
}
|
||||
|
||||
void camera_romhack_set_zoomed_in_height(u32 val) {
|
||||
gRomhackCameraSettings.zoomedInHeight = val;
|
||||
}
|
||||
|
||||
void camera_romhack_set_zoomed_out_height(u32 val) {
|
||||
gRomhackCameraSettings.zoomedOutHeight = val;
|
||||
}
|
||||
|
||||
u32 camera_romhack_get_zoomed_in_dist(void) {
|
||||
return gRomhackCameraSettings.zoomedInDist;
|
||||
}
|
||||
|
||||
u32 camera_romhack_get_zoomed_out_dist(void) {
|
||||
return gRomhackCameraSettings.zoomedOutDist;
|
||||
}
|
||||
|
||||
u32 camera_romhack_get_zoomed_in_height(void) {
|
||||
return gRomhackCameraSettings.zoomedInHeight;
|
||||
}
|
||||
|
||||
u32 camera_romhack_get_zoomed_out_height(void) {
|
||||
return gRomhackCameraSettings.zoomedOutHeight;
|
||||
}
|
||||
|
||||
enum RomhackCameraOverride camera_get_romhack_override(void) {
|
||||
return gRomhackCameraSettings.enable;
|
||||
}
|
||||
|
||||
u8 camera_romhack_get_allow_centering(void) {
|
||||
return gRomhackCameraSettings.centering;
|
||||
}
|
||||
|
||||
u8 camera_get_allow_toxic_gas_camera(void) {
|
||||
return gOverrideAllowToxicGasCamera;
|
||||
}
|
||||
|
||||
u8 camera_romhack_get_allow_dpad_usage(void) {
|
||||
return gRomhackCameraSettings.dpad;
|
||||
}
|
||||
|
||||
u8 camera_romhack_get_collisions(void) {
|
||||
return gRomhackCameraSettings.collisions;
|
||||
}
|
||||
|
||||
bool camera_config_is_free_cam_enabled(void) {
|
||||
return sOverrideEnableCamera.override ? sOverrideEnableCamera.value : configEnableCamera;
|
||||
return sOverrideEnableCamera.override ? sOverrideEnableCamera.value : configEnableFreeCamera;
|
||||
}
|
||||
|
||||
bool camera_config_is_analog_cam_enabled(void) {
|
||||
return sOverrideCameraAnalog.override ? sOverrideCameraAnalog.value : configCameraAnalog;
|
||||
return sOverrideCameraAnalog.override ? sOverrideCameraAnalog.value : configFreeCameraAnalog;
|
||||
}
|
||||
|
||||
bool camera_config_is_freecam_dpad_enabled(void) {
|
||||
return sOverrideCameraFreecamDpad.override ? sOverrideCameraFreecamDpad.value : configFreeCameraDpadBehavior;
|
||||
}
|
||||
|
||||
bool camera_config_is_free_camera_collision_enabled(void) {
|
||||
return sOverrideCameraFreecamCollision.override ? sOverrideCameraFreecamCollision.value : configFreeCameraHasCollision;
|
||||
}
|
||||
|
||||
bool camera_config_is_mouse_look_enabled(void) {
|
||||
|
|
@ -94,6 +168,10 @@ u32 camera_config_get_deceleration(void) {
|
|||
return sOverrideCameraDegrade.override ? sOverrideCameraDegrade.value : configCameraDegrade;
|
||||
}
|
||||
|
||||
bool camera_config_get_centering(void) {
|
||||
return sOverrideCameraLCentering.override ? sOverrideCameraLCentering.value : configFreeCameraLCentering;
|
||||
}
|
||||
|
||||
void camera_config_enable_free_cam(bool enable) {
|
||||
sOverrideEnableCamera.value = enable;
|
||||
sOverrideEnableCamera.override = true;
|
||||
|
|
@ -106,6 +184,24 @@ void camera_config_enable_analog_cam(bool enable) {
|
|||
newcam_init_settings();
|
||||
}
|
||||
|
||||
void camera_config_enable_centering(bool enable) {
|
||||
sOverrideCameraLCentering.value = enable;
|
||||
sOverrideCameraLCentering.override = true;
|
||||
newcam_init_settings();
|
||||
}
|
||||
|
||||
void camera_config_enable_freecam_dpad(bool enable) {
|
||||
sOverrideCameraFreecamDpad.value = enable;
|
||||
sOverrideCameraFreecamDpad.override = true;
|
||||
newcam_init_settings();
|
||||
}
|
||||
|
||||
void camera_config_enable_camera_collisions(bool enable) {
|
||||
sOverrideCameraFreecamCollision.value = enable;
|
||||
sOverrideCameraFreecamCollision.override = true;
|
||||
newcam_init_settings();
|
||||
}
|
||||
|
||||
void camera_config_enable_mouse_look(bool enable) {
|
||||
sOverrideCameraMouse.value = enable;
|
||||
sOverrideCameraMouse.override = true;
|
||||
|
|
|
|||
|
|
@ -17,19 +17,60 @@ void camera_freeze(void);
|
|||
void camera_unfreeze(void);
|
||||
/* |description|Checks if the camera is frozen|descriptionEnd| */
|
||||
bool camera_is_frozen(void);
|
||||
|
||||
/* |description|Sets if only mods are allowed to modify the camera (Enabling prevents the player from modifying the camera through the settings)|descriptionEnd| */
|
||||
void camera_romhack_allow_only_mods(u8 allow);
|
||||
/* |description|Sets the romhack camera override status|descriptionEnd| */
|
||||
void camera_set_romhack_override(enum RomhackCameraOverride rco);
|
||||
/* |description|Sets if the romhack camera should allow centering|descriptionEnd| */
|
||||
/* |description|Sets if the romhack camera should allow centering, triggered with the L button|descriptionEnd| */
|
||||
void camera_romhack_allow_centering(u8 allow);
|
||||
/* |description|Sets if the romhack camera should fly above poison gas|descriptionEnd| */
|
||||
void camera_allow_toxic_gas_camera(u8 allow);
|
||||
/* |description|Sets if the romhack camera should allow D-Pad movement|descriptionEnd| */
|
||||
void camera_romhack_allow_dpad_usage(u8 allow);
|
||||
/* |description|
|
||||
Toggles collision settings for the ROM hack camera.
|
||||
This enables or disables specific collision behaviors in modded levels
|
||||
|descriptionEnd| */
|
||||
void rom_hack_cam_set_collisions(u8 enable);
|
||||
|
||||
/* |description|Sets the romhack camera's zoomed in distance (Default: 900)|descriptionEnd| */
|
||||
void camera_romhack_set_zoomed_in_dist(u32 val);
|
||||
/* |description|Sets the romhack camera's zoomed out additional distance (Default: 500)|descriptionEnd| */
|
||||
void camera_romhack_set_zoomed_out_dist(u32 val);
|
||||
/* |description|Sets the romhack camera's zoomed in height (Default: 300)|descriptionEnd| */
|
||||
void camera_romhack_set_zoomed_in_height(u32 val);
|
||||
/* |description|Sets the romhack camera's zoomed out additional height (Default: 150)|descriptionEnd| */
|
||||
void camera_romhack_set_zoomed_out_height(u32 val);
|
||||
|
||||
/* |description|Gets the romhack camera's zoomed in distance|descriptionEnd| */
|
||||
u32 camera_romhack_get_zoomed_in_dist(void);
|
||||
/* |description|Gets the romhack camera's additional zoomed out distance|descriptionEnd| */
|
||||
u32 camera_romhack_get_zoomed_out_dist(void);
|
||||
/* |description|Gets the romhack camera's zoomed in height|descriptionEnd| */
|
||||
u32 camera_romhack_get_zoomed_in_height(void);
|
||||
/* |description|Gets the romhack camera's additional zoomed out height|descriptionEnd| */
|
||||
u32 camera_romhack_get_zoomed_out_height(void);
|
||||
|
||||
/* |description|Gets the current romhack camera override status|descriptionEnd| */
|
||||
enum RomhackCameraOverride camera_get_romhack_override(void);
|
||||
/* |description|Gets if the romhack camera should allow centering|descriptionEnd| */
|
||||
u8 camera_romhack_get_allow_centering(void);
|
||||
/* |description|Gets if the romhack camera should fly above poison gas|descriptionEnd| */
|
||||
u8 camera_get_allow_toxic_gas_camera(void);
|
||||
/* |description|Gets if the romhack camera should allow D-Pad movement|descriptionEnd| */
|
||||
u8 camera_romhack_get_allow_dpad_usage(void);
|
||||
/* |description|Gets if the romhack camera has surface collisions|descriptionEnd| */
|
||||
u8 camera_romhack_get_collisions(void);
|
||||
|
||||
/* |description|Checks if Free Camera is enabled|descriptionEnd| */
|
||||
bool camera_config_is_free_cam_enabled(void);
|
||||
/* |description|Checks if Analog Camera is enabled|descriptionEnd| */
|
||||
bool camera_config_is_analog_cam_enabled(void);
|
||||
/* |description|Checks if Freecam DPad Behavior is enabled|descriptionEnd| */
|
||||
bool camera_config_is_freecam_dpad_enabled(void);
|
||||
/* |description|Checks if Camera Collision is enabled|descriptionEnd| */
|
||||
bool camera_config_is_free_camera_collision_enabled(void);
|
||||
/* |description|Checks if Mouse Look is enabled|descriptionEnd| */
|
||||
bool camera_config_is_mouse_look_enabled(void);
|
||||
/* |description|Checks if camera X is inverted|descriptionEnd| */
|
||||
|
|
@ -46,11 +87,19 @@ u32 camera_config_get_aggression(void);
|
|||
u32 camera_config_get_pan_level(void);
|
||||
/* |description|Gets camera deceleration|descriptionEnd| */
|
||||
u32 camera_config_get_deceleration(void);
|
||||
/* |description|Gets if the L button will center the camera|descriptionEnd| */
|
||||
bool camera_config_get_centering(void);
|
||||
|
||||
/* |description|Overrides if Free Camera is enabled|descriptionEnd| */
|
||||
void camera_config_enable_free_cam(bool enable);
|
||||
/* |description|Overrides if Analog Camera is enabled|descriptionEnd| */
|
||||
void camera_config_enable_analog_cam(bool enable);
|
||||
/* |description|Overrides if the L button will center the camera|descriptionEnd| */
|
||||
void camera_config_enable_centering(bool enable);
|
||||
/* |description|Overrides if Freecam DPad Behavior is enabled|descriptionEnd| */
|
||||
void camera_config_enable_freecam_dpad(bool enable);
|
||||
/* |description|Overrides if Camera Collision is enabled|descriptionEnd| */
|
||||
void camera_config_enable_camera_collisions(bool enable);
|
||||
/* |description|Overrides if camera mouse look is enabled|descriptionEnd| */
|
||||
void camera_config_enable_mouse_look(bool enable);
|
||||
/* |description|Overrides if camera X is inverted|descriptionEnd| */
|
||||
|
|
|
|||
|
|
@ -689,10 +689,11 @@ void network_shutdown(bool sendLeaving, bool exiting, bool popup, bool reconnect
|
|||
gFogIntensity = 1.0f;
|
||||
gOverrideBackground = -1;
|
||||
gOverrideEnvFx = ENVFX_MODE_NO_OVERRIDE;
|
||||
gRomhackCameraAllowCentering = TRUE;
|
||||
gRomhackCameraSettings.centering = FALSE;
|
||||
gOverrideAllowToxicGasCamera = FALSE;
|
||||
gRomhackCameraAllowDpad = FALSE;
|
||||
gRomhackCameraSettings.dpad = FALSE;
|
||||
camera_reset_overrides();
|
||||
romhack_camera_reset_settings();
|
||||
free_vtx_scroll_targets();
|
||||
dynos_mod_shutdown();
|
||||
mods_clear(&gActiveMods);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue