1
Fork 0
mirror of https://github.com/redstrate/Kawari.git synced 2025-07-17 10:47:44 +00:00
Commit graph

760 commits

Author SHA1 Message Date
49003a4d89 Add FreeCompanyInfo IPC opcode 2025-07-13 09:05:22 -04:00
8083be24c7 Add UpdateSearchInfo IPC opcode 2025-07-13 09:03:02 -04:00
46cf7d4200 Add ActorGauge IPC opcode 2025-07-13 08:58:46 -04:00
c04cfdf5da Add ObjectSpawn IPC opcode
The struct itself is all kinds of wrong as I blindly copied it from
Sapphire, so I wouldn't depend on it just yet.
2025-07-13 08:56:15 -04:00
7cfa20052d Remove appearance updates from ZoneConnection::send_inventory
This isn't needed anymore.
2025-07-13 08:47:53 -04:00
b84462fd6f Send equip item updates again
This was lost in the inventory refactoring because it was only
handled by ZoneConnection::send_inventory, but it needs to happen
elsewhere now.
2025-07-13 08:42:56 -04:00
fe4d0d2344 Inform client about some unimplemented inventory containers
As seen in a retail capture, we should be sending these I guess.
2025-07-13 08:38:28 -04:00
c0daf7b06b Skip sending empty UpdateItems on first login
There's no reason to do this, the client has no pre-existing
inventory state so we're just wasting bytes.
2025-07-13 08:29:45 -04:00
cca0f8c0e5 Add remaining inventory container types
Most of these will remain unimplemented, but we need the enum to
be complete for Packet Analyzer to not trip over unknown ones.
2025-07-13 08:14:35 -04:00
f88d62b80f Remove comment in lobby to investigate other server's KeepAlive
I checked a retail capture, and I think we're doing it correctly
for the chat and zone connection already. They wait until Setup to
send it (so the client is authorized, of course.)
2025-07-13 08:07:25 -04:00
67d01513b1 Begin figuring out various content finder thingies 2025-07-12 20:53:59 -04:00
fac241ce7b Fix the wrong classjob being set when creating a character 2025-07-12 18:56:00 -04:00
c86a5f70a6 Add command, actor control to unlock instanced content 2025-07-12 18:33:52 -04:00
thedax
45ee95318c
Rename inventory-related opcodes to match Karashiiro/FFXIVOpcodes (#112)
-Implement keyboard turning packet as a no-op so it'll stop clogging server logs

-Finish implementing inventory actions
2025-07-12 17:40:22 -04:00
779666a10f Fix off-by-one in ServerChatMessage 2025-07-12 15:01:12 -04:00
f176e4fb8d Fix wrong binrw attribute in ServerChatMessage
This was supposed to be "pad_size_to" not "pad_after"!
2025-07-12 14:55:42 -04:00
3059cda4a4 Add remaining IPC size tests, fix some struct issues 2025-07-12 14:48:21 -04:00
217ed2466c Fix the API for support desk headlines 2025-07-12 10:11:18 -04:00
eb73af03d6 Match retail headers for frontier server 2025-07-12 09:49:05 -04:00
c688e93f7c Stop panicking when walking into unused zones lines
Fixes #87
2025-07-12 09:10:17 -04:00
d58025e415 Use COMPLETED_QUEST_BITMASK_SIZE in QuestCompleteList 2025-07-12 08:36:01 -04:00
48b84bfed9 Stop extracting game files if no unpack directory is set 2025-07-12 08:36:00 -04:00
87676bafd7 Allow selecting a service account in the lobby 2025-07-12 08:36:00 -04:00
6a08ae4b0f Add CLASSJOB_ARRAY_SIZE constant for various classjob arrays 2025-07-12 08:36:00 -04:00
5f57748a6f Update dependencies 2025-07-12 08:36:00 -04:00
5dcd3ea1f2 Don't enable oodle feature while running tests on the CI
This isn't needed, no tests are gated behind the feature.
2025-07-12 08:02:02 -04:00
7d632fe04c Revert "Fix doctests trying to use the Oodle feature"
This reverts commit e6dfdce38a.
2025-07-12 08:02:02 -04:00
ae5e168f2d Put new rusqlite usage behind #[cfg]
This should fix the WebAssembly build.
2025-07-12 08:02:02 -04:00
8e3e18812b Build WebAssembly target on the CI
We depend on this downstream in Packet Analyzer, so we need to
ensure this doesn't break.
2025-07-12 08:02:02 -04:00
781fea1e35 Fix Chronofoil capturing not working
This was because Kawari was not seeing the KeepAliveRequest like
the retail Lobby server does, and Chronofoil didn't know what to
do.

Fixes #113
2025-07-11 23:21:18 -04:00
e6dfdce38a Fix doctests trying to use the Oodle feature
Still not sure what made this break, but now we stop trying to use
the real Oodle when compiling doctests. It doesn't make sense there
anyway.
2025-07-11 22:33:59 -04:00
14c5a68be5 Make link search path added in build script more explicit
Doesn't fix our doctest issue, but we should probably do this
anyway.
2025-07-11 22:33:55 -04:00
f7c73a14a6 Various fixes to make serving patches work
Only tested against sqexPatch.dll so far, but this helps retail in
general. More correct-looking headers are sent, logging is increased
(to help debugging) and other fixes for boot patch verification.
2025-07-11 21:39:15 -04:00
thedax
eb2e7a9987
Refactor large portions of database.rs, and fix the remaining clippy warnings (#111)
* Address warning "warning: very complex type used. Consider factoring parts into `type` definitions"
-But instead of making a new type we just create PlayerData directly

* Address "warning: this expression creates a reference which is immediately dereferenced by the compiler"


* Address "warning: calling .bytes() is very inefficient when data is not in memory"
2025-07-09 22:59:39 -04:00
ade08f9697 Begin implementing navimesh path visualization
It doesn't look quite right - probably because the navmesh
generation is bad. But it's progress!
2025-07-09 22:55:35 -04:00
075a2fea11 Begin testing navmesh queries
The next step is to visualize the navmesh so I know what's going
on!
2025-07-09 21:23:32 -04:00
b6a445cc34 Complete navmesh generation
Still no idea if it's actually correct yet, but the function calls
pass.
2025-07-09 20:37:11 -04:00
5bea7f9b34 Generate more Recast data, start using Detour functions 2025-07-09 20:24:11 -04:00
e929f40e94 Begin building the various bits of Recast navigation
I got it to "work" (not checked, but the calls at least don't fail)
and now it's time to include the detour portion.
2025-07-09 19:17:07 -04:00
e269806248 Begin integrating recastnavigation-sys 2025-07-09 15:58:57 -04:00
85cec9f092 Begin adding zone collision visualization
If you run kawari-navimesh and give it a zone ID, it can now show
you the loaded collision meshes. I only tested it in inn rooms so
far, but already works super well.
2025-07-09 14:59:02 -04:00
f5f166c78f Print out contents of unknown client triggers 2025-07-09 00:35:42 -04:00
20b26377dc Begin logging collision asset paths in naivmesh gen 2025-07-08 23:38:03 -04:00
e26820f777 Begin working on a navimesh generation tool
This just lays the groundwork for processing a zone, given an ID.
2025-07-08 23:33:33 -04:00
edf0643990 Grab navimesh paths from LVB, warn when navimesh is missing
Of course we don't even generate the navimeshes to begin with, but
it's a start.
2025-07-08 23:21:34 -04:00
d16c2c6583 Allow loading unpacked game files, add unpacking mode
This enables you to subsitute game files with your own more easily,
along with running a server with only a limited amount of game
data.
2025-07-08 22:39:31 -04:00
0291221dc7 Add a note in CONTRIBUTING on how to substitute with a local Physis 2025-07-08 22:38:41 -04:00
7b6605b018 Update Icarus, switch to the new Physis Resource system
While there isn't a functional difference in Kawari yet, this is
paving the way to allow loading unpacked game files.
2025-07-08 21:54:42 -04:00
The Dax
9b03e2d7c2 Properly address "warning: method default can be confused for the standard trait method std::default::Default::default" 2025-07-08 21:54:10 -04:00
The Dax
93ddff8ed4 Address "warning: this impl can be derived" 2025-07-08 21:54:10 -04:00