Commit graph

2115 commits

Author SHA1 Message Date
PeachyPeach
d5a19a4d90
added new mods to default; removed visibleToEnemies from lua (#245) 2022-12-17 19:32:55 +01:00
Agent X
acd65c7355
Add E_MODEL_SSL_TOX_BOX (#247) 2022-12-17 19:29:24 +01:00
Agent X
85afeb6402
Expose title screen geo functions to DynOS (#246)
* Expose title screen level/geo stuff

* Move builtin defines
2022-12-17 19:28:19 +01:00
Agent X
cc3b314096
Small improvements to camera freeze (#244) 2022-12-17 19:26:32 +01:00
SMS Alfredo
35bdaef094
Character Sound Hook (#223)
* Character Sound Hook

* The rest of autogen to be safe

* Indentation Fix

* Fix more indentation

* Get rid of unneeded auto gen junk

* Run autogen again

* Add HOOK_CHARACTER_SOUND to guide
2022-12-17 19:25:30 +01:00
Isaac0-dev
571d80aebf
make fixCollisionBugs an integer again (2) (#241) 2022-11-30 00:44:49 -08:00
Isaac0-dev
07ad5a55c5
add HOOK_OBJECT_SET_MODEL (#236)
* add HOOK_OBJECT_SET_MODEL
runs whenever a behaviour sets a model.
2022-11-30 00:37:43 -08:00
Prince Frizzy
523e7842d9
A bunch of LUA autogen additions. (#235)
* A bunch of LUA autogen additions.
- Add support for Vec4f, Vec4s and Mat4 in the autogen.
- Improve error messages for improper argument counts
- Added support for more pointer types in the autogen.

* Fix offsets in sMat4Fields.

* autogen: Rework this at the request of DJ.
2022-11-30 00:37:12 -08:00
PeachyPeach
36d85af91b
Custom palette persistence fix (#233)
Bug:
    Clicking on Palette Preset to cycle through palettes overwrites and erases the custom palette

Fix:
    Added config values coop_custom_palette_* to save the custom palette colors
    Clicking on Edit Palette now sets the current palette to Custom and loads the custom values instead of using the previous preset selected
2022-11-18 18:43:44 -08:00
wRadion
34a0b12e6c
Fixed Vanish floors/ceilings (non-wall surfaces) (#225)
In the vanilla game, vanish does only work with walls specifically, and not floors and ceilings. This is because the check for vanish surfaces was only implemented with the walls. So I simply pasted the same code but with the floors and the ceilings.
2022-11-18 18:39:17 -08:00
Agent X
a94565a604
Fix 50 coin 1up happening in non courses (#231) 2022-11-14 18:18:58 -05:00
Isaac0-dev
dddbe4bd16
Make fixCollisionBugs an integer again (#232)
This is for mod compatibility.
2022-11-14 18:16:17 -05:00
Agent X
d8c908c588
Prevent cap music from playing on disconnect (#227) 2022-11-12 21:38:37 -05:00
Prince Frizzy
f815a53080
Add some new LUA helper functions and fix some bugs. (#230)
- Add new functions for objects, Feel free to flesh some out if need be.
- Fix long-standing issue with our LUA garbage collection, It will now run after all our hooks do to prevent buildup which causes lag.
2022-11-12 05:01:50 -08:00
MysterD
611c70a7d1 Bumped version 2022-11-11 19:03:43 -08:00
MysterD
b6b5b4f4e3 Add ability for mods to signal that a player will not be seen by enemies 2022-11-11 19:02:11 -08:00
MysterD
06f801afe9 Fix desync caused by players not knowing each others sync status 2022-11-11 19:01:51 -08:00
SMS Alfredo
bb00d47cab
Sample Stop Functions (#224)
Adds in bassh_stop_sample for source and audio_sample_stop for Lua. These functions immediately stop whatever audio the specified sample is playing.

If used in tandem with #223, this allows you to create custom character voice clips without them ever overlapping with each other.
2022-11-02 19:51:34 -07:00
PeachyPeach
55ed83ddb8
djui_hud_render_texture_tile[_interpolated]; increased GFX pool and main memory pool (#211)
djui_hud_render_texture_tile: allows user to draw a part of a texture instead of the whole texture (tilesets)
    increased GFX pool size from 512kB to 4MB
    increased main memory pool size from ~11MB to 32MB
2022-11-02 19:45:20 -07:00
Isaac0-dev
d806c2d8c2
add HOOK_ON_CHAT_MESSAGE (#220)
includes the message string and the mario state of the player
return false to prevent the message from showing (might be possible to make a chat flter with this?)
2022-10-30 17:34:50 -07:00
Agent X
1e2a230d51
Give 1 up when you collect 50 coins and don't have "Leave level" on (#215)
If either Non-Stop or Stay in Level is on for On Star Collect, collecting a multiple of 50 coins should give everyone in the level a life.
    This would act as a solution for the lifes you would normally get after getting a star.

In SM64 when exiting a level, every 50 coins up until 150 you get a 1 up, except you can't exit the level in stay in level or non stop so there's the main problem which this PR addresses
2022-10-30 17:31:08 -07:00
PeachyPeach
a8e397047a
CAP color; near/far warning fix (#214)
Added CAP color part; Player's cap no longer uses the SHIRT color
    Added METAL color as an alias of CAP color; Metal characters now uses the CAP color to tint the metal texture (was SHIRT color)
    Fixed the cap inside color (was HAIR color)
    Fixed the near/far warning
2022-10-30 17:30:40 -07:00
Isaac0-dev
e387b6b24b
Fixes and quality of life changes (#213)
Add the Lua Profiler to the debug menu.
    Prevent Mario from sleeping on the main menu.
    Fix IP address string corruption when saving the config file.
    Bring back the Discord fatal message.
2022-10-30 17:29:59 -07:00
Sunk
97090abf28
Added HOOK_ALLOW_HAZARD_SURFACE and various fixes (#209)
* Fixed naming from ceil to cell

* Added HOOK_ON_QUICKSAND

* Modified hook and removed weird newlines

* Renamed hook and increased usage

HOOK_ALLOW_QUICKSAND -> HOOK_ALLOW_HAZARD_SURFACE
Now also works on lavaboost.
Suggestion by Agent X. May add this hook to the death barrier check.

* Autogen

* Fixed downwarping to quicksand upon popping

As a side effect though, Mario will no longer snap to the floor upon being popped.
2022-10-30 17:25:56 -07:00
Agent X
dbff766af0
Add - to allowed characters in mod storage (#218)
can't have anything in ex-coop
2022-10-25 13:28:19 -07:00
Agent X
90dd2e47c5
Why weren't star door models exposed to Lua? (#217) 2022-10-25 13:28:02 -07:00
Agent X
4325d62abd
Prevent Mario from trying to move in the main menu (#206)
* Fixing my mistakes

* Re-add stickX/Y resets
2022-10-18 15:35:00 -07:00
Isaac0-dev
89afa8181e
just a few more improvements (#207)
Add get_dialog_box_state
    Prevent some attacks from registering as pvp attacks.
    Clean up all cases of camera.lua
    Put gLastCollectedStarOrKey in a better spot.
    Clean up my moderator code a bit, changing gIsModerator to boolean.
    Brang back kicked, banned and full party messages.
    Fixed a warning on older compilers like raspberry pi's and use configAmountofPlayers instead of MAX_PLAYERS
    Fixed compiling with the flag DISCORD_SDK off.
    Added "Fixed Collisions" to the debug menu.
    Added HMC, CCM, RR, BITDW, PSS and TTC to the main menu options.
    Fix my own oversight; Prevent the port from being duplicated in the join menu. (temporary fix)
    Hopefully bring back the crash handler on windows by not checking for termination signals on windows
2022-10-18 15:34:46 -07:00
Isaac0-dev
778667822c
fix warnings (#203) 2022-09-30 20:02:55 -07:00
wRadion
e4e9c02d51
Added warp_to_warpnode function (#157)
* Added warp to warp node function

* Added generated docs

* Restored Makefile (will put in other branch)
2022-09-30 20:02:34 -07:00
MysterD
36270e4301 Reran autogen 2022-09-26 19:30:09 -07:00
Agent X
4b84a87c6f
Mod storage, network_discord_id_from_local_index and other small changes (#200)
* Mod storage & network_discord_id_from_local_index

Introducing mod storage, a key/value system for saving things like high scores or settings or anything like that to AppData\Roaming\sm64ex-coop\sav\mod-name.sav (Windows example)
You can currently save only strings meaning if you want to save a number you'd need to do
mod_storage_save("score", tostring(score))
and then
score = tonumber(mod_storage_load("score"))
To handle types like that.
network_discord_id_from_local_index() returns the discord ID of a player by local index.
Some misc changes I made were removing the unsed ini.h include in save_file.c and making the autogen converters output LF line endings instead of CRLF on windows.

* Prevent getting id if using direct connect

* Update djui_panel_player.c

Why does this bother me?

Co-authored-by: djoslin0 <djoslin0@users.noreply.github.com>
2022-09-26 19:28:26 -07:00
Emerald Lockdown
8e9b2c270c
save_file_erase_current_backup_save and more (#189) 2022-09-26 19:14:53 -07:00
Agent X
6c0757c908
Color type and palette/color functions (#199)
Added a Color type (typedef u8 Color[3])
Added network_player_color_to_palette and network_player_palette_to_color
Reran autogen
2022-09-26 19:11:51 -07:00
Agent X
a97e7466bf
God mode check for lava wall boost (#201)
* God mode check for lava wall boost

Thanks to Skeltan for finding it

* Prevent potential cutscene breaks
2022-09-26 19:10:39 -07:00
Agent X
1241c56ed9
Expose level_trigger_warp and related constants (#197) 2022-09-19 19:51:27 -07:00
Agent X
e308571a4f
Add vanish cap walls to no camera collision check (#196) 2022-09-19 19:34:09 -07:00
Emerald Lockdown
ade3e7b887
Remove save_file_erase function (#195) 2022-09-19 19:33:43 -07:00
MysterD
9c00f63ecf Fix crash in rippling paintings 2022-09-18 19:06:52 -07:00
MysterD
40a291eb08 Removed extra change_area/level packet that the ripples PR added. It breaks too many things 2022-09-18 18:41:32 -07:00
Emerald Lockdown
686d819993
Removed artifcat, fix cam (#193) 2022-09-18 18:16:58 -07:00
Agent X
f726fb5d74
HOOK_ON_SCREEN_TRANSITION (#192) 2022-09-18 17:30:29 -07:00
PeachyPeach
6449b7d578
Complete color palettes; gfx macros (#191) 2022-09-18 17:30:13 -07:00
PeachyPeach
38bc85e329
Main menu: separate Rom Hacks from regular mods (#190) 2022-09-18 17:29:05 -07:00
Emerald Lockdown
7b3b174f11
Removed gChangeAreaIndex as it is unused (and does nothing), and fixed thi and crashes (#187)
* Removed gChangeAreaIndex as it is unused, and fixed thi and crashes

* Fixes

* undo formatting

* Undid stones
2022-09-18 17:28:09 -07:00
PeachyPeach
538383235f
Fixed gLevelValues initialization and missing limits (#188) 2022-09-13 14:44:08 -07:00
Agent X
f13f78b823
Revert "Fix power meter going black when in djui pause (#168)" (#186)
This reverts commit 4da8343253.
2022-09-13 14:43:06 -07:00
Emerald Lockdown
8661c65ab8
Remove heal on warp (#181)
* Patch heal on warp

* Remove entirely
2022-09-12 20:01:13 -07:00
Isaac0-dev
c7bdeef8d5
multiple improvements (#176) 2022-09-12 20:00:51 -07:00
Emerald Lockdown
a864e2d3ba
Add network_is_moderator (#180) 2022-09-12 19:58:58 -07:00
Sunk
ffc06db874
Unhardcoded floor and ceiling limits (#179)
* Unhardcoded ceiling and floor limits

* Revert "Unhardcoded ceiling and floor limits"

* Revert "Revert "Unhardcoded ceiling and floor limits""

This reverts commit 71b2da4c4b898cda73f211620d138b346370d2ce.

* Let's try that again
2022-09-12 19:58:01 -07:00
wRadion
94d5dfcf10
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
a1953afd1c
SURFACE_RAYCAST (#177)
* SURFACE_RAYCAST

* Exclude from camera collision
2022-09-12 19:56:24 -07:00
Isaac0-dev
0bb66abe61
fix custom level corruption on network shutdown (#174) 2022-08-25 20:16:01 -07:00
MysterD
fa5414d386 Bump version 2022-08-25 17:59:43 -07:00
wRadion
44bbd23f83
Handle RM_Scroll_Texture and editor_Scroll_Texture behaviors from RM2C hacks (#173) 2022-08-25 17:46:33 -07:00
Agent X
1777aa5c51
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
cbc78025f3
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
b5789a7c54
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
4c429c17a7
Improve cheats (#169)
Cheats suck less now I guess.
2022-08-25 17:41:04 -07:00
Agent X
4da8343253
Fix power meter going black when in djui pause (#168) 2022-08-25 17:39:11 -07:00
Agent X
215a8402bf
Add character head glyphs to gTextures (#167) 2022-08-25 17:38:34 -07:00
Agent X
8182a9f93c
Fix hex codes being set inproperly (#165) 2022-08-25 17:38:03 -07:00
wRadion
0cbcdf508b
Only remove the offset when it\'s not a door warp (#164) 2022-08-25 17:37:30 -07:00
Agent X
101d6f6e8d
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
01035c895a
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
7e1110cde9
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
Emerald Lockdown
748b7e9134
Added warp_to_start_level function (#154)
* Added `warp_to_start_level` function

* Fix include things
2022-08-25 17:27:05 -07:00
Isaac0-dev
d4417171e4
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
Agent-11
1dc9bc53ce Fix "join" being cut off on star select 2022-08-23 02:04:53 -04:00
Emerald Lockdown
4cc9ff853d
Made ctrl cmd on mac (#148) 2022-08-11 01:24:11 -07:00
Agent X
9d0a61450b
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
466b0066a4
Fixed wall hugging issue (#149) 2022-08-11 01:22:04 -07:00
MysterD
77313ee8fd Prevent softlock when entering a cannon near water (Star Road) 2022-08-07 22:42:25 -07:00
MysterD
9217b799b4 Whoops 2022-08-07 22:38:57 -07:00
MysterD
cfcef655e6 Fix crash when hitting escape while a slider is focused 2022-08-07 22:36:35 -07:00
MysterD
cadaf78699 Initialize graphNode->config.camera to NULL (fixes obscure crash) 2022-08-07 22:30:31 -07:00
MysterD
a61436b2ca Re-ran autogen 2022-08-07 20:54:16 -07:00
Emerald Lockdown
93bdbf81c3
Expose save star flag (#139)
* added save_file_set_star_flags and save_reload
2022-08-07 20:53:42 -07:00
Emerald Lockdown
670acc638e
Exposed save_file_erase and save_file_reload to lua (#137) 2022-08-07 20:52:51 -07:00
MysterD
1ac7032606 Move menu options and debug options to 'misc' 2022-08-07 20:51:34 -07:00
MysterD
5c9dcdeffd Cleanup random menu stages 2022-08-07 20:44:35 -07:00
Emerald Lockdown
b5f1e2a294
Customizations to the main menu and a fix for the title screen bug (#130) 2022-08-07 20:14:28 -07:00
MysterD
b3923f0b5f Re-ran autogen 2022-08-07 15:26:32 -07:00
TheGag96
d87dd73db1
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
TheGag96
dc3ca7c76d
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
da5cf8230b Fix up co-op ripples 2022-08-07 01:10:10 -07:00
HunterHeard
ad5e7402fc
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
Isaac0-dev
f1c2715fe7
Lives/Game over fix, exposed initiate_warp() and improved enemy lakitu (#143) 2022-08-05 23:09:13 -07:00
Emerald Lockdown
1dab06f476
Added Dynos Pack and Player to pause menu (#136)
* Added Dynos Pack and Player to pause menu

* Fixed bodyHeight
2022-08-05 22:23:38 -07:00
Prince Frizzy
913f41f6ae
Add some more functions for use in LUA, And expose others. (#129)
* Add some functions, and restore one.
2022-08-05 22:17:05 -07:00
MysterD
618f468e06 Add HOOK_USE_ACT_SELECT ; increase MAX_AUDIO_OVERRIDE to 128 2022-08-04 01:12:16 -07:00
MysterD
8057c9e501 Prevent crash in mod cache 2022-08-04 01:11:51 -07:00
MysterD
c214acb33f Change fixCollisionBugs from server setting to mod setting 2022-06-25 01:26:53 -07:00
Isaac0-dev
a344a23bb9
Fix collision bug in dark world and edit readme.md (#134) 2022-06-25 00:59:48 -07:00
Agent X
a9bbbacd71
Custom camera cleanup (#133) 2022-06-25 00:54:58 -07:00
Isaac0-dev
92cb5aadb7
Fix headless server compile (4) (#132) 2022-06-25 00:54:39 -07:00
MysterD
4da9812d9b More packet bytesize cleanup 2022-06-06 20:50:00 -07:00
MysterD
4dde3d4cfe Whoops 2022-06-06 20:41:46 -07:00
MysterD
42544557c4 More sync id cleanup 2022-06-06 20:39:18 -07:00
MysterD
29f3e8f1bf Fix mod cache issue where server wouldn't update the hash when it should 2022-06-06 19:34:44 -07:00
MysterD
3b626845e1 Refactor sync objects, move syncIds to u32 2022-06-06 19:13:04 -07:00
MysterD
ae7c1427b9 Only use defined signals 2022-06-05 22:57:17 -07:00
MysterD
946f16329c Added ability to have completely custom levels that don't override anything 2022-06-05 21:55:31 -07:00
MysterD
8928f7d207 Cleanup 2022-06-05 19:22:11 -07:00
HunterHeard
de60a0ae44
Add gamepad number, background options (#122)
Added two options, one which lets user choose which gamepad to use, and one
which allows game to be played with gamepad while in the background.

These two features together allow for "splitscreen" (sort of) multiplayer by
starting up instances and joining them together and selecting different
gamepads for each one.

Gamepad choices are 0-7. If a number is chosen that does not correspond to a
gamepad, the previous gamepad (last number you were on this session that had
a working gamepad) is used.
2022-06-05 19:16:24 -07:00
Isaac0-dev
db7b82fc01
Detect termination signals (#127) 2022-06-05 19:11:15 -07:00
EmeraldLoc
fe4aab50b1
Remove act num if set to 0 (#128) 2022-06-05 19:10:34 -07:00
MysterD
2b4a4a6cd8 Fix behavior check in packet_object 2022-06-05 00:24:48 -07:00
MysterD
7a7a3c4223 Fix interpolated shadow corruption 2022-06-04 23:36:41 -07:00
MysterD
ecc72d0974 Prevent crashing on level change 2022-06-04 18:46:44 -07:00
MysterD
5424b1bb69 Close modfile at the correct time when downloading 2022-06-04 17:58:36 -07:00
MysterD
26a465fd80 Close file pointers immediately after reading/writing 2022-06-04 17:33:45 -07:00
MysterD
2e1818394e Show errno when fail to open file pointer 2022-06-04 17:20:41 -07:00
MysterD
91ad974684 Whoops2 2022-06-04 00:54:04 -07:00
MysterD
8b9e348537 Whoops 2022-06-04 00:53:27 -07:00
MysterD
a487978e3d Prevent client from sending sync valid packets improperly 2022-06-04 00:52:38 -07:00
MysterD
6008761818 Changed tree leaf particle check from hardcoded levels, to gEnvFxMode 2022-06-04 00:43:04 -07:00
MysterD
c95de7fe87 Allowed LEVEL_ENDING to be overridden by DynOS 2022-06-02 22:06:33 -07:00
MysterD
a8c11109ad Unhardcode castle cannon grate star requirement 2022-06-02 21:19:53 -07:00
MysterD
c0cfc89236 Sync setHome value in spawn object 2022-06-02 21:02:43 -07:00
MysterD
8c92885a7b Whoops, forgot to save 2022-06-02 19:50:41 -07:00
MysterD
3f9f877f5d Fixed up indentation 2022-06-02 19:46:51 -07:00
MysterD
e40fe57860 Unhardcoded more bowling ball values 2022-06-02 19:45:01 -07:00
MysterD
091437c430 More custom bhv cleanup 2022-06-02 19:33:28 -07:00
MysterD
b2bdf8859c Cleanup ; recursive descent fixes ; fixed behavior override comparisons
Moved dynos parsing for bhvs and models to a common file
Fixed recursive descent to correctly parse the entire expression
Adjusted bhv generation to use recursive descent
Switched all known behavior comparisons to the overridden versions
Fixed issue with Chain Chomp in star road
2022-06-02 19:07:43 -07:00
Prince Frizzy
40e1fa9e58
Added a full new custom behavior system (#124) 2022-06-02 12:19:54 -07:00
MysterD
a943b8cdde Bumped version 2022-06-01 23:04:41 -07:00
MysterD
7e7833f676 Unhardcoded more values ; generated more tex files ; special set home function ; fixed lua bhv bugs
Unhardcoded KingBobomb values, Mips values, star dialog values
Generated tex files when they're of the form levels/XXX/NUMBER
Now lua behaviors can call cur_obj_set_home_once() to set home correctly
Lua behaviors are now overridden correctly when created through spawn infos
Behavior checks now translate to the overridden behavior before checking
2022-06-01 23:04:21 -07:00
MysterD
59a36149fe Update autogen 2022-06-01 01:00:21 -07:00
MysterD
7b7e2245aa Fix collision bugs setting now allows for non-axis-aligned walls to be correct 2022-06-01 01:00:00 -07:00
MysterD
3e46cc1161 Adjust wall normal when colliding with multiple walls 2022-05-31 18:26:27 -07:00
MysterD
bd7974a544 Consider all walls when doing quarter steps (fixCollisionBugs) 2022-05-31 08:44:18 -07:00
MysterD
9fd309de56 Added server setting toggle for 'surface cucking' and 'exposed ceilings' vanilla bugs 2022-05-31 01:29:48 -07:00
MysterD
91ee4f8a8f Bump version 2022-05-30 03:08:52 -07:00
MysterD
c942b8496a Clear custom actors on disconnect properly 2022-05-30 00:37:14 -07:00
MysterD
c392a161e8 Fixed crash on warp 2022-05-29 18:16:52 -07:00
MysterD
70f25939b6 Fix bettercam rotation when jumping 2022-05-29 16:43:35 -07:00
MysterD
5310b0d496 Fix crash, only translate cam space when its valid 2022-05-29 15:34:28 -07:00
MysterD
b52fe0eaeb Revert "Restore local Mario to mirror room (#109)"
This reverts commit 59e26fbc86.
2022-05-29 15:33:03 -07:00
MysterD
51fea7f6f2 Fix warnings on windows 2022-05-29 03:30:41 -07:00
MysterD
e47e1ede47 Made capped framerates and vsync smoother 2022-05-28 20:13:02 -07:00
MysterD
123abbbc37 Add null checks to spawn_object.c 2022-05-28 01:29:19 -07:00
MysterD
71b50c721e Merge branch 'coop' of github.com:sm64ex-coop-dev/sm64ex-coop into coop 2022-05-28 01:26:52 -07:00
MysterD
867cc65605 Allow set_mario_colors on any layer, add recursive descent to geo parsing, fix color flashing in Arena 2022-05-28 01:26:40 -07:00
137329506980462592
021e203402
Add tired / second punch sound back (#120) 2022-05-28 00:56:48 -07:00
MysterD
32e0c9eda2 Re-request level or area if stuck in invalid state for a while 2022-05-28 00:49:28 -07:00
MysterD
8ce66b76c6 Reload save data on disconnect 2022-05-28 00:40:04 -07:00
MysterD
e5d8e90b2f Cleared controller on disconnect properly 2022-05-28 00:36:55 -07:00
MysterD
aed0d4cb3a Clear controller values on disconnect 2022-05-28 00:22:13 -07:00
MysterD
15de1d5609 Prevent assert in load_tlut 2022-05-28 00:16:16 -07:00
MysterD
38b2c81189 Attempt to fix crash that mentions get_mario_spawn_type() 2022-05-28 00:14:57 -07:00
MysterD
f9daef3839 Fixed sync of ttc speed setting and pss slide started 2022-05-27 20:02:19 -07:00
MysterD
1fec13a0cb Alter fog depth to deal with new near plane value 2022-05-27 19:56:38 -07:00
MysterD
503a6fcfe1 Made romhack camera's collision response less fancy, just zoom in when we have to 2022-05-25 19:30:38 -07:00
MysterD
60365295ba Made romhack cam snappier, and fixed weird diagonal offset 2022-05-25 19:17:13 -07:00
MysterD
cd7d067aaa Fix crash when issuing /players chat command 2022-05-25 18:20:13 -07:00
MysterD
df30e5065d Added null checks to functions in obj_behaviors.c 2022-05-25 18:15:03 -07:00
MysterD
8bbd16573c Clear custom models on disconnect 2022-05-25 18:07:58 -07:00
MysterD
e3d5f7da22 Bump version 2022-05-25 18:01:48 -07:00
MysterD
ef8a6da152 Remove debug position stuff for bettercam 2022-05-25 18:01:33 -07:00
MysterD
3052f9c78c Merge branch 'coop' of github.com:sm64ex-coop-dev/sm64ex-coop into coop 2022-05-25 17:49:42 -07:00
MysterD
c15f8bfef0 Bettercam improvements: no longer sways when close to geo, no longer zooms if player partially visible 2022-05-25 17:47:34 -07:00
PeachyPeach
d1bb79f4a0
Camera config values for lua (#116)
* Added camera config getters and setters
2022-05-22 18:47:36 -07:00
Amy54Desu
a1c73d13ef
Fix Player Limit Settings and Hide Server Only Chat Commands (#114) 2022-05-21 23:07:29 -07:00
MysterD
c660244f31 Allow users to select between accurate or fast interpolations 2022-05-21 21:47:53 -07:00
Altiami
c8a70f2d50
New render frame interpolation via transformation matrix de-/construction (#98)
This method of interpolation aims to correctly interpolate the render
transformation matrices as best as possible without doing an entirely
new render pass. This is accomplished by deconstructing the matrices
into its composition of transformations, interpolating those simpler
transformations individually, and then reconstructing the
transformation matrix with the interpolated transformations.
2022-05-21 21:46:41 -07:00
MysterD
f5258f2d41 audio_stream_load_url() cleanup 2022-05-21 21:20:02 -07:00
Lord-Giganticus
499518adde
Add function to load music via https URLs (#100) 2022-05-21 21:17:35 -07:00
MysterD
489597b574 Initialize gGetHostName 2022-05-21 21:13:01 -07:00
Isaac
6d995214cb
Improvements to domain resolution (#106) 2022-05-21 21:12:32 -07:00
Amy54Desu
d553d9b551
Add Act Num to Playerlist (#95) 2022-05-20 11:36:44 -07:00
Marioiscool246
6d6c8fc5e3
Particle sync fixes (#112)
* Fix lingering particles when a player exits an area or disconnects
2022-05-20 11:32:47 -07:00
MysterD
de2300f837 Fix clang/mac compile 2022-05-19 19:42:07 -07:00
Isaac
59e26fbc86
Restore local Mario to mirror room (#109) 2022-05-19 17:14:23 -07:00
Isaac
672af8e2a0
Restore Mario to selected palette when returning to main menu (#105) 2022-05-19 17:07:58 -07:00
Agent X
68d46cdefe
Mouse lock & freeze cam fixes and warp constants (#103) 2022-05-19 17:06:51 -07:00
Marioiscool246
0c7ada8d2b
C-Up Player Head Rotation Fix & Particle Flags Sync Fix (#99)
Local head rotation is now no longer copied to all other players
C-Up mode head rotation now sends to the other players through
the player packet so others can see the head move around

m->particleFlags are now synced to the other players now
2022-05-19 16:52:47 -07:00
PeachyPeach
4fbafc2708
Fixed various audio bugs; DynOS can now detect texture duplicates to decrease generated bin files size (#110)
Fixed the following audio bugs:
    Bug: Rom-hacks sequences don't seem to be affected by volume scaling and
         muting
    Fix: Force the BGM sequences to follow the vanilla behavior:
        Volume can't go higher than default volume
        Volume is reduced to 31% when the game is paused
        Audio is stopped when the game is paused outside the Castle levels
    Bug: (Pointed out by Draco) Mario's voice clips are not replaced by the
         player's character's in the following instances: fall to death
         barrier, "here we go" in the ending cutscene, "let's a go"
         after selecting a star, "okey dokey" after starting the game.
    Fix: The first two ones now call
         play_character_sound(m, CHAR_SOUND_...) instead of
         play_sound(SOUND_MARIO_..., pos). The last two ones couldn't be
         fixed the same way for two reasons: First, the corresponding sounds
         were not referenced in the sound table, second, the sound played is
         always cut-off after a few frames (due to how sm64 resets the sound
         banks after loading a level).

Added SOUND_*_LETS_A_GO and SOUND_*_OKEY_DOKEY sounds for each playable
    character as Bass samples.
    Character Bass sounds work the same way as vanilla sounds (i.e. can be
    played with play_character_sound), but they cannot be prematurely stopped
    by sm64 sound banks shenanigans.
    This fixes the cut-off for both the star select and the castle grounds
    entry, plays the sound corresponding to the player's character, and doesn't
    need to extend or edit the sound table.

DynOS can detect texture duplicates when generating a bin or lvl file.
    When a duplicate is detected, the name of the original texture node is
    written instead of the whole PNG data, decreasing significantly the
    resulting file size.
2022-05-19 16:40:45 -07:00
Isaac
a1ac136258
change text depending on if you are client or server (#92) 2022-05-17 16:24:56 -07:00
MysterD
897f6712a3 Reset hardcoded values on disconnect 2022-05-17 01:22:45 -07:00
PeachyPeach
27db236b5d
Various bug fixes + Added is_game_paused() and more background music functions to lua (#93)
Bug: DynOS models with animations cannot swap animations if they are
     loaded via lua (smlua_model_util_get_id and
     obj_set_model_extended).
Fix: DynOS_Actor_GetActorGfx takes a graph node instead of a georef,
     and checks for DynosValidActors graph nodes if georef is NULL.

Bug: The game can crash when calling obj_set_model_extended inside a
     HOOK_ON_OBJECT_RENDER hook.
Fix: The crash happens in smlua_model_util_load_with_pool_and_cache_id
     due to pool being NULL. If the game can't allocate an
     AllocOnlyPool object, use DynOS to generate the graph node.

Bug: warp_to_level and similar functions don't trigger HOOK_ON_WARP.
Fix: Call HOOK_ON_WARP hooks in DynOS_Warp_UpdateWarp and
     DynOS_Warp_UpdateExit after level and mario initialization.

Bug: The game sometimes calls HOOK_ON_OBJECT_RENDER hooks for
     unintended objects.
Fix: Initialize hookRender field to 0 when creating an object.

Bug: Actions can't apply gfx offsets to characters that have an anim
     offset (Waluigi, Wario)
Fix: Add m->curAnimOffset to gfx.pos[1] instead of setting it to
     m->pos[1] + m->curAnimOffset, except during the jumbo star
     cutscene.
2022-05-14 14:28:25 -07:00
MysterD
8200b17560 Prevent rendering mirror players - fix crash in mirror room 2022-05-14 02:46:39 -07:00
MysterD
5e86a3e9ac Fix crash when loading custom audio on client 2022-05-13 23:27:49 -07:00
Agent X
4bc13ef275
djui_hud_get_raw_mouse_x/y, djui_hud_set_mouse_locked (#91) 2022-05-13 19:55:47 -07:00
EmeraldLoc
d8e669d9d3
Made network_description/player_description hold 1 extra character (#90) 2022-05-13 19:55:38 -07:00
MysterD
933914d984 Add djui_hud_world_pos_to_screen_pos, and render interpolated rect/texture 2022-05-13 19:54:49 -07:00
MysterD
2fd452059b Make red coin star spawn on late join 2022-05-11 18:22:40 -07:00
MysterD
d2f2fa83cf Prevent packet processing when disconnected 2022-05-11 18:15:46 -07:00
MysterD
ceaf41ae14 Set discord network system on shutdown 2022-05-11 18:11:53 -07:00
MysterD
ad09ecd8ef Prevent joining a Discord lobby when you're already hosting 2022-05-11 18:10:27 -07:00
MysterD
37fb101e05 Do more Discord API cleanup on network shutdown 2022-05-11 01:33:56 -07:00
MysterD
a8b94fd225 Merge branch 'coop' of github.com:sm64ex-coop-dev/sm64ex-coop into coop 2022-05-11 01:28:36 -07:00
MysterD
85ad7ed201 Clear network players on disconnect 2022-05-11 01:27:14 -07:00
Isaac
02b99d0443
Crash fix (#87) 2022-05-10 21:20:40 -07:00
Isaac
f552e98cd4
Prevent spoofing moderator packets (#86) 2022-05-10 02:27:29 -07:00
MysterD
780249ab21 Moderator cleanup 2022-05-09 23:20:07 -07:00
Isaac
701fddf4dd
Moderator (#80) 2022-05-09 23:11:39 -07:00
MysterD
c7cfa1be54 Merge branch 'audio' into unstable 2022-05-08 16:41:05 -07:00
MysterD
befd012d7b Cleaned up mod_load_files() 2022-05-08 16:34:10 -07:00
MysterD
f2c032c6d8 Specify filetypes in audio folder, add audio_custom_shutdown() 2022-05-08 15:44:04 -07:00
PeachyPeach
94c531272f
More rom-hacks globals to lua; more bug fixes (#84)
New gLevelValues exposed to lua:
        pssSlideStarTime: the time limit in frames for PSS-style levels (default: 630)
        pssSlideStarIndex: the index of the star spawned below the time limit for PSS-style levels (default: 1)
        coinsRequiredForCoinStar: number of coins required to spawn the 7th star of a main course (default: 100)
        wingCapDuration: duration in frames of the wing cap (default: 1800)
        metalCapDuration: duration in frames of the metal cap (default: 600)
        vanishCapDuration: duration in frames of the vanish cap (default: 600)
        wingCapDurationTotwc: duration in frames of the wing cap given to the player at the entrance of TOTWC (default: 1200)
        metalCapDurationCotmc: duration in frames of the metal cap given to the player at the entrance of COTMC (default: 600)
        vanishCapDurationVcutm: duration in frames of the vanish cap given to the player at the entrance of VCUTM (default: 600)
    Fixed a bug preventing the level music from restarting after defeating a Boss.
    Fixed some bugs with 3D coins or any model with the geo_rotate_coin function:
        Disable billboard and cylboard attributes.
        Set the pitch and roll to 0 for the model to rotate properly.
        The model no longer rotates every frame (even when the game is paused), but every time the object is updated.
2022-05-08 12:18:25 -07:00
MysterD
a722afe122 Various audio fixes, updated audio example 2022-05-08 04:32:18 -07:00
MysterD
725e26fe83 Make bass sound interface easier to handle 2022-05-08 04:04:14 -07:00
MysterD
034ada738c Re-ran autogen 2022-05-08 00:29:17 -07:00
Beyley Thomas
b8553162c2
Add basic Bass audio engine (#58) 2022-05-08 00:25:09 -07:00
MysterD
6da950dc52 Merge branch 'unstable' of github.com:sm64ex-coop-dev/sm64ex-coop into unstable 2022-05-07 21:16:04 -07:00
MysterD
8eb0a7d838 Fix custom textures with EXTERNAL_DATA 2022-05-07 21:15:38 -07:00
PeachyPeach
68e1b72b99
3-digits orange numbers; Fixed red coins and secrets bugs; Correct red coins display during pause (#82)
Modified number_geo to allow it to display orange numbers from 0 to 999.
    Edited red coins/secrets code:
        Added two fields in the Area struct: numRedCoins and numSecrets
        The number of red coins/secrets in every area is computed during level script processing
        Removed the useless global gRedCoinsCollected
    These changes fix the following bugs:
        Wrong sound effect played and incorrect number displayed when there is more than 8 red coins/5 secrets
        Desynced red coins/secrets counter when going from an area to another
        Remotely spawning red coins/secrets stars in other areas without collecting all red coins/secrets
    Pausing the game now shows the correct number of collected red coins / the total number of red coins in the current area.
2022-05-07 19:09:37 -07:00
MysterD
83c3e03231 Bump max mod size to 35MB 2022-05-07 17:41:20 -07:00
MysterD
dec1fb9665 Prevent mod cache from MD5'ing every file on every boot 2022-05-07 17:03:35 -07:00
MysterD
52c863fb36 Bump version 2022-05-06 22:09:30 -07:00
MysterD
6a4f64027c Make the DynOS button more generic 2022-05-06 22:09:14 -07:00
MysterD
ad6642a4bd Add support for custom HUD textures and faster texture packs w/o EXTERNAL_DATA 2022-05-06 22:03:12 -07:00
MysterD
327d97ad06 Merge branch 'unstable' of github.com:sm64ex-coop-dev/sm64ex-coop into unstable 2022-05-04 00:14:42 -07:00
MysterD
2e57e001d4 Another snow crash fix 2022-05-04 06:26:40 -07:00
MysterD
0b33a26960 Possible fix for crash handler 2022-05-04 06:00:46 -07:00
MysterD
4b15338536 Another possible fix for snow crash 2022-05-04 05:50:30 -07:00
MysterD
7576dfbc7c Possible fix for crash in gfx_texture_cache_lookup() 2022-05-03 22:11:44 -07:00
MysterD
7868a61d6a Add null checks to initiate_delayed_warp() 2022-05-03 22:08:30 -07:00
MysterD
ee032fe123 Possible fix for snow crash 2022-05-03 22:01:06 -07:00
Isaac
7d82923aa4
Fix headless server compile (3) (#78) 2022-05-02 19:45:32 -07:00
Agent X
b972bb1be4
Add surface_terrains.h to constants (#77) 2022-05-02 17:31:55 -07:00
Agent X
6466fbe457
camera_freeze, camera_unfreeze, djui_hud_get_mouse_x, djui_hud_get_mouse_y, set_override_fov, set_override_near, set_override_far (#74) 2022-04-30 17:36:38 -07:00
PeachyPeach
8812fbac8b
HOOK_ALLOW_INTERACT; new HUD functions (#73)
Added new hook: HOOK_ALLOW_INTERACT:
        Called before Mario interacts with an object. Return true to allow the interaction.
        The hook signature is bool function(MarioState, Object, InteractionType)

    Added new HUD constants:
        enum HudDisplayValue:
            HUD_DISPLAY_LIVES
            HUD_DISPLAY_COINS
            HUD_DISPLAY_STARS
            HUD_DISPLAY_WEDGES
            HUD_DISPLAY_KEYS
            HUD_DISPLAY_FLAGS
            HUD_DISPLAY_TIMER
        enum HudDisplayFlags:
            HUD_DISPLAY_FLAGS_NONE
            HUD_DISPLAY_FLAGS_LIVES
            HUD_DISPLAY_FLAGS_COIN_COUNT
            HUD_DISPLAY_FLAGS_STAR_COUNT
            HUD_DISPLAY_FLAGS_CAMERA_AND_POWER
            HUD_DISPLAY_FLAGS_KEYS
            HUD_DISPLAY_FLAGS_UNKNOWN_0020
            HUD_DISPLAY_FLAGS_TIMER
            HUD_DISPLAY_FLAGS_EMPHASIZE_POWER

    Added new HUD functions:
        s32 hud_get_value(enum HudDisplayValue type)
        void hud_set_value(enum HudDisplayValue type, s32 value)
        void hud_render_power_meter(s32 health, f32 x, f32 y, f32 width, f32 height)
2022-04-30 17:33:38 -07:00
MysterD
a0e15a63db Check for ACT_FLAG_INTANGIBLE in passes_pvp_interaction_checks() 2022-04-30 17:28:02 -07:00
MysterD
121ae62d4c WIP: uncapped framerate 11 2022-04-30 17:25:47 -07:00
MysterD
26718d60d6 Fix remote player pole position 2022-04-30 17:11:18 -07:00
MysterD
7c3006025c WIP: uncapped framerate 10 2022-04-30 17:11:09 -07:00
MysterD
8f35305d33 Bump version 2022-04-29 22:13:16 -07:00
MysterD
180bf952b1 Make djui run at 60fps in the pause menu again 2022-04-29 21:59:09 -07:00
MysterD
b8bfd92061 Force frame limit to sane values 2022-04-29 21:35:10 -07:00
MysterD
2d85ba5a35 Merge branch 'unstable' of github.com:sm64ex-coop-dev/sm64ex-coop into unstable 2022-04-29 21:32:18 -07:00
MysterD
582cae97ed WIP: uncapped framerate 9 2022-04-29 21:28:14 -07:00
MysterD
58cee9098b Improve reliable packet timer/resend rate 2022-04-29 21:27:23 -07:00
Prince Frizzy
2a405b3233
Add two new LUA util functions. (#72) 2022-04-28 20:42:29 -07:00
MysterD
ef51666c98 WIP: uncapped framerate 8 2022-04-28 00:22:15 -07:00
MysterD
803db891d2 WIP: uncapped framerate 7 2022-04-27 21:42:22 -07:00
MysterD
5e17edfd01 WIP: uncapped framerate 6 2022-04-27 21:27:14 -07:00
MysterD
6e47f226c9 WIP: uncapped framerate 5 2022-04-27 19:43:55 -07:00
MysterD
0eece3001f WIP: uncapped framerate 4 2022-04-27 18:41:05 -07:00
Isaac
da79a14cec
Check if in water before changing camera. (#71) 2022-04-27 18:34:31 -07:00
MysterD
02ab54b3ad WIP: uncapped framerate 3 2022-04-27 18:25:43 -07:00
MysterD
e8fe92bdad Fix issue where some billboards would randomly be disabled 2022-04-27 18:01:22 -07:00
MysterD
cca8cdc860 WIP: uncapped framerate 2 2022-04-26 22:42:57 -07:00
MysterD
da0d4b3733 WIP: uncapped framerate 2022-04-26 20:00:18 -07:00
MysterD
c0969c7833 Added general purpose profile functions 2022-04-26 18:35:59 -07:00
Prince Frizzy
bf55c2da35
Add error logging to matrix stuff. (#70) 2022-04-26 13:49:09 -07:00
PeachyPeach
6726a6280a
Changes in level_info; play_transition; dev-only warp command; bug fix for moving sounds played via lua (#69)
Improved level_info.c and added functions to LUA:
        const char *get_level_name_ascii(s16 courseNum, s16 levelNum, s16 areaIndex, s16 charCase):
            Return a level name as an ascii string. If charCase is 1, capitalize all letters.
            If charCase is -1, decapitalize all letters except the first one of each word.
        const u8 *get_level_name_sm64(s16 courseNum, s16 levelNum, s16 areaIndex, s16 charCase):
            Return a level name as an sm64 u8 string.
            If charCase is 1, capitalize all letters.
            If charCase is -1, decapitalize all letters except the first one of each word.
        const char *get_level_name(s16 courseNum, s16 levelNum, s16 areaIndex):
            Shortcut for get_level_name_ascii(courseNum, levelNum, areaIndex, -1).
        const char *get_star_name_ascii(s16 courseNum, s16 starNum, s16 charCase):
            Return a star name as an ascii string.
            If charCase is 1, capitalize all letters.
            If charCase is -1, decapitalize all letters except the first one of each word.
        const u8 *get_star_name_sm64(s16 courseNum, s16 starNum, s16 charCase):
            Return a star name as an sm64 u8 string.
            If charCase is 1, capitalize all letters.
            If charCase is -1, decapitalize all letters except the first one of each word.
        const char *get_star_name(s16 courseNum, s16 starNum):
            Shortcut for get_star_name_ascii(courseNum, starNum, -1).

    Added play_transition function to LUA.
        I chose to copy the function declaration to smlua_misc_utils.h instead of adding area.h
        to the autogen tool, as most structures, variables and functions in area.h aren't meant
        to be used by LUA scripts.

    Added a dev-only warp chat command.
        This command signature is /warp [LEVEL] [AREA] [ACT]. Level can be either a number
            or a shorthand name (bob, wf, ccm...). Area and Act are numbers.
        This command is available only when building the game with DEBUG and DEVELOPMENT.
        This command cannot be used if hosting through Discord.

    Fixed a bug with moving sounds when they are played via a lua script.
        Bug: Moving sounds (including terrain sounds, flying sound, quicksand sound)
            are not played correctly when a lua script play them via a call of
            play_sound or play_sound_with_freq_scale. This is due to how the moving
            sounds are handled internally. They use the f32 pointer provided to the
            play_sound functions to decide if the sound must be kept playing,
            stopped or restarted. Most of the time, the pointer provided is the
            cameraToObject field of Mario's object graph node. Since smlua uses a
            circular buffer for Vec3f conversion, this pointer is lost, and the
            sound engine can't decide what to do with the sound, resulting in a
            weird and incorrect sound effect.
        Fix: play_sound and play_sound_with_freq_scale now calls
            smlua_get_vec3f_for_play_sound before filling the sound request queue,
            to retrieve the correct pointer from the Vec3f provided by smlua.
2022-04-26 13:48:50 -07:00
MysterD
5983285e4b Created a minor version number 2022-04-23 15:55:26 -07:00
MysterD
76d32bef42 Fix crash when pausing in an invalid act 2022-04-23 15:54:31 -07:00
MysterD
cc0ed0e8b7 Fix crash in find_surface_on_ray_list() 2022-04-23 15:50:14 -07:00
MysterD
8bce9a53ec Another download fix, whoopsies 2022-04-23 15:13:28 -07:00
MysterD
1441c7e137 Fix memory corruption in download 2022-04-23 15:08:33 -07:00
MysterD
592df229b6 Prevent DynOS packs from being enabled then disabled on launch 2022-04-23 03:23:30 -07:00
MysterD
9e33ce39e6 Automatically disable billboards when a DynOS model uses more than 6 vertices 2022-04-23 03:05:16 -07:00
MysterD
d73216a899 Fixed rare crash in geo_process_node_and_siblings 2022-04-23 01:12:12 -07:00
MysterD
71105833c5 Made specialTripleJump a field of MarioState instead of a global 2022-04-23 00:35:49 -07:00
MysterD
58282f7752 Sort mods list 2022-04-23 00:30:43 -07:00
MysterD
80a5638bd1 Added more detailed lua error logs 2022-04-23 00:15:08 -07:00
MysterD
faca15ae12 Allow Lua to set fields to nil 2022-04-22 23:49:14 -07:00
MysterD
d206581c87 Fix error cascade when one mod has script errors 2022-04-22 23:42:03 -07:00
MysterD
174e3d97ed Made Lua errors show a backtrace for almost all cases 2022-04-22 23:31:25 -07:00
MysterD
ba544d6e35 More performance improvements 2022-04-22 20:57:18 -07:00
MysterD
df294c0f64 Fix up DynOS actor override 2022-04-22 18:57:26 -07:00
MysterD
f6ff4a0730 Special stages show their level name in the pause menu again 2022-04-22 18:53:53 -07:00
MysterD
9e71aba050 Move Lua allow lists over to using a hashmap 2022-04-22 18:51:25 -07:00
MysterD
0d29a29c1b Use binary search for all Lua cobject fields 2022-04-22 18:51:25 -07:00
MysterD
5cfef9abb3 Added gActiveMods global to lua 2022-04-22 18:44:59 -07:00
MysterD
bc7821a1e9 Added custom mod packets 2022-04-22 00:13:58 -07:00
MysterD
ef7dc41560 Added HOOK_ON_DEATH 2022-04-21 18:34:12 -07:00
MysterD
c292793470 Adjustments to reliable packets 2022-04-21 18:33:20 -07:00
MysterD
c8a0e6da10 Fixed player interactions 2022-04-21 00:48:26 -07:00
MysterD
d0c8b2f100 Bump version 2022-04-20 22:11:05 -07:00
MysterD
bdca8006ca Only have interactions happen for the local player 2022-04-20 22:10:52 -07:00
MysterD
4b63a16056 Added passes_pvp_interaction_checks() 2022-04-20 18:27:34 -07:00
MysterD
186149b2dd Merge branch 'unstable' of github.com:sm64ex-coop-dev/sm64ex-coop into unstable 2022-04-20 11:22:18 -07:00
MysterD
18d7140954 Add headPos to marioBodyState 2022-04-20 18:21:36 -07:00
137329506980462592
8e75268c04
Ice color palettes (#66)
Ice color palettes

Co-authored-by: MysteryMeatwad <61129329+MysteryMeatwad@users.noreply.github.com>
2022-04-20 11:21:11 -07:00
PeachyPeach
9e5a45ecdd
Added lua profiler; Added useful object functions; Bug fixes (#65)
Added a basic lua profiler
        If the game is compiled with LUA_PROFILER=1, displays on screen the average execution time per frame of each active lua mod, in microseconds.

    Added object functions
        For some reasons, accessing the object fields obj.o* via lua is rather slow, and can drastically increase execution time of custom behaviors. For basic stuff like setting an object's velocity or moving it, some functions, missing from the original code, have been added:
        s32 obj_is_valid_for_interaction(struct Object *o): returns 1 if an object is valid for interaction, i.e. active, tangible and not interacted.
        s32 obj_check_hitbox_overlap(struct Object *o1, struct Object *o2): returns 1 if two objects hitboxes overlap. Doesn't check tangibility, only hitbox values.
        void obj_set_vel(struct Object *o, f32 vx, f32 vy, f32 vz): sets an object's velocity.
        void obj_move_xyz(struct Object *o, f32 dx, f32 dy, f32 dz): moves an object position by (dx, dy, dz).

    Bug fixes:
        Disable collisions with walls and ceilings after Mario exits a warp pipe to prevent softlocks in narrow places.
        Make the koopa shell exclamation box respawn after some time.
        Quicksand no longer downwarps and instant-kills Mario if he's shocked while being above it.
2022-04-20 11:20:45 -07:00
Isaac
950aeb0e28
update console help message (#68) 2022-04-20 11:19:00 -07:00
Prince Frizzy
8b9b33f0af
Some bug fixes. (#67)
* Some bug fixes.

Fix Bully Star Spawning Cutscene to be player dependent.
Add missing line to Makefile.
Fix compile error with Clang in save_file.c

* Fix DDD Chests Star spawining in the wrong location.
2022-04-20 11:18:17 -07:00
MysterD
2347ab61c1 Added HOOK_ON_OBJECT_RENDER 2022-04-19 22:36:47 -07:00
MysterD
78bda75e45 Massive DynOS refactor for performance/organization 2022-04-19 21:06:18 -07:00
MysterD
dd6f6c430e Refactor how objects set their models 2022-04-19 18:47:50 -07:00
MysterD
8f773ea887 Make DynOS texture lookup use a set for performance 2022-04-19 18:24:26 -07:00
MysterD
97f1182498 Allow custom levels to use any active mod's variables 2022-04-18 23:02:40 -07:00
MysterD
456ec2a2cc Duplicate path in cache 2022-04-18 22:16:14 -07:00
MysterD
cc79201adf Whoops 2022-04-18 22:03:37 -07:00
MysterD
46402d585c Even more mod cache fixes 2022-04-18 21:59:42 -07:00
MysterD
21dc525a75 Slight adjustment to script error message 2022-04-16 22:50:23 -07:00
MysterD
12ea360360 Display a message on screen when script errors are found 2022-04-16 22:47:16 -07:00
MysterD
ef5d1b222b More mod cache fixes 2022-04-16 22:46:29 -07:00
MysterD
a5da5dcb6d Merge branch 'unstable' of github.com:sm64ex-coop-dev/sm64ex-coop into unstable 2022-04-16 20:39:17 -07:00
MysterD
33d200de07 Sanity check mod_cache_save 2022-04-16 20:38:19 -07:00
MysterD
c25bf4c8d3 Check hook return types before using them 2022-04-16 20:27:51 -07:00
Prince Frizzy
bba1b39424
Matrix Code Cleanup. (#64) 2022-04-16 19:48:40 -07:00
Prince Frizzy
f51f1d6c4a
Merge in small changes. (#63) 2022-04-16 19:12:12 -07:00
MysterD
42f2a8d289 Maybe fix mac idk 2022-04-16 15:46:05 -07:00
MysterD
cea41c95e0 Maybe fix mac 2022-04-16 15:30:25 -07:00