* Add new dialog functions
* Add missing symbols to charmap
* Fix the crashing
* Add braces to if statement
* Implement Isaac's suggestion
* Add override return type to autogen
* Update comment
* Add text field to `DialogEntry`
* wtf??
* Peachy requests
* Patches work when using git submodules (where .git is a file instead of a folder)
* Patches: Use git's build in error throwing to detect if the git repository is valid
* Fix dpad cursor logic in menus
Without this change, there is no way to get the cursor onto the ">" button in the public lobbies pagination without using a mouse, because the dpad/arrowkey logic skips over it strangely. Another alternative solution could be that the rules button and the back/reset buttons swap places.
* fixed brain fail in the djui cursor code
I forgot how ternaries worked whoops
* Added `xOffset` and `yOffset` to the `DjuiFont` struct to align the custom hud fonts
* Replaced `VL-Tones and CJes` CS pack with `The Originals` CS pack
* Removed the shading from the emblems and sideburns for `[CS] The Originals`
* Updated Djoslin0 Toad to give him recolorable hair and updated CJes and VL-Tones Luigi hud icons.
* Updated `[CS] The Originals` models to add missing reverts
* Wrong outdated Djoslin Toad model fix
* Added `math.tween` and along with common easing functions
* Fixed wrong implementation of `IN_OUT_ELASTIC`
* Added `OUT_IN` easing variants
* Fixed Incorrect `OUT_IN_SINE` function
* Fixed wrong `OUT_IN_ELASTIC` implementation
* Fix substring bug in require()
When require() was searching for a matching module, it would only
consider the end of the filename. So foobar.lua and bar.lua could both
match a require('bar').
This commit fixes that.
* remove debug logs
---------
Co-authored-by: MysterD <myster@d>
With mod development mode on you can press the L bind while paused to
reload the active mods. This reload will rescan the directories for
the active modes and thus refresh their file caches.
Mod development mode also enables live lua module reloading. Any time
a lua module is updated, coop will live reload the functions that changed
and do its best to maintain the previous variable states.
---------
Co-authored-by: MysterD <myster@d>
There was a bug in resolving wall collisions with fixCollisionBugsRoundedCorners enabled.
Due to the way a check was written, it would often ignore walls when it shouldn't have.
I've also added gLevelValues.floorNormalMinY and gLevelValues.ceilNormalMaxY
These will values will be used to determine which surfaces will become a wall, floor, or ceiling
Co-authored-by: MysterD <myster@d>
The old version was incrementing at the start of the code iteration, but it makes
more sense to increment after the frame is built. That way every event within one
visible game tick will get the same tick identifier
Co-authored-by: MysterD <myster@d>
Coop now maintains a counter that increments at the start of each game tick,
And another counter that increments at the start of each frame render.
This is to be able to identify specific frames regardless of mod load, hook,
and execution order.
---------
Co-authored-by: MysterD <myster@d>
I didn't add standard Lua require() because I've always been
afraid of it. I'm not sure we can guarantee which files it
will read (or not read).
Instead, here is a custom implementation. It should work more
or less the same and allow for more modular code.
For backwards compatibility reasons, all of the lua files in
the base mod folder will be loaded as in the past. Aka one at
a time and alphabetically.
However, now coop will look for Lua files in subdirectories
and will load them in when another Lua file calls require().
The file search order is more reasonable than normal Lua
require(). It will first look for files relative to the
currently running script. If there is no matching relative
file, it will pick from any Lua file that is in any of the
mod's subdirectories.
---------
Co-authored-by: MysterD <myster@d>