- Harmonise the camera override 2D and 3D APIs
- Switch to using Camera2D/3D nodes to provide override functionality. This makes for simpler code, gets rid of much of copy-pasted camera code and makes code that relies on current viewport camera such as VisibleOnScreenNotifiers and object picking work out of the box.
- Make camera override code only accesible within DEBUG_ENABLED builds
Using custom macros for defining and registering message handlers hurts
readability and navigability.
This commit simplifies the ParseMessageFunc signature, expands the
macros, and streamlines initialization.
Move the individual message handlers to separate functions, to make it
easier to follow and add additional message handlers. The function
is also more efficient as it only performs a single hash lookup for
the handler and then dispatches to the member function.
Similar to #104425
Update servers/audio_server.cpp
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
Apply suggestions from code review
Co-authored-by: Adam Scott <ascott.ca@gmail.com>
Fix a few lines for new member names
Add command-line argument `--debug-mute-audio`, and pass it to game if started with mute enabled
Apply suggestions from code review
Co-authored-by: arkology <43543909+arkology@users.noreply.github.com>
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
Fix icon for svgo
Currently the mouse cursor jumps in unexpected ways, when a `ViewPanner`
is used in SubViewports or embedded Windows.
This is caused by providing wrong coordinate systems to
Input::warp_mouse_motion.
This PR replaces the use of `Input::warp_mouse_motion` with
`Viewport::wrap_mouse_in_rect` and makes sure, that the correct
coordinate systems are used.
This change makes it necessary, that all classes, that currently
use ViewPanner, need to provide the correct Viewport to ViewPanner.
Random-access access to `List` when iterating is `O(n^2)` (`O(n)` when
accessing a single element)
* Removed subscript operator, in favor of a more explicit `get`
* Added conversion from `Iterator` to `ConstIterator`
* Remade existing operations into other solutions when applicable