- 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
- Fix lives going below 0 right before a game over (also fixes a crash where if you exited with -1 lives and went into a subarea you would crash)
- Restore how lives get removed upon death exit (like in vanilla)
- Prevent bubbling from happening if you don't have enough lives (this fixes the annoying bug where you would get put back in a bubble and get popped immediately after over and over again)
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
This was happening because the previous mode would be reset before it was actually called. It was unique to `WARP_TYPE_SAME_AREA`. The solution is explained in the code comment. Also added some unused keywords to suppress warnings.
- 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
Here are the changes:
- Update each runner to their respective latest versions (Arm is macOS-26 preview, and intel is macOS-15-intel)
- Compiled glew and sdl2 manually, specifically targeting 11 (big sur) on arm and 10.15 (catalina) on intel
- Recompiled arm lua libs to support Big Sur
- Add new icon designed for macOS 26 (tahoe), including backwards compatibility support for versions prior to tahoe
Few things to note are
- Vscode automatically removed white lines in the workflow for actions, if I need to revert it lmk.
- I tested this in a vm on macOS 11 (Monterey), and it appeared to work. If someone on intel is on macOS 10.15 (Catalina) or someone on arm is on macOS 11 (Big Sur), it would be greatly appreciated if you could test this. Even if you're on a slightly newer version that isn't supported in the current version, that would be appreciated. You can find the zipped builds [here](https://github.com/EmeraldLoc/random-files)
* C++ lighting engine
Runs better using my new system for storing and iterating through lights.
I removed the lighting ctx profiler because after I've realized its very inaccurate and was probably programmed incorrectly from the start. Although I remember it working fine before and not constantly showing 20 ms or higher when I'm in an extremely simple level with extremely simple lights and the FPS is way too high for it to be taking 20 ms.
* Whoops
* Make some optimizations
* Fix small bug with LE inside graphics vertex function
I also brought back the lighting profiler because it's better than nothing.
* Some optimizations
* Cache active lights and 4 lights per vertex limit
Less branching and less iterating with the limit
* Peachy changes
## `void geo_skip_interpolation(struct GraphNode *node, struct GraphNodeObject *obj)`
Skips graph node interpolation for a frame
feed it a graph node and its corresponding object
## `void obj_skip_interpolation(struct Object *o)`
Skips object interpolation for a frame
takes care of only the object transform, otherwise you need to use
## `void obj_anim_skip_interpolation(struct Object *o)`
Skips animation interpolation for a frame
useful for choppy animation
------------
## `u32 get_time_stop_flags(void)`
Gets the current time stop state