diff --git a/Source/Client/Replay.cpp b/Source/Client/Replay.cpp index a2f3caf3..432d1818 100644 --- a/Source/Client/Replay.cpp +++ b/Source/Client/Replay.cpp @@ -1057,3 +1057,19 @@ std::vector CSession::BuildSkillListReplayPacket(short id) { return {}; } } + +// OFFSET: 0x00B86440 +// FUNCTION: fn_19329 +void Replay::CachePacket(std::uint16_t id, std::uint16_t size, const unsigned char* data) { + if (size == 0 || id > 3142 || data == nullptr) { + return; + } + ReplayCachedPacket& packet = this->cachedPackets[static_cast(id)]; + if (!packet.enabled) { + return; + } + packet.bytes.resize(size, 0); + packet.bytes.assign(data, data + size); +} + +// OFFSET: 0x00E42EB0 diff --git a/Source/Client/Replay.h b/Source/Client/Replay.h index 52e95655..61d7d41d 100644 --- a/Source/Client/Replay.h +++ b/Source/Client/Replay.h @@ -138,6 +138,7 @@ public: void ResetFile(); bool SetOptions(const void* data, int bytes); std::vector ReadSection(int id); + void CachePacket(std::uint16_t id, std::uint16_t size, const unsigned char* data); bool ReadRecord(unsigned char* buffer, std::uint16_t& id, bool force); bool AllowsEvent(int event) const; void Rewind(); diff --git a/Source/Client/Session.h b/Source/Client/Session.h index 9b5966a6..8c7a2cc5 100644 --- a/Source/Client/Session.h +++ b/Source/Client/Session.h @@ -493,6 +493,7 @@ public: void LoadRobeAlpha(); void LoadDamageSkinSettings(); bool LoadMapNameTable(); + bool LoadFogParameters(); void ClearHomunStatus(); std::pair* InsertPair(int key, int value); int SetPairValue(int value, int slot); @@ -702,6 +703,7 @@ public: std::uint32_t ReadReplayReserved(const std::vector& data); std::uint32_t ReadReplayEntryQueue(const std::vector& data); std::vector BuildShortcutReplayRecords(); + std::vector BuildReservedReplayRecords(); std::vector BuildSkillListReplayPacket(short id); void SetHomunculusAutoFeed(bool enabled); void SetPetAutoFeed(bool enabled); diff --git a/Source/Contents/ClientTiming.cpp b/Source/Contents/ClientTiming.cpp index eea11d44..84b22f69 100644 --- a/Source/Contents/ClientTiming.cpp +++ b/Source/Contents/ClientTiming.cpp @@ -3,12 +3,14 @@ #include "Contents/Configuration/ServiceConfiguration.h" #include "Contents/MapInfoMgr.h" #include "Contents/NavigationManager.h" +#include "File/File.h" #include "Script/LuaScript.h" #include "UI/Window/UIWindow.h" #include "UI/Window/UIWindowMgr.h" #include "Utility/Cipher/XorBytes.h" #include "Utility/Text/FormatString.h" +#include #include #include #include @@ -775,6 +777,8 @@ void CSession::LoadDamageSkinSettings() { g_luaScript->Call("GetDamageMillionUnit", "d>d", this->m_damageSkinIndex, &this->m_damageMillionUnit); } +// OFFSET: 0x00DE5620 + // OFFSET: 0x00DE5B40 // FUNCTION: fn_23493 void CSession::ClearHomunStatus() { diff --git a/Source/Contents/Configuration/ServiceOptions.cpp b/Source/Contents/Configuration/ServiceOptions.cpp index 74f9903e..dbaaa048 100644 --- a/Source/Contents/Configuration/ServiceOptions.cpp +++ b/Source/Contents/Configuration/ServiceOptions.cpp @@ -988,3 +988,5 @@ void RequestPlayerAction31() { player->SendMsg(nullptr, 0x1F, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } } + +// OFFSET: 0x006C5B40