Commit Graph

2479 Commits (86a5aa3494d63a54ee1f610bfc9be3d02a2a339f)

Author SHA1 Message Date
wRadion 3ab27fc072 Scrolling textures (continued) (#175)
* Handle scroll targets as dynamic array + some error handling

* Remove the need to call init (clean automatically scroll targets)

* Free iteratively instead of recursive

* Added comments + handled some potential errors

* Completed comments

* Remove debug print
2022-09-12 19:57:28 -07:00
Agent X ac6254a657 SURFACE_RAYCAST (#177)
* SURFACE_RAYCAST

* Exclude from camera collision
2022-09-12 19:56:24 -07:00
MysterD d3477ca8dd Merge branch 'coop' of github.com:sm64ex-coop-dev/sm64ex-coop into coop 2022-08-25 20:42:43 -07:00
MysterD 523d287cf1 Revert "Character Movesets and Extended Moveset changes. (#156)"
This reverts commit 548ced6f27.
2022-08-25 20:42:31 -07:00
Isaac0-dev 1cc9153bdf fix custom level corruption on network shutdown (#174) 2022-08-25 20:16:01 -07:00
MysterD 6fb6c31569 Bump version 2022-08-25 17:59:43 -07:00
MysterD dc2bc696af Re-ran autogen 2022-08-25 17:49:45 -07:00
MysterD ec6901718c Merge branch 'coop' of github.com:sm64ex-coop-dev/sm64ex-coop into coop 2022-08-25 17:49:25 -07:00
wRadion 92ce6d9e4c Handle RM_Scroll_Texture and editor_Scroll_Texture behaviors from RM2C hacks (#173) 2022-08-25 17:46:33 -07:00
Agent X 3b8a9801d3 Fix star sparkles appearing for everyone (#172)
When collecting a star, originally the sparkles would appear on everyone even if they didn't collect the star, this has been fixed.
2022-08-25 17:42:45 -07:00
Agent X 916d59e9b5 is_transition_playing() (#171)
Can be useful for people making HUD mods or anything like that.
2022-08-25 17:42:30 -07:00
Agent X 4824d2b191 Improve the "Error: network shutdown" popup (#170)
It now only appears when someone stops hosting and you are disconnected from their lobby, I also changed the text to "Disconnected: server closed" in case it wasn't obvious
2022-08-25 17:42:15 -07:00
Agent X 3510edbc85 Improve cheats (#169)
Cheats suck less now I guess.
2022-08-25 17:41:04 -07:00
Agent X 4e8308199a Fix power meter going black when in djui pause (#168) 2022-08-25 17:39:11 -07:00
Agent X a8db460392 Add character head glyphs to gTextures (#167) 2022-08-25 17:38:34 -07:00
Agent X 02a5ea9f85 Fix hex codes being set inproperly (#165) 2022-08-25 17:38:03 -07:00
wRadion 8c6dd80abd Only remove the offset when it\'s not a door warp (#164) 2022-08-25 17:37:30 -07:00
Agent X 9424accf08 Prevent dialog from showing in main menu (#162)
* Prevent dialog from showing in main menu

* Scuttlebug fix
2022-08-25 17:34:27 -07:00
Agent X f586a72370 Small bug fixes to Stop Hosting (#161)
Previously you could exit during the act select screen and even crash the game by entering a door and then pressing Stop Host.
2022-08-25 17:33:47 -07:00
Agent X f1dcc77854 Remove TARGET_WEB (#159)
Just a simple code cleanup opportunity I saw
"I won't be porting this to the web" - djoslin

Compiled and tested everything to see if it works, feel free to check yourself or look over the code

Also, I noticed TARGET_N64 was there too, might do a clean up on that since we all know this isn't getting ported to the N64 anytime soon.
2022-08-25 17:32:20 -07:00
wRadion 3a491421d7 make distclean invoke cleantools (#158) 2022-08-25 17:30:19 -07:00
Emerald Lockdown 9565a32811 Added `warp_to_start_level` function (#154)
* Added `warp_to_start_level` function

* Fix include things
2022-08-25 17:27:05 -07:00
TheGag96 29cc9e30a4 Extended Moveset: Fix ground pound jump (#153)
Woops!
2022-08-25 17:26:37 -07:00
Llennpie 887676605e Fix black outline bug on model textures (#152) 2022-08-25 17:26:22 -07:00
Isaac0-dev 878e974626 Improvements (#151)
More lives fixes, death loop fix, add a null check and add get_dialog_id()
add a way to disable rom hack cam collisions
expose more sound management functions
2022-08-25 17:25:54 -07:00
stvene3004 548ced6f27 Character Movesets and Extended Moveset changes. (#156)
* 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.
2022-08-25 17:24:15 -07:00
Prince Frizzy 1a1b510411 Merge pull request #166 from Agent-11/join-cut-off-fix
Fix "join" being cut off on star select
2022-08-25 02:17:04 -04:00
Agent-11 d7fd367720 Fix "join" being cut off on star select 2022-08-23 02:04:53 -04:00
MysterD 6b0e901e2f Added 'Platforms' level to Arena 2022-08-11 22:17:42 -07:00
Emerald Lockdown e4a8dde7fd Readded headstart and cleaned up code, cleaned up comments, pu prevention (ty sunk) (#140)
* Readded headstart and cleaned up code

* Added pu prevention, credit to sunk, and cleaned up some comments
2022-08-11 01:24:21 -07:00
Emerald Lockdown e2b2df2f0d Made ctrl cmd on mac (#148) 2022-08-11 01:24:11 -07:00
Agent X 12cd6adfb7 gsDPSetTextureFilter, refactoring and o.header.gfx.skipInViewCheck (#147)
* Add gsDPSetTextureFilter to DynOS symbols

* Refactor code and fix 2 year oversight

Refactored the main menu background code, now uses vec3f_set instead of manually setting every vector

Also finally fixed the bug where you load in with only 3 lives, this has been in coop for 2 years now and was likely made as a test for syncing live count and was never reversed.

* add skipInViewCheck to GraphNodeObject

* Remove idle set

Co-authored-by: djoslin0 <djoslin0@users.noreply.github.com>
2022-08-11 01:23:54 -07:00
Emerald Lockdown e157412d34 Fixed wall hugging issue (#149) 2022-08-11 01:22:04 -07:00
Emerald Lockdown f3b2057b30 Shell rush modifications (#150)
* Shell Rush Modifictations

* Oops
2022-08-11 01:20:09 -07:00
MysterD aad84a9e7a Prevent softlock when entering a cannon near water (Star Road) 2022-08-07 22:42:25 -07:00
MysterD 713b9d0fc8 Whoops 2022-08-07 22:38:57 -07:00
MysterD 1f0c8d496e Fix crash when hitting escape while a slider is focused 2022-08-07 22:36:35 -07:00
MysterD 7cce6449aa Initialize graphNode->config.camera to NULL (fixes obscure crash) 2022-08-07 22:30:31 -07:00
MysterD 29b5ef0ef6 Re-ran autogen 2022-08-07 20:54:16 -07:00
Emerald Lockdown 1b47507b66 Expose save star flag (#139)
* added save_file_set_star_flags and save_reload
2022-08-07 20:53:42 -07:00
Emerald Lockdown 274d308d9a Exposed save_file_erase and save_file_reload to lua (#137) 2022-08-07 20:52:51 -07:00
MysterD 08c6ff061e Move menu options and debug options to 'misc' 2022-08-07 20:51:34 -07:00
MysterD b7e3727e5b Cleanup random menu stages 2022-08-07 20:44:35 -07:00
Emerald Lockdown 27230cdcfe Customizations to the main menu and a fix for the title screen bug (#130) 2022-08-07 20:14:28 -07:00
MysterD 7e5ebcf064 Re-ran autogen 2022-08-07 15:26:32 -07:00
TheGag96 591c0b58d5 Fix issues Extended Moveset mod (+ extras) (#146)
* 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>
2022-08-07 15:25:00 -07:00
MysterD 9ad91da423 Revert custom palette changes to built in mods 2022-08-07 15:13:51 -07:00
TheGag96 a1bcd19529 Arbitrary shirt, pants, glove colors + settings menu (#145)
* 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"
2022-08-07 15:13:19 -07:00
MysterD da132205bd Fix up co-op ripples 2022-08-07 01:10:10 -07:00
HunterHeard 029aca6548 Co-op ripples (#118)
* First attempt

First attempt at having other Mario objects create ripples.

Works very inconsistently, the position of players not currently interacting with the painting seems to influence whether the ripples will work or not

* Moved nearest mario code from geo_painting_update

Instead of using the nearest mario object for geo_painting_update, I use it in painting.c functions that called for gPaintingMarioXYZPos, substituting the nearest Mario object's position instead, as well as using it for the last floor mario was over.

This method still isn't quite perfect and there's a few more things I'd like to fix/change.
1. If a Mario is closer to the painting (perhaps right against the middle) other Mario's can't trigger ripplings at all unless they get closer than the closest Mario
2. I would like for all Entry and Exit ripples to interrupt each other, meaning if multiple Marios jump in, each one triggers a ripple one after the other
3. I want to hear the other player's exit sounds

* Add currPositionValid

Sets currPositionValid to false for NetworkPlayers who are connected, who changed levels to a level different from the local player, and who are not the local player when the local player changes levels.

* Set currPositionValid

Sets currPositionValid to false for update packets that don't match local area.
Sets it to true for update packets that do match local area.

* Send change area/level immediately

Adds a function network_on_loaded_area2() which only sends a change level or area event and doesn't clear the sync ids.
Calls this function almost immediately as opposed to waiting for LOADING_LEVEL_THRESHOLD frames

* Add currPositionValid to NetworkPlayer

currPositionValid (which is used by painting.c to determine if a player should be considered for the closest player to the painting) is a variable that tells you if a network player's marioObj has a position which can be relied upon as a valid position for that player.

network_player_update_course_level sets it to false for a network player if the new location does not match the local player's location.
network_receive_player sets it to false if a network player's update is from a different location than the local player, but sets it to TRUE if the update is from the same location.
update_course does NOT set it to true, because the location is not sure to be valid until we've received a location from the player with the right location attached to it.

* Use currValidPosition correctly

Uses currValidPosition correctly, also add debug text for seeing closest player to painting.

* fix merge

* Fix merge

* Verboser logging and invpos on enter

* Multi collision arrays

* Removed nearest code, added comments

* Added simultaneous ripples on one painting

* Added commented Gamepad from Background line

* Removed debug logging

* renamed secondary network_on_loaded function

* Added early multiple paintings rippling at once

* Added multiple paintings rippling simultaneously

Co-authored-by: djoslin0 <djoslin0@users.noreply.github.com>
2022-08-07 01:08:00 -07:00