* Readded headstart and cleaned up code
* Added pu prevention, credit to sunk, and cleaned up some comments
* Cleaned up code and added fancy pause exit stuff
* Update network_utils.c
* Revert commit
* CHanges
* Changes and extensions t' Wario and Luigi's movesets (mostly Wario's)
- Wario's shoulder bash now hits more stuff.
- You can now control Wario's bash angle.
- Introducin' Wario's Piledriver. Press Z while holdin' an object in the air to use it.
- Wario's ground pound now has a squish effect when you land on the ground.
- Changed up some Wario voice clips.
- Luigi can now also scuttle when he's holdin' an object.
* Made the dive hop more visually accurate
* Changes and extensions t' Wario and Luigi's movesets (mostly Wario's)
- Wario's shoulder bash now hits more stuff.
- You can now control Wario's bash angle.
- Introducin' Wario's Piledriver. Press Z while holdin' an object in the air to use it.
- Wario's ground pound now has a squish effect when you land on the ground.
- Changed up some Wario voice clips.
- Luigi can now also scuttle when he's holdin' an object.
* Allow Lua action hooks to specify custom functions for more behavior
...like gravity, and update all current mods to match.
Spin jump and wall slide from the Extended Moveset mod now have gravity
code basically matching the original mod.
Currently, any place you'd want to use one of these new action hooks
still requires an O(n) check through all action hook per call. This
should probably be changed.
* Fix some remaining issues with Extended Moveset Lua port
- Remove divergent spin jump code
- Remove divergent roll code
- Remap roll button to Y
- Reimplement dive slide to make dive hop work like the original
- Allow spin from double jump, backflip, side flip
* Fix more issues with Extended Moveset Lua port
- Reimplement all users of update_walking_speed to incorporate the Tight
Controls edits and modified speed caps
- Fix instances of angle arithmetic to wrap properly across the mod
* Don't chop off group bits of custom action flags; assign missing groups in mods
This fixes the Extended Moveset's underwater actions. Chopping off those
bits was making the game consider the underwater actions to be a part of
the Stationary group, which caused `check_common_stationary_cancels`,
which upwarps Mario to the surface.
* Tweak roll sliding angle tendency
Rolling will now gradually (but fairly quckly) try to tend Mario's
facing angle down the slope.
This is cleaner than my old method that tries to flip Mario's angle
(wrongly) when he begins moving downward, having that logic coexist with
the logic for normal sliding actions that can also tend Mario to face
backward down the slope. Just looks ugly now by comparison.
* Disallow spin jump on slides in Extended Moveset port
This matches the original mod
* Extended Moveset: Crazy Box Bounce check
* Extended Moveset: Fix hugging the wall when spin jumping after wall kick
* Extended Moveset: Fix ledge drop snapping up to ground
Just reimplement `act_air_hit_wall` ourselves.
* Extended Moveset: Add Kaze's walking speed fix
* smlua_hooks.c: Restore option to use old API for hook_mario_action
The intent is to allow mods outside of this repo to continue working.
Co-authored-by: djoslin0 <djoslin0@users.noreply.github.com>
* Support for more granular player colors
You can now configure RGB values for shirt, pants, gloves, and shoes.
Due to some limitations, configuring shoes does nothing at the moment.
* Remove paletteIndex and friends
Restructured and filled in some remaining code to account for that.
* Add Edit Palette panel to Player panel
* Change PlayerPalette contents to an enum-indexed array, remove shoes
This gets rid of all the hokey code doing switch cases on the
different parts.
* Fix goof with player model selection box
Should actually have affect now even if a custom palette is being used.
* Fix gap in player color display list commands
The extra space was leftover from when I was trying to get shoes
working. Forgot to clean it up.
* Standardize PlayerParts enum, including for lua constants autogen
* djui_panel_player.c: Properly hook sending palette changes on unpause
Editing the palette and then unpausing should send out the packet to
everyone with the new palette changes (and update the palette preset
selection box), but since we weren't hooking that situation before, it
would stay changed only for you. You would have had to press the Back
button for it to work right.
* Allow Lua mods to continue using `paletteIndex`, `overridePaletteIndex`
This lets mod code like this still work unchanged:
if s.team == 2 then
np.overridePaletteIndex = 7
elseif s.team == 1 then
np.overridePaletteIndex = 15
else
np.overridePaletteIndex = np.paletteIndex
end
It's essentially faked, and would work strangely if the value of either
variable was inspected more closely directly. This should at least
handle the typical use case, though.
Every frame, `overridePaletteIndex` is checked to see if it was modified
from its previous value. If so, `overridePalette` is set to the preset
corresponding to the index. `paletteIndex` contains a special value that
when used to assign to `overridePaletteIndex`, it copies `palette` into
`overridePalette` to restore the real colors, which of course may not
follow the presets at all.
* characters.h: Pack `PlayerPalette` to eliminate size differences between computers
* mario_misc.c: Remove remaining "TODO GAG"
* Fixed everything in dj's todolist for hns, and also made it more balanced
in other ways. List of changes roughly: made anticamp off by default, made
mario only have to touch another mario, and made vanish cap off always,
and made caps off for hiders
Rewrote all of the ball-to-player interactions
Player collisions are better now
Attacks affect the ball in different ways
Centered camera during the countdown period
Players lose their velocity during the countdown period
* Mid-air Conk changes.
Added a visual when the Corkscrew Conk is executed mid-air and slightly nerfed it when executed in mid-air.
* Added a visual to mid-air conk and nerfed it.
* Update character-movesets.lua
This new version removes the dive for Luigi's Spin Pound and fixes the momentum glitch with Wario
* Spin Pound Dive removal and Wario bug fix
The Spin Pound Dive was easily removed by just removing the code that puts you into a dive when B is pressed. The Wario bug was also fixed by simply making it so if Wario is in the Water Jump Hold action the faster air speed from holding an item doesn't apply to him.
Luigi:
Added spin ground pound
Restored air movement
Prevented wing flutter and scuttle from stacking
Toad:
Prevented jump from sticking to platforms
Made side flip's height slightly higher
autogenerated functions for characters.h
Fixes in autogen:
improvements to LVT/LOT conversion
improvements to immutability status
Updates to character-movesets.lua, every character has a moveset now
Added .type to stuct Character
Prevented unimplemented actions from crashing the game
convert_functions.py no longer hardcodes acceptable LOT_ values
Added characters.h and surface_collision.h to convert_structs.py
Prevented mod filenames with a slash in it from being considered acceptable
Sanitized mod filenames when received from the server
Mods are now loaded into a table
Clients now request a mod list from the server, then download each file one at a time before joining
Embedded constants.lua into the program
Added HOOK_BEFORE_MARIO_UPDATE
Added support for Vec3f/Vec3s in autogenerated lua functions
Added more lua functions from mario_actions_submerged.c, and thread6.c
Renamed animation-related fields in CObject wrappers
Moved coss and sins to wrapper
Extended Moveset:
Fixed rolling angle bug
Added rumble calls
Set facing direction when spinning
Added ledge parkour
Corrected ground pound animation
Added support for structs: Surface, GraphNodeObject_sub, Animation
Generated lua wrapper functions for more functions in mario_actions_submerged.c
Fixed play_sound() wrapper to use a vec3f
Extended Moveset:
ported wall slide and water ground pound
restrict lua libraries
extended moveset: finish roll, dive hopping
wrote a python script to codegen lua functions from C header files
converted most of mario.h
Added mods folder for lua scripts
Created constants.lua so scripts could use constants internal to the C code
Created event hooks
Separated out lua functions into multiple files