Commit graph

110 commits

Author SHA1 Message Date
MysterD
a58130b9f6 Added extended bounds 2022-04-06 08:40:22 -07:00
Prince Frizzy
a1af1c2ffb
Grand star fix and etc (#47)
A ton of Bowser fixes, Grand star included.

Fixed Grand Star cutscene syncing.
Partially fix grand star syncing after joining late.
Fix Bowser's intro cutscene always playing even if you joined after the first person.
Hopefully fixed Bowser's state getting interrupted mid-fight just a bit.
Add nothing state sanity check, and send object reliability when cutscene is finished.
Fix ownership override.
2022-03-30 19:03:53 -07:00
Prince Frizzy
54a6135cb9
Cleanup Deluxe (#45) 2022-03-29 20:45:56 -07:00
MysterD
0d2f9d1e8f Fixed crash in dist_between_objects() 2022-03-21 12:31:37 -07:00
Prince Frizzy
bb8ead8681
Fix star cutscene playing for everybody with Klepto plus some cleanup. (#32)
* Fix star cutscene playing for everybody with Klepto plus some cleanup.

* Fix compile error.

* Fix pyramid elevator syncing, Hopefully fix pyramid top syncing, Grand Star partial working sync.

* Fix up the Grand Star code.
2022-03-16 00:05:28 -07:00
MysterD
e81808c314 Merge branch 'dynos' into unstable 2022-03-10 18:17:59 -08:00
MysterD
1b99e22848 Added the ability to spawn particles from Lua
Added particles to football
Increased the object cap for particles
2022-03-09 21:25:07 -08:00
MysterD
b3ed387711 Added DynOS v1.1 without the dynamic options
- Added support for coop-specific actors
- Added support for coop-specific geo functions
- Added support for coop-specific model functions
2022-03-09 18:01:03 -08:00
MysterD
369a7cd7e5 Better fix for crash in cur_obj_follow_path() 2022-03-05 14:38:17 -08:00
MysterD
202bd1964c Revert "Fixed crash in cur_obj_follow_path()"
This reverts commit 394d1970c5.
2022-03-05 14:25:17 -08:00
MysterD
394d1970c5 Fixed crash in cur_obj_follow_path() 2022-03-04 20:47:43 -08:00
MysterD
3ad6c721dc Initial custom behavior commit 2022-03-03 01:04:15 -08:00
MysterD
8d5ab43f66 Possible crash fix 2022-03-01 18:02:54 -08:00
MysterD
1131fb02db Prevented SM64 hang on object count overflow 2022-02-22 01:10:17 -08:00
MysterD
69fb69dfce Fix bugs/warnings from static analysis 2022-02-20 20:04:25 -08:00
Prince Frizzy
32b0c91935
Fixes for Refresh 12 2022-02-19 01:39:38 -05:00
MysterD
625e9b5df9 Fix various bugs with spiny and lakitu 2022-01-14 20:06:26 -08:00
MysterD
92692378b4 Added adjustable draw distance for objects 2021-08-30 18:22:36 -07:00
MysterD
710a7e4749 Color detached caps according to player palette 2021-08-06 01:02:07 -07:00
MysterD
196ac547ef Bubbled visual improvements (pitch to player) 2020-10-14 23:18:05 -07:00
MysterD
d13127117a Misc additional player checks 2020-10-06 20:29:23 -07:00
MysterD
b831acd59c Rewrote how RNG is synchronized
The old implementation was hacky and often returned desynchronized
results. This implementation gives a seed to each sync object, and
synchronizes that seed. Also allows for a seed to be saved temporarily
based on position and recycled for multiple calls.
2020-10-05 19:15:13 -07:00
MysterD
4d938e635d Render both sides of open doors 2020-09-24 23:45:28 -07:00
MysterD
fffad90028 Prevented more NPC dialog soft locks 2020-09-19 16:09:52 -07:00
MysterD
95e9c1dc4c Synchronized room checking better + fixed bookswitches
Determining if the player is in the room was bugged, and bookswitches
caused Luigi to crash. Now things should be a bit more stable in BBH.
Fixes #30
2020-09-07 19:51:39 -07:00
MysterD
e0903003f4 Rewrote how players are initialized, stored, and displayed
Since the second-player code was the first code I wrote, it was implemented
poorly. At that point, I didn't know the code base at all and the way it was
written would prevent anyone from ever adding to those parts.

The rewrite allows me to use the default geo.inc.c file for Mario, and removes
all of the geo2.inc.c files. I no longer do a bunch of bit shifting to figure
out which player is being drawn in the rendering code.

I'm also now able to remove tons of duplicate code that exists just for the
remote player. The main player code is generic enough to support both indices.
A side-effect of the rewrite is I was able to remove many assumptions in the
code where two-players is assumed, but many other parts of the code still
assume two players.

This is a fairly major change that, if all goes well, will be completely
unnoticed by the player. However, I do expect new bugs to pop up in strange
places. Time will tell.
2020-09-06 18:52:52 -07:00
MysterD
b9750057d5 General network code clean up
Marked globals, rearranged functions, added comments
2020-09-06 11:02:41 -07:00
MysterD
906ea3345e Players turn into bubbles when they die
Player life counters are separate.
When one player dies they lose a life and are turned into a bubble.
If the other player pops it, they are alive again.
If all players are bubbled, they get kicked out of the level.
If the bubbled player ran out of lives, they can not come back to life
until the level is over.
Whenever a level change happens, everyone's life count is set to a
minimum of two.
No game overs.

Took heavy inspiration from Kaze Emanuar
2020-09-05 18:10:55 -07:00
MysterD
d5005c9f37 Served time for crimes against C
Due to my compile & launch scripts, I was silently ignoring warnings
this whole time. I've fixed my process, and gone back to fixed all of
the warnings I could (even outside of my code).
2020-09-04 01:58:54 -07:00
MysterD
920c0674d9 More tuxie fixes
Tuxie will regain its hitbox if dropped through crouching or any other means
Fixed detection of if any mario is far away
Immediately sends an object packet whenever any object is dropped or thrown

Fixes #9
2020-09-03 08:58:21 -07:00
MysterD
af117f4647 Various tuxie synchronization fixes 2020-09-01 20:13:46 -07:00
MysterD
efa1600ad0 Truly deal with the NPC dialog softlock problem
Reported by somario360:
After I (Luigi) gave the baby penguin to the mother, the start spawned,
but I was stuck in the looking up animation.
My friend (Mario) talked to Bowser after defeating him, Bowser turned into
a key, but he was stuck in the looking up animation after (I was able to
grab the key though, but Bowser was slightly visible) (Also don't mind 0
stars, he loves doing the lobby BLJ)

The issue is the state machine moved on without removing the reading
dialog action. There was no straight forward way to deal with this.
Custom functions were written for each call to dialog to ensure that we
should stay reading the dialog.
2020-08-31 21:10:34 -07:00
MysterD
483694d6b3 Synchronized Bowser 1 2020-08-29 12:59:07 -07:00
MysterD
d2a2a80d56 Synchronized Big Boo's Haunt + major changes
Synchronized currentRoom per-player
Synchronized haunted bookshelf, and the bookshelf manager
Synchronized haunted chairs
Synchronized mad piano
Synchronized BBH's tilting trap, and made the physics multiple-player-aware
Synchronized scuttlebugs
Synchronized every variety of Boo
Synchronized elevators
Synchronized flamethrowers
Synchronized the various types of enemy books
Synchronized the book switches
Synchronized jumping box
Made coffins multiple-player-aware

Fixed everything that used gMarioState as an array instead of gMarioStates
Prevented some NPC-dialog softlocks
Prevented the remote player from messing up the local's camera settings
Possibly fixed the relatively rare chain chomp softlock
Possibly fixed the relatively rare chain hoot softlock
Fixed the first-person-camera softlock
Forced camera code to use the correct mario struct
2020-08-26 23:29:40 -07:00
MysterD
8c650a5b7d Created system to reserve sections of SyncIDs per client
This allows clients to spawn a new sync object after the level loads and synchronize it.
Changed how un-initialized sync objects are detected
Koopa shells are the first thing to use this new system

Removed network_object_settings() command, instead explicitly setting the sync object parameters
2020-08-24 18:33:53 -07:00
MysterD
6e4c39eabe Kept more randomness, fixing tree leaves, fix pole segfault 2020-08-12 19:39:31 -07:00
MysterD
3b00aa9e42 Various synchronization enhancements 2020-08-11 23:00:13 -07:00
MysterD
aaf521659e Disabled many timestops 2020-08-10 18:10:04 -07:00
MysterD
40a3d55f9a Synchronized racing penguin 2020-08-10 15:09:09 -07:00
MysterD
8c7348f10d Synchronized baby and mother Tuxie
Added missing star parameter
2020-08-10 14:27:56 -07:00
MysterD
41647d95c4 Synchronize Bobomb buddies and cannons 2020-08-09 07:42:44 -07:00
MysterD
eeec6aae49 L is real 2020
Added Luigi model.
Renamed all previous references to 'Luigi' to 'Mario2' since player 1
isn't always mario, and player 2 isn't always luigi.
Now server is always mario and client is always Luigi.

Luigi model credits:
Original model by Cjes, converted by AloXado320, textures added/fixed by
SunlitSpace542.
2020-08-08 21:36:49 -07:00
MysterD
7f5dec337e Synchronized King Bobomb
Tried to synchronize dialog stuff, it's way too much of a mess to do
2020-08-08 17:13:11 -07:00
MysterD
444c1fdd3b Synchronized coin collection
Reimplemented how randomness is synchronized
2020-08-07 18:01:58 -07:00
MysterD
5ec9ab9ec0 Synchronized seesaw, started moving toward a MAX_PLAYERS define 2020-08-06 22:52:32 -07:00
MysterD
6d0d7ffbaa Dialog to toad/signs/doors no longer soft-locks or stops time 2020-08-03 23:23:09 -07:00
MysterD
4486e8000c Began fixing up Luigi collisions 2020-07-30 18:44:09 -07:00
MysterD
131fc7ea11 60 fps patch 2020-07-28 18:28:12 -07:00
n64
6330644371 Refresh 11 2020-07-05 14:15:43 +03:00
n64
4a448cf10d merge refresh 10 2020-06-20 02:49:59 +03:00