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

776 commits

Author SHA1 Message Date
0399930ec7 Add UpdateRestedExp, LoseEffect and GainEffect ACs 2025-07-14 18:17:57 -04:00
The Dax
4f5f204507 Redundancy nit. 2025-07-14 17:27:45 -04:00
The Dax
9a60faa15d Hook up an equipment sales NPC for testing non-stackable items 2025-07-14 17:27:45 -04:00
The Dax
421a24aa6f When adding items to the inventory, prefer existing stacks first before selecting empty slots.
-This works for adding items to the inventory in any capacity, including debug and GM commands!
2025-07-14 17:27:45 -04:00
thedax
a5120bb9d6
Fix client-side crashes when discarding items. (#117)
-Various things were wrong in InventoryTransaction, but they should now be fixed.
2025-07-13 20:11:54 -04:00
bfca1605d5 Document !replay debug command 2025-07-13 20:11:05 -04:00
a4c8466088 Move packet replay to the global server state
This makes it way more stable, and can actually work now.
2025-07-13 20:09:50 -04:00
06debd5eb0 Begin implementing packet replay
It doesn't work fantastic yet, I need to move it to the global
server state to truly work as intended.
2025-07-13 18:01:59 -04:00
The Dax
ba1a92c9bc Rename GilShopRelatedUnk to UpdateInventorySlot
-This now matches Karashiiro/FFXIVOpcodes.
2025-07-13 15:22:44 -04:00
The Dax
eb9d08866e Implement better support for buying from gil shops
-You can now purchase multiple things in a row
-It shows the proper log messages
-For the moment all items go to the very first inventory slot, and overwrite each other
2025-07-13 15:22:44 -04:00
efa07bb87f Add new actor control categories 2025-07-13 13:49:27 -04:00
c3291b1e47 Add support for the LevequestCompleteList IPC opcode
We also tell the client it completed every levequest in the game,
to showcase this works.
2025-07-13 11:59:56 -04:00
2cc562de38 Add support for the QuestActiveList IPC opcode 2025-07-13 11:24:14 -04:00
8be1fefa53 Add support for sending the title list, when requested
This doesn't allow you to set them yet, just show them in the menu.
2025-07-13 10:15:40 -04:00
c339c89c41 Fix various issues with the Lobby packets
Everything should be more consistent now, in regards to "tickets"
and actor ids.
2025-07-13 09:52:00 -04:00
822f693f8c Add XiCharacterInfo IPC opcode
I don't know what this is, I got the name from Sapphire.
2025-07-13 09:10:32 -04:00
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