Commit graph

2446 commits

Author SHA1 Message Date
MysterD
304cf9e8eb Made players invulnerable to PVP when ground pounding 2023-04-02 22:11:04 -07:00
MysterD
fda3c54c8b Merge branch 'coop' of github.com:sm64ex-coop-dev/sm64ex-coop into coop 2023-04-02 21:19:04 -07:00
MysterD
92a8cc8675 Fix player interactions
Separate normal player collisions from pvp
Normal collisions use local state
PVP collisions use rollback state
Make squish when bouncing completely local
Increase rollback buffer
2023-04-02 21:18:17 -07:00
Agent X
fe53cdffd1
Fix cheats (#335) 2023-04-02 22:19:57 -04:00
MysterD
cdd077c9f8 Use the basic character on the title font if it's missing 2023-04-02 19:11:51 -07:00
MysterD
f593a263aa PVP improvements
Removed angle check for punch/kick
Compensated for lag, so interactions favor the attacker now
2023-04-02 18:26:00 -07:00
MysterD
8f2f46fbdc Adjust text in inputboxes 2023-04-02 15:34:47 -07:00
MysterD
44a1831698 Fix desync when changing areas 2023-04-02 14:44:52 -07:00
MysterD
193f2cc447 Turned title font into a sprite sheet 2023-04-02 13:51:52 -07:00
MysterD
68346eecf1 Text rendering optimizations + resolution increase on normal font
Increased resolution of normal font 2x
Combined all normal font characters into a sprite sheet
Adjusted kerning on normal font
Removed 'rotatedUV' setting for DJUI fonts
2023-04-02 13:18:10 -07:00
MysterD
e578943700 Started optimizing text rendering 2023-04-01 23:44:10 -07:00
MysterD
9cfa078b5e Make gMarioStates->controller immutable in Lua 2023-04-01 17:16:18 -07:00
MysterD
0b6e087936 coop now restores a backup configuration file if loading the config file threw an error 2023-04-01 17:01:50 -07:00
MysterD
af458cf210 Fixed crash handler 2023-04-01 05:12:46 -07:00
MysterD
bff3dc74fe Fixed clicking your cursor on the rightmost letter of inputbox 2023-04-01 03:56:23 -07:00
MysterD
d09d66b5d5 Change certain asserts in configfile to logs 2023-04-01 03:39:23 -07:00
MysterD
213af9b2dc Remove djui panels from main djui header 2023-04-01 00:30:35 -07:00
MysterD
6fc711e440 Added smlua_text_utils_get_language() 2023-04-01 00:04:45 -07:00
MysterD
fb51d48c02 Capitalize language files 2023-04-01 00:00:44 -07:00
MysterD
80aa63d090 Automatically resize join and confirm text 2023-03-31 23:57:03 -07:00
MysterD
e86aa59a4d Fix memory leak in djui panel 2023-03-31 23:54:26 -07:00
MysterD
f3c1e15659 Resized DJUI menu panels so that other languages will fit 2023-03-31 22:05:37 -07:00
MysterD
4839adf289 Made the background controller setting not require a restart 2023-03-31 22:05:09 -07:00
MysterD
a9fe991ba4 Make language configurable in-game 2023-03-31 19:38:06 -07:00
MysterD
30e802179b Added more things to the language system 2023-03-31 17:44:29 -07:00
MysterD
fe8c510ee4 Started adding the ability to translate DJUI menus 2023-03-31 15:18:19 -07:00
MysterD
abaaf10931 Continue simplifying DJUI panels 2023-03-31 12:34:20 -07:00
MysterD
2f59539d37 Started simplifying DJUI panels 2023-03-31 03:16:58 -07:00
MysterD
63f2166bab Merge branch 'coop' of github.com:sm64ex-coop-dev/sm64ex-coop into coop 2023-03-31 00:29:32 -07:00
MysterD
8029400e48 Use UTF-8 for djui text 2023-03-30 23:12:32 -07:00
MysterD
87c6ee6e80 Reduce log spam 2023-03-30 12:19:04 -07:00
MysterD
f2c0993342 Prevent redirecting mod_list_request packets 2023-03-30 12:16:13 -07:00
Isaac0-dev
ca23c4d5e7
clean up a bit after change server settings/mods while hosting (#334)
* clean up change server settings/mods while hosting

* update discord activity when rehosting

* optimised lakitucam mod
2023-03-30 10:56:46 -07:00
MysterD
b7879c1d5a Merge branch 'coop' of github.com:sm64ex-coop-dev/sm64ex-coop into coop 2023-03-29 17:36:22 -07:00
MysterD
341953390c Allow the ability to change server settings/mods while hosting 2023-03-29 17:36:13 -07:00
Prince Frizzy
79b1628dd8
Fix iteration of players for paintings. Causes undefined behavior otherwise. (#333) 2023-03-29 06:05:06 -04:00
MysterD
2acb51b314 Fix display of star 2023-03-28 22:28:04 -07:00
MysterD
90d1a71b64 Added 15 more characters 2023-03-28 16:15:42 -07:00
MysterD
c0ee5016dd Make adding extra characters even easier, add more umlaut and grave characters 2023-03-28 13:23:00 -07:00
MysterD
e0b5886bdf Make the extended character names and order make more sense 2023-03-28 12:33:13 -07:00
MysterD
4457edb412 Added portuguese letters to chat font 2023-03-28 00:57:05 -07:00
MysterD
be67a063e6 Added most of the spanish characters 2023-03-28 00:34:52 -07:00
MysterD
8f274afd49 Only send debug sync packet if no lag is detected 2023-03-27 23:08:54 -07:00
MysterD
6e46bc316e Make debug sync packet not-reliable 2023-03-27 22:48:54 -07:00
MysterD
67fefe2a9a Make ping unreliable 2023-03-27 22:16:21 -07:00
MysterD
33b5552ea6 Allow pings through unknown players 2023-03-27 22:12:48 -07:00
MysterD
7df87d583e Fix crash when removing a sync objects and iterating at the same time 2023-03-27 20:25:35 -07:00
MysterD
f4fe5a9457 Added ñ and Ñ to coop 2023-03-27 18:35:39 -07:00
Agent X
f97cc25732
Make cheats much better and add new ones (#305)
* Make cheats much better and add new ones

Improved some, added some.
- Formatted cheats code to fit with the rest of sm64's naming style of things like structs
- Cheats will now always check for gServerSettings.enableCheats instead of its own variable
- Moon Jump: Increased vertical speed, automatically exit bonks
- God Mode: Tiny code improvements
- Super Speed: Exponentially improved, moved to step code and now works as it always should have
- Rapid Fire (New): When on, A will become rapid fire
- Always Triple Jump (New): When on, Mario will triple jump regardless of forwards velocity
- BLJ Anywhere (New): When on, spam A while BLJing to BLJ anywhere

* Add m->playerIndex == 0 checks
2023-03-27 15:53:12 -07:00
PeachyPeach
b738cf73f9
/luaf; fix compilation issues with audio and debug + dev (#328)
/luaf command to execute lua code from a file. Note that this command doesn't load the file the same way mod files are loaded, so no access to gGlobalSyncTable and gPlayerSyncTable. hook_chat_command cannot be called, but hook_event can.

Fix some compilation issues
2023-03-27 15:50:49 -07:00
Isaac0-dev
32e39516d6
revert crash fix (#331)
revert crash fix, causing more serious issues in star road
2023-03-27 15:49:29 -07:00
MysterD
e7c52e8adb Bump version 2023-03-27 15:36:37 -07:00
MysterD
ec7cb86c2c Fixed sync ID assignments 2023-03-27 15:34:22 -07:00
MysterD
e47f40af9e Swapped out hashmap to C++ for sync objects 2023-03-27 14:29:15 -07:00
MysterD
ca94b7387e More sync object fixes 2023-03-27 12:51:10 -07:00
MysterD
de6e783c20 Fix some sync ID bugs 2023-03-27 12:29:20 -07:00
MysterD
73dfbe5e59 Increase max packets per second to 100 2023-03-27 11:59:06 -07:00
MysterD
b596cb2af2 Figure out a ping between every player, adjust resend rate based on it 2023-03-27 11:50:32 -07:00
MysterD
406bcb158d More shadow adjustments 2023-03-27 01:04:30 -07:00
MysterD
b83bda7d6b Possible fix for shadows going wonky on moving platforms 2023-03-27 00:59:19 -07:00
MysterD
68ec3a21e0 Skip animation interpolation more often
(hands no longer swap places after side jumping)
2023-03-27 00:24:06 -07:00
MysterD
46a95f7a72 Fixed bug in romhacks where coins re-appear when re-entering 2023-03-26 22:05:22 -07:00
MysterD
89d2eb9853 Deterministically set the syncId of child objects of level objects 2023-03-26 21:35:04 -07:00
MysterD
6346293468 Deterministically set the sync ID for level objects that spawn from spawninfo, macros, and special 2023-03-26 21:10:38 -07:00
MysterD
d12fc6c37a Remove old sync id reservation system 2023-03-26 19:06:18 -07:00
MysterD
015a49dc1a Rewrite syncID allocation and memory structure 2023-03-26 18:43:35 -07:00
MysterD
6c8b6387b4 Fix debug builds on linux 2023-03-26 14:53:01 -07:00
Isaac0-dev
c22eb8b2ba
fix version string buffer overflow (#327) 2023-03-26 14:52:13 -07:00
Agent X
01a81fc6f5
Beta 32.0.2 (#330) 2023-03-26 15:17:58 -04:00
Agent X
6c9a15cbe9
Fix envfx not resetting (#329) 2023-03-26 12:50:21 -04:00
Isaac0-dev
6cb1b2faec
Beta 32.0.1 (#325)
* patch for beta 32

* require the development flag for Lua profiler

* autogen
2023-03-26 01:15:28 -04:00
Agent X
4277230f20
Show players on star select toggle (#321)
* Show players on star select toggle

* Make only toggleable by mods

* Allow player list to also be disabled
2023-03-23 21:12:26 -04:00
Agent X
3676d2030d
Fix extended pause display (#319) 2023-03-23 17:42:53 -04:00
Agent X
1a86d46d95
Override envfx from Lua (#316)
* Override envfx from Lua

set_override_envfx(-1) to reset override

* Fix type mismatch
2023-03-23 14:46:15 -04:00
Agent X
c79a001f5f
Make fixed collision rounded corners toggleable (#315) 2023-03-22 21:02:43 -04:00
Agent X
d562a857d3
Clean up pause menu code and fix player menu bug (#314)
* Clean up pause menu code and fix player menu bug

* Final fixes to player panel bugs
2023-03-22 18:57:23 -04:00
Agent X
53b8a2f8e6
Fix compilation warnings and stop demos when hosting (#313)
* [WIP] fix warnings

Committing now as is for Isaac to take a look at this.
Having issues with VERSION_TEXT

* Fix VERSION_TEXT crash and stop demos on host
2023-03-21 22:41:43 -04:00
Isaac0-dev
7e46ce4a21
fixes and other improvements (#309)
* HOOK_JOINED_GAME

* expose VERSION_TEXT, and two more adjusments

* show if a constant type is a string with autogen

* fix another blunder by that guy

* should use an or operator here

* fix frame limiter stuff
2023-03-21 19:43:29 -04:00
Agent X
751dfe61c7
Move everything over (#280) 2023-03-20 22:36:25 -04:00
Agent X
7f6f7fea47
Fix NaN position bug with fixed collision (#312)
* Fix fixed collision NaN position

Thanks to @Marioiscool246 for figuring this out.
Sometimes Mario's position will become NaN when doing specific things, this fixes that.

Co-Authored-By: Marioiscool246 <27823923+Marioiscool246@users.noreply.github.com>

* Formatting

Co-Authored-By: Marioiscool246 <27823923+Marioiscool246@users.noreply.github.com>

* Fix ordering

* Final fix(?)

---------

Co-authored-by: Marioiscool246 <27823923+Marioiscool246@users.noreply.github.com>
2023-03-20 21:13:02 -04:00
Agent X
42b43a9b7e
get_ttc_speed_setting and set_ttc_speed_setting (#307) 2023-03-20 20:20:11 -04:00
Agent X
b2ba30e41c
Merge pull request #306 from Agent-11/smlua-exec-str
/lua (Run Lua from chat IF you compiled with DEVELOPMENT)
2023-03-20 20:12:52 -04:00
Agent X
d0318c23d5
Merge pull request #301 from Agent-11/hooks
Touch up new hooks
2023-03-20 20:07:14 -04:00
Agent X
b05c7ccf74
Merge pull request #302 from Isaac0-dev/apple
put everyone in the jumbo star cutscene if one person is in it
2023-03-20 20:06:05 -04:00
Agent X
3a45334a3d
Merge pull request #310 from Agent-11/time
get_time()
2023-03-20 19:59:31 -04:00
Agent X
4fd13c6bda
Bug fixes for mostly the title screen (#308)
- Add NULL checks to DynOS warps
- Change checks for skipping interpolation on the original title screen for much better ones
- Interactions are no longer processed if you are on the title screen
- Re-add some of the legacy demo code for the original title screen
- Fix disconnecting on the original title screen
- Fix disconnecting on the act select screen
- Fix interpolation crash
2023-03-18 17:14:01 -04:00
Agent X
22952dda05
Expose sound_banks_enable/disable to Lua (#311) 2023-03-18 17:12:33 -04:00
Agent X
c67b09b77f get_time() 2023-03-14 20:53:23 -04:00
Agent X
35eb3f1695
Merge branch 'sm64ex-coop-dev:coop' into hooks 2023-03-13 09:15:04 -04:00
Agent X
0c7de174d2 Add /lua to chat commands with dev flag 2023-03-08 19:26:03 -05:00
Agent X
36bda742cd Revert "smlua_exec_str (run Lua from string)"
This reverts commit b32ab212a9.
2023-03-08 19:04:32 -05:00
Agent X
b32ab212a9 smlua_exec_str (run Lua from string)
Seemed useful for debug or any other purposes, why not?
2023-03-08 18:54:06 -05:00
Isaac0-dev
bd2bd7c498
bring back vanilla demos (#221)
* Bring back the demos from vanilla

the demo will activate if you are on the level that demo was meant to be from, and the default amount of time has passed

* clean up a bit and check a few things

* reset the demo input table

* config option/prevent demos playing on player menu

* update demo playing

- keep playing level music after demo finishes
- stop the demo if the player changes main menu level
2023-03-03 01:47:03 -05:00
Isaac0-dev
a939ddc07b
bring back the ability to lose your cap (#229)
* bring back the ability to lose your cap

* run autogen and add "cap" to the mario states guide

* fix some indentation
2023-03-03 01:46:46 -05:00
Isaac0-dev
0500379081 put everyone in the jumbo star cutscene if one person is in it 2023-03-01 23:23:20 +10:00
Agent X
4af8af677f Touch up new hooks 2023-02-28 22:39:16 -05:00
eros71
4b567d8fc3
Remove include duplicate (#298)
Hardcoded.h has been already included in a line before, this last duplicate shouldn't be there.
2023-02-28 20:45:45 -05:00
Isaac0-dev
ac5204d46b
fix client crash when incompatible tag is null (#300)
* rerun autogen

* give clients access to mod incompatible tags

And fix a crash when warping to the cake end picture

* whoops

* fix client crash
2023-02-28 20:45:17 -05:00
Isaac0-dev
6e58ad6179 Merge branch 'apple' of https://github.com/Isaac0-dev/sm64ex-coop-broken into apple 2023-02-28 23:21:10 +10:00
Isaac0-dev
417fd1774c fix client crash 2023-02-28 23:20:55 +10:00
Isaac0-dev
a22f930d27
fix crash when incompatible tag is null (#299)
* rerun autogen

* give clients access to mod incompatible tags

And fix a crash when warping to the cake end picture

* whoops
2023-02-28 07:52:47 -05:00
Isaac0-dev
904a3e944f
Merge branch 'coop' into apple 2023-02-28 22:50:40 +10:00
Isaac0-dev
2d9fd2ad18 whoops 2023-02-28 22:49:10 +10:00
wRadion
2927425025
Define HARDCODED_H in header file (#297) 2023-02-27 12:30:03 -05:00
Isaac0-dev
eeae1f0f38
give clients access to mod incompatible tags (#296)
* rerun autogen

* give clients access to mod incompatible tags

And fix a crash when warping to the cake end picture
2023-02-27 11:22:31 -05:00
Isaac0-dev
d3f76b7351 give clients access to mod incompatible tags
And fix a crash when warping to the cake end picture
2023-02-27 22:58:00 +10:00
PeachyPeach
1e175b5ce7
Make most used and useful features built-ins (#242)
* made all bools u8 for consistency with fixCollisionBugs
* preview blue coins + visible secrets
* preserve indexing
* star number
* hud cap timer
* red coins radar + secrets radar
* extended pause display
* autogen
* only sDynosBuiltinFuncs is sensitive to indexing
* rebased
2023-02-26 03:15:54 +01:00
Sunk
9ec75abc60
Add HOOK_BEFORE_SET_MARIO_ACTION (#253)
* Small quality of life changes

Disabled fixed collision in sm74 by default.
Popping should now completely set the popped player's speed to 0.

* Add HOOK_BEFORE_SET_MARIO_ACTION

Param: incoming action
Return: changes incoming action
If the return value is 1, prevent the action from happening entirely.
0 can't be used here since it'll break the title screen.

* Update hooks.md

* Revert "Small quality of life changes"

This reverts commit 05dd235cd0.
2023-02-22 20:28:23 -05:00
Sunk
fd6745954b
Force the player to stop moving upon being popped (#289) 2023-02-22 15:13:11 -05:00
Prince Frizzy
463c92b774
Bump version number (#292)
* Fix empty .bhv in Star Road.

* Bump version number.
2023-02-22 01:32:52 -05:00
Isaac0-dev
baedae5412
rerun autogen (#291) 2023-02-22 00:56:30 -05:00
Prince Frizzy
48d1f28d81
Fix wiggler glitching when being jumped on when small. (#287) 2023-02-21 02:46:59 -05:00
Agent X
ea7f0a11c2
Small improvements to HUD and new functions (#268)
* Small improvements to HUD and new functions

- Split HUD_DISPLAY_FLAG_CAMERA_AND_POWER into HUD_DISPLAY_FLAG_CAMERA and HUD_DISPLAY_FLAG_POWER
- Added hud_is_hidden()
- Added camera_is_frozen()
- Added extra sanity check to hud.c

* Re-add old flags

* Fixes and improvements

* Mod compatibility
2023-02-21 00:23:15 -05:00
Agent X
4aada40a62
area_create_warp_node and area_get_warp_node* (#270)
* area_get_warp_node*

- Added area_get_warp_node to Lua
- Added area_get_warp_node_from_params to Lua

* area_create_warp_node and warp constants

Here you go Isaac!

* Add object param

* Commits work again, pushing everything else
2023-02-20 21:47:32 -05:00
Isaac0-dev
9f1bf8cc6e
disable interpolation when frame limiter is at 30 (#286)
* fix player connected spam on joining a game

* make it possible to actually disable interpolation

by setting the frame limiter to 30
also move the "Disable Popups" option to misc settings.

* maybe someday ill learn to read.

* one day.
2023-02-20 21:29:23 -05:00
Agent X
761cd5b66b
Check if env region index is greater than 0 (#285) 2023-02-19 21:20:45 -05:00
Isaac0-dev
ea8e7b75d8
fix player connected spam on joining a game (#284) 2023-02-19 03:47:01 -05:00
Isaac0-dev
3bc0b13e20
ACTIVE_FLAG_DORMANT (#281) 2023-02-18 23:45:13 -05:00
Isaac0-dev
3f7f5da50e
expose course_is_main_course() to Lua (#282) 2023-02-18 16:23:51 -05:00
Isaac0-dev
053d4902ed
allow mods to hide and move shadows for small objects (#257) 2023-02-18 16:06:03 -05:00
Blockyyy
76038a20e4
This adds gLevelValues.wingCapLookUpReq to lua. (#271)
* added gLevelValues.wingCapLookUpReq

* Added gLevelValues.wingCapLookUpReq

* Added gLevelValues.wingCapLookUpReq

* Added gLevelValues.wingCapLookUpReq

* Added gLevelValues.wingCapLookUpReq

* Changed the look up warp star req

Hidden Palace can only be accessed at 120 stars.
2023-02-18 16:04:22 -05:00
Isaac0-dev
1fd2ab86c6
CAMERA_MODE_NONE crash fix (#278) 2023-02-16 18:55:05 -05:00
Agent X
4e293712fd
Expose Paintings to Lua (#279)
* Expose paintings to Lua

* Make some "dangerous" fields immutable

I just thought being able to edit paintings IDs from Lua was a little bit too much.
2023-02-16 18:54:38 -05:00
Isaac0-dev
98834d5670
improve --client flag, fix hud font character width for spaces (#277)
* improve --client flag and domain resolution

* stop using the debug flag for dev binds

* smaller character width with spaces for the hud font
2023-02-16 18:54:23 -05:00
Agent X
8046d19db1
Add ' and " to gTextures (#273) 2023-02-15 19:45:11 -05:00
Isaac0-dev
2d1cb4712c
add a way to create/modify whirlpools (#267) 2023-02-08 16:40:41 -05:00
Agent X
35f7caecc1
Improvements and optional tweaks (#263)
- Added visibleToEnemies to invisible fields
- Added cur_obj_set_billboard_if_vanilla_cam() which makes trees only billboard if free camera is off
- Added RespawnShellBoxes to gBehaviorValues
- Added pauseExitAnywhere to gLevelValues
- Disabled the power meter chime playing on the main menu whenever disconnecting from a server with low health
2023-02-08 10:51:07 -05:00
Agent X
3dcbd5908f
Expose version constants to lua (#264) 2023-02-08 10:42:16 -05:00
Isaac0-dev
0b6f0dcf0e
Give Lua mods access to a form of level script preprocessing (#258)
* Give Lua mods access to a form of level script preprocessing

* Disable acts setting
2023-01-31 07:24:56 -05:00
Agent X
3283ec9950
Sanity check. (#259) 2023-01-31 05:55:55 -05:00
Prince Frizzy
46b2e24052
Add support for custom cap sequences. (#250) 2023-01-31 05:55:18 -05:00
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
MysterD
2bcf5ea851 Audio fixes 2022-04-16 22:04:18 -07:00
MysterD
0c2f9e86f6 Fix ext bounds warnings 2022-04-16 21:38:37 -07:00
MysterD
d63d6a1ca5 Merge branch 'unstable' of github.com:sm64ex-coop-dev/sm64ex-coop into unstable 2022-04-16 21:35:13 -07:00
MysterD
a68cf17080 Adjust extended bounds values 2022-04-16 21:34:49 -07:00
MysterD
d08507edbb Yet another mod cache fix 2022-04-16 21:21:31 -07:00
MysterD
bd63218e9a more 2022-04-16 14:28:15 -07:00
MysterD
ad9e8995d7 Frantic fixing 2022-04-16 13:45:45 -07:00
MysterD
202315f260 Rewrite of hash/cache system 2022-04-16 13:05:10 -07:00
MysterD
55850aa828 Force loading order on hash/normalize path 2022-04-16 00:36:30 -07:00
MysterD
6b67c983ec exposed sequence ids to lua 2022-04-15 21:51:18 -07:00
MysterD
afbc268b61 Fix memory corruption 2022-04-15 21:47:47 -07:00
MysterD
2e1bb3830d Fix broken clock 2022-04-15 19:34:47 -07:00
MysterD
ace1bb671b Fix warnings 2022-04-16 02:24:15 -07:00
MysterD
c996f7b481 Prevent crashes when executing an unimplemented action 2022-04-15 18:36:45 -07:00
MysterD
fbce5f23c6 Added ability to set a level to skip credits, fixed SM74 bugs 2022-04-15 18:33:10 -07:00
MysterD
5a260a2840 Fix sequence buffer overrun 2022-04-15 18:32:36 -07:00
MysterD
8d2e732243 Revert "Prevent bettercam from zooming in until player is fully obscured"
This reverts commit 250e97aed2.
2022-04-15 12:09:41 -07:00
MysterD
d4d24ab114 Fix crash in cutscene_enter_painting 2022-04-15 18:26:55 -07:00
MysterD
c9ff077ece Prevent chat messages on load from crashing 2022-04-15 18:23:46 -07:00
MysterD
250e97aed2 Prevent bettercam from zooming in until player is fully obscured 2022-04-14 21:27:31 -07:00
MysterD
6b46a04030 Fixed wiggler dialog crash 2022-04-14 19:40:37 -07:00
MysterD
105907cd71 Made PVP stunlocks harder 2022-04-14 18:28:08 -07:00
MysterD
bf435d5aa9 Fixed knockback direction 2022-04-14 18:25:42 -07:00
MysterD
1d7dfe4d3c Reset squish settings on spawn 2022-04-14 18:14:10 -07:00
MysterD
f5e19541e8 Fix crash in bhv_rotating_clock_arm_loop 2022-04-14 00:57:02 -07:00
MysterD
7fc7acbc2e Mouse controlled camera no longer affects main menu camera 2022-04-14 00:54:32 -07:00
MysterD
1559f4db0b Bowsers BITDW ground tremor now affects all players 2022-04-14 00:49:55 -07:00
MysterD
b18a0d416d Fixed tumbling bridge desyncs 2022-04-14 00:45:16 -07:00
MysterD
bf315f266f Fix memory corruption in sound init 2022-04-13 20:36:52 -07:00
MysterD
757cad4fbc Fix warnings with EXTERNAL_DATA 2022-04-13 19:50:19 -07:00
MysterD
1508f07fef Added actor textures to dynos builtin list; added shadow_spike_ext 2022-04-13 19:13:25 -07:00
MysterD
9793b56f84 Fixed crash in act_caught_in_whirlpool 2022-04-13 01:37:07 -07:00
MysterD
ce52fe4c1d Fixed crash in network_receive_area 2022-04-13 01:34:19 -07:00
MysterD
254486a39f Fixed crash in haunted bookshelf manager 2022-04-13 01:30:53 -07:00
MysterD
ab933f250e Fixed crash when pausing in unexpected courses/acts 2022-04-13 01:29:41 -07:00
MysterD
9310370d61 Fixed crash in bhv_animates_on_floor_switch_press_loop 2022-04-13 01:14:25 -07:00
MysterD
f66530dd17 Have levels automatically clean up their loaded graph nodes 2022-04-13 01:09:53 -07:00
MysterD
81870df88b Remove certain default Lua functions 2022-04-13 00:38:01 -07:00
MysterD
9653a19c7d Improve rom hack camera's collisions in tight spaces and focus underwater. Add HOOK_ON_SET_CAMERA_MODE 2022-04-13 00:10:50 -07:00
MysterD
e12c7a9640 Merge branch 'level-scripts' into unstable 2022-04-12 21:58:41 -07:00
MysterD
7c54f006d1 Remove discord asserts 2022-04-12 21:57:03 -07:00
MysterD
bf3c3bdccc More fixes 2022-04-12 19:39:48 -07:00
MysterD
c5c11a5a40 More work on mod hashing/caching 2022-04-12 19:25:06 -07:00
MysterD
97a9360529 Added mod hashing/caching to prevent re-downloading the same mods 2022-04-12 18:38:53 -07:00
MysterD
8a0cd66849 change how downloaded directory mods are saved 2022-04-11 23:33:21 -07:00
MysterD
f2e8683331 Fix downloads 2022-04-11 23:22:43 -07:00
MysterD
cdb1bbe92a Fix DynOS vertex offset writing 2022-04-11 22:54:36 -07:00
MysterD
f2f911e5b0 Clang/mac fixes 2022-04-11 21:43:55 -07:00
Isaac
f75cffb158
Small changes (#60)
Prevented camera mode from being reset when someone else bubbles
+ more
2022-04-11 21:25:58 -07:00
MysterD
b4f87e7a50 fix camera change 2022-04-11 21:09:58 -07:00
MysterD
431af75d88 Add a vanilla-like camera for romhacks 2022-04-11 21:04:15 -07:00
MysterD
77bace907c Fixed incorrect progress for downloading 2022-04-11 19:34:28 -07:00
MysterD
499681ff8d Fix custom sounds in SM74 2022-04-10 22:48:31 -07:00
MysterD
f8ffc23422 Made downloads significantly faster 2022-04-10 21:53:58 -07:00
MysterD
b60b5e3c07 Possible fix for init_mario_after_warp() crash 2022-04-10 18:19:15 -07:00
MysterD
2b7f12efbe Fix fanfare spam in sm74 2022-04-10 18:15:22 -07:00
MysterD
9cf97f3406 Quick fix for model loading 2022-04-10 16:35:53 -07:00
MysterD
d92c9dcfd4 Rewrote extended model loading code. Should (hopefully) fix floating player models replacing stars 2022-04-10 16:19:07 -07:00
MysterD
ef4a83dc88 Quick fixes for test 2022-04-10 10:11:13 -07:00
MysterD
d7e57003f1 Bump version 2022-04-10 09:56:56 -07:00
MysterD
2c187bba45 Added default volume support for custom sequences 2022-04-10 09:47:17 -07:00
MysterD
9dc78a0971 Added support for custom music 2022-04-10 09:11:45 -07:00
MysterD
7de32ee5bb Add SM74's geo_choose_area 2022-04-10 03:07:55 -07:00
MysterD
957e03cd81 Added HOOK_GET_STAR_COLLECTION_DIALOG 2022-04-10 02:44:11 -07:00
MysterD
958b04378c Add exit castle warp params to Lua 2022-04-10 02:29:44 -07:00
MysterD
15d6dc3a9c Allow ability to disable vanilla course-specific settings for camera 2022-04-10 01:55:11 -07:00
MysterD
3db42f1700 Allow coop mods to use the backup save slot independently of the normal one 2022-04-10 00:30:47 -07:00
MysterD
653ab58a5d Allow course names/acts to be changed from Lua 2022-04-09 23:28:36 -07:00
MysterD
c75e71f24e Unhardcoded all behavior dialogs, allowed replacement of dialogs 2022-04-09 19:50:50 -07:00