Commit graph

932 commits

Author SHA1 Message Date
anzz1
bc7ec31c02
Enemy hat fixes (#83)
* Ukiki now steals Mario/Luigi hat correctly
* Klepto now steals Mario/Luigi hat correctly
* Mr. Blizzard now knocks off Mario/Luigi hat correctly
* Fwoosh now knocks off Mario/Luigi hat correctly

Co-authored-by: anzz1 <>
2020-10-16 03:03:25 -07:00
MegaMech
e447332cec
Added server settings: shared lives and skip intro
Adds button to the host menu to allow shared lives.
Resolves #37

Buttons are now resizeable. Use gButtonScale.<size> (large, medium, or small).
It could be argued that we don't need the small size. However, it may be beneficial for the future if the menu becomes more complex.

large is the normal default size. Or at least it was the size already being used by sm64ex-coop (0.11111111f)

Note: Buttons for changing menu's should be gButtonScale.large as the menu animation is made for large buttons. To keep consistency it's probably a good idea for buttons that transfer you to a new menu to always be set to large. As such, I didn't feel it necessary to extend this feature to these methods: bhv_menu_button_growing_from_custom and bhv_menu_button_shrinking_to_custom.

Resolves #60
2020-10-16 02:58:57 -07:00
MysterD
c49ba7cdd8 Change version to beta 2, prepare unstable branch 2020-10-16 01:04:07 -07:00
MysterD
9f158de95d Remove two-player hack for controlled warp 2020-10-15 18:04:53 -07:00
MysterD
48aee0c7be Enemies drop player when picked up 2020-10-14 23:52:07 -07:00
MysterD
66eb163339 Prevent playing star cutscene when in cutscene 2020-10-14 23:36:19 -07:00
MysterD
71bc444fa2 Desync fixes for hoot, piranha, spiny 2020-10-14 23:25:59 -07:00
MysterD
c50794773c Allow bubbled players to go through elevators 2020-10-14 23:20:43 -07:00
MysterD
196ac547ef Bubbled visual improvements (pitch to player) 2020-10-14 23:18:05 -07:00
MysterD
040aa92fd1 Prevent people from hosting a discord game when discord fails 2020-10-14 21:17:28 -07:00
MysterD
8750198750 Prevented vanish cap players from interacting with other players 2020-10-14 20:58:03 -07:00
MysterD
cfd559bc74 Sync riddenObj, prevent remote interaction with shell 2020-10-14 20:50:55 -07:00
MysterD
8fc8ca6ca7 Prevent players from interacting with a shell that someone else is riding 2020-10-14 20:42:04 -07:00
MysterD
cb902c519d Properly synchronize koopa shells spawned from boxes 2020-10-14 20:34:38 -07:00
MysterD
d882e8a039 Added a way to debug sync object tables through chat 2020-10-14 20:33:23 -07:00
MysterD
16b95fdbca Prevent cursor from going past array in course completion screen 2020-10-14 20:03:05 -07:00
MysterD
85c05e7d56 Removed two-player hacks for packet_spawn_objects 2020-10-14 00:15:56 -07:00
MysterD
28ad7f91ed Smooth over transition from sending raw enums 2020-10-13 23:04:08 -07:00
MysterD
55bbe8d4d9 Removed two-player hacks for heldObj and spawning offsets 2020-10-13 22:26:13 -07:00
MysterD
c8a45235ca Removed two-player hacks from cannon and object packets
Increased error checking of get_behavior_from_id
Made failure logging for packet_object a lot better
Changed debug logging to show global index instead of "Server/Client"
Changed debug keyboard binds to support more keyboard types
Made SyncObject's rxEventId de-duplication per-player instead of one-player
Removed sizeof(enum) from packet_read/packet_write
2020-10-13 21:44:27 -07:00
MysterD
aaa7e65b65 Created character struct for mario/luigi asset differences
Removed multiple two-player hacks in the process
2020-10-13 18:33:51 -07:00
MysterD
f230d4fe63 Removed two-player hack for held objects 2020-10-13 18:12:33 -07:00
MysterD
9f1d03d5b4 Remove two-player hack for packet_object 2020-10-13 18:11:40 -07:00
MysterD
66af03c41d Slight improvement to small breakable box sync 2020-10-12 18:10:40 -07:00
MysterD
c214800faf Standardized de-duplication of reliable packets 2020-10-12 18:40:38 -07:00
MysterD
5d9d5ed9d7 Added ability for client to send a packet to server, and for the server to broadcast to all clients 2020-10-12 18:23:48 -07:00
MysterD
3f798609be remove unused version call 2020-10-11 20:45:44 -07:00
MysterD
8b6bfc2369 Possible fix for big bully spawn 2020-10-11 19:16:21 -07:00
MysterD
d4f92ed209 Reset override_ownership to null (fixes crash in THI) 2020-10-11 18:54:05 -07:00
MysterD
7bf2ebd7e8 Made version mismatch screen more descriptive 2020-10-11 18:26:10 -07:00
MysterD
342a048e0e Display instructions on how to fix Discord error to user 2020-10-11 18:11:11 -07:00
MysterD
adb7fe86eb Fix how scancodes are read for text input
May fix issue where spanish keyboards are unable to press enter to chat
2020-10-11 17:20:47 -07:00
MysterD
feb9bead02 Synchronized the controller properly (fixes 64bit-to-32bit communication bug) 2020-10-11 17:20:08 -07:00
MysterD
c0a30c8de6 Establish new versioning system (beta 1) 2020-10-11 15:49:24 -07:00
MysterD
7791e03d6a Added all levels to support levels! 2020-10-11 14:55:08 -07:00
MysterD
1345b8d9d0 Synchronized Bowser 3 fight platforms 2020-10-11 14:54:16 -07:00
MysterD
b536fcfdb0 Added RR to supported levels 2020-10-11 14:42:04 -07:00
MysterD
13fdf6ceaf Added TTC to supported levels 2020-10-11 14:40:13 -07:00
MysterD
dbe1e21b87 Synchronized TTC treadmill 2020-10-11 14:39:41 -07:00
MysterD
f64e315c74 Synchronized TTC spinner 2020-10-11 14:39:32 -07:00
MysterD
7167c8537b Synchronized TTC rotating solid 2020-10-11 14:39:21 -07:00
MysterD
52510de84e Synchronized TTC pit block 2020-10-11 14:39:07 -07:00
MysterD
4cb089c428 Synchronized TTC pendulum 2020-10-11 14:38:56 -07:00
MysterD
788dc5310c Synchronized TTC moving bar 2020-10-11 14:38:44 -07:00
MysterD
63af39cd53 Synchronized TTC elevator 2020-10-11 14:38:30 -07:00
MysterD
83baf2eac6 Synchronized TTC cog 2020-10-11 14:38:19 -07:00
MysterD
cbeea0472c Synchronized TTC 2d rotator 2020-10-11 14:38:07 -07:00
MysterD
e1ca3b963d Misc gMarioState/gMarioObject cleanup 2020-10-10 16:12:29 -07:00
MysterD
229880cfda Synchronize burning player smoke + misc version improvements 2020-10-10 15:49:17 -07:00
MysterD
b7cf6cdf5c Synchronized 'donut platforms'... the slow falling ones in RR 2020-10-10 15:33:17 -07:00
MysterD
736fba54a2 Synchronized swing platform 2020-10-10 15:32:39 -07:00
MysterD
edc275b5e8 Enhancements to networked player infrastructure 2020-10-10 01:18:45 -07:00
MysterD
5282c461fa Fix typo, whoops. 2020-10-08 23:53:16 -07:00
MysterD
392471eb1f Bugfix for spiny override ownership 2020-10-08 23:40:01 -07:00
MysterD
2fb2fc81e1 Add THI to supported levels 2020-10-08 23:38:43 -07:00
MysterD
2adea6aad6 Synchronized Wiggler 2020-10-08 23:37:01 -07:00
MysterD
fadea702ff Synchronized THI top 2020-10-08 23:07:32 -07:00
MysterD
c958837333 Somewhat synchronized fire piranha plants 2020-10-08 23:05:06 -07:00
MysterD
55939e6eda Synchronized enemy lakitu and spiny 2020-10-08 22:14:17 -07:00
MysterD
3bb96fa609 Synchronized Bubba 2020-10-08 22:05:21 -07:00
MysterD
028990302d Prevent star dance spam 2020-10-08 21:31:53 -07:00
MysterD
8360df84fe Add chat message when a player dies 2020-10-08 21:19:16 -07:00
MysterD
ff1b19e2ee Prevent King Bobomb from grabbing while thrown 2020-10-08 21:13:56 -07:00
MysterD
e4c1640c56 Change disclaimer 2020-10-08 21:03:35 -07:00
MysterD
597cc14ccf Add TTM to supported levels 2020-10-08 20:57:56 -07:00
MysterD
5924ed9485 Disable force-synchronizing of TTM slide 2020-10-08 20:57:11 -07:00
MysterD
41295fb814 Synchronized Ukiki 2020-10-08 20:56:49 -07:00
MysterD
aa345ede4d Synchronize Fwoosh 2020-10-08 20:56:34 -07:00
MysterD
ea1553c18d Koopa shell can only be ridden by one person, and doesn't get accidentally removed 2020-10-06 23:38:56 -07:00
MysterD
d2e1b6e5a0 Possibly fixed rare invisible cannon bug 2020-10-06 21:03:08 -07:00
MysterD
93b2c4213d Added WDW to supported levels 2020-10-06 20:29:40 -07:00
MysterD
d13127117a Misc additional player checks 2020-10-06 20:29:23 -07:00
MysterD
349517e9fb Synchronized WDW water level changers 2020-10-06 20:28:44 -07:00
MysterD
b93e681377 Synchronized Skeeter 2020-10-06 20:28:28 -07:00
MysterD
6d5e1d498e Synchronized metal boxes 2020-10-06 20:28:17 -07:00
MysterD
8464d6c830 Synchronized Heave Ho 2020-10-06 20:28:06 -07:00
MysterD
2b75690a31 Synchronized WDW express elevator 2020-10-06 20:27:54 -07:00
MysterD
5ad1b60a9f Synchronized Chuckya 2020-10-06 20:27:24 -07:00
MysterD
938e0a817e Synchronized WDW arrow lift 2020-10-06 20:27:12 -07:00
MysterD
0b4ed5bf27 Added Snowman's Land to supported levels 2020-10-05 23:13:12 -07:00
MysterD
d56f46a79c Synchronized SL snow mounds 2020-10-05 23:08:36 -07:00
MysterD
347bd0ed63 Synchronized SL penguin 2020-10-05 23:08:24 -07:00
MysterD
94fe53f4bf Synchronized Snowman Wind 2020-10-05 23:08:12 -07:00
MysterD
d6a7af8f54 Synchronized Moneybag 2020-10-05 23:07:57 -07:00
MysterD
dd8de27014 Snap players on top of synchronized platforms 2020-10-05 22:05:05 -07:00
MysterD
b6d96adbf0 Prevented Yoshi softlock 2020-10-05 21:04:00 -07:00
MysterD
74852faeaf Stopped time and show cutscene for all for more stars 2020-10-05 20:36:44 -07:00
MysterD
b63a47f64a Fix strange behavior when being caught in a whirlpool while an instant warp occurs 2020-10-05 20:20:49 -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
87074ef098 Fix Bowser cutscene yet again... 2020-10-05 18:16:28 -07:00
MysterD
404d201955 Local unlocking door star spawns again 2020-10-04 23:27:02 -07:00
MysterD
53f7a36819 Prevent multiple star/key unlock animations on the same door 2020-10-04 23:23:17 -07:00
MysterD
e9761cd3e6 Prevent rare bug where a remote player will grab a non-grabbable object momentarily 2020-10-04 23:06:52 -07:00
MysterD
5eb5e678c5 Prevent OOB warp by teleporting one player to the other when OOB is detected 2020-10-04 22:38:54 -07:00
MysterD
104e824a13 Make sure 70 star door is always openable 2020-10-04 22:16:20 -07:00
MysterD
6f23b63e61 Prevent hang due to mirror mario nodes 2020-10-04 22:10:41 -07:00
MysterD
70fdad4e7c Stop time and show star cutscene for everyone
Fixes #72
2020-10-04 21:26:36 -07:00
MysterD
2c7b42b331 Adjusted how de-duplication of star spawns is done for red/hidden stars 2020-10-04 20:52:53 -07:00
MysterD
c98edbcb4b Add remote players to mirror 2020-10-04 20:18:09 -07:00
MysterD
bb30d28be9 Synchronize intro/bridge lakitu 2020-10-04 19:38:01 -07:00
MysterD
2f1e0473c2 Offset and separate player intro pipes 2020-10-04 19:16:35 -07:00
MysterD
d8bf1c8ef1 Re-enable intro 2020-10-04 19:16:16 -07:00
MysterD
03d40b4ba3 Synchronized Yoshi 2020-10-04 17:57:37 -07:00
MysterD
b89fccbf51 Prevented glitchy remote movement when moving through warp doors 2020-10-04 17:00:52 -07:00
MysterD
0f6fa70523 Gave all doors SyncIDs 2020-10-04 16:51:17 -07:00
MysterD
ed06b57649 Added mod registration system
Allows mods to register themselves so that mismatches don't occur. This
does not automagically detect when someone modified the game, so the
mods will have to insert a function like this into their patch:

static void __attribute__((constructor)) _register_this_mod() {
    network_register_mod("mod name here");
}
2020-10-04 16:41:55 -07:00
MysterD
259ddac5ba Fixed WF tower platform synchronization 2020-10-04 14:54:31 -07:00
MysterD
868d006681 Enabled/improved free movement for development purposes 2020-10-04 14:50:52 -07:00
MysterD
edd489eb49 Prevented WF's rotating platform from desyncing angle 2020-10-04 14:32:52 -07:00
MysterD
d7c43aeb95 Removed quit game options from course completion screen 2020-10-04 14:15:06 -07:00
MysterD
f3b6c60f1a Made piranha plant's hitbox consistent if event is missed 2020-10-04 13:59:14 -07:00
MysterD
d229a69b83 Made picking up / dropping objects immediately sync those objects 2020-10-04 13:54:12 -07:00
MysterD
c56114cfa2 Prevented Bowser from remaining invisible when held 2020-10-04 13:24:44 -07:00
MysterD
303d276274 Possibly fixed King Bobomb grabbing softlock 2020-10-04 13:15:08 -07:00
MysterD
307af17b6f Fix snowman's lost his head dialog 2020-10-04 12:54:21 -07:00
MysterD
b9813acbc5 Prevent dying/bubbling from replaying intro level cutscene 2020-10-03 10:15:21 -07:00
MysterD
9e2b28008b Add BITFS to supported levels 2020-10-03 00:21:47 -07:00
MysterD
57b092c26b Synchronized BITFS platforms 2020-10-03 00:18:18 -07:00
MysterD
c6da1a057a Added DDD to supported levels 2020-10-02 23:40:28 -07:00
MysterD
931ee9ca13 Prevented bubbled players from interacting with objects 2020-10-02 23:37:15 -07:00
MysterD
fb775165ce Fixed bug with whirlpools 2020-10-02 23:35:06 -07:00
MysterD
327c735dba Synchronized DDD's poles 2020-10-02 23:34:33 -07:00
MysterD
b6e5581111 Somewhat synchronized player's interact/used objects 2020-10-02 23:34:19 -07:00
MysterD
5729c3ffac Synchronized Water Rings 2020-10-02 23:33:21 -07:00
MysterD
8e572f9b9b Synchronized Sushi 2020-10-02 23:33:07 -07:00
MysterD
0b8aff4103 Synchronized Manta Rays 2020-10-02 23:32:58 -07:00
MysterD
f0eba71c77 Synchronized Bubs 2020-10-02 23:32:47 -07:00
MysterD
6dc5819583 Do a full reset of the camera again. More janky, but prevents camera softlock 2020-10-02 22:20:59 -07:00
MysterD
b673457a48 Synchronized mips/toad star spawning 2020-10-02 21:05:02 -07:00
MysterD
525ef6db17 Synchronized castle water drain pillars 2020-10-01 23:11:16 -07:00
MysterD
1bcaed297c Resynchronized HMC controllable platform 2020-10-01 22:41:27 -07:00
MysterD
e7ad181428 Applied platform displacement for entities that a player is standing on 2020-10-01 22:41:17 -07:00
MysterD
2c6ab5d4ab Change how we reset the camera when bubbled/on star collection 2020-10-01 22:00:46 -07:00
MysterD
0a68abc055 Added HMC and COTMC to the supported levels list 2020-10-01 21:35:19 -07:00
MysterD
e7ffd52d45 Made COTMC, TOTWC, VCUTM, WMOTR use the normal death barrier warp 2020-10-01 21:34:46 -07:00
MysterD
e63178ed34 Synchronized Dorrie 2020-10-01 21:27:19 -07:00
MysterD
f6bae3a619 Synchronized Monty Mole 2020-10-01 12:39:06 -07:00
djoslin0
66356133db
Merge pull request #71 from anzz1/patch-2
fix copying and erasing saves
2020-10-01 00:05:00 -07:00
MysterD
16a4662ece Synchronized swoop 2020-10-01 00:04:08 -07:00
MysterD
9cc77a5735 Synchronized snufit 2020-10-01 00:03:59 -07:00
MysterD
5cafdb0aa2 Synchronized HMC controllable platform 2020-10-01 00:03:46 -07:00
MysterD
1051a4adc5 Synchronized HMC boulders 2020-10-01 00:03:31 -07:00
MysterD
2f7d432143 Synchronized Eyerok, add SSL to supported levels
Eyerok was synchronized, but I'm still not super pleased with the
result. I had to sacrifice dialog to prevent weird states and he's
completely controlled by the server. His synchronization should be
revisited in the future.

SSL should be fully synchronized now.
2020-09-30 18:20:13 -07:00
MysterD
356029abf6 Forget all reliable packets on network shutdown
Prevents strange case where one instance of a game could connect to
itself.
2020-09-29 23:30:51 -07:00
MysterD
3a26c43d14 Prevent star count from flashing in levels 2020-09-29 23:25:28 -07:00
MysterD
76605397af Prevent vanilla camera from being in a bad state after collecting star 2020-09-29 23:18:17 -07:00
MysterD
5c6d45daa7 Allow warp to take place while paused.
Without this change, players would warp to a random node and duplicate
players.
2020-09-29 23:10:37 -07:00
MysterD
a2dc5d6624 Sanity check torsoPos to prevent phantom collisions 2020-09-29 18:05:37 -07:00
MysterD
4ade00ac78 Prevent bug where Luigi can't jump if Mario is holding something 2020-09-29 00:01:18 -07:00
MysterD
9401a79cdc Fix chat so remote is filled-in and local is non-filled-in star 2020-09-28 20:13:44 -07:00
MysterD
8c7f55a1fb Synchronize instant warps 2020-09-28 19:58:37 -07:00
MysterD
be6bff6e12 Reset transition timers when forced to warp (fixes screen flashing)
Fixes #50
2020-09-27 23:57:52 -07:00
anzz1
4ff85f8719
fix copying and erasing saves 2020-09-27 14:54:13 +03:00
MysterD
a4e3688812 Only override ownership for Bowser when tilting platform 2020-09-27 00:15:43 -07:00
MysterD
2a17d9e831 Make 60 fps behave better for infinite stairs 2020-09-26 22:00:34 -07:00
MysterD
08f72749c9 Fix Toad messages, and likely other things related to behParams 2020-09-26 19:30:22 -07:00
MysterD
b2bd29383b Continue NPC dialogs after they've started. 2020-09-26 19:08:52 -07:00
MysterD
168a41f0f6 Drop various types of packets if level/area doesn't match 2020-09-26 15:52:00 -07:00
MysterD
e0bdaa1229 Fade remote players into level/area, drop player packets when in different area 2020-09-26 15:13:46 -07:00
MysterD
f5df807a0c Additional synchronization fixes for end cutscene. 2020-09-26 12:07:43 -07:00
MysterD
389ea20180 Prevent remote camera from messing with local cutscene 2020-09-25 23:17:30 -07:00
MysterD
1e9f8ec5f4 Make bettercam/puppycam respect NO_CAM_COLLISION 2020-09-25 21:40:59 -07:00
MysterD
b594984e45 Prevent bettercam from glitching out when opening one side of a door 2020-09-25 01:03:16 -07:00
MysterD
4d938e635d Render both sides of open doors 2020-09-24 23:45:28 -07:00
MysterD
7869473e95 Make radius for collecting red coin packets smaller 2020-09-24 23:15:00 -07:00
MysterD
a75113c665 Removed huge/tiny mario and exit anywhere cheats 2020-09-24 23:10:51 -07:00
MysterD
8779460b87 Prevented level transition spam
Fixes #50
2020-09-24 22:34:55 -07:00
MysterD
1536ce87c8 Synchronized WDW initial water level 2020-09-24 22:18:04 -07:00
MysterD
333a77b647 Synchronized TTC speed setting 2020-09-24 21:59:03 -07:00
MysterD
8c1ec4beba Prevent bubbled players from 'dying' to quicksand again 2020-09-24 21:37:07 -07:00
MysterD
9c8a58fa5b Synchronize warp checkpoints
Prevents softlock when dying inside volcano in LLL and pyramid in SSL
2020-09-24 21:34:36 -07:00
MysterD
20631abc7f Make Bowser 2 less likely to fall through floor 2020-09-24 20:53:32 -07:00
MysterD
44c5b5b02b Ensure bowser key/star spawns, make bowser intro less glitchy 2020-09-24 20:28:59 -07:00
MysterD
149859e5ab Allow bubbled players to go through vanish cap walls 2020-09-24 18:54:30 -07:00
MysterD
4ab4a109da Prevented lava from taking extra lives from bubbled players 2020-09-24 18:32:18 -07:00
MysterD
61847a970d Enable bettercam/puppycam in Bowser levels 2020-09-24 18:24:58 -07:00
MysterD
39a30093d7 Synchronized pyramid walls 2020-09-24 00:06:14 -07:00
MysterD
262e65f288 Synchronized Spindels 2020-09-24 00:05:59 -07:00
MysterD
e6dd75a44c Synchronized horizontal Grindels 2020-09-24 00:05:48 -07:00
MysterD
9ef8cda5ee Synchronized SSL pyramid elevator 2020-09-24 00:05:32 -07:00
MysterD
95b9167287 Synchronized Klepto 2020-09-23 23:18:45 -07:00
MysterD
e1933e5f78 Improvements to Bowser 2 (still not fully supported) 2020-09-23 22:00:20 -07:00
MysterD
999ccccc77 Synchronize peak height to prevent random yelling of remote 2020-09-23 21:13:03 -07:00
MysterD
7d20c6f003 Fix camera stuck in cutscene after star collection 2020-09-23 20:54:59 -07:00
MysterD
20ab5ec9f6 When client selects to save, server will save 2020-09-23 20:44:44 -07:00
MysterD
7fbae9cc05 Made in-level save dialog only show up for the player that collected the star 2020-09-23 20:35:56 -07:00
MysterD
4217306a44 Ignore jump and double jump when looking at attacks 2020-09-23 20:15:29 -07:00
MysterD
e67665ca3f Made player-to-player attacks more consistent
The direction that someone is pushed is based purely on the direction
the attacker is facing.
2020-09-23 20:07:07 -07:00
MysterD
82484b5d08 Synchronized end cutscene, prevented crash 2020-09-23 19:48:24 -07:00
MysterD
29a53cd1c0 Prevent Bowser Bombs from blowing up other bombs in later stages 2020-09-23 18:03:16 -07:00
MysterD
08e8ecfc97 Synchronized fire spitters 2020-09-23 09:29:46 -07:00
MysterD
2b5c830cc4 Sanity check pokey body parts 2020-09-23 09:16:09 -07:00
MysterD
81f2102bb0 Synchronized pyramid top 2020-09-23 09:14:17 -07:00
djoslin0
8d5d79809b
Merge pull request #67 from anzz1/patch-1
Custom menu improvements
2020-09-23 00:14:05 -07:00
MysterD
5ee4a1ed0d Suppress incorrect player connected message 2020-09-23 00:13:34 -07:00
MysterD
c5dcd5de8f Synchronized Tweester 2020-09-22 23:52:57 -07:00
MysterD
794b9b2656 Synchronized Toxbox 2020-09-22 23:49:57 -07:00
MysterD
608670e0a9 Synchronized Pokey 2020-09-22 23:35:05 -07:00
MysterD
e0736ccc59 Synchronized FlyGuy 2020-09-22 22:31:24 -07:00
MysterD
94b7cf7df6 Increase bettercam's precision 2020-09-22 22:14:43 -07:00