Allows modders to play audio streams on channels other than level background music.
4 constants have been added for this purpose:
- `MOD_AUDIO_CHANNEL_MASTER` - sound is only affected by master volume
- `MOD_AUDIO_CHANNEL_MUSIC` - sound is affected by music volume, same as previous behaviour
- `MOD_AUDIO_CHANNEL_SFX` - sound is affected by sfx volume, same as sample behaviour
- `MOD_AUDIO_CHANNEL_ENV` - sound is affected by env volume
This was done instead of using the existing `SEQ_PLAYER_*` constants to avoid confusion and because there isn't a `NONE`/`MASTER` option.
Additionally, sets the default to `MOD_AUDIO_CHANNEL_MUSIC` as to not break compatibility.
```lua
audio_stream_set_volume_channel(stream, MOD_AUDIO_CHANNEL_SFX) -- wow its just like a sample
audio_stream_get_volume_channel(stream) -- returns MOD_AUDIO_CHANNEL_SFX (its actually 2)
```
- Add `smlua_collision_add_surface`, `_move_surface`, `_delete_surface` Lua APIs
- Add `remove_static_object_collision` to fully free a SOC and its surfaces
- Split surface pools into separate static, SOC, and dynamic pools
- Replace index-based SOC tracking with unique ID counter (`sSOCIdCounter`)
- Invalidate Lua CObjects for recycled surfaces on pool clear
- Expose `SURFACE_POOL_STATIC/DYNAMIC/SOC` constants to Lua
- Add `growing_array_swap_and_pop` and `growing_array_swap_and_pop_index` to memory utils
Co-authored-by: MysterD <myster@d>
Applied a compatibility band-aid for `ModAudio.file.relativePath` using unions and properties. The only real thing here is the new hidden `return_self` function I had to make for this to work
unction
* This is an awful workflow. Probably still need to update dx11 program ver
* Yea, going to despise this workflow
* Whoops
* Weewoo
* Fix comp error
* Bump dx11 ver due to it having an extremely limited number of inputs
* CObject Properties
- Added property members to CObjects via `PROPERTY` macro
`PROPERTY(name, get, set)`
- `name`: property name
- `get`: `fun(self): value`
- `set`: `fun(self, value)`
- Prettified `LuaObjectField` struct with unions for function/property value types
- Added properties to `struct ModAudio`
- `position`
- `looping`
- `frequency`
- `volume`
- NOTE: only work with streams- the audio reform will come later
* Define array size only when necessary
- new `__pairs` metamethod for `CObject`s, cycles through all of an object's fields, in alphabetical order
- stray semicolon!
* Add version info (Windows) + Smart update checker
* patch autogen, remove prints
* Fix special case (min=0,fix=!0)
* Not that obvious!!
* Still too obvious... last one
* the djoslin0 review
* Nuked
* Control the Lighting Engine with le_disable and le_enable in real time
(FORK REDO FOR PR)
* I hate it when I typo
* Control the Lighting Engine in real time with le_set_active (new change)
* Changed to le_set_enabled to be better in line with functions
* Mark all unused variables as unused, resolve some unsafe code, some things still need to be looked at
* Remove a lot of unused variables that didn't need to exisat
* Remove UNUSED keyword from appartion values
---------
Co-authored-by: Agent X <44549182+AgentXLP@users.noreply.github.com>
* Fixes
* Lots more changes
* Yoshi :D
* Remove some unecessary changes
* Oops
* Remove temp code
* Revert changes made to king bobomb, will be handled in #1196
* copied from main not dev, oops
* Address review and do a minor improvement
* Nuke that
* Add "do not show again" checkbox to host message panel
* remove unused lines
was messing with the checkbox size to see how it would look but in the end i just kept it default, so these are now just useless lines i forgot to remove
* Add Russian and Spanish translations
* Improved deadzone implementation (sneaking now possible even with high deadzones)
* Reworked deadzone algorithm
* Faster/Stronger/Better
* minor renaming
* Requested change
* use float instead of double sqrt()
- Fix `mod_storage_load/save_number` incorrect behavior. These functions should now be used only with numbers, not integers (see next point). The `mod_storage_load_number` can still load integer values from existing mod storage files.
- Add `mod_storage_load/save_integer` for integer values.
- Expand the range of savable values to `double` (64-bit float) and `long long` (64-bit integer) for respectively `number` and `integer` mod storage functions.
- Fix an obscure bug with `smlua_to_integer` that truncated very high integer values due to an implicit cast to double, causing floating-point imprecision issues. Thanks @yoshiweegee for the explanation.
- Change `djui_hud_measure_text` to return both text width and height
- New syntax is: `local width, height = djui_hud_measure_text(text)`
- Old syntax still works, but only returns `width`
- Fix incorrect char height for some fonts
- Fix nametags interpolation using the wrong scale
* Fix nametags color and rendering order
* make growing_array_init reuse array and buffer if they were already allocated
* use prim color for text color
* isaac review
* update text color descriptions
* small optimization
Previously `thread6_rumble_loop()` was only being called once in
`thread5_game_loop()`. This commit removes that call and adds one to
`game_loop_one_iteration()`, creating the desired outcome of
`thread6_runnable_loop()` running once per frame.
Additionally, PS4 and PS5 rumble support is added. PS4 and PS5 rumble
requires a feature called 'extended reporting', which can be enabled
using two SDL hints. Since extended reported, once enabled, breaks
compatibility with DirectInput until the controller is restarted, an
option is also added to the configuration menu to toggle this
functionality.
* Add Scroll Binds
and fix a five year oob array index/write
* number
* fix that part
I just saw this
* That should be that
I have tested it, scroll works on the Up input, and on a regular input, so does everything else
- Drastically improve and optimize display list usage for text
- Add text alignment with and without interpolation, and color codes, new lines and tabs are now handled properly
- Restored alpha color code (`#RGBA` or `#RRGGBBAA`) for `djui_print_text` functions (regular DJUI text allows alpha color codes, but ignores the alpha component)
- Add constants for common text alignment and rotation pivot values
- Fix interpolation issues with all `djui_hud` elements
- A few autogen fixes (missing `number` type for constants, missing return values for some functions)
- Fix recolorable hud font offsets on `e`, `i` and `o` letters