Commit Graph

35 Commits (8c7f55a1fb40d2d3656704b5434ca746fa7255dc)

Author SHA1 Message Date
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 df7904e288 Geo2 removal wip 2020-09-06 13:54:01 -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 68ad6bc15c Added host/join in-game GUI
Now people aren't forced to launch with command-line parameters,
instead they can host or join a server by selecting buttons in
the main menu.
2020-09-03 18:30:15 -07:00
MysterD b7a1ec009c Removed debug enemies from castle grounds 2020-08-28 23:06:56 -07:00
MysterD ab9d7db29f Synchronized square platforms as groups of two 2020-08-28 20:25:34 -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 1f1753e469 Added MARIO2 to all level scripts 2020-08-09 09:16:09 -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 0a2c76c76e Fixed max sync distance issue, synced Koopas 2020-08-05 20:25:52 -07:00
MysterD f32d3a2ba7 Added Luigi to courtyard and BoB, fixed some crashing issues 2020-08-03 17:59:44 -07:00
MysterD 9b5b5acf19 Synchronized goombas, synced randomness, added extra fields to object packets 2020-08-02 18:29:46 -07:00
MysterD 3d055255bc Added ability to sync multiple objects 2020-08-02 16:09:32 -07:00
MysterD 579415dca9 Started synchronizing objects, refactored networking 2020-08-02 01:43:12 -07:00
MysterD 34b1ec76f6 Started adding networking 2020-08-01 20:22:24 -07:00
MysterD 7accb94398 Made fish Luigi-aware 2020-07-31 22:35:14 -07:00
MysterD 4351a6345a Made Goomba Luigi-aware, fixed Mario's hurtboxes 2020-07-31 22:13:05 -07:00
MysterD c437e075ff Separated held objects, made Bobombs Luigi-aware 2020-07-31 18:03:57 -07:00
MysterD 2d2dff6647 Added IMMEDIATELOAD debug flag to skip all intro stuff 2020-07-30 20:42:39 -07:00
MysterD 0737d2e03f Separated animations between players 2020-07-30 18:09:47 -07:00
MysterD 6b3ab5f115 Started adding player 2 / Luigi 2020-07-29 21:08:38 -07:00
fgsfds 125675c536 restore full demo loop 2020-06-21 19:38:15 +03:00
n64 4a448cf10d merge refresh 10 2020-06-20 02:49:59 +03:00
Hyenadae 31f0d68ca2 Removed majority of TARGET_N64 logic from code 2020-05-13 07:57:25 -04:00
Zero-Shift 3f9236a233 Update script.c
Changed amount of sleep frames when transitioning from main menu and exiting a stage to fix TAS sync issues
2020-05-09 20:32:50 -05:00
Jan200101 e87c070517
merge PC port onto the decompile 2020-05-07 20:21:22 +02:00
n64 c45aa301bb Refresh 8 2020-04-03 14:57:26 -04:00
n64 06ec56df7f Refresh 7 2020-03-01 22:42:52 -05:00
n64 9a801cb96d refresh 6 2020-02-03 00:51:26 -05:00
n64 9273f38df1 refresh 5 2020-01-03 10:38:57 -05:00
n64 04732af90b refresh 4 2019-12-01 21:52:53 -05:00
n64 a7c423cb43 Refresh 3 2019-11-03 14:36:27 -05:00
n64 52e605f075 Refresh 2 2019-10-05 15:08:05 -04:00
n64 1ef98ec785 Refresh 1 2019-09-01 15:50:50 -04:00
n64 89e8690857 init2 2019-08-25 00:46:40 -04:00