Commit Graph

54 Commits (1e7b1a7615a1cf17c4198a51cb3487b71bef487e)

Author SHA1 Message Date
MysterD 3fc8e45f77 Rewrite the core of network area timer (yet again) 2021-08-10 18:29:49 -07:00
MysterD 8204f49399 Resynchronize WF platforms using Network Area Timer 2021-08-03 23:26:32 -07:00
MysterD 84e92836c8 Refactored network area timer system 2021-08-03 19:21:50 -07:00
MysterD dd0f1cddac Resync bomp using Network Area Timer 2021-08-03 18:52:48 -07:00
MysterD aebaecc1cc Resynchronized checkerboard elevators to use area timer 2021-06-14 20:29:08 -07:00
MysterD 016a912286 Complete rewrite of level-change/area-change system
Now level changes and area changes are separated. Entity deletions are
properly tracked on level change or area change. Late entity
synchronization is now triggered on any area change.
2021-06-11 14:39:25 -07:00
MysterD 3ab8f04c61 Synchronized respawners and entities created after level load 2021-06-08 21:21:52 -07:00
MysterD 96a698aec3 Enhancements to networked player infrastructure 2020-10-10 01:18:45 -07:00
MysterD 961e282259 Snap players on top of synchronized platforms 2020-10-05 22:05:05 -07:00
MysterD c399e337cd 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 e78ccf852b Prevent hang due to mirror mario nodes 2020-10-04 22:10:41 -07:00
MysterD 518019fee1 Additional synchronization fixes for end cutscene. 2020-09-26 12:07:43 -07:00
MysterD 1f80cf47ea Make bettercam/puppycam respect NO_CAM_COLLISION 2020-09-25 21:40:59 -07:00
MysterD bb2c99ae89 Increase bettercam's precision 2020-09-22 22:14:43 -07:00
MysterD 67acc0d09d Improve bettercam's collision detection and avoidance
The precision of ray casting was too low previously, causing the
collision checks to skip right past a wall sometimes. There was also
nothing to prevent the camera from getting too close to a wall
horizontally or vertically.
2020-09-19 19:35:05 -07:00
MysterD 86c9bbf672 Fixed small crimes against C 2020-09-10 09:43:32 -07:00
MysterD 416f4a1398 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 62ecf2c58a Geo2 removal wip 2020-09-06 13:54:01 -07:00
MysterD 20a317afdb General network code clean up
Marked globals, rearranged functions, added comments
2020-09-06 11:02:41 -07:00
MysterD 25c4267ae5 Allow vanish cap to pass through walls
fixes #16
2020-09-05 13:31:36 -07:00
MysterD 7c6298acbc 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 22b6b3ff98 Kept more randomness, fixing tree leaves, fix pole segfault 2020-08-12 19:39:31 -07:00
MysterD 3a321fd8dc Fixed visual bug when both players are sliding 2020-08-12 19:14:35 -07:00
MysterD 7467425bbc Refactor packet_object + misc cleanup 2020-08-09 17:40:37 -07:00
MysterD 4584b8b8f2 Gave each BehaviorScript an ID
Created functions to trivially translate an ID to a Behavior and vice
versa. Sent ID over packets instead of Behavior pointer. This should
allow Linux and Windows to play together.
2020-08-09 16:21:12 -07:00
MysterD a1522c9eaf 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 efc609b37e Synchronized bowling balls
Added flag to keep randomization for sync objects
2020-08-07 21:13:07 -07:00
MysterD a76dbaeb5c Synchronized coin collection
Reimplemented how randomness is synchronized
2020-08-07 18:01:58 -07:00
MysterD 1a838e3ac6 Synchronized seesaw, started moving toward a MAX_PLAYERS define 2020-08-06 22:52:32 -07:00
MysterD 6878b47833 Added Luigi to courtyard and BoB, fixed some crashing issues 2020-08-03 17:59:44 -07:00
MysterD 0fad9840a3 Synchronized goombas, synced randomness, added extra fields to object packets 2020-08-02 18:29:46 -07:00
MysterD f55716c46a Began fixing up Luigi collisions 2020-07-30 18:44:09 -07:00
MysterD f84e9c92af Started adding player 2 / Luigi 2020-07-29 21:08:38 -07:00
MysterD e902cd51da 60 fps patch 2020-07-28 18:28:12 -07:00
n64 6cf747b7d0 Refresh 11 2020-07-05 14:15:43 +03:00
n64 5bee83faa8 merge refresh 10 2020-06-20 02:49:59 +03:00
fgsfds 4fdaa3475f clean up some toolchain compatibility fixes
also rename the abs() macro to not cause any fucking conflicts ever again
2020-05-19 22:22:52 +03:00
Colton Rushton 736c7a2fff Refactor PR #151 2020-05-19 10:14:44 -03:00
fgsfds 23055c2a44 Merge branch 'master' into master 2020-05-16 22:47:39 +03:00
uncletrunks 7c7287b33a putting out fires 2020-05-14 21:50:10 -05:00
uncletrunks d0c0a31fea adds cylindrical billboarding, enables it for trees. 2020-05-14 20:31:52 -05:00
Hyenadae 3c38191956 Removed majority of TARGET_N64 logic from code 2020-05-13 07:57:25 -04:00
uwabami 9791e95ae7 adding option to disable draw distance 2020-05-12 09:26:16 +02:00
Jan200101 d0eac210c3 port analog camera code to the master codebase 2020-05-08 13:41:35 +02:00
Jan200101 9267bdd8a8 merge PC port onto the decompile 2020-05-07 20:21:22 +02:00
n64 4d54e2f91a Refresh 8 2020-04-03 14:57:26 -04:00
n64 88e2433da5 Refresh 7 2020-03-01 22:42:52 -05:00
n64 88b91e7c75 refresh 6 2020-02-03 00:51:26 -05:00
n64 ced3a63505 refresh 5 2020-01-03 10:38:57 -05:00
n64 99e662fa5d refresh 4 2019-12-01 21:52:53 -05:00