thedax
2d6c740829
Fix cargo test compilation ( #102 )
2025-07-04 11:35:06 -04:00
2cbf70fbe5
Fix tests
2025-06-28 10:02:09 -04:00
6ecdae840c
Continue parsing when encountering unknown packets
...
This reads the unknown packet data, just throwing it in a byte
buffer. This allows us to read the rest of the segmenets in
the packet, and fixes parsing.
Note that this still log spams with "wrong size" as we can't
determine the size of the unknown packet ahead of time. This is
easy to fix, but it's not a high priority yet.
Fixes #73
2025-06-28 08:48:59 -04:00
2075da0c5e
Fix tests and Cargo warnings
2025-06-27 17:59:40 -04:00
7b8177b27b
Allow building for WebAssembly
...
This really only allows you to access the packet parsing bits, starting
the servers isn't possible for a variety of reasons.
2025-06-27 17:58:14 -04:00
4f364ae330
Don't make packet parsing async
...
This doesn't need to be marked as async, the code isn't.
2025-06-26 19:09:13 -04:00
ddb67383af
Fix more easy Clippy warnings
2025-06-23 21:14:38 -04:00
0d37dd7b6e
Fix the size of None segments
...
It should be 0, not 16 bytes.
See #40
2025-06-21 13:59:58 -04:00
777cb8b2a3
When failing to parse a packet segment, print it's size
...
This can be helpful to determine what the heck this opcode is.
2025-06-19 16:07:39 -04:00
a88b9037d4
Begin adding disconnection handling
...
This doesn't work 100% reliably yet, but the world server should now try
to commit your player back to the database if it detects you disconnect.
I also fixed a mistake where the global server state never removed
clients when they errored out. There's now code to remove your actor
from the instance when disconnecting, but this doesn't work reliably yet
either.
2025-05-12 01:17:15 -04:00
23f9b5f3c1
Move oodle into the packet module
...
Not sure why I didn't do this before, it's not important enough to be a
top-level item.
2025-05-02 00:52:26 -04:00
5111a38424
Re-organize IPC segments into the ipc module
...
These were kind of scattered everywhere, instead we should move them
into their own module. Kawari's custom IPC is moved here too.
2025-05-02 00:47:11 -04:00
9eb9eca1c8
Change unk1/unk2 in PacketHeader to prefix
2025-05-02 00:31:27 -04:00
0f98bfde52
Implement Default trait for PacketSegment
...
This reduces a *ton* of places where I had to set
source_actor/target_actor to zero because it wasn't relevant.
2025-05-02 00:28:05 -04:00
f3f25eb219
Overhaul segment types, their names and their order
2025-05-02 00:03:36 -04:00
2ec54fa6ec
Use more accurate names for some client lobby packet types
2025-05-01 22:36:30 -04:00
6971ef1fc8
Rename PacketHeader's unk3 into "version"
...
I know the name now, but it's still a mystery what it is?
2025-05-01 22:29:34 -04:00
fed21b3617
Make various packet dumping optional, turned off by default
...
This creates a lot of clutter, and only really interesting to
developers.
2025-04-01 16:58:39 -04:00
caf70ea469
Pass GameData into Zone, stop loading the same zone twice on login
2025-03-30 19:13:24 -04:00
9cb7cd9abd
Add initial stuffs for actor replication
2025-03-30 18:03:42 -04:00
4d88f78184
Remove a good bit of log spam
2025-03-28 23:00:32 -04:00
d11c6ad090
Restore and add the remaining 7.2 opcodes
...
Now Kawari is back to it's full functionality, save for tests being
broken and out of date and PlayerSetup has the wrong padding. Success!
2025-03-26 19:23:14 -04:00
3a66e4466c
More various 7.2 packet fixes, attempt to check recieved packet size
2025-03-26 19:23:14 -04:00
a217823a64
Quiet some warnings
2025-03-23 18:21:12 -04:00
c29f8ad7df
Run Clippy auto-fix, disable large enum size warning
2025-03-23 18:14:14 -04:00