Decompile 2 functions in Source/Client/Session.cpp, Source/Client/Session.h, ...
Batch #2985 by eAthena: 2 byte-identical, 0 confirmed by peer review. - fn_24180 CSession::IsEffectRenderEnabled: byte-identical - fn_24194 CSession::ResetUnknownState: byte-identical Merged automatically: every function is byte-identical to the original.
This commit is contained in:
parent
490be6d791
commit
2ba833f291
4 changed files with 91 additions and 6 deletions
|
|
@ -9,6 +9,7 @@
|
|||
#include <cstdlib>
|
||||
#include <cstring>
|
||||
#include <windows.h>
|
||||
#include <timeapi.h>
|
||||
|
||||
// STATIC: 0x01732638
|
||||
// GLOBAL: gl_24474
|
||||
|
|
@ -68,6 +69,37 @@ bool CSession::IsDoramJob(int job) const {
|
|||
}
|
||||
}
|
||||
|
||||
// OFFSET: 0x00E3D090
|
||||
// FUNCTION: fn_24180
|
||||
bool CSession::IsEffectRenderEnabled() const {
|
||||
return true;
|
||||
}
|
||||
|
||||
// OFFSET: 0x00E3D0A0
|
||||
|
||||
// OFFSET: 0x00E3D0F0
|
||||
|
||||
// OFFSET: 0x00E3D240
|
||||
|
||||
// OFFSET: 0x00E3D320
|
||||
|
||||
// OFFSET: 0x00E3DB20
|
||||
// FUNCTION: fn_24194
|
||||
bool CSession::ResetUnknownState() {
|
||||
this->unknown_59C0 = 1;
|
||||
this->unknown_59C4 = 1;
|
||||
this->unknown_59C8 = 1;
|
||||
this->unknown_59CC = 1;
|
||||
this->unknown_59D4 = 1;
|
||||
this->unknown_59BC = 1;
|
||||
this->unknown_0E94 = 1;
|
||||
this->unknown_103C = -1;
|
||||
this->unknown_5450 = 0;
|
||||
this->m_serverTimeOffset = 0;
|
||||
this->m_serverTimeAdjustCount = 0;
|
||||
return true;
|
||||
}
|
||||
|
||||
// OFFSET: 0x00DFF1F0
|
||||
// FUNCTION: fn_23614
|
||||
char* CSession::ConvertTooltipText(const char* source, char* output) const {
|
||||
|
|
|
|||
|
|
@ -93,7 +93,8 @@ public:
|
|||
/* 07A0 */ std::uint32_t m_averagePing;
|
||||
/* 07A4 */ unsigned char unknown_07A4[0x10];
|
||||
/* 07B4 */ unsigned char m_playerNameKey[0x40];
|
||||
/* 07F4 */ unsigned char unknown_07F4[0x6A4];
|
||||
/* 07F4 */ unsigned char unknown_07F4[0x6A0];
|
||||
/* 0E94 */ int unknown_0E94;
|
||||
/* 0E98 */ int unknown_0E98;
|
||||
/* 0E9C */ unsigned char unknown_0E9C[0x3C];
|
||||
/* 0ED8 */ int m_head;
|
||||
|
|
@ -122,7 +123,9 @@ public:
|
|||
/* 0FEC */ unsigned char unknown_0FEC[0x24];
|
||||
/* 1010 */ std::uint32_t unknown_1010;
|
||||
/* 1014 */ unsigned char unknown_1014[4];
|
||||
/* 1018 */ char unknown_1018[0x40];
|
||||
/* 1018 */ char unknown_1018[0x24];
|
||||
/* 103C */ int unknown_103C;
|
||||
/* 1040 */ unsigned char unknown_1040[0x18];
|
||||
/* 1058 */ int m_petActionTable[5][5][7];
|
||||
/* 1314 */ unsigned char unknown_1314[0x258];
|
||||
/* 156C */ XmlDocument m_petTalkTable;
|
||||
|
|
@ -177,7 +180,9 @@ public:
|
|||
/* 52B8 */ std::vector<const char*> m_accessoryNames;
|
||||
/* 52C4 */ std::vector<const char*> m_robeNames;
|
||||
/* 52D0 */ std::vector<std::string> m_navigationForbiddenMaps;
|
||||
/* 52DC */ unsigned char unknown_52DC[0x260];
|
||||
/* 52DC */ unsigned char unknown_52DC[0x174];
|
||||
/* 5450 */ int unknown_5450;
|
||||
/* 5454 */ unsigned char unknown_5454[0xE8];
|
||||
/* 553C */ std::string m_serverName;
|
||||
/* 5554 */ unsigned char unknown_5554[4];
|
||||
/* 5558 */ int unknown_5558;
|
||||
|
|
@ -198,7 +203,14 @@ public:
|
|||
/* 568C */ int m_mercenaryKills;
|
||||
/* 5690 */ unsigned char unknown_5690[4];
|
||||
/* 5694 */ __time32_t m_mercenaryExpiration;
|
||||
/* 5698 */ unsigned char unknown_5698[0x340];
|
||||
/* 5698 */ unsigned char unknown_5698[0x324];
|
||||
/* 59BC */ int unknown_59BC;
|
||||
/* 59C0 */ int unknown_59C0;
|
||||
/* 59C4 */ int unknown_59C4;
|
||||
/* 59C8 */ int unknown_59C8;
|
||||
/* 59CC */ int unknown_59CC;
|
||||
/* 59D0 */ int unknown_59D0;
|
||||
/* 59D4 */ int unknown_59D4;
|
||||
/* 59D8 */ LuaScript* m_hotkeyScript;
|
||||
/* 59DC */ unsigned char unknown_59DC[0x218];
|
||||
/* 5BF4 */ int m_pairValues[3];
|
||||
|
|
@ -210,7 +222,8 @@ public:
|
|||
/* 6144 */ std::map<int, SessionRecord6144> unknown_6144;
|
||||
/* 614C */ unsigned char unknown_614C[0x20];
|
||||
/* 616C */ std::vector<int> unknown_616C;
|
||||
/* 6178 */ unsigned char unknown_6178[0x14];
|
||||
/* 6178 */ unsigned char unknown_6178[0x10];
|
||||
/* 6188 */ int m_lastIntervalTime;
|
||||
/* 618C */ const char* const* m_doramMaleHeadNames;
|
||||
/* 6190 */ unsigned char unknown_6190[0x08];
|
||||
/* 6198 */ const char* const* m_doramFemaleHeadNames;
|
||||
|
|
@ -232,7 +245,8 @@ public:
|
|||
/* 80EC */ std::string unknown_80EC;
|
||||
/* 8104 */ std::string unknown_8104;
|
||||
/* 811C */ std::vector<ITEM_INFO> m_cardItems;
|
||||
/* 8128 */ unsigned char unknown_8128[0x0C];
|
||||
/* 8128 */ unsigned char unknown_8128[0x08];
|
||||
/* 8130 */ int unknown_8130;
|
||||
/* 8134 */ int unknown_8134;
|
||||
/* 8138 */ std::int64_t m_startTimeTicks;
|
||||
/* 8140 */ std::int64_t m_loginTimeTicks;
|
||||
|
|
@ -374,6 +388,12 @@ public:
|
|||
int GetPetEmotionNumber(int job, int action, int hungerLevel);
|
||||
void ClearItemSelection();
|
||||
bool IsDoramJob(int job) const;
|
||||
bool IsEffectRenderEnabled() const;
|
||||
bool CheckInterval(long long interval);
|
||||
bool IsPlayerPerformerJob(int job) const;
|
||||
bool IsSpecialMonsterJob(int job) const;
|
||||
bool IsWithinUnknown59C0(int value) const;
|
||||
bool ResetUnknownState();
|
||||
bool IsSecondJob(int job);
|
||||
void UpdateBodyStyle(int job, int style, int renderJob);
|
||||
std::string GetBodyJobName(int job);
|
||||
|
|
@ -481,6 +501,13 @@ static_assert(offsetof(CSession, unknown_1770) == 0x1770);
|
|||
static_assert(offsetof(CSession, m_itemSlots) == 0x4860);
|
||||
static_assert(offsetof(CSession, m_shops) == 0x80BC);
|
||||
static_assert(offsetof(CSession, unknown_8134) == 0x8134);
|
||||
static_assert(offsetof(CSession, unknown_0E94) == 0xE94);
|
||||
static_assert(offsetof(CSession, unknown_103C) == 0x103C);
|
||||
static_assert(offsetof(CSession, unknown_5450) == 0x5450);
|
||||
static_assert(offsetof(CSession, unknown_59BC) == 0x59BC);
|
||||
static_assert(offsetof(CSession, m_hotkeyScript) == 0x59D8);
|
||||
static_assert(offsetof(CSession, m_lastIntervalTime) == 0x6188);
|
||||
static_assert(offsetof(CSession, unknown_8130) == 0x8130);
|
||||
static_assert(offsetof(CSession, m_skillBundle) == 0xC);
|
||||
static_assert(offsetof(CSession, m_homunSkills) == 0x84);
|
||||
static_assert(offsetof(CSession, m_mercSkills) == 0x8C);
|
||||
|
|
|
|||
|
|
@ -4,6 +4,14 @@
|
|||
#include "Contents/Effects/GravityControlEffect.h"
|
||||
#include "Contents/Effects/SkillEffects.h"
|
||||
|
||||
#include "Client/Mode/CGameMode.h"
|
||||
#include "Client/Session.h"
|
||||
#include "Client/Mode/ModeMgr.h"
|
||||
#include "Contents/Camera/Camera.h"
|
||||
#include "Render/Renderer.h"
|
||||
#include "Utility/Math/AffineMatrix.h"
|
||||
|
||||
#include <cmath>
|
||||
#include <new>
|
||||
|
||||
// OFFSET: 0x00B25750
|
||||
|
|
@ -22,6 +30,16 @@ CEffect* EffectLists::Find(int actor, int id) const {
|
|||
return nullptr;
|
||||
}
|
||||
|
||||
// OFFSET: 0x00B3B040
|
||||
|
||||
// OFFSET: 0x00B3BE50
|
||||
|
||||
// OFFSET: 0x00B3BED0
|
||||
|
||||
// OFFSET: 0x00B3BFD0
|
||||
|
||||
// OFFSET: 0x00B3C1C0
|
||||
|
||||
// OFFSET: 0x00B257C0
|
||||
// FUNCTION: fn_18784
|
||||
CEffect* EffectLists::Find(int actor, int instance, int id) const {
|
||||
|
|
|
|||
|
|
@ -7,8 +7,11 @@
|
|||
#include <cstdint>
|
||||
#include <list>
|
||||
#include <map>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
#include "Utility/Math/Vector3d.h"
|
||||
|
||||
struct CAllocator {
|
||||
virtual ~CAllocator() = default;
|
||||
virtual CEffect* Create() = 0;
|
||||
|
|
@ -33,6 +36,7 @@ public:
|
|||
void Retire(int actor, int id);
|
||||
void Retire(int actor, int instance, int id);
|
||||
void RetireActor(int actor);
|
||||
void Render();
|
||||
void Clear();
|
||||
void Release();
|
||||
};
|
||||
|
|
@ -46,6 +50,10 @@ static_assert(offsetof(EffectLists, indexed) == 0x20);
|
|||
#endif
|
||||
|
||||
void DestroyEffectMgr();
|
||||
float DirectionAngle(float x, float z);
|
||||
double ScreenAngle(vector3d from, vector3d to);
|
||||
std::string CurrentMapScriptName();
|
||||
std::string EffectFunctionName(std::string name);
|
||||
|
||||
extern EffectLists* g_effectMgr;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue