Maintenance: Rename placeholder sub_XXXXXX functions to evidence-based names (Lua registration strings, log/error strings, packet ids

Batch #13412 by ragnarok-clanker: no function's compiled code changes; checked with 592 compiled unit(s), including every includer of Source/Client/Mode/CGameMode.h, Source/Client/Session.h, Source/Contents/Actors/GameActor.h, Source/Contents/CashEmotionMgr.h, Source/Contents/ClientItemLists.h, Source/Contents/ClientState.h, Source/Contents/Configuration/GameSettingsMgr.h, Source/Contents/Items/ItemInfo.h, Source/Contents/NavigationManager.h, Source/Contents/RenewQuestMgr.h, Source/Contents/ReputeMgr.h, Source/Contents/Schedule/TimeScheduler.h, Source/Contents/WorldView/WorldViewData.h, Source/UI/Buttons/UIDescriptRace.h, Source/UI/CashEmotion/UICashEmotionListWnd.h, Source/UI/Dialogs/UIPasswordWnd.h, Source/UI/Edit/UIEditCtrl.h, Source/UI/Edit/UIItemTagCtrl.h, Source/UI/GameSettings/GameSettingsUI.h, Source/UI/Item/UIItemStoreSubWnd.h, Source/UI/Items/UISwapEquipmentWnd.h, Source/UI/Lists/UIChatHisBox.h, Source/UI/Lists/UITagListBox.h, Source/UI/Quest/UIOngoingQuestInfo.h, Source/UI/Quest/UIRenewQuestUI.h, Source/UI/Rodex/UIRodexComposeWnd.h, Source/UI/Text/UIAchWnd.h, Source/UI/UIGradeEnchantWnd.h, Source/UI/UIIngredientInfoWnd.h, Source/UI/UIMacroUserInfoWnd.h, Source/UI/Window/UINewSkillListWnd.h, Source/UI/Window/UIRegisterMgr.h, Source/UI/Window/UIWindow.h, Source/UI/Window/UIWindowMgr.h, Source/Utility/JsonCppLoader.h.
This commit is contained in:
ragnarok-clanker 2026-11-06 16:30:12 +00:00
commit f8d3e8622d
120 changed files with 991 additions and 993 deletions

View file

@ -56,7 +56,7 @@ BOOL ReleaseApplicationCursor() {
// OFFSET: 0x00E5C430
// FUNCTION: fn_24372
LRESULT CALLBACK sub_E5C430(HWND window, UINT message, WPARAM wParam, LPARAM lParam) {
LRESULT CALLBACK WindowProc(HWND window, UINT message, WPARAM wParam, LPARAM lParam) {
std::uint8_t handled = 0;
const LRESULT result = g_serverLanguage->Message(window, message, wParam, lParam, handled);
if (handled) {

View file

@ -904,10 +904,10 @@ public:
bool CreateCooldownOwner();
CMapSkyMgr* GetMapSkyMgr();
void sub_E198F0();
void __fastcall sub_81FE50(CSignBoardMgr* manager);
LRESULT CALLBACK sub_E5C430(HWND window, UINT message, WPARAM wParam, LPARAM lParam);
int sub_E59030();
void InitMapTypeInfoTable();
void __fastcall InitializeSignBoardManager(CSignBoardMgr* manager);
LRESULT CALLBACK WindowProc(HWND window, UINT message, WPARAM wParam, LPARAM lParam);
int ReadSetup();
int RemoveProtectionTools();
void IgnoreNull();
LSTATUS SaveDisplayDeviceSettings();
@ -916,12 +916,12 @@ LSTATUS SaveDisplayDeviceSettings();
// OFFSET: 0x00E58100
// FUNCTION: fn_24362
int sub_E58100(HINSTANCE instance, int showCommand) {
int InitApp(HINSTANCE instance, int showCommand) {
g_instance = instance;
WNDCLASSA windowClass;
windowClass.style = 0;
windowClass.lpfnWndProc = sub_E5C430;
windowClass.lpfnWndProc = WindowProc;
windowClass.cbClsExtra = 0;
windowClass.cbWndExtra = 0;
windowClass.hInstance = instance;
@ -1248,7 +1248,7 @@ std::pair<bool, std::string> InitializeManagers() {
return std::make_pair(false, std::string(name.Text()));
}
sub_E198F0();
InitMapTypeInfoTable();
if (!RodexMailStore::Create()) {
const std::uint8_t nameSource[] = {0xE8, 0x1D, 0xF0, 0xC7, 0xE0, 0x57, 0x42, 0x7E, 0xD8, 0x3B, 0xFA, 0xCE, 0xC8, 0x48, 0x63, 0x3D,
0x91, 0x0C, 0xED, 0xC6, 0xE4, 0x5B, 0x74, 0x4E, 0xC5, 0x3C, 0xEB, 0xC2, 0xEB, 0x4C, 0x74, 0x2F,
@ -1354,7 +1354,7 @@ std::pair<bool, std::string> InitializeManagers() {
return std::make_pair(false, std::string(name.Text()));
}
sub_81FE50(s_signBoardMgr);
InitializeSignBoardManager(s_signBoardMgr);
if (!CAdventurerAgencyMgr::Initialize()) {
return std::make_pair(false, std::string(AdventurerAgencyCreateInstanceName()().Text()));
}
@ -1363,7 +1363,7 @@ std::pair<bool, std::string> InitializeManagers() {
return std::make_pair(false, std::string(RequestJoinPartyCreateInstanceName()().Text()));
}
Singleton<CReputeMgr>::GetInstance()->sub_60DBF0();
Singleton<CReputeMgr>::GetInstance()->Load();
CItemDBToIDMgr::GetInstance()->Load();
CItemReformMgr::Instance()->Load();
Singleton<CEnchantMgr>::GetInstance()->Init();
@ -1613,7 +1613,7 @@ int WINAPI WinMain(HINSTANCE instance, HINSTANCE previous, LPSTR commandLine, in
const std::uint8_t setupSource[] = {0x64, 0x98, 0x01, 0x20, 0x45, 0xEF, 0x30, 0x3F, 0x52, 0xFD};
thread_local EncryptedName<sizeof(setupSource), 0x4755C1355575FD37ULL> setup(setupSource);
while (sub_E59030() == 0) {
while (ReadSetup() == 0) {
if (_access(setup.Text(), 0) == 0) {
WaitForSingleObject(StartClientProcess(const_cast<char*>(setup.Text())), INFINITE);
}
@ -1659,7 +1659,7 @@ int WINAPI WinMain(HINSTANCE instance, HINSTANCE previous, LPSTR commandLine, in
}
}
g_session.sub_DD9D50();
g_session.InitClientData();
ResourceMgr& resources = ResourceMgr::Instance();
const std::uint8_t resourceNamesSource[] = {0x8F, 0xA4, 0x00, 0x0D, 0x46, 0x3C, 0x78, 0x4B, 0x9C, 0xA3, 0x1F, 0x26, 0x09, 0x25, 0x65, 0x6B,
@ -1667,7 +1667,7 @@ int WINAPI WinMain(HINSTANCE instance, HINSTANCE previous, LPSTR commandLine, in
thread_local EncryptedName<sizeof(resourceNamesSource), 0x1F1D51274373C1FDULL> resourceNames(resourceNamesSource);
resources.aliases.Load(reinterpret_cast<int>(resourceNames.Text()));
if (!sub_E58100(instance, showCommand)) {
if (!InitApp(instance, showCommand)) {
return 1;
}

View file

@ -102,10 +102,10 @@ class CGameMode : public CMode {
public:
CGameMode();
int SendMsg(int event, int argument1, int argument2, int argument3, int argument4) override;
void sub_D1C050(const AchievementStatePacket* packet);
void ReceiveStorageClose(const AchievementStatePacket* packet);
void ReceiveBuyingStoreResult(const BuyingStoreResultPacket* packet);
void sub_D6C460(int count, int unknown01738784, short unknown01738788, int completed, int total, const AchievementRecordPacket* packets);
void sub_D6AD60(int count, const int* aids);
void ReceiveAchievementList(int count, int unknown01738784, short unknown01738788, int completed, int total, const AchievementRecordPacket* packets);
void ReceiveMacroReporterList(int count, const int* aids);
/* 0058 */ unsigned char unknown_0058[0x10];
/* 0068 */ char mapName[16];
/* 0078 */ unsigned char unknown_0078[0xC];
@ -239,7 +239,7 @@ public:
bool IsEffectId990Group(int id);
bool IsEffectId994Group(int id);
bool ConfirmDraggedItemUse();
void sub_CFE480(int actorId);
void RefreshStatusStateEffect(int actorId);
void NotifyUnknown0604(int value);
void UpdatePetFriendlyWindow(int previousFriendly);
__declspec(noinline) bool SaveEmblemFile(const std::vector<unsigned char>& data);
@ -492,8 +492,8 @@ public:
void IgnoreRemovedPacket7(const unsigned char* packet);
void IgnoreRemovedPacket8();
void IgnoreRemovedPacket9();
void sub_D079A0(unsigned char kind, int argument);
void sub_D08390(const unsigned char* packet);
void ReceiveWhisperResult(unsigned char kind, int argument);
void ReceiveChangeZoneServerWithHost(const unsigned char* packet);
void IgnoreRemovedPacket10(const unsigned char* packet);
void IgnoreRemovedPacket11(const unsigned char* packet);
void IgnoreRemovedPacket12(const unsigned char* packet, int value1, int value2, int value3, int value4);
@ -567,33 +567,33 @@ public:
static bool ShowRestrictedNotice(int grade);
void AddUnknown0604(UIWindow* window);
void RequestAdminStatus();
void sub_CEB8E0();
unsigned sub_CEBBB0(const std::vector<unsigned char>& data);
__declspec(noinline) unsigned sub_CEBF30(const std::vector<unsigned char>& data);
unsigned sub_CEC100(const std::vector<unsigned char>& data);
unsigned sub_CEC6A0(const std::vector<unsigned char>& data);
void sub_D40730(const unsigned char* record);
void RecordChatRoomSettings();
unsigned ReadReplayGuildInfo(const std::vector<unsigned char>& data);
__declspec(noinline) unsigned ReadReplayGroundItems(const std::vector<unsigned char>& data);
unsigned ReadReplayActors(const std::vector<unsigned char>& data);
unsigned ReadReplayGroundSkills(const std::vector<unsigned char>& data);
void Zc_Skill_Entry2(const unsigned char* record);
void ReceiveGroundSkill8(const unsigned char* record);
void ReceiveGroundSkill32(const unsigned char* record);
void ReceiveGroundSkillExtended(const unsigned char* record);
void ReceivePartyRoster(const unsigned char* packet);
void ReceivePartyMemberInfo(const unsigned char* packet);
void ReceivePartyMemberList(const unsigned char* packet);
void sub_D59FD0(const char* partyName, std::vector<PartyRosterEntry>* members);
void sub_D48C60(const unsigned char* data);
void sub_D4A060(const unsigned char* data);
void sub_D6F900(const unsigned char* data);
void sub_D48530(const unsigned char* data);
void SetPartyMemberList(const char* partyName, std::vector<PartyRosterEntry>* members);
void ReceiveGuildExpulsion2(const unsigned char* data);
void ReceiveGuildLeave2(const unsigned char* data);
void ReceivePartyInfo2(const unsigned char* data);
void ReceiveWhisper(const unsigned char* data);
void RefreshInventoryOrEquipItem(std::uint16_t itemId, unsigned char unknownValue, std::uint16_t refine, ItemCardSlots cards, ItemSlotOptions options);
void RefreshInventoryOrEquipItem2(const unsigned char* data);
void ReceiveRankingList(const unsigned char* data);
void ApplyStatusIcons(int level, unsigned int flags);
void ReceiveGuildStorageLogItems(const unsigned char* data);
void sub_D1A330(const unsigned char* data);
void sub_D1A520(int unknown_0004, std::string name, std::string text, bool flag);
void ReceiveWhisper2(const unsigned char* data);
void ProcessWhisper(int unknown_0004, std::string name, std::string text, bool flag);
void SpawnGroundSkill(std::uint32_t aid, std::uint32_t owner, int value, std::int16_t x, std::int16_t y, int type, signed char level, unsigned char visible, unsigned char flags);
void sub_D41250(const unsigned char* record);
void sub_D65FC0(const unsigned char* record);
void Zc_Skill_Entry(const unsigned char* record);
void ReceiveStatusChangeEntry(const unsigned char* record);
void ReceiveBroadcastBalloonNotice(const unsigned char* packet);
void ReceiveUnknownD65870(const unsigned char* packet);
void ReceiveStatusChangeEffect2(const unsigned char* packet);
@ -603,7 +603,7 @@ public:
void Initialize(const char* name) override;
void End() override;
void Update() override;
void sub_D08910();
void ProcessIncomingPackets();
void TargetActorByAid(int aid);
void Slot7(int value) override;
void PlaceWindowAtActor(UIWindow* window, CGameActor* actor);
@ -676,8 +676,8 @@ public:
void ReceiveShopName(const char* text, int shopId);
void ReceiveFriendList(const unsigned char* packet);
void ReceiveGuildMemberMemoList(const unsigned char* packet);
void sub_D591A0(std::uint32_t aid, int state, int flag, int options);
void sub_D5EEF0(
void ApplyActorStatusEffects(std::uint32_t aid, int state, int flag, int options);
void UpdatePartyMemberInfo(
const char* first, int second, const char* third, int fourth, unsigned char fifth, std::uint16_t sixth, std::uint16_t seventh,
const char* eighth, unsigned char ninth, unsigned char tenth, int eleventh
);
@ -732,7 +732,7 @@ public:
void LoadCooldownSnapshot(const void* packet);
void ApplyCooldownStart(const void* packet);
void LoadCooldownRecords(const void* packet);
void sub_D5B030(
void NotifySkillCasting(
std::uint32_t source, std::uint32_t target, std::uint16_t skill, std::uint16_t x, std::uint16_t y,
int tick, int level, unsigned char flag, int result
);
@ -971,8 +971,8 @@ bool LaunchLuaSkillEffect(int skillId, int level, CGameActor* source, CGameActor
void LaunchRollingCutterEffect(CGameActor* actor);
void LaunchSkillCastEffect(CGameMode* mode, CGameActor* source, CGameActor* target, std::uint32_t targetAid, std::uint16_t skillId, short x, short y, int delay);
void LaunchSkillActorEffect(CGameActor* actor, short x, short y, std::uint16_t skillId, int delay, int effectId);
void __stdcall sub_CDBC30(const vector3d* position, int actorId, float scale, int job);
void __stdcall sub_D08670(int field14, int itemId, int quantity, int field8, int fieldC, int field10);
void __stdcall LaunchBulletSpriteEffect(const vector3d* position, int actorId, float scale, int job);
void __stdcall ProcessBuyingStorePurchase(int field14, int itemId, int quantity, int field8, int fieldC, int field10);
void DecodeSrcDst(const unsigned char* packed, int* srcX, int* srcY, int* dstX, int* dstY, int* subX, int* subY);
#if defined(_WIN32) && !defined(_WIN64)
@ -1008,8 +1008,8 @@ static_assert(sizeof(CGameMode) == 0x670);
void SendPacketHeader(std::uint16_t packetType);
void SendPacketHeader2(std::uint16_t packetType);
void sub_D73A10(const unsigned char* packet);
void sub_D6E440();
void ReceiveNavigation(const unsigned char* packet);
void CloseAccountLimitedTool();
struct MiniMapEffectMarker {
/* 0000 */ int count;
@ -1021,7 +1021,7 @@ extern std::map<int, MiniMapEffectMarker> g_miniMapEffectMarkers;
extern char g_pendingWhisperCount;
extern int g_whisperRecord;
extern int g_timeAttackStart;
void sub_CCFF10();
void CloseWhisperRecord();
extern unsigned char g_gameModePacketBuffer[0x10000];
extern int g_unknown173A5BC;
extern int g_unknown_01738268;

View file

@ -672,7 +672,7 @@ int CGameMode::SubD07740(int id, int defaultResult) {
// OFFSET: 0x00CEB8E0
// FUNCTION: fn_21352
void CGameMode::sub_CEB8E0() {
void CGameMode::RecordChatRoomSettings() {
if (Replay::Instance().state != 2) {
return;
}
@ -705,7 +705,7 @@ static_assert(sizeof(GameModeChunkHeader) == 6);
// OFFSET: 0x00CEC6A0
// FUNCTION: fn_21356
unsigned CGameMode::sub_CEC6A0(const std::vector<unsigned char>& data) {
unsigned CGameMode::ReadReplayGroundSkills(const std::vector<unsigned char>& data) {
if (data.empty()) {
return 0xFFFFFFFFu;
}
@ -722,12 +722,12 @@ unsigned CGameMode::sub_CEC6A0(const std::vector<unsigned char>& data) {
std::vector<unsigned char> record(0x10);
std::memcpy(record.data(), data.data() + offset, header.size);
offset += header.size;
this->sub_D41250(record.data());
this->Zc_Skill_Entry(record.data());
} else if (header.type == 0xCE) {
std::vector<unsigned char> record(0x61);
std::memcpy(record.data(), data.data() + offset, header.size);
offset += header.size;
this->sub_D40730(record.data());
this->Zc_Skill_Entry2(record.data());
} else if (header.type == 0x4269) {
break;
} else {
@ -781,7 +781,7 @@ bool CGameMode::ShowRestrictedNotice(int grade) {
return true;
}
void __stdcall sub_CE8F10(const void* info, const unsigned char* data);
void __stdcall RecordWhisper(const void* info, const unsigned char* data);
int ConfirmGameModeAction96();
// OFFSET: 0x00CF10B0
@ -2474,7 +2474,7 @@ int CGameMode::SendMsg(int event, int argument1, int argument2, int argument3, i
item.SetItemId(foodId);
char name[260]{};
int capacity = sizeof(name);
item.sub_6D5810(name, capacity, 0);
item.GetIdDisplayName(name, capacity, 0);
std::string text = FormatOwnedString(LookupMessage(0x24F), name);
g_windowMgr.SendNotice(1, reinterpret_cast<std::intptr_t>(text.c_str()), 0x1E1EF5, 0, 0, 0);
g_windowMgr.SendNotice(0x13, reinterpret_cast<std::intptr_t>(text.c_str()), 0x1E1EF5, 0, 0, 0);
@ -3161,7 +3161,7 @@ int CGameMode::SendMsg(int event, int argument1, int argument2, int argument3, i
const std::size_t length = std::strlen(message);
if (length - 1 <= 0x14F) {
g_windowMgr.ClearUnknown04DC();
sub_CE8F10(target, reinterpret_cast<const unsigned char*>(message));
RecordWhisper(target, reinterpret_cast<const unsigned char*>(message));
unsigned char packet[0x16D];
const std::uint16_t packetId = 0x96;
const std::uint16_t packetLength = static_cast<std::uint16_t>(length + 0x1C);
@ -3226,7 +3226,7 @@ int CGameMode::SendMsg(int event, int argument1, int argument2, int argument3, i
std::memset(packet + 7, 0, 8);
std::memcpy(packet + 7, setting.password.c_str(), setting.password.size());
std::memcpy(packet + 15, setting.title.c_str(), setting.title.size());
this->sub_CEB8E0();
this->RecordChatRoomSettings();
GetRagConnection().Send(static_cast<std::int16_t>(packetLength), packet);
return 0;
}
@ -4173,7 +4173,7 @@ int CGameMode::SendMsg(int event, int argument1, int argument2, int argument3, i
std::memset(packet + 7, 0, 8);
std::memcpy(packet + 7, settings.password.c_str(), settings.password.size());
std::memcpy(packet + 15, settings.title.c_str(), settings.title.size());
this->sub_CEB8E0();
this->RecordChatRoomSettings();
GetRagConnection().Send(static_cast<std::int16_t>(header[1]), packet);
return 0;
}
@ -4844,7 +4844,7 @@ bool CGameMode::ConfirmDraggedItemUse() {
// OFFSET: 0x00CFE480
// FUNCTION: fn_21432
void CGameMode::sub_CFE480(int actorId) {
void CGameMode::RefreshStatusStateEffect(int actorId) {
if (g_windowMgr.unknown_0508 != 2 && actorId == static_cast<int>(g_session.m_aid)) {
this->scene->player->unknown_0544->SendMsg(nullptr, 44, 0, 1, 0, 0, 0, 0);
}
@ -4852,7 +4852,7 @@ void CGameMode::sub_CFE480(int actorId) {
// OFFSET: 0x00CDBC30
// FUNCTION: fn_21312
void __stdcall sub_CDBC30(const vector3d* position, int actorId, float scale, int job) {
void __stdcall LaunchBulletSpriteEffect(const vector3d* position, int actorId, float scale, int job) {
if (actorId == 0) {
return;
}
@ -4868,7 +4868,7 @@ void __stdcall sub_CDBC30(const vector3d* position, int actorId, float scale, in
// OFFSET: 0x00CE8F10
// FUNCTION: fn_21344
void __stdcall sub_CE8F10(const void* info, const unsigned char* data) {
void __stdcall RecordWhisper(const void* info, const unsigned char* data) {
if (Replay::Instance().state != 2) {
return;
}
@ -5007,7 +5007,7 @@ void CGameMode::NotifyUnknown0604(int value) {
// OFFSET: 0x00CEBF30
// FUNCTION: fn_21354
unsigned CGameMode::sub_CEBF30(const std::vector<unsigned char>& data) {
unsigned CGameMode::ReadReplayGroundItems(const std::vector<unsigned char>& data) {
if (data.empty()) {
return 0xFFFFFFFFu;
}
@ -5041,7 +5041,7 @@ unsigned CGameMode::sub_CEBF30(const std::vector<unsigned char>& data) {
// OFFSET: 0x00CEC100
// FUNCTION: fn_21355
unsigned CGameMode::sub_CEC100(const std::vector<unsigned char>& data) {
unsigned CGameMode::ReadReplayActors(const std::vector<unsigned char>& data) {
if (data.empty()) {
return 0xFFFFFFFFu;
}
@ -5139,7 +5139,7 @@ unsigned CGameMode::sub_CEC100(const std::vector<unsigned char>& data) {
case 0x191:
std::memcpy(record.data(), data.data() + offset, header.size);
offset += header.size;
this->sub_D65FC0(record.data());
this->ReceiveStatusChangeEntry(record.data());
break;
default:
offset += header.size;
@ -5743,7 +5743,7 @@ std::vector<unsigned char> CGameMode::WriteReplaySkillState() {
// OFFSET: 0x00CEBBB0
// FUNCTION: fn_21353
unsigned CGameMode::sub_CEBBB0(const std::vector<unsigned char>& data) {
unsigned CGameMode::ReadReplayGuildInfo(const std::vector<unsigned char>& data) {
if (data.empty()) {
return 0xFFFFFFFFu;
}
@ -6304,7 +6304,7 @@ void CGameMode::ProcessUiMessage(unsigned char* message) {
break;
case 910: {
const GameModeUiNavigationMessage* navigation = reinterpret_cast<const GameModeUiNavigationMessage*>(message);
g_navigationManager.sub_B99030(
g_navigationManager.StartNavigation(
std::string(navigation->name), navigation->kind, navigation->mode, navigation->flag != 0, navigation->x, navigation->y, navigation->id
);
break;
@ -6759,7 +6759,7 @@ void CGameMode::End() {
if (schedule) {
schedule->active = false;
}
g_timeScheduler->sub_BA95F0(4);
g_timeScheduler->RemoveSchedulesByKey(4);
this->StopReplayRecording();
g_soundMgr->EndSamples();
@ -6805,7 +6805,7 @@ void CGameMode::End() {
}
if (g_session.m_whisperRecord != 0) {
sub_CCFF10();
CloseWhisperRecord();
}
g_effectMgr->Clear();
g_session.SaveMiniPartyInfo();
@ -7303,7 +7303,7 @@ void CGameMode::InitializeState() {
}
g_snapMgr.Clear();
g_windowMgr.sub_AA6B80();
g_windowMgr.ClearMapWindows();
this->broadcastBalloon = nullptr;
this->noticeBalloon = nullptr;
g_windowMgr.SetSurface0478(nullptr);
@ -7902,7 +7902,7 @@ void CGameMode::Initialize(const char* name) {
g_session.RefreshHpSpWindows();
g_session.InvalidateWindowFrames();
g_windowMgr.SetSurface0478(nullptr);
g_windowMgr.sub_AA6B80();
g_windowMgr.ClearMapWindows();
this->broadcastBalloon = nullptr;
this->noticeBalloon = nullptr;
g_windowMgr.HideWindow01C8();
@ -7990,10 +7990,10 @@ void CGameMode::Initialize(const char* name) {
g_session.ReadReplayEntryQueue(Replay::Instance().ReadSection(12));
g_session.ReadReplayShortcuts(Replay::Instance().ReadSection(13));
g_session.ReadReplayShops(Replay::Instance().ReadSection(14));
this->sub_CEBBB0(Replay::Instance().ReadSection(0x16));
this->sub_CEC100(Replay::Instance().ReadSection(0xF));
this->sub_CEBF30(Replay::Instance().ReadSection(0x10));
this->sub_CEC6A0(Replay::Instance().ReadSection(0x11));
this->ReadReplayGuildInfo(Replay::Instance().ReadSection(0x16));
this->ReadReplayActors(Replay::Instance().ReadSection(0xF));
this->ReadReplayGroundItems(Replay::Instance().ReadSection(0x10));
this->ReadReplayGroundSkills(Replay::Instance().ReadSection(0x11));
const std::vector<unsigned char> data = Replay::Instance().ReadSection(0x17);
if (data.begin() != data.end()) {
@ -8408,7 +8408,7 @@ int CGameMode::ProcessMousePick(int result, ActorPickInfo* pick) {
if (g_sub_1319eb4 == 1 && pick) {
UIMacroReporterWnd* reporter = static_cast<UIMacroReporterWnd*>(g_windowMgr.LookupWindow(286));
if (reporter && reporter->unknown_010C == true && reporter->m_mode == 0) {
reporter->sub_7EF2C0(reinterpret_cast<MacroReporterEntry*>(pick));
reporter->AddPickedActor(reinterpret_cast<MacroReporterEntry*>(pick));
return -1;
}
}
@ -8814,7 +8814,7 @@ std::uint32_t g_spriteAtlasClearTick;
// FUNCTION: fn_21323
void CGameMode::Update() {
PumpApplicationMessages();
this->sub_D08910();
this->ProcessIncomingPackets();
if (Replay::Instance().AdvanceFrame() == 0) {
g_windowMgr.window_4F168->SendMsg(nullptr, 35, 0, 0, 0, 0);
}
@ -9291,7 +9291,7 @@ void CGameMode::ExecuteTalkType(int talkType, std::string* arguments) {
} else {
std::sprintf(text, "Chatting Auto Save END");
g_modeMgr.GetGameMode();
sub_CCFF10();
CloseWhisperRecord();
}
g_windowMgr.SendNotice(1, reinterpret_cast<std::intptr_t>(text), 0xFFFF, 0, 0, 0);
break;
@ -9379,12 +9379,12 @@ void CGameMode::ExecuteTalkType(int talkType, std::string* arguments) {
case 151: {
char text[256];
if (std::strcmp(parts[0].c_str(), "") == 0) {
g_session.sub_DE3D90(nullptr);
g_session.HiFriends(nullptr);
std::sprintf(text, "[ To Friends ] : (Hi) *^_^*");
} else {
char* message = const_cast<char*>(g_windowMgr.unknown_04DC.c_str());
std::string copy(message);
g_session.sub_DE3D90(message);
g_session.HiFriends(message);
if (g_serviceType == 0) {
std::sprintf(text, "[ To Friends ] : (Hi) %s", copy.c_str());
} else {
@ -9453,13 +9453,13 @@ void CGameMode::ExecuteTalkType(int talkType, std::string* arguments) {
g_serviceOptions.Set(0xA5, !g_serviceOptions.Get(0xA5));
g_windowMgr.SendNotice(3, 0, 0, 0, 0, 0);
g_windowMgr.SendNotice(1, reinterpret_cast<std::intptr_t>(LookupMessage(g_serviceOptions.Get(0xA5) ? 0x414 : 0x415)), 0x64FFFF, 0, 0, 0);
g_windowMgr.sub_AAB090();
g_windowMgr.RefreshGameSettings();
break;
case 243:
g_serviceOptions.Set(0xF3, !g_serviceOptions.Get(0xF3));
g_windowMgr.SendNotice(3, 0, 0, 0, 0, 0);
g_windowMgr.SendNotice(1, reinterpret_cast<std::intptr_t>(LookupMessage(g_serviceOptions.Get(0xF3) ? 0xDC7 : 0xDC8)), 0x64FFFF, 0, 0, 0);
g_windowMgr.sub_AAB090();
g_windowMgr.RefreshGameSettings();
break;
case 135:
g_windowMgr.chatModeChanged = g_windowMgr.chatModeChanged == 0;
@ -9514,7 +9514,7 @@ void CGameMode::ExecuteTalkType(int talkType, std::string* arguments) {
char text[120];
std::sprintf(text, "%s %d", LookupMessage(0x19), volume);
g_windowMgr.SendNotice(1, reinterpret_cast<std::intptr_t>(text), 0x64FFFF, 0, 0, 0);
g_windowMgr.sub_AAB090();
g_windowMgr.RefreshGameSettings();
break;
}
case 13: {
@ -9524,7 +9524,7 @@ void CGameMode::ExecuteTalkType(int talkType, std::string* arguments) {
char text[120];
std::sprintf(text, "%s %d", LookupMessage(0x1A), volume);
g_windowMgr.SendNotice(1, reinterpret_cast<std::intptr_t>(text), 0x64FFFF, 0, 0, 0);
g_windowMgr.sub_AAB090();
g_windowMgr.RefreshGameSettings();
break;
}
case 11:
@ -9534,7 +9534,7 @@ void CGameMode::ExecuteTalkType(int talkType, std::string* arguments) {
if (g_serviceOptions.Get(0xB)) {
g_soundMgr->unknown = 0;
}
g_windowMgr.sub_AAB090();
g_windowMgr.RefreshGameSettings();
break;
case 195:
g_soundMgr->unknown = g_soundMgr->unknown == 0;
@ -9554,7 +9554,7 @@ void CGameMode::ExecuteTalkType(int talkType, std::string* arguments) {
} else {
g_soundMgr->StopStreams();
}
g_windowMgr.sub_AAB090();
g_windowMgr.RefreshGameSettings();
break;
case 49: {
const int third = std::atoi(parts[2].c_str());
@ -9960,7 +9960,7 @@ void CGameMode::ExecuteTalkType(int talkType, std::string* arguments) {
g_navigationManager.ShowRouteResult(-100, 1);
break;
}
g_navigationManager.sub_B99030(parts[0], 0, 5, true, cell.x, cell.y, 0x3EA);
g_navigationManager.StartNavigation(parts[0], 0, 5, true, cell.x, cell.y, 0x3EA);
break;
}
case 210: {
@ -9979,7 +9979,7 @@ void CGameMode::ExecuteTalkType(int talkType, std::string* arguments) {
if (third) {
mode += 4;
}
g_navigationManager.sub_B99030(parts[0], 0, mode, true, cell.x, cell.y, 0x3EA);
g_navigationManager.StartNavigation(parts[0], 0, mode, true, cell.x, cell.y, 0x3EA);
break;
}
case 217:

View file

@ -6,13 +6,13 @@
// FUNCTION: fn_21289
void CGameMode::RefreshActorJobEffects(bool playerOnly) {
this->scene->player->ResetJobEffects();
this->scene->player->sub_CAA4D0();
this->scene->player->UpdateMaxLevelAura();
if (!playerOnly) {
for (std::list<CRenderObject*>::iterator it = this->scene->actors.begin(); it != this->scene->actors.end(); ++it) {
CGameActor* actor = static_cast<CGameActor*>(*it);
if (actor->unknown_02B4 != 0) {
actor->ResetJobEffects();
actor->sub_CAA4D0();
actor->UpdateMaxLevelAura();
}
}
}

View file

@ -372,7 +372,7 @@ void CGameMode::ReceivePartyRoster(const unsigned char* packet) {
for (unsigned i = 0; i < count; ++i) {
members.push_back(*entry++);
}
this->sub_D59FD0(reinterpret_cast<const char*>(packet + 4), &members);
this->SetPartyMemberList(reinterpret_cast<const char*>(packet + 4), &members);
}
// OFFSET: 0x00D40E40
@ -482,7 +482,7 @@ void CGameMode::SpawnGroundSkill(std::uint32_t aid, std::uint32_t owner, int val
}
int sub_D64A40(const unsigned char* entries);
int CountItemRandomOptions(const unsigned char* entries);
struct GameOptionEntry {
/* 0000 */ int id;
@ -1491,7 +1491,7 @@ void CGameMode::ReceivePackageItemTest(const unsigned char* packet) {
ITEM_INFO item;
item.SetItemId(*reinterpret_cast<const int*>(packet + 4));
int capacity = sizeof(packageName);
item.sub_6D5810(packageName, capacity, 0);
item.GetIdDisplayName(packageName, capacity, 0);
char path[2048];
std::memset(path, 0, sizeof(path));
@ -1523,7 +1523,7 @@ void CGameMode::ReceivePackageItemTest(const unsigned char* packet) {
const PackageItemTestEntry current = *entry;
item.SetItemId(current.itemId);
int nameCapacity = sizeof(itemName);
item.sub_6D5810(itemName, nameCapacity, 0);
item.GetIdDisplayName(itemName, nameCapacity, 0);
std::fprintf(file, "%s\t\t\t%d\t%c%d%c\n", itemName, current.count, '(', current.unknown_0004, ')');
total += current.count;
++entry;
@ -2081,7 +2081,7 @@ void CGameMode::ReceiveGameOptionResult(int command, int result, int enabled) {
}
g_gameOptionFlag = enabled != 0;
g_windowMgr.sub_AAB090();
g_windowMgr.RefreshGameSettings();
g_windowMgr.SendNotice(1, reinterpret_cast<std::intptr_t>(LookupMessage(g_gameOptionFlag ? 0xF17 : 0xF16)), 0x64FFFF, 0, 0, 0);
}
@ -2102,7 +2102,7 @@ void CGameMode::ReceiveServiceRequest(unsigned char type, int value) {
}
break;
case 6:
g_renewQuestMgr->sub_67B650(value);
g_renewQuestMgr->ShowQuestInfo(value);
break;
case 7:
if (UIWindow* window = g_windowMgr.EnsureWindow(328)) {
@ -2296,7 +2296,7 @@ void CGameMode::ReceiveItemReward(const unsigned char* data) {
item.unknown_005D = packet->damaged;
item.unknown_0060 = packet->refine;
std::memcpy(item.unknown_001C, packet->cards, sizeof(packet->cards));
item.unknown_0098 = sub_D64A40(reinterpret_cast<const unsigned char*>(packet->options));
item.unknown_0098 = CountItemRandomOptions(reinterpret_cast<const unsigned char*>(packet->options));
item.unknown_0000[2] = packet->expireTime;
for (int index = 0; index < item.unknown_0098; ++index) {
reinterpret_cast<ItemRewardOption*>(item.unknown_009C)[index] = packet->options[index];
@ -2434,7 +2434,7 @@ void CGameMode::ReceiveDdukddakBoxTest(const unsigned char* packet) {
ITEM_INFO box;
box.SetItemId(*reinterpret_cast<const int*>(packet + 4));
int capacity = sizeof(name);
box.sub_6D5810(name, capacity, 0);
box.GetIdDisplayName(name, capacity, 0);
SYSTEMTIME time;
GetLocalTime(&time);
@ -2448,7 +2448,7 @@ void CGameMode::ReceiveDdukddakBoxTest(const unsigned char* packet) {
for (auto item = items.begin(); item != items.end(); ++item) {
ITEM_INFO info;
info.SetItemId(item->first);
info.sub_6D5810(name, capacity, 0);
info.GetIdDisplayName(name, capacity, 0);
std::string amount = FormatOwnedString("%d", item->second);
std::string ratio = FormatOwnedString("%.5f%%", static_cast<float>(item->second) / static_cast<float>(total) * 100.0f);
output << FormatOwnedString("%d\t%s\t%s\t%s\n", item->first, name, amount.c_str(), ratio.c_str());
@ -2490,7 +2490,7 @@ void CGameMode::ReceiveBroadcastBalloonNotice(const unsigned char* packet) {
// OFFSET: 0x00D65870
// FUNCTION: fn_22003
void CGameMode::ReceiveUnknownD65870(const unsigned char* packet) {
this->sub_D5EEF0(
this->UpdatePartyMemberInfo(
reinterpret_cast<const char*>(packet + 0x2F), *reinterpret_cast<const int*>(packet + 2), reinterpret_cast<const char*>(packet + 0x47),
*reinterpret_cast<const int*>(packet + 10), packet[0x16], *reinterpret_cast<const std::uint16_t*>(packet + 0x0E),
*reinterpret_cast<const std::uint16_t*>(packet + 0x10), reinterpret_cast<const char*>(packet + 0x17), packet[0x57], packet[0x58],
@ -2500,7 +2500,7 @@ void CGameMode::ReceiveUnknownD65870(const unsigned char* packet) {
// OFFSET: 0x00D65FC0
// FUNCTION: fn_22007
void CGameMode::sub_D65FC0(const unsigned char* record) {
void CGameMode::ReceiveStatusChangeEntry(const unsigned char* record) {
this->ApplyStatusChange(
*reinterpret_cast<const std::uint32_t*>(record + 2), 1, *reinterpret_cast<const std::int16_t*>(record + 6),
*reinterpret_cast<const std::uint32_t*>(record + 0x0C), *reinterpret_cast<const int*>(record + 0x10),
@ -2548,7 +2548,7 @@ void CGameMode::ReceiveWindow95Data(const unsigned char* packet) {
// FUNCTION: fn_22036
void CGameMode::ReceiveActorSkillResult(const unsigned char* packet) {
const ActorSkillResultPacket& value = *reinterpret_cast<const ActorSkillResultPacket*>(packet);
this->sub_D5B030(
this->NotifySkillCasting(
value.source, value.target, value.skill, value.x, value.y, value.tick, value.level, value.flag, value.result
);
}
@ -2607,7 +2607,7 @@ void CGameMode::UpdateSkillCooldown(std::uint16_t skill, std::uint32_t remaining
// OFFSET: 0x00D41250
// FUNCTION: fn_21823
void CGameMode::sub_D41250(const unsigned char* record) {
void CGameMode::Zc_Skill_Entry(const unsigned char* record) {
GroundSkillPacket& packet = *reinterpret_cast<GroundSkillPacket*>(const_cast<unsigned char*>(record));
GroundSkillSpawnData data;
data.aid = packet.aid;
@ -2647,7 +2647,7 @@ void CGameMode::sub_D41250(const unsigned char* record) {
// OFFSET: 0x00D40730
// FUNCTION: fn_21819
void CGameMode::sub_D40730(const unsigned char* record) {
void CGameMode::Zc_Skill_Entry2(const unsigned char* record) {
GroundSkillPacket& packet = *reinterpret_cast<GroundSkillPacket*>(const_cast<unsigned char*>(record));
GroundSkillSpawnData data;
data.aid = packet.aid;

View file

@ -92,7 +92,7 @@ void MiniMapNoOp() {
// OFFSET: 0x00CCFF10
// FUNCTION: fn_21249
void sub_CCFF10() {
void CloseWhisperRecord() {
if (g_session.m_whisperRecord != 0) {
if (g_session.IsAdminSubMode(7) != 0) {
char path[256];

View file

@ -957,7 +957,7 @@ void CGameMode::ReceiveEffectRemove(const unsigned char* data) {
// OFFSET: 0x00D6E930
// FUNCTION: fn_22107
void CGameMode::ReceiveToggle128(int enabled) {
sub_E489C0(enabled != 0);
SetPetInfoAlert(enabled != 0);
}
// OFFSET: 0x00D6E950
@ -1432,7 +1432,7 @@ void CGameMode::ReceiveItem1784List(const unsigned char* data) {
item.unknown_0078[2] = entry.unknown_0014;
item.unknown_0064 = 8;
item.identified = 1;
item.sub_6D5810(name, capacity, 0);
item.GetIdDisplayName(name, capacity, 0);
item.SetName(name);
g_session.unknown_1784[9].push_back(item);
}
@ -1738,7 +1738,7 @@ void CGameMode::ReceiveWindow99Values(int count, const int* values) {
// OFFSET: 0x00D6E440
// FUNCTION: fn_22099
void sub_D6E440() {
void CloseAccountLimitedTool() {
g_windowMgr.CloseWindow(0x154);
}
@ -1811,7 +1811,7 @@ void __stdcall nullsub_468(int) {
// OFFSET: 0x00D6AD60
// FUNCTION: fn_22063
void CGameMode::sub_D6AD60(int count, const int* aids) {
void CGameMode::ReceiveMacroReporterList(int count, const int* aids) {
if (count <= 0) {
return;
}
@ -1822,7 +1822,7 @@ void CGameMode::sub_D6AD60(int count, const int* aids) {
}
for (int i = 0; i < count; ++i) {
window->sub_7EF2E0(aids[i]);
window->AddActorByAID(aids[i]);
}
}
@ -1840,7 +1840,7 @@ int g_unknown_01738270;
// OFFSET: 0x00D1C050
// FUNCTION: fn_21624
void CGameMode::sub_D1C050(const AchievementStatePacket* packet) {
void CGameMode::ReceiveStorageClose(const AchievementStatePacket* packet) {
UIWindow* window = nullptr;
bool notify = true;
@ -1865,7 +1865,7 @@ void CGameMode::sub_D1C050(const AchievementStatePacket* packet) {
// OFFSET: 0x00D6C460
// FUNCTION: fn_22081
void CGameMode::sub_D6C460(int count, int unknown01738784, short unknown01738788, int completed, int total, const AchievementRecordPacket* packets) {
void CGameMode::ReceiveAchievementList(int count, int unknown01738784, short unknown01738788, int completed, int total, const AchievementRecordPacket* packets) {
g_session.unknown_614C = unknown01738784;
g_session.unknown_6150 = unknown01738788;
g_session.unknown_6154 = completed;
@ -3549,7 +3549,7 @@ void CGameMode::ReceiveFeedConfig(unsigned char state, unsigned char option) {
}
g_serviceOptions.Set(231, option);
g_windowMgr.SendNotice(1, reinterpret_cast<std::intptr_t>(LookupMessage(option + 0xBA2)), 0x64FFFF, 0, 0, 0);
g_windowMgr.sub_AAB070(231);
g_windowMgr.RefreshGameSettingOption(231);
}
// OFFSET: 0x00D6E6F0
@ -3562,7 +3562,7 @@ void CGameMode::ReceiveFeedConfig2(unsigned char state, unsigned char option, bo
}
g_serviceOptions.Set(231, option);
g_windowMgr.SendNotice(1, reinterpret_cast<std::intptr_t>(LookupMessage(option + 0xBA2)), 0x64FFFF, 0, 0, 0);
g_windowMgr.sub_AAB070(231);
g_windowMgr.RefreshGameSettingOption(231);
g_session.SetPetAutoFeed(petAutoFeed);
}
@ -3576,7 +3576,7 @@ void CGameMode::ReceiveFeedConfig3(unsigned char state, unsigned char option, bo
}
g_serviceOptions.Set(231, option);
g_windowMgr.SendNotice(1, reinterpret_cast<std::intptr_t>(LookupMessage(option + 0xBA2)), 0x64FFFF, 0, 0, 0);
g_windowMgr.sub_AAB070(231);
g_windowMgr.RefreshGameSettingOption(231);
g_session.SetPetAutoFeed(petAutoFeed);
g_session.SetHomunculusAutoFeed(homunculusAutoFeed);
}
@ -3591,7 +3591,7 @@ void CGameMode::ReceiveFeedConfig4(unsigned char state, unsigned char option, bo
}
g_serviceOptions.Set(231, option);
g_windowMgr.SendNotice(1, reinterpret_cast<std::intptr_t>(LookupMessage(option + 0xBA2)), 0x64FFFF, 0, 0, 0);
g_windowMgr.sub_AAB070(231);
g_windowMgr.RefreshGameSettingOption(231);
g_session.SetPetAutoFeed(petAutoFeed);
g_session.SetHomunculusAutoFeed(homunculusAutoFeed);
*reinterpret_cast<int*>(g_session.unknown_8128) = value;
@ -3653,7 +3653,7 @@ void CGameMode::ReceiveLongParChange(const unsigned char* data) {
// OFFSET: 0x00D73A10
// FUNCTION: fn_22142
void sub_D73A10(const unsigned char* packet) {
void ReceiveNavigation(const unsigned char* packet) {
int group = packet[3] >= 100 ? 1 : 0;
int code = packet[3] >= 100 ? packet[3] - 100 : packet[3];
if (code >= 10) {
@ -3665,7 +3665,7 @@ void sub_D73A10(const unsigned char* packet) {
const int x = *reinterpret_cast<const std::int16_t*>(packet + 0x15);
const int y = *reinterpret_cast<const std::int16_t*>(packet + 0x17);
const int id = *reinterpret_cast<const std::int16_t*>(packet + 0x19);
g_navigationManager.sub_B99030(std::string(reinterpret_cast<const char*>(packet + 5)), packet[2], mode, packet[4] != 0, x, y, id);
g_navigationManager.StartNavigation(std::string(reinterpret_cast<const char*>(packet + 5)), packet[2], mode, packet[4] != 0, x, y, id);
}
// OFFSET: 0x00D73AF0
@ -3736,7 +3736,7 @@ void CGameMode::ReceiveNotifyEffect(const unsigned char* packet) {
if (g_session.IsMercenaryJob(gameActor->GetEffectiveJob(-1)) && *reinterpret_cast<const int*>(packet + 6) == 0x238) {
++gameActor->unknown_0210;
gameActor->ResetJobEffects();
gameActor->sub_CAA4D0();
gameActor->UpdateMaxLevelAura();
}
}
@ -3788,7 +3788,7 @@ void CGameMode::ReceiveTypedItemList(const unsigned char* data) {
item.unknown_0064 = type;
item.SetItemId(itemId);
int capacity = sizeof(name);
item.sub_6D5810(name, capacity, 0);
item.GetIdDisplayName(name, capacity, 0);
item.SetName(name);
if (static_cast<unsigned int>(packet->type) <= 10) {
g_session.unknown_1784[packet->type].push_back(item);
@ -3917,7 +3917,7 @@ static __forceinline void FillVendingItem(ITEM_INFO& item, const VendingItemReco
// OFFSET: 0x00D47720
// FUNCTION: fn_21850
void CGameMode::ReceiveVendingItemSoldNow(const unsigned char* data) {
sub_D08670(static_cast<int>(_time32(nullptr)), *reinterpret_cast<const int*>(data + 2),
ProcessBuyingStorePurchase(static_cast<int>(_time32(nullptr)), *reinterpret_cast<const int*>(data + 2),
*reinterpret_cast<const short*>(data + 6), *reinterpret_cast<const int*>(data + 8), 0, 0);
}
@ -4953,7 +4953,7 @@ void CGameMode::ReceiveStovePurchaseResult(const unsigned char* data) {
int capacity = sizeof(name);
ITEM_INFO item;
item.SetItemId(packet->itemId);
item.sub_6D5810(name, capacity, 0);
item.GetIdDisplayName(name, capacity, 0);
message = FormatOwnedString("%s아이템 %d개 지급 완료", name, packet->count);
}
case 2:
@ -5083,7 +5083,7 @@ void CGameMode::ReceiveOngoingQuestList(const unsigned char* data) {
g_renewQuestMgr->AddOngoingQuest(entry->questId, info);
}
g_renewQuestMgr->sub_67B6B0();
g_renewQuestMgr->UpdateQuestWindows();
}
// OFFSET: 0x00D6CAD0
@ -5143,7 +5143,7 @@ void CGameMode::ReceiveOngoingQuestList2(const unsigned char* data) {
g_renewQuestMgr->AddOngoingQuest(entry->questId, info);
}
g_renewQuestMgr->sub_67B6B0();
g_renewQuestMgr->UpdateQuestWindows();
}
#pragma pack(push, 1)
@ -5525,7 +5525,7 @@ void CGameMode::ReceiveSpecialBroadcast(const unsigned char* data) {
item.SetItemId(packet->value);
char itemName[256];
int capacity = sizeof(itemName);
item.sub_6D5810(itemName, capacity, 0);
item.GetIdDisplayName(itemName, capacity, 0);
text.assign(FormatOwnedString(LookupMessage(1265), itemName));
player->LaunchEffect(543, vector3d{0.0f, 0.0f, 0.0f}, 0.0f);
break;
@ -5622,7 +5622,7 @@ void CGameMode::ReceiveQuestHuntUpdate(const unsigned char* data) {
if (g_windowMgr.window_0428 != nullptr) {
g_windowMgr.window_0428->Invalidate();
}
g_renewQuestMgr->sub_67B690();
g_renewQuestMgr->UpdateOngoingQuestInfo();
}
// OFFSET: 0x00D47C20
@ -5668,7 +5668,7 @@ void CGameMode::ReceiveQuestHuntUpdate2(const unsigned char* data) {
if (g_windowMgr.window_0428 != nullptr) {
g_windowMgr.window_0428->Invalidate();
}
g_renewQuestMgr->sub_67B690();
g_renewQuestMgr->UpdateOngoingQuestInfo();
}
// OFFSET: 0x00D6A0D0
@ -6230,7 +6230,7 @@ void CGameMode::ReceiveStatusChangeNotice(const unsigned char* data) {
std::sprintf(message, LookupMessage(3247));
break;
default:
this->sub_CFE480(packet->aid);
this->RefreshStatusStateEffect(packet->aid);
return;
}
} else {
@ -7019,7 +7019,7 @@ void CGameMode::ReceiveStatusChangeNotice(const unsigned char* data) {
break;
default:
if (CSkillActionMgr::GetInstance()->HasEfstAction(packet->type) != true) {
this->sub_CFE480(packet->aid);
this->RefreshStatusStateEffect(packet->aid);
return;
}
{
@ -7032,7 +7032,7 @@ void CGameMode::ReceiveStatusChangeNotice(const unsigned char* data) {
}
}
this->sub_CFE480(packet->aid);
this->RefreshStatusStateEffect(packet->aid);
if (std::strlen(message) > 1) {
char text[512];
std::sprintf(text, "%s%s", name, message);
@ -7211,7 +7211,7 @@ void ClearGuildShortcutSkills() {
// OFFSET: 0x00D48C60
// FUNCTION: fn_21856
void CGameMode::sub_D48C60(const unsigned char* data) {
void CGameMode::ReceiveGuildExpulsion2(const unsigned char* data) {
const auto* packet = reinterpret_cast<const GuildMemberKickedPacket*>(data);
GuildInfo* guildInfo = &g_guildInfo;
char reason[41];
@ -7260,7 +7260,7 @@ void CGameMode::sub_D48C60(const unsigned char* data) {
// OFFSET: 0x00D4A060
// FUNCTION: fn_21861
void CGameMode::sub_D4A060(const unsigned char* data) {
void CGameMode::ReceiveGuildLeave2(const unsigned char* data) {
const auto* packet = reinterpret_cast<const GuildMemberLeftPacket2*>(data);
GuildInfo* guildInfo = &g_guildInfo;
char reason[40];
@ -7326,7 +7326,7 @@ struct PartyRosterListPacket {
// OFFSET: 0x00D6F900
// FUNCTION: fn_22124
void CGameMode::sub_D6F900(const unsigned char* data) {
void CGameMode::ReceivePartyInfo2(const unsigned char* data) {
const auto* packet = reinterpret_cast<const PartyRosterListPacket*>(data);
std::vector<PartyRosterEntry> members;
const int count = (packet->length - 0x1C) / sizeof(PartyRosterRecord50);
@ -7343,7 +7343,7 @@ void CGameMode::sub_D6F900(const unsigned char* data) {
members.push_back(entry);
}
this->sub_D59FD0(reinterpret_cast<const char*>(packet->partyName), &members);
this->SetPartyMemberList(reinterpret_cast<const char*>(packet->partyName), &members);
}
#pragma pack(push, 1)
@ -7436,18 +7436,18 @@ void CGameMode::RefreshInventoryOrEquipItem2(const unsigned char* data) {
// OFFSET: 0x00D48530
// FUNCTION: fn_21853
void CGameMode::sub_D48530(const unsigned char* data) {
void CGameMode::ReceiveWhisper(const unsigned char* data) {
const auto* packet = reinterpret_cast<const GuildPacketText*>(data);
char nameBuffer[24] = {};
StringFormat(nameBuffer, sizeof(nameBuffer), static_cast<std::size_t>(-1), "%s", reinterpret_cast<const char*>(data) + 4);
std::string text(reinterpret_cast<const char*>(data) + 0x20, reinterpret_cast<const char*>(data) + packet->length);
this->sub_D1A520(0, std::string(nameBuffer), text, *reinterpret_cast<const int*>(data + 0x1C) != 0);
this->ProcessWhisper(0, std::string(nameBuffer), text, *reinterpret_cast<const int*>(data + 0x1C) != 0);
}
// OFFSET: 0x00D1A330
// FUNCTION: fn_21617
void CGameMode::sub_D1A330(const unsigned char* data) {
void CGameMode::ReceiveWhisper2(const unsigned char* data) {
char nameBuffer[24];
std::memset(nameBuffer, 0, sizeof(nameBuffer));
StringFormat(nameBuffer, sizeof(nameBuffer), static_cast<std::size_t>(-1), "%s", reinterpret_cast<const char*>(data) + 8);
@ -7455,7 +7455,7 @@ void CGameMode::sub_D1A330(const unsigned char* data) {
const int length = *reinterpret_cast<const std::uint16_t*>(data + 2) - 0x21;
std::string text(reinterpret_cast<const char*>(data) + 0x21, length > 0 ? static_cast<std::size_t>(length) : 0);
this->sub_D1A520(static_cast<int>(*reinterpret_cast<const std::uint32_t*>(data + 4)), std::string(nameBuffer), text, data[0x20] != 0);
this->ProcessWhisper(static_cast<int>(*reinterpret_cast<const std::uint32_t*>(data + 4)), std::string(nameBuffer), text, data[0x20] != 0);
}
#include "Contents/ShowRankingScheduler.h"
@ -7633,7 +7633,7 @@ void CGameMode::ApplyStatusIcons(int level, unsigned int flags) {
// OFFSET: 0x00D1A520
// FUNCTION: fn_21618
void CGameMode::sub_D1A520(int unknown_0004, std::string name, std::string text, bool flag) {
void CGameMode::ProcessWhisper(int unknown_0004, std::string name, std::string text, bool flag) {
const std::string sender(name);
std::vector<char> message(text.begin(), text.end());
message.push_back('\0');

View file

@ -161,7 +161,7 @@ struct TradeItemRecord {
static_assert(sizeof(TradeItemRecord) == 0x22);
#endif
void __fastcall sub_DFF150(CSession* session);
void __fastcall RefreshPartyWindows(CSession* session);
// GLOBAL: gl_24992
char g_pendingWhisperCount;
@ -1860,7 +1860,7 @@ __declspec(noinline) void CGameMode::ReceiveDynamicNpcNotice(const unsigned char
// OFFSET: 0x00D079A0
// FUNCTION: fn_21584
void CGameMode::sub_D079A0(unsigned char kind, int argument) {
void CGameMode::ReceiveWhisperResult(unsigned char kind, int argument) {
std::string& speaker = this->unknown_0214;
std::string& target = this->unknown_022C;
@ -1928,7 +1928,7 @@ void CGameMode::sub_D079A0(unsigned char kind, int argument) {
// OFFSET: 0x00D08390
// FUNCTION: fn_21588
void CGameMode::sub_D08390(const unsigned char* packet) {
void CGameMode::ReceiveChangeZoneServerWithHost(const unsigned char* packet) {
const int x = *reinterpret_cast<const std::int16_t*>(packet + 0x12);
const int y = *reinterpret_cast<const std::int16_t*>(packet + 0x14);
const int ip = *reinterpret_cast<const int*>(packet + 0x16);
@ -1940,7 +1940,7 @@ void CGameMode::sub_D08390(const unsigned char* packet) {
// OFFSET: 0x00D08110
// FUNCTION: fn_21585
void __stdcall sub_D08110(int field8, int itemIdWord, int quantityWord, int field14, int field18) {
void __stdcall ProcessVendingSale(int field8, int itemIdWord, int quantityWord, int field14, int field18) {
const int itemId = static_cast<short>(itemIdWord);
const int quantity = static_cast<short>(quantityWord);
ITEM_INFO item = g_session.FindItem1758(static_cast<unsigned int>(itemId));
@ -1973,7 +1973,7 @@ void __stdcall sub_D08110(int field8, int itemIdWord, int quantityWord, int fiel
// OFFSET: 0x00D08670
// FUNCTION: fn_21592
void __declspec(noinline) __stdcall sub_D08670(int field14, int itemId, int quantity, int field8, int fieldC, int field10) {
void __declspec(noinline) __stdcall ProcessBuyingStorePurchase(int field14, int itemId, int quantity, int field8, int fieldC, int field10) {
ITEM_INFO item = g_session.FindItem1758ByItemId(itemId);
item.SetItemId(itemId);
item.quantity = quantity;
@ -1998,8 +1998,8 @@ void __declspec(noinline) __stdcall sub_D08670(int field14, int itemId, int quan
// OFFSET: 0x00D08640
// FUNCTION: fn_21591
__declspec(noinline) void __stdcall sub_D08640(const unsigned char* packet) {
sub_D08670(
__declspec(noinline) void __stdcall ReceiveBuyingStorePurchase(const unsigned char* packet) {
ProcessBuyingStorePurchase(
*reinterpret_cast<const int*>(packet + 0x14),
*reinterpret_cast<const int*>(packet + 2),
*reinterpret_cast<const short*>(packet + 6),
@ -2095,7 +2095,7 @@ void __stdcall Nullsub479(int value) {
// OFFSET: 0x00D64A40
// FUNCTION: fn_21996
int sub_D64A40(const unsigned char* entries) {
int CountItemRandomOptions(const unsigned char* entries) {
int count = 0;
if (*reinterpret_cast<const std::uint16_t*>(entries) != 0) {
++count;
@ -2122,7 +2122,7 @@ __declspec(noinline) void CGameMode::ReceivePartyJobLevel(const unsigned char* p
*reinterpret_cast<const std::uint32_t*>(packet + 2), *reinterpret_cast<const std::uint16_t*>(packet + 6),
*reinterpret_cast<const std::uint16_t*>(packet + 8)
);
sub_DFF150(&g_session);
RefreshPartyWindows(&g_session);
}
// OFFSET: 0x00D8A260
@ -2131,7 +2131,7 @@ __declspec(noinline) void CGameMode::ReceivePartyDead(const unsigned char* packe
MessengerMember member = g_session.PartyByAccount(*reinterpret_cast<const std::uint32_t*>(packet + 2));
if (member.valid != 0) {
g_session.SetPartyDead(*reinterpret_cast<const std::uint32_t*>(packet + 2), packet[6]);
sub_DFF150(&g_session);
RefreshPartyWindows(&g_session);
}
}
@ -2265,7 +2265,7 @@ __declspec(noinline) void CGameMode::Zc_Start_Couple(const unsigned char*) {
// OFFSET: 0x00D591A0
// FUNCTION: fn_21959
void CGameMode::sub_D591A0(std::uint32_t aid, int state, int flag, int options) {
void CGameMode::ApplyActorStatusEffects(std::uint32_t aid, int state, int flag, int options) {
CGameActor* actor = static_cast<CGameActor*>(this->scene->GetGameActorByAID(aid));
if (!actor) {
return;
@ -2273,7 +2273,7 @@ void CGameMode::sub_D591A0(std::uint32_t aid, int state, int flag, int options)
actor->unknown_0210 = static_cast<std::uint16_t>(flag);
if (!StateFlag06(state)) {
actor->sub_CAA4D0();
actor->UpdateMaxLevelAura();
}
if (actor->IsPlayerClass(actor->GetEffectiveJob(-1))) {
@ -2478,7 +2478,7 @@ __declspec(noinline) void CGameMode::ReceivePacket0AB8(const unsigned char*) {
// OFFSET: 0x00D78010
// FUNCTION: fn_22156
__declspec(noinline) void CGameMode::ReceiveUnknownD78010(const unsigned char* packet) {
this->sub_D591A0(
this->ApplyActorStatusEffects(
*reinterpret_cast<const std::uint32_t*>(packet + 2),
*reinterpret_cast<const int*>(packet + 6),
*reinterpret_cast<const int*>(packet + 0xA),
@ -2489,7 +2489,7 @@ __declspec(noinline) void CGameMode::ReceiveUnknownD78010(const unsigned char* p
// OFFSET: 0x00D89C60
// FUNCTION: fn_22212
__declspec(noinline) void CGameMode::ReceiveUnknownD89C60(const unsigned char* packet) {
this->sub_D5EEF0(
this->UpdatePartyMemberInfo(
reinterpret_cast<const char*>(packet + 0x2B),
*reinterpret_cast<const int*>(packet + 2),
reinterpret_cast<const char*>(packet + 0x43),
@ -4365,7 +4365,7 @@ void CGameMode::ProcessSkillUsePacket(const unsigned char* packet, int type) {
delay = static_cast<int>(value);
}
this->sub_D5B030(sourceAid, targetAid, x, y, skillId, property, delay, flag, 0);
this->NotifySkillCasting(sourceAid, targetAid, x, y, skillId, property, delay, flag, 0);
}
namespace {
@ -5690,7 +5690,7 @@ void CGameMode::ApplyStatusChange(
case 665:
if (aid == g_session.m_aid) {
this->scene->player->SendMsg(nullptr, 110, 0, type, type >> 31, on, 0, value1, value1 >> 31, 0, 0, 0, 0, 0, 0);
this->sub_CFE480(aid);
this->RefreshStatusStateEffect(aid);
}
return;
case 673:
@ -5701,19 +5701,19 @@ void CGameMode::ApplyStatusChange(
case 675:
if (aid == g_session.m_aid) {
this->scene->player->SendMsg(nullptr, 110, 0, 675, 0, on, 0, value1, value1 >> 31, 0, 0, 0, 0, 0, 0);
this->sub_CFE480(aid);
this->RefreshStatusStateEffect(aid);
}
return;
case 676:
if (aid == g_session.m_aid) {
this->scene->player->SendMsg(nullptr, 110, 0, 676, 0, on, 0, value1, value1 >> 31, 0, 0, 0, 0, 0, 0);
this->sub_CFE480(aid);
this->RefreshStatusStateEffect(aid);
}
break;
case 710:
if (aid == g_session.m_aid) {
this->scene->player->SendMsg(nullptr, 110, 0, 710, 0, on, 0, value1, value1 >> 31, 0, 0, 0, 0, 0, 0);
this->sub_CFE480(aid);
this->RefreshStatusStateEffect(aid);
}
break;
case 933:
@ -5861,7 +5861,7 @@ void CGameMode::ApplyStatusChange(
break;
default:
if (CSkillActionMgr::GetInstance()->HasEfstAction(type) != true) {
this->sub_CFE480(aid);
this->RefreshStatusStateEffect(aid);
return;
}
{
@ -6472,12 +6472,12 @@ void CGameMode::ApplyStatusChange(
case 1688:
break;
default:
this->sub_CFE480(aid);
this->RefreshStatusStateEffect(aid);
return;
}
}
this->sub_CFE480(aid);
this->RefreshStatusStateEffect(aid);
if (std::strlen(message) > 1) {
char text[512];
std::sprintf(text, "%s%s", name, message);
@ -6591,7 +6591,7 @@ __declspec(noinline) void CGameMode::ReceiveFormattedMessage(const unsigned char
ITEM_INFO item;
item.SetItemId(*reinterpret_cast<const int*>(packet + 4));
int capacity = sizeof(name);
item.sub_6D5810(name, capacity, 0);
item.GetIdDisplayName(name, capacity, 0);
StringFormat(text, sizeof(text), static_cast<std::size_t>(-1), LookupMessage(3278), name);
} else {
std::sprintf(text, LookupMessage(messageId), *reinterpret_cast<const int*>(packet + 4));
@ -6798,7 +6798,7 @@ __declspec(noinline) void CGameMode::ReceiveFeedOption(const unsigned char* pack
g_windowMgr.SendNotice(
1, reinterpret_cast<std::intptr_t>(LookupMessage((*reinterpret_cast<const int*>(packet + 6) != 0) + 0xBA2)), 0x64FFFF, 0, 0, 0
);
g_windowMgr.sub_AAB070(231);
g_windowMgr.RefreshGameSettingOption(231);
break;
case 2:
g_session.SetPetAutoFeed(*reinterpret_cast<const int*>(packet + 6) > 0);
@ -6810,7 +6810,7 @@ __declspec(noinline) void CGameMode::ReceiveFeedOption(const unsigned char* pack
*reinterpret_cast<int*>(g_session.unknown_8128) = *reinterpret_cast<const int*>(packet + 6);
break;
case 6:
sub_E489C0(*reinterpret_cast<const int*>(packet + 6) != 0);
SetPetInfoAlert(*reinterpret_cast<const int*>(packet + 6) != 0);
break;
}
}
@ -6932,7 +6932,7 @@ __declspec(noinline) void CGameMode::ReceivePartyLeaderChange(const unsigned cha
g_session.unknown_5464 = *reinterpret_cast<const std::uint32_t*>(packet + 6) == g_session.m_aid;
std::sprintf(text, LookupMessage(1552), member.name.c_str());
g_windowMgr.SendNotice(1, reinterpret_cast<std::intptr_t>(text), 0xFFFF, 12, 0, 0);
sub_DFF150(&g_session);
RefreshPartyWindows(&g_session);
if (g_windowMgr.unknown_03F8) {
g_windowMgr.unknown_03F8->SendMsg(nullptr, 0x3C, 0, 0, 0, 0);
}
@ -7245,16 +7245,16 @@ __declspec(noinline) void CGameMode::ReceiveUiOpen(unsigned char type, std::uint
// OFFSET: 0x00D17AD0
// FUNCTION: fn_21596
void CGameMode::RefreshEmotionPurchaseSchedule() {
g_timeScheduler->sub_BA95F0(5);
g_timeScheduler->RemoveSchedulesByKey(5);
CCashEmotionMgr* manager = g_cashEmotionMgr;
if (!manager) {
return;
}
manager->sub_59C5A0();
manager->RemoveExpiredPacks();
const int expiry = manager->GetEarliestExpiry();
if (expiry < 0x7FFFFFFF) {
const std::uint64_t now = static_cast<std::int64_t>(manager->sub_59FC50()) * 10000000;
const std::uint64_t now = static_cast<std::int64_t>(manager->GetServerTime()) * 10000000;
const std::int64_t interval = (static_cast<std::int64_t>(expiry) * 10000000 - static_cast<std::int64_t>(now)) / 10000;
if (interval != 0 && interval >= 0) {
g_timeScheduler->AddSchedule(new CEmotionPurchaseExpireSchedule(now, interval, 1));
@ -7476,7 +7476,7 @@ void CGameMode::ReceiveGuildPositionInfo(const unsigned char* packet) {
// OFFSET: 0x00D17BF0
// FUNCTION: fn_21597
void CGameMode::RefreshEmotionSaleSchedule() {
g_timeScheduler->sub_BA95F0(6);
g_timeScheduler->RemoveSchedulesByKey(6);
CCashEmotionMgr* manager = g_cashEmotionMgr;
if (!manager) {
return;
@ -7484,7 +7484,7 @@ void CGameMode::RefreshEmotionSaleSchedule() {
const int expiry = manager->RefreshUnownedPacks().nextTime;
if (expiry < 0x7FFFFFFF) {
const std::uint64_t now = static_cast<std::int64_t>(manager->sub_59FC50()) * 10000000;
const std::uint64_t now = static_cast<std::int64_t>(manager->GetServerTime()) * 10000000;
const std::int64_t interval = (static_cast<std::int64_t>(expiry) * 10000000 - static_cast<std::int64_t>(now)) / 10000;
if (interval != 0 && interval >= 0) {
g_timeScheduler->AddSchedule(new CEmotionSaleExpireSchedule(now, interval, 1));
@ -7587,7 +7587,7 @@ static_assert(sizeof(AddQuestHunt) == 0x2A);
void CGameMode::ReceiveAddQuest64(const unsigned char* data) {
const auto* packet = reinterpret_cast<const AddQuestPacket*>(data);
if (g_renewQuestMgr->SetOngoingQuestState(packet->questId, packet->state) == true) {
g_renewQuestMgr->sub_67B6B0();
g_renewQuestMgr->UpdateQuestWindows();
return;
}
@ -7629,7 +7629,7 @@ void CGameMode::ReceiveAddQuest64(const unsigned char* data) {
}
g_renewQuestMgr->AddOngoingQuest(packet->questId, info);
g_renewQuestMgr->sub_67B6B0();
g_renewQuestMgr->UpdateQuestWindows();
g_windowMgr.EnsureWindow(0x8F);
const char* text = LookupMessage(0x55E);
g_windowMgr.SendNotice(1, reinterpret_cast<std::intptr_t>(text), 0xFFFF, 0x13, 0, 0);
@ -7640,7 +7640,7 @@ void CGameMode::ReceiveAddQuest64(const unsigned char* data) {
void CGameMode::ReceiveAddQuest(const unsigned char* data) {
const auto* packet = reinterpret_cast<const AddQuestPacket*>(data);
if (g_renewQuestMgr->SetOngoingQuestState(packet->questId, packet->state) == true) {
g_renewQuestMgr->sub_67B6B0();
g_renewQuestMgr->UpdateQuestWindows();
return;
}
@ -7682,7 +7682,7 @@ void CGameMode::ReceiveAddQuest(const unsigned char* data) {
}
g_renewQuestMgr->AddOngoingQuest(packet->questId, info);
g_renewQuestMgr->sub_67B6B0();
g_renewQuestMgr->UpdateQuestWindows();
g_windowMgr.EnsureWindow(0x8F);
const char* text = LookupMessage(0x55E);
g_windowMgr.SendNotice(1, reinterpret_cast<std::intptr_t>(text), 0xFFFF, 0x13, 0, 0);
@ -9011,7 +9011,7 @@ void CGameMode::ReceiveFeedResult(const unsigned char* data) {
ITEM_INFO item;
item.SetItemId(packet->itemId);
int capacity = sizeof(name);
item.sub_6D5810(name, capacity, 0);
item.GetIdDisplayName(name, capacity, 0);
g_windowMgr.SendNotice(1, reinterpret_cast<std::intptr_t>(FormatOwnedString(LookupMessage(0xA12), name, count).c_str()), 0xFFFF64, 0, 0, 0);
} else {
ITEM_INFO item;
@ -9030,7 +9030,7 @@ void CGameMode::ReceiveFeedResult(const unsigned char* data) {
ITEM_INFO item;
item.SetItemId(packet->itemId);
int capacity = sizeof(name);
item.sub_6D5810(name, capacity, 0);
item.GetIdDisplayName(name, capacity, 0);
g_windowMgr.SendNotice(1, reinterpret_cast<std::intptr_t>(FormatOwnedString(LookupMessage(0xCD1), name, count).c_str()), 0xFFFF64, 0, 0, 0);
} else {
ITEM_INFO item;
@ -10454,7 +10454,7 @@ void CGameMode::ReceiveActorDisappear(const unsigned char* data) {
} else if (!g_windowMgr.CloseWindow(0x9B)) {
g_windowMgr.EnsureWindow(0x9B);
}
sub_DFF150(&g_session);
RefreshPartyWindows(&g_session);
break;
}
case 2:
@ -11397,7 +11397,7 @@ void ApplyActorSkillState(CGameActor* actor, std::uint16_t skillId, int duration
// OFFSET: 0x00D5B030
// FUNCTION: fn_21963
void CGameMode::sub_D5B030(
void CGameMode::NotifySkillCasting(
std::uint32_t sourceAid, std::uint32_t targetAid, std::uint16_t x, std::uint16_t y, std::uint16_t skillId, int property, int delay, unsigned char silent, int
) {
CGameActor* source = static_cast<CGameActor*>(this->scene->GetGameActorByAidIncludeMe(sourceAid));
@ -12174,7 +12174,7 @@ void CGameMode::ReceivePartyMemberLeft(const unsigned char* data) {
g_session.ClearRecords0734();
}
sub_DFF150(&g_session);
RefreshPartyWindows(&g_session);
if (CGameActor* actor = static_cast<CGameActor*>(this->scene->GetGameActorByAID(packet->aid))) {
actor->SetUnknown02E4(0);
}
@ -12439,7 +12439,7 @@ void CGameMode::ReceiveActorStandEntry(const unsigned char* data) {
}
}
this->sub_D591A0(packet->aid, packet->effectState, packet->level, packet->virtue);
this->ApplyActorStatusEffects(packet->aid, packet->effectState, packet->level, packet->virtue);
}
// OFFSET: 0x00D387B0
@ -12532,7 +12532,7 @@ void CGameMode::ReceiveActorStandEntryFont(const unsigned char* data) {
}
}
this->sub_D591A0(packet->aid, packet->effectState, packet->level, packet->virtue);
this->ApplyActorStatusEffects(packet->aid, packet->effectState, packet->level, packet->virtue);
}
// OFFSET: 0x00D38C40
@ -12637,7 +12637,7 @@ void CGameMode::ReceiveActorTypedEntry(const unsigned char* data) {
}
}
this->sub_D591A0(packet->aid, packet->effectState, packet->level, packet->virtue);
this->ApplyActorStatusEffects(packet->aid, packet->effectState, packet->level, packet->virtue);
}
// OFFSET: 0x00D39160
@ -12971,7 +12971,7 @@ void CGameMode::ReceiveActorMoveEntryLegacy(const unsigned char* data) {
break;
}
this->sub_D591A0(packet->aid, packet->effectState, packet->level, packet->virtue);
this->ApplyActorStatusEffects(packet->aid, packet->effectState, packet->level, packet->virtue);
}
// OFFSET: 0x00D61F40
@ -13240,7 +13240,7 @@ void CGameMode::ReceiveActorMoveEntryOld(const unsigned char* data) {
}
}
this->sub_D591A0(packet->aid, packet->effectState, packet->level, packet->virtue);
this->ApplyActorStatusEffects(packet->aid, packet->effectState, packet->level, packet->virtue);
}
#pragma pack(push, 1)
@ -13375,7 +13375,7 @@ void CGameMode::ReceiveActorMoveEntryOld2(const unsigned char* data) {
}
}
this->sub_D591A0(packet->aid, packet->effectState, packet->level, packet->virtue);
this->ApplyActorStatusEffects(packet->aid, packet->effectState, packet->level, packet->virtue);
}
#pragma pack(push, 1)
@ -13522,7 +13522,7 @@ void CGameMode::ReceiveActorMoveEntryNamed(const unsigned char* data) {
}
}
this->sub_D591A0(packet->aid, packet->effectState, packet->level, packet->virtue);
this->ApplyActorStatusEffects(packet->aid, packet->effectState, packet->level, packet->virtue);
}
#pragma pack(push, 1)
@ -13649,7 +13649,7 @@ void CGameMode::ReceiveActorMoveEntryOld0(const unsigned char* data) {
this->ShowGuildEmblem(actor, packet->guildId, packet->guildVersion);
}
this->sub_D591A0(packet->aid, packet->effectState, packet->level, packet->virtue);
this->ApplyActorStatusEffects(packet->aid, packet->effectState, packet->level, packet->virtue);
}
#pragma pack(push, 1)
@ -13972,7 +13972,7 @@ void CGameMode::ReceiveActorStandEntryLegacy(const unsigned char* data) {
actor->Slot49(guildId, packet->guildVersion);
}
}
this->sub_D591A0(packet->aid, packet->effectState, packet->level, packet->virtue);
this->ApplyActorStatusEffects(packet->aid, packet->effectState, packet->level, packet->virtue);
}
#pragma pack(push, 1)
@ -14120,7 +14120,7 @@ void CGameMode::ReceiveActorStandEntryNamedOld(const unsigned char* data) {
}
}
this->sub_D591A0(packet->aid, packet->effectState, packet->level, packet->virtue);
this->ApplyActorStatusEffects(packet->aid, packet->effectState, packet->level, packet->virtue);
}
#pragma pack(push, 1)
@ -14244,7 +14244,7 @@ void CGameMode::ReceiveActorStandEntryOld(const unsigned char* data) {
}
}
this->sub_D591A0(packet->aid, packet->effectState, packet->level, packet->virtue);
this->ApplyActorStatusEffects(packet->aid, packet->effectState, packet->level, packet->virtue);
}
#pragma pack(push, 1)
@ -14370,7 +14370,7 @@ void CGameMode::ReceiveActorStandEntryOld2(const unsigned char* data) {
}
}
this->sub_D591A0(packet->aid, packet->effectState, packet->level, packet->virtue);
this->ApplyActorStatusEffects(packet->aid, packet->effectState, packet->level, packet->virtue);
}
#pragma pack(push, 1)
@ -14501,7 +14501,7 @@ void CGameMode::ReceiveActorStandEntryOld3(const unsigned char* data) {
}
}
this->sub_D591A0(packet->aid, packet->effectState, packet->level, packet->virtue);
this->ApplyActorStatusEffects(packet->aid, packet->effectState, packet->level, packet->virtue);
}
#pragma pack(push, 1)
struct ActorStandEntryOld0Packet {
@ -14633,7 +14633,7 @@ void CGameMode::ReceiveActorStandEntryOld0(const unsigned char* data) {
this->ShowGuildEmblem(actor, packet->guildId, packet->guildVersion);
}
this->sub_D591A0(packet->aid, packet->effectState, packet->level, packet->virtue);
this->ApplyActorStatusEffects(packet->aid, packet->effectState, packet->level, packet->virtue);
}
#pragma pack(push, 1)
@ -14781,7 +14781,7 @@ void CGameMode::ReceiveActorStateEntryNamedOld(const unsigned char* data) {
this->scene->objects.push_back(actor);
this->scene->actors.push_back(actor);
}
this->sub_D591A0(packet->aid, packet->effectState, packet->level, packet->virtue);
this->ApplyActorStatusEffects(packet->aid, packet->effectState, packet->level, packet->virtue);
}
#pragma pack(push, 1)
@ -14903,7 +14903,7 @@ void CGameMode::ReceiveActorStateEntryOld(const unsigned char* data) {
}
}
this->sub_D591A0(packet->aid, packet->effectState, packet->level, packet->virtue);
this->ApplyActorStatusEffects(packet->aid, packet->effectState, packet->level, packet->virtue);
}
// OFFSET: 0x00D630F0
@ -15041,9 +15041,9 @@ void CGameMode::SpawnStandingActor(
if (emblemGuildId > 0 && !actor->Slot50()) {
actor->Slot49(emblemGuildId, guildVersion);
}
this->sub_D591A0(aid, effectState, level, virtue);
this->ApplyActorStatusEffects(aid, effectState, level, virtue);
} else {
this->sub_D591A0(aid, effectState, level, virtue);
this->ApplyActorStatusEffects(aid, effectState, level, virtue);
int cell[2];
cell[0] = entry.cellX;
cell[1] = entry.cellY;
@ -15319,9 +15319,9 @@ void CGameMode::SpawnStateActor(
if (objectType != 0 && job == 0x2D2) {
actor->Slot49(actor->Slot50(), guildVersion);
this->sub_D591A0(aid, effectState, level, virtue);
this->ApplyActorStatusEffects(aid, effectState, level, virtue);
} else {
this->sub_D591A0(aid, effectState, level, virtue);
this->ApplyActorStatusEffects(aid, effectState, level, virtue);
if (objectType == 0) {
int cell[2];
cell[0] = entry.cellX;
@ -15785,7 +15785,7 @@ void CGameMode::ReceiveActorStateEntryLegacy(const unsigned char* data) {
actor->Slot49(guildId, packet->guildVersion);
}
}
this->sub_D591A0(packet->aid, packet->effectState, packet->level, packet->virtue);
this->ApplyActorStatusEffects(packet->aid, packet->effectState, packet->level, packet->virtue);
}
namespace {
@ -15868,7 +15868,7 @@ void CGameMode::ReceivePartyMemberInfo(const unsigned char* data) {
}
g_session.AddPartyMember(member);
sub_DFF150(&g_session);
RefreshPartyWindows(&g_session);
}
// OFFSET: 0x00D2AFA0
@ -15907,13 +15907,13 @@ void CGameMode::ReceivePartyMemberList(const unsigned char* data) {
g_session.unknown_5464 = 1;
}
}
sub_DFF150(&g_session);
RefreshPartyWindows(&g_session);
}
}
// OFFSET: 0x00D59FD0
// FUNCTION: fn_21960
void CGameMode::sub_D59FD0(const char* value, std::vector<PartyRosterEntry>* members) {
void CGameMode::SetPartyMemberList(const char* value, std::vector<PartyRosterEntry>* members) {
g_session.ClearPartyMembers();
char partyName[25];
partyName[24] = '\0';
@ -15950,12 +15950,12 @@ void CGameMode::sub_D59FD0(const char* value, std::vector<PartyRosterEntry>* mem
g_session.LoadMiniPartyInfo();
g_windowMgr.RestoreMiniPartyWindows();
sub_DFF150(&g_session);
RefreshPartyWindows(&g_session);
}
// OFFSET: 0x00D5EEF0
// FUNCTION: fn_21968
void CGameMode::sub_D5EEF0(
void CGameMode::UpdatePartyMemberInfo(
const char* name, int accountId, const char* mapName, int leader, unsigned char offline, std::uint16_t job, std::uint16_t level,
const char* value, unsigned char itemShare, unsigned char itemDistribute, int characterId
) {
@ -20275,7 +20275,7 @@ static_assert(offsetof(ChatRoomMemberUpdateInfo, type) == 0x30);
// OFFSET: 0x00D08910
// FUNCTION: fn_21595
void CGameMode::sub_D08910() {
void CGameMode::ProcessIncomingPackets() {
memset(g_gameModePacketBuffer, 0, sizeof(g_gameModePacketBuffer));
if (!g_replayAnimationScaling) {
const std::uint32_t elapsedHours = (timeGetTime() - g_loginAcceptTime) / 3600000;
@ -20390,7 +20390,7 @@ void CGameMode::sub_D08910() {
this->ReceiveZoneServerChange(g_gameModePacketBuffer);
break;
case 0x97:
this->sub_D48530(g_gameModePacketBuffer);
this->ReceiveWhisper(g_gameModePacketBuffer);
break;
case 0xA0:
this->ReceiveItemPickupAck(g_gameModePacketBuffer);
@ -20477,7 +20477,7 @@ void CGameMode::sub_D08910() {
this->ReceiveNotifyGroundSkill(g_gameModePacketBuffer);
break;
case 0x11F:
this->sub_D41250(g_gameModePacketBuffer);
this->Zc_Skill_Entry(g_gameModePacketBuffer);
break;
case 0x133:
case 0x800:
@ -20584,7 +20584,7 @@ void CGameMode::sub_D08910() {
this->ReceiveItem1740Add(g_gameModePacketBuffer);
break;
case 0x1C9:
this->sub_D40730(g_gameModePacketBuffer);
this->Zc_Skill_Entry2(g_gameModePacketBuffer);
break;
case 0x1CF:
this->ReceiveDevotionList(g_gameModePacketBuffer);
@ -20993,7 +20993,7 @@ void CGameMode::sub_D08910() {
this->ReceiveStatusChangeEffect2(g_gameModePacketBuffer);
break;
case 0x984:
this->sub_D65FC0(g_gameModePacketBuffer);
this->ReceiveStatusChangeEntry(g_gameModePacketBuffer);
break;
case 0x985:
this->LoadCooldownSnapshot(g_gameModePacketBuffer);
@ -21074,7 +21074,7 @@ void CGameMode::sub_D08910() {
this->ReceiveActorStateEntryNamed(g_gameModePacketBuffer);
break;
case 0x9DE:
this->sub_D1A330(g_gameModePacketBuffer);
this->ReceiveWhisper2(g_gameModePacketBuffer);
break;
case 0x9E7:
this->ReceiveUnknownD77BF0(g_gameModePacketBuffer);
@ -21194,7 +21194,7 @@ void CGameMode::sub_D08910() {
this->ReceiveUnknownD89C60(g_gameModePacketBuffer);
break;
case 0xA44:
this->sub_D6F900(g_gameModePacketBuffer);
this->ReceivePartyInfo2(g_gameModePacketBuffer);
break;
case 0xA47:
this->ReceiveCharacterRenameResult(g_gameModePacketBuffer);
@ -21203,10 +21203,10 @@ void CGameMode::sub_D08910() {
this->ReceiveRodexMailListRefresh(g_gameModePacketBuffer);
break;
case 0xA82:
this->sub_D48C60(g_gameModePacketBuffer);
this->ReceiveGuildExpulsion2(g_gameModePacketBuffer);
break;
case 0xA83:
this->sub_D4A060(g_gameModePacketBuffer);
this->ReceiveGuildLeave2(g_gameModePacketBuffer);
break;
case 0xA84:
this->ReceiveGuildInfo3(g_gameModePacketBuffer);
@ -21263,7 +21263,7 @@ void CGameMode::sub_D08910() {
this->ReceiveRodexMailList(g_gameModePacketBuffer);
break;
case 0xAC7:
this->sub_D08390(g_gameModePacketBuffer);
this->ReceiveChangeZoneServerWithHost(g_gameModePacketBuffer);
break;
case 0xAC8:
this->ResetItemLists(g_gameModePacketBuffer);
@ -21845,9 +21845,9 @@ void CGameMode::sub_D08910() {
g_navigationManager.unknown_125C = 0;
g_clanInfo->Clear();
if (g_gameModePacketBuffer[2] == 1) {
g_timeScheduler->sub_BA95F0(6);
g_timeScheduler->sub_BA95F0(5);
g_timeScheduler->sub_BA95F0(7);
g_timeScheduler->RemoveSchedulesByKey(6);
g_timeScheduler->RemoveSchedulesByKey(5);
g_timeScheduler->RemoveSchedulesByKey(7);
GetRagConnection().Close();
g_loginStartMode = 5;
g_modeMgr.Switch(0, "login.rsw");
@ -22497,7 +22497,7 @@ void CGameMode::sub_D08910() {
}
break;
case 0x137:
sub_D08110(_time32(nullptr), *reinterpret_cast<const std::uint16_t *>(g_gameModePacketBuffer + 2),
ProcessVendingSale(_time32(nullptr), *reinterpret_cast<const std::uint16_t *>(g_gameModePacketBuffer + 2),
*reinterpret_cast<const std::uint16_t *>(g_gameModePacketBuffer + 4), 0, 0);
break;
case 0x139: {
@ -22598,7 +22598,7 @@ void CGameMode::sub_D08910() {
MessengerMember member = g_session.PartyByAccount(aid);
if (member.valid != 0) {
g_session.SetPartyDead(aid, 0);
sub_DFF150(&g_session);
RefreshPartyWindows(&g_session);
}
break;
}
@ -23427,7 +23427,7 @@ void CGameMode::sub_D08910() {
break;
}
case 0x209:
sub_D1FBA0(g_gameModePacketBuffer);
ReceiveFriendAddResult(g_gameModePacketBuffer);
break;
case 0x20A:
if (g_session.RemoveFriendByCharacterId(*reinterpret_cast<const std::uint32_t *>(g_gameModePacketBuffer + 6))) {
@ -23514,14 +23514,14 @@ void CGameMode::sub_D08910() {
CRenewQuestMgr *manager = g_renewQuestMgr;
unsigned int id = *reinterpret_cast<const unsigned int *>(g_gameModePacketBuffer + 2);
manager->m_ongoingQuests.erase(id);
manager->sub_67B6B0();
manager->UpdateQuestWindows();
std::string message = FormatOwnedString(LookupMessage(1611), title.c_str());
g_windowMgr.SendNotice(1, reinterpret_cast<std::intptr_t>(message.c_str()), 0xFFFF, 19, 0, 0);
break;
}
case 0x2B7:
g_renewQuestMgr->SetOngoingQuestState(*reinterpret_cast<const unsigned int *>(g_gameModePacketBuffer + 2), g_gameModePacketBuffer[6]);
g_renewQuestMgr->sub_67B6B0();
g_renewQuestMgr->UpdateQuestWindows();
break;
case 0x2D3: {
ITEM_INFO item = LookupClientItemByIdentity(g_session.m_inventoryItems, *reinterpret_cast<const std::uint16_t *>(g_gameModePacketBuffer + 2));
@ -24144,7 +24144,7 @@ void CGameMode::sub_D08910() {
break;
}
case 0x80F:
sub_D1F770(g_gameModePacketBuffer);
ReceiveItemSlot(g_gameModePacketBuffer);
break;
case 0x83D:
g_session.unknown_5BE8 = *reinterpret_cast<const std::int16_t *>(g_gameModePacketBuffer + 2);
@ -24269,7 +24269,7 @@ void CGameMode::sub_D08910() {
g_entryQueueMgr->OnNotify(reinterpret_cast<const EntryQueueNotice *>(g_gameModePacketBuffer));
break;
case 0x8E2:
sub_D73A10(g_gameModePacketBuffer);
ReceiveNavigation(g_gameModePacketBuffer);
break;
case 0x90E:
g_entryQueueMgr->ResetCurrent(reinterpret_cast<int>(g_gameModePacketBuffer));
@ -24282,23 +24282,23 @@ void CGameMode::sub_D08910() {
ReceiveBuyingStoreResult(reinterpret_cast<const BuyingStoreResultPacket *>(g_gameModePacketBuffer));
break;
case 0x9BF:
sub_D1C050(reinterpret_cast<const AchievementStatePacket *>(g_gameModePacketBuffer));
ReceiveStorageClose(reinterpret_cast<const AchievementStatePacket *>(g_gameModePacketBuffer));
break;
case 0x9CF:
g_nProtectGameGuardMgr->ProcessAuth(reinterpret_cast<int>(g_gameModePacketBuffer + 0x4),
*reinterpret_cast<const std::uint16_t *>(g_gameModePacketBuffer + 0x2) - 4);
break;
case 0x9DF:
this->sub_D079A0(g_gameModePacketBuffer[0x2], *reinterpret_cast<const int *>(g_gameModePacketBuffer + 0x3));
this->ReceiveWhisperResult(g_gameModePacketBuffer[0x2], *reinterpret_cast<const int *>(g_gameModePacketBuffer + 0x3));
break;
case 0x9E6:
sub_D08640(g_gameModePacketBuffer);
ReceiveBuyingStorePurchase(g_gameModePacketBuffer);
break;
case 0x9FC:
this->NotifyResult2571(*reinterpret_cast<const int *>(g_gameModePacketBuffer + 0x2));
break;
case 0xA09:
sub_D1F970(g_gameModePacketBuffer);
ReceiveItemSlotOptions(g_gameModePacketBuffer);
break;
case 0xA26:
this->ReceiveAchievementResult(g_gameModePacketBuffer[0x2], *reinterpret_cast<const int *>(g_gameModePacketBuffer + 0x3));
@ -24363,7 +24363,7 @@ void CGameMode::sub_D08910() {
reinterpret_cast<const char *>(g_gameModePacketBuffer + 0x8));
break;
case 0xA6D:
sub_D6AD60((static_cast<unsigned int>(*reinterpret_cast<const std::int16_t *>(g_gameModePacketBuffer + 0x2) - 4) >> 2),
ReceiveMacroReporterList((static_cast<unsigned int>(*reinterpret_cast<const std::int16_t *>(g_gameModePacketBuffer + 0x2) - 4) >> 2),
reinterpret_cast<const int *>(g_gameModePacketBuffer + 0x4));
break;
case 0xA6F:
@ -24443,7 +24443,7 @@ void CGameMode::sub_D08910() {
this->OpenWindow154();
break;
case 0xB52:
sub_D6E440();
CloseAccountLimitedTool();
break;
case 0xB54:
this->ReceiveUnknownD79E90(*reinterpret_cast<const std::uint16_t *>(g_gameModePacketBuffer + 0x2),
@ -24625,7 +24625,7 @@ void CGameMode::sub_D08910() {
g_gameModePacketBuffer + 5);
break;
case 0x9E5:
sub_D08110(*reinterpret_cast<const int *>(g_gameModePacketBuffer + 0xA), *reinterpret_cast<const std::uint16_t *>(g_gameModePacketBuffer + 2),
ProcessVendingSale(*reinterpret_cast<const int *>(g_gameModePacketBuffer + 0xA), *reinterpret_cast<const std::uint16_t *>(g_gameModePacketBuffer + 2),
*reinterpret_cast<const std::uint16_t *>(g_gameModePacketBuffer + 4), *reinterpret_cast<const int *>(g_gameModePacketBuffer + 0xE),
*reinterpret_cast<const int *>(g_gameModePacketBuffer + 6));
break;
@ -24642,7 +24642,7 @@ void CGameMode::sub_D08910() {
*reinterpret_cast<const std::uint32_t *>(g_gameModePacketBuffer + 8), g_gameModePacketBuffer[0x10]);
break;
case 0xA23:
sub_D6C460(*reinterpret_cast<const int *>(g_gameModePacketBuffer + 4), *reinterpret_cast<const int *>(g_gameModePacketBuffer + 8),
ReceiveAchievementList(*reinterpret_cast<const int *>(g_gameModePacketBuffer + 4), *reinterpret_cast<const int *>(g_gameModePacketBuffer + 8),
*reinterpret_cast<const std::uint16_t *>(g_gameModePacketBuffer + 0xC), *reinterpret_cast<const int *>(g_gameModePacketBuffer + 0xE),
*reinterpret_cast<const int *>(g_gameModePacketBuffer + 0x12),
reinterpret_cast<const AchievementRecordPacket *>(g_gameModePacketBuffer + 0x16));
@ -24884,7 +24884,7 @@ void CGameMode::sub_D08910() {
if (!manager) {
break;
}
manager->sub_59CDE0(*reinterpret_cast<const int *>(g_gameModePacketBuffer + 4));
manager->SetServerTime(*reinterpret_cast<const int *>(g_gameModePacketBuffer + 4));
manager->SetServerTimeZone(*reinterpret_cast<const std::uint16_t *>(g_gameModePacketBuffer + 8));
const unsigned char *entry = g_gameModePacketBuffer + 0xA;
for (int i = 0; i < count; ++i, entry += 7) {
@ -25029,7 +25029,7 @@ void CGameMode::sub_D08910() {
if (g_windowMgr.window_0428) {
g_windowMgr.window_0428->Invalidate();
}
g_renewQuestMgr->sub_67B690();
g_renewQuestMgr->UpdateOngoingQuestInfo();
break;
}
case 0x900: {

View file

@ -2010,7 +2010,7 @@ void CSession::UpdateUnknown1708(int enabled) {
// OFFSET: 0x00DFF150
// FUNCTION: fn_23611
void __fastcall sub_DFF150(CSession*) {
void __fastcall RefreshPartyWindows(CSession*) {
if (UIWindow* window = g_windowMgr.window_02C8) {
window->SendMsg(nullptr, 23, 0, 0, 0, 0);
}
@ -2662,7 +2662,7 @@ bool CSession::HasControlCharacter(std::string text) {
// OFFSET: 0x00DE3D90
// FUNCTION: fn_23488
void CSession::sub_DE3D90(char* text) {
void CSession::HiFriends(char* text) {
std::string greeting = "(Hi) ";
greeting += text ? text : "*^_^*";
@ -6998,7 +6998,7 @@ void CSession::ReloadLanguageTables() {
// OFFSET: 0x00DF33B0
// FUNCTION: fn_23506
void CSession::sub_DF33B0() {
void CSession::LoadSessionTables() {
CSession* session = this;
++g_sessionTableLoadCount;
session->InitJobHitWaveNames();

View file

@ -899,7 +899,6 @@ public:
int SkillLevel(int id) const;
CRenderObject* FindGameActor(std::uint32_t aid) const;
int GetPetTargetAid() const;
int sub_DDD2C0(const ITEM_INFO& item);
const char* GetJobName(unsigned job, int sex);
void InitJobNameTable();
int SyncUnknown0E98();
@ -966,8 +965,8 @@ public:
void UpdateRandomStats();
void ResetEquipment();
void ResetSlots();
void sub_DD9D50();
void sub_DF33B0();
void InitClientData();
void LoadSessionTables();
int GetList0Size() const;
int GetList1Size() const;
int GetList2Size() const;
@ -1190,7 +1189,7 @@ public:
bool EquipItem61B8(const ITEM_INFO& item);
void SetUnknown7EC8(std::uint32_t value);
void NotifyUnknown7F94Name(std::uint32_t id, const char* name);
void sub_DE3D90(char* text);
void HiFriends(char* text);
void sub_DE4FF0();
std::pair<int, int> GetShopEntry(unsigned int index, int key);
bool HasUnknown809C(std::string name);

View file

@ -30,7 +30,6 @@ bool g_stoveWaitingCallback;
void OnStoveTermsAgreementFetched(Stove::PCSDK::CallbackResult callbackResult, int unused, const wchar_t* url);
void OnStoveCategoryProductsFetched(Stove::PCSDK::CallbackResult callbackResult, const Stove::PCSDK::IAP::StovePCProduct* products, unsigned int count);
void OnStoveAllProductsFetched(Stove::PCSDK::CallbackResult callbackResult, const Stove::PCSDK::IAP::StovePCProduct* products, unsigned int count);
void sub_DD8A20(int value);
void OnStoveInitialized(Stove::PCSDK::CallbackResult callbackResult);
void OnStoveShutdown(Stove::PCSDK::CallbackResult callbackResult, Stove::PCSDK::Base::StovePCShutdown shutdown);
void OnStovePurchaseStarted(Stove::PCSDK::CallbackResult callbackResult, Stove::PCSDK::IAP::StovePCPurchaseResult purchaseResult);
@ -269,7 +268,7 @@ void FetchProductsCallback::operator()(Stove::PCSDK::CallbackResult callbackResu
item.SetItemId(std::atoi(itemId.c_str()));
char name[256];
int capacity = 256;
item.sub_6D5810(name, capacity, 0);
item.GetIdDisplayName(name, capacity, 0);
item.SetName(name);
item.identified = 1;
if (product.GetPurchaseLimitCount() != 0 && product.GetSaleBeginDate() != 0 && product.GetSaleEndDate() != 0) {
@ -393,7 +392,7 @@ void CategoryProductsCallback::operator()(Stove::PCSDK::CallbackResult callbackR
item.SetItemId(std::atoi(itemId.c_str()));
char name[256];
int capacity = 256;
item.sub_6D5810(name, capacity, 0);
item.GetIdDisplayName(name, capacity, 0);
item.SetName(name);
item.identified = 1;
if (list == 8) {

View file

@ -227,8 +227,8 @@ public:
void SetUnknown02C8(int value);
void SetUnknown0260(int value);
void ApplyPendingUnknown0408();
void sub_CC40D0();
void sub_CAA4D0();
void ApplyNatureProtection();
void UpdateMaxLevelAura();
void SetActorJob(int job);
void RenderMercenary(const float* matrix, int job);
void ProcessBodyState();

View file

@ -3172,7 +3172,7 @@ void CPlayer::ReapplySkillEffects() {
g_weatherEffect.StopDarken();
this->unknown_0210 = static_cast<std::uint16_t>(g_session.m_level);
this->sub_CAA4D0();
this->UpdateMaxLevelAura();
CTetraBallEffect* tetraBall;
for (int id = 0x4EE; id <= 0x4F1; ++id) {

View file

@ -2402,7 +2402,7 @@ void CGameActor::LaunchAttackProjectile(int target, float scale) {
case 0x57F8:
case 0x5800:
case 0x5812:
sub_CDBC30(&this->render.position, target, scale, this->GetEffectiveJob(-1));
LaunchBulletSpriteEffect(&this->render.position, target, scale, this->GetEffectiveJob(-1));
return;
default:
return;
@ -4346,7 +4346,7 @@ __declspec(noinline) bool __stdcall IsTreeGroupThreeLocal(int job) {
// OFFSET: 0x00CAA4D0
// FUNCTION: fn_21017
void CGameActor::sub_CAA4D0() {
void CGameActor::UpdateMaxLevelAura() {
if (g_serviceOptions.Get(0x6b) != 0) {
return;
}
@ -4533,7 +4533,7 @@ void CGameActor::SetActorJob(int job) {
this->Slot21(slotJob);
this->ResetJobEffects();
this->sub_CAA4D0();
this->UpdateMaxLevelAura();
}
// OFFSET: 0x00CAAFD0
@ -4593,7 +4593,7 @@ void C3dGrannyGameActor::SpawnCorpseActor() {
// OFFSET: 0x00CC40D0
// FUNCTION: fn_21158
void CGameActor::sub_CC40D0() {
void CGameActor::ApplyNatureProtection() {
if (this->unknown_0404 == 3) {
return;
}
@ -4881,7 +4881,7 @@ void CGameActor::SetStatusStates(int bodyState, std::uint32_t stateFlags, int ef
}
this->RefreshGuildEmblemWindow();
if (this->unknown_02B4 != 0) {
this->sub_CAA4D0();
this->UpdateMaxLevelAura();
}
if (this->GetEffectiveJob(-1) == 45) {
this->LaunchEffect(321, vector3d{0.0f, 0.0f, 0.0f}, 0.0f);
@ -4932,7 +4932,7 @@ void CGameActor::SetStatusStates(int bodyState, std::uint32_t stateFlags, int ef
}
this->RefreshGuildEmblemWindow();
if (this->unknown_02B4 != 0) {
this->sub_CAA4D0();
this->UpdateMaxLevelAura();
}
}
}
@ -5025,7 +5025,7 @@ void CGameActor::SetStatusStates(int bodyState, std::uint32_t stateFlags, int ef
}
this->RefreshGuildEmblemWindow();
if (this->unknown_02B4 != 0) {
this->sub_CAA4D0();
this->UpdateMaxLevelAura();
}
}
}

View file

@ -284,7 +284,7 @@ public:
UIBitmapButton* CreateButton(int x, int y, int width, int height, int id, const char* format, bool hasDisabled);
void RefreshCurrentList();
__declspec(noinline) void ShowPack(int packId);
void sub_7C7E50();
void RefreshPackLists();
__declspec(noinline) void ResetLists();
int SetPeriod(int packId);
void SetTab(char tab);
@ -426,7 +426,7 @@ bool CCashEmotionAction_SelectedUnPurchasedPack::Execute(int packId, int) {
listWnd = static_cast<UICashEmotionListWnd*>(g_windowMgr.EnsureWindow(87));
}
const unsigned int now = g_cashEmotionMgr->sub_59FC50();
const unsigned int now = g_cashEmotionMgr->GetServerTime();
if (g_cashEmotionMgr->IsPackAvailable(now, packId)) {
if (listWnd) {
listWnd->ShowPack(packId);
@ -509,9 +509,9 @@ CCashEmotionMgr::~CCashEmotionMgr() {
this->m_action = nullptr;
}
g_timeScheduler->sub_BA95F0(5);
g_timeScheduler->sub_BA95F0(6);
g_timeScheduler->sub_BA95F0(7);
g_timeScheduler->RemoveSchedulesByKey(5);
g_timeScheduler->RemoveSchedulesByKey(6);
g_timeScheduler->RemoveSchedulesByKey(7);
}
// OFFSET: 0x00598C70
@ -1228,7 +1228,7 @@ bool CCashEmotionMgr::IsOwnedPack(int packId) {
// OFFSET: 0x0059C5A0
// FUNCTION: fn_02977
bool CCashEmotionMgr::sub_59C5A0() {
bool CCashEmotionMgr::RemoveExpiredPacks() {
auto* listWnd = g_cashEmotionListWnd;
bool expired = false;
const __time32_t now = _time32(nullptr) - this->unknown_01D0 - this->unknown_01CC;
@ -1273,7 +1273,7 @@ void CCashEmotionMgr::RemoveOwnedPack(int packId, bool refresh, bool clearExpiry
if (refresh) {
if (auto* listWnd = g_cashEmotionListWnd) {
listWnd->sub_7C7E50();
listWnd->RefreshPackLists();
}
}
@ -1349,7 +1349,7 @@ CashEmotionPackRefresh CCashEmotionMgr::RefreshUnownedPacks() {
// OFFSET: 0x0059CDE0
// FUNCTION: fn_02981
void CCashEmotionMgr::sub_59CDE0(int param) {
void CCashEmotionMgr::SetServerTime(int param) {
this->unknown_01D0 = _time32(nullptr) - param;
}
@ -1413,7 +1413,7 @@ void CCashEmotionMgr::AcquirePack(int packId, unsigned int expiry) {
// OFFSET: 0x0059D2C0
// FUNCTION: fn_02986
bool CCashEmotionMgr::sub_59D2C0() {
bool CCashEmotionMgr::UpdatePurchasedPackExpiry() {
auto* listWnd = g_cashEmotionListWnd;
if (!listWnd) {
return false;
@ -1439,13 +1439,13 @@ bool CCashEmotionMgr::sub_59D2C0() {
it = this->m_expiry.erase(it);
}
listWnd->sub_7C7E50();
listWnd->RefreshPackLists();
return this->m_expiry.size() != 0;
}
// OFFSET: 0x0059FC50
// FUNCTION: fn_03031
int CCashEmotionMgr::sub_59FC50() {
int CCashEmotionMgr::GetServerTime() {
return _time32(nullptr) - this->unknown_01D0 - this->unknown_01CC;
}
@ -2328,7 +2328,7 @@ void UICashEmotionListWnd::ShowPack(int packId) {
// OFFSET: 0x007C7E50
// FUNCTION: fn_09413
void UICashEmotionListWnd::sub_7C7E50() {
void UICashEmotionListWnd::RefreshPackLists() {
if (this->m_purchaseList) {
this->m_purchaseList->Refresh(this->m_tab == 2 && this->m_searchEdit ? this->m_searchEdit->Text() : nullptr);
}
@ -2385,7 +2385,7 @@ int UICashEmotionListWnd::SetPeriod(int packId) {
// OFFSET: 0x007C80C0
// FUNCTION: fn_09416
void UICashEmotionListWnd::RestartExpirySchedule() {
g_timeScheduler->sub_BA95F0(7);
g_timeScheduler->RemoveSchedulesByKey(7);
if (g_cashEmotionMgr->m_expiry.size() != 0) {
const std::uint64_t now = _Xtime_get_ticks();
g_timeScheduler->AddSchedule(new CEmotionPurchaseUseableTimeUISchedule(now, 30000, 1));
@ -3180,7 +3180,7 @@ void UICashEmotionPack_Purchase::ShowExpiry(__time32_t expiry) {
return;
}
const unsigned int remaining = expiry - g_cashEmotionMgr->sub_59FC50();
const unsigned int remaining = expiry - g_cashEmotionMgr->GetServerTime();
if (remaining < 61) {
this->m_titleText->SetTextFitted(g_simpleStringMgr->GetString("EMSG_PERIOD_OF_LAST_TIME"));
} else {

View file

@ -165,13 +165,13 @@ public:
bool IsOwnedPack(int packId);
void RemoveOwnedPack(int packId, bool refresh, bool clearExpiry);
CashEmotionPackRefresh RefreshUnownedPacks();
void sub_59CDE0(int param);
void SetServerTime(int param);
void SetServerTimeZone(short serverBias);
bool sub_59C5A0();
bool sub_59D2C0();
bool RemoveExpiredPacks();
bool UpdatePurchasedPackExpiry();
void ShowErrorMessage(const char* key, int value);
void Unknown59D040(int argument1, int argument2);
__declspec(noinline) int sub_59FC50();
__declspec(noinline) int GetServerTime();
// INLINED
int BasePackId() const {
return this->unknown_000C;

View file

@ -291,7 +291,7 @@ void CGameMode::ReceiveItem1738Add(const unsigned char* data) {
// OFFSET: 0x00D1F770
// FUNCTION: fn_21641
void sub_D1F770(const unsigned char* data) {
void ReceiveItemSlot(const unsigned char* data) {
const ItemAddSlotPacket* packet = reinterpret_cast<const ItemAddSlotPacket*>(data);
if (packet->slot < 0) {
g_modeMgr.gameMode->SendMsg(0x35, 0, 0, 0, 0);
@ -317,7 +317,7 @@ void sub_D1F770(const unsigned char* data) {
// OFFSET: 0x00D1F970
// FUNCTION: fn_21642
void sub_D1F970(const unsigned char* data) {
void ReceiveItemSlotOptions(const unsigned char* data) {
const ItemAddSlotOptionsPacket* packet = reinterpret_cast<const ItemAddSlotOptionsPacket*>(data);
if (packet->slot < 0) {
g_modeMgr.gameMode->SendMsg(0x35, 0, 0, 0, 0);
@ -369,7 +369,7 @@ void sub_D1F970(const unsigned char* data) {
// OFFSET: 0x00D1FBA0
// FUNCTION: fn_21643
void sub_D1FBA0(const unsigned char* data) {
void ReceiveFriendAddResult(const unsigned char* data) {
const FriendNoticePacket* packet = reinterpret_cast<const FriendNoticePacket*>(data);
char name[25];
std::memcpy(name, packet->name, 24);

View file

@ -1,8 +1,8 @@
#ifndef RAGNAROK_SOURCE_CONTENTS_CLIENTITEMLISTS_H
#define RAGNAROK_SOURCE_CONTENTS_CLIENTITEMLISTS_H
void sub_D1F770(const unsigned char* data);
void sub_D1F970(const unsigned char* data);
void sub_D1FBA0(const unsigned char* data);
void ReceiveItemSlot(const unsigned char* data);
void ReceiveItemSlotOptions(const unsigned char* data);
void ReceiveFriendAddResult(const unsigned char* data);
#endif

View file

@ -984,11 +984,11 @@ void CSession::SetPetAutoFeed(bool enabled) {
// OFFSET: 0x00E489C0
// FUNCTION: fn_24224
void __stdcall sub_E489C0(bool enabled) {
void __stdcall SetPetInfoAlert(bool enabled) {
std::string notice = LookupMessage(enabled ? 4357 : 4379);
g_windowMgr.SendNotice(1, reinterpret_cast<std::intptr_t>(notice.c_str()), 0x64FFFF, 0, 0, 0);
g_serviceOptions.Set(0x128, enabled);
g_windowMgr.sub_AAB070(0x128);
g_windowMgr.RefreshGameSettingOption(0x128);
}
// OFFSET: 0x00E48B00

View file

@ -6,7 +6,7 @@
extern bool g_petAutoFeed;
void RequestBasicInfoRefresh();
void __stdcall sub_E489C0(bool enabled);
void __stdcall SetPetInfoAlert(bool enabled);
void AppendBytes(std::vector<unsigned char>& output, const std::vector<unsigned char>& bytes);
#endif

View file

@ -42,7 +42,7 @@ public:
bool ReadOptionTable();
void ResetToDefaults();
void ToggleOption(int id);
void sub_6C0C40(int id, unsigned char value, bool notify);
void SetOption(int id, unsigned char value, bool notify);
void ApplyScriptOption(int id, const char* key);
bool RunFunction(int id);
std::optional<GameSettingsOption*> FindOption(int id);

View file

@ -79,7 +79,7 @@ public:
bool ReadOptionTable();
void ResetToDefaults();
void ToggleOption(int id);
void sub_6C0C40(int id, unsigned char value, bool notify);
void SetOption(int id, unsigned char value, bool notify);
void ApplyScriptOption(int id, const char* key);
bool RunFunction(int id);
std::optional<GameSettingsOption*> FindOption(int id);
@ -417,7 +417,7 @@ __declspec(noinline) void ApplyServiceOption(int id, unsigned char value, bool n
// OFFSET: 0x006C48C0
// FUNCTION: fn_45461
void GreetFriends() {
g_session.sub_DE3D90(nullptr);
g_session.HiFriends(nullptr);
g_windowMgr.SendNotice(1, reinterpret_cast<std::intptr_t>("[ To Friends ] : (Hi) *^_^*"), 0x1EFFFF, 0, 0, 0);
}
@ -438,7 +438,7 @@ CGameSettingsMgr::~CGameSettingsMgr() {
// OFFSET: 0x006C0C40
// FUNCTION: fn_06312
void GameSettings::sub_6C0C40(int id, unsigned char value, bool notify) {
void GameSettings::SetOption(int id, unsigned char value, bool notify) {
for (const GameSettingsOption& option : this->options) {
if (option.id != id) {
continue;
@ -683,7 +683,7 @@ bool GameSettings::ReadOptionTable() {
void GameSettings::ResetToDefaults() {
for (const GameSettingsOption& option : this->options) {
if (option.type == 0) {
this->sub_6C0C40(option.id, option.defaultValue, true);
this->SetOption(option.id, option.defaultValue, true);
}
}
}
@ -698,8 +698,8 @@ void GameSettings::ToggleOption(int id) {
if (option.type == 0) {
const unsigned char current = g_serviceOptions.Get(id);
this->sub_6C0C40(id, current == 0, true);
g_windowMgr.sub_AAB070(id);
this->SetOption(id, current == 0, true);
g_windowMgr.RefreshGameSettingOption(id);
} else if (option.type == 1) {
const auto entry = this->functions.find(id);
if (entry != this->functions.end() && entry->second) {
@ -1082,7 +1082,7 @@ void ApplyServiceOptionAskOnDisable(int id, unsigned char value, bool notify, in
if (!value &&
g_windowMgr.Confirm(LookupMessage(0x1104), 2, true, false, 0, "Message", 0x118, 0x78, 0) == 0xBC) {
g_serviceOptions.Set(0x128, 1);
g_windowMgr.sub_AAB070(0x128);
g_windowMgr.RefreshGameSettingOption(0x128);
return;
}

View file

@ -575,14 +575,14 @@ bool CEZ2STREffectMgr::Load() {
{
const auto* data = static_cast<const unsigned char*>(file.GetData());
std::vector<unsigned char> buffer(data, data + file.GetSize());
failed = !loader.sub_4F3C70(buffer, true);
failed = !loader.Load(buffer, true);
}
if (failed) {
return false;
}
std::map<std::string, EZ2STREffectRecord> records;
if (!loader.sub_50C2A0(&records)) {
if (!loader.GetEZ2STREffect(&records)) {
return false;
}

View file

@ -110,7 +110,7 @@ const std::vector<const char*>& ITEM_INFO::Description() const {
// OFFSET: 0x006D5810
// FUNCTION: fn_06578
int ITEM_INFO::sub_6D5810(char* output, int& capacity, unsigned char consume) const {
int ITEM_INFO::GetIdDisplayName(char* output, int& capacity, unsigned char consume) const {
const char* name = FindItemDescription(std::atoi(this->itemId.c_str()), g_itemDescriptions).identifiedName;
const int error = strncpy_s(output, capacity, name ? name : " ", _TRUNCATE);

View file

@ -90,7 +90,7 @@ struct alignas(8) ITEM_INFO {
bool IsElementalStone() const;
bool IsAboveItemId600() const;
int Refine(char* output, int& capacity, unsigned char consume) const;
int sub_6D5810(char* output, int& capacity, unsigned char consume) const;
int GetIdDisplayName(char* output, int& capacity, unsigned char consume) const;
const std::vector<const char*>& Description() const;
std::vector<unsigned char> Serialize() const;
std::uint32_t Deserialize(const std::vector<unsigned char>& data);

File diff suppressed because it is too large Load diff

View file

@ -1952,7 +1952,7 @@ int UIMessengerGroupWnd::SendMsg(UIWindow* sender, int message, std::intptr_t a,
case 0x3D: {
MessengerMember target = this->MemberAtIndex(this->selected);
if (target.valid) {
g_windowMgr.sub_A8C4B0(target.accountId);
g_windowMgr.CloseMiniPartyWindow(target.accountId);
}
return 0;
}

View file

@ -310,8 +310,8 @@ public:
int NodeCount() const;
void SetViewIcon(int icon);
bool SetViewMode(int mode);
bool sub_B995D0(std::string name, int type, bool flag);
bool sub_B99030(std::string name, int type, unsigned char mode, bool flag, int x, int y, int id);
bool SearchNavigation(std::string name, int type, bool flag);
bool StartNavigation(std::string name, int type, unsigned char mode, bool flag, int x, int y, int id);
void BuildGridLabels();
bool LoadScript(LuaScript* script);
bool BuildRoute(int startX, int startY, int destX, int destY, bool collectCells);

View file

@ -598,7 +598,7 @@ static_assert(sizeof(NavigationRouteRecord) == 0x36);
// OFFSET: 0x00B99030
// FUNCTION: fn_19611
bool CNavigationManager::sub_B99030(std::string name, int type, unsigned char mode, bool flag, int x, int y, int id) {
bool CNavigationManager::StartNavigation(std::string name, int type, unsigned char mode, bool flag, int x, int y, int id) {
if (static_cast<unsigned int>(type) > 4 || name.size() == 0) {
return false;
}
@ -719,7 +719,7 @@ bool CNavigationManager::sub_B99030(std::string name, int type, unsigned char mo
// OFFSET: 0x00B995D0
// FUNCTION: fn_19612
bool CNavigationManager::sub_B995D0(std::string name, int type, bool flag) {
bool CNavigationManager::SearchNavigation(std::string name, int type, bool flag) {
if (static_cast<unsigned int>(type) <= 4) {
this->unknown_1264 = name;
this->unknown_1248 = flag;

View file

@ -631,7 +631,7 @@ int CRenewQuestMgr::L_AddQuestIconTooltip(lua_State* state) {
// OFFSET: 0x0067B620
// FUNCTION: fn_05457
void CRenewQuestMgr::sub_67B620(unsigned int questId) {
void CRenewQuestMgr::ShowOngoingQuestInfo(unsigned int questId) {
if (auto* window = static_cast<CUIOngoingQuestInfo*>(g_windowMgr.EnsureWindow(0x2719))) {
window->SetQuest(questId);
}
@ -639,30 +639,30 @@ void CRenewQuestMgr::sub_67B620(unsigned int questId) {
// OFFSET: 0x0067B650
// FUNCTION: fn_05458
void CRenewQuestMgr::sub_67B650(unsigned int questId) {
void CRenewQuestMgr::ShowQuestInfo(unsigned int questId) {
if (auto* window = static_cast<CUIRenewQuestUI*>(g_windowMgr.EnsureWindow(0x2718))) {
window->sub_A67290(0xF);
window->sub_A66FF0(questId);
window->UpdateQuestLists(0xF);
window->SelectQuest(questId);
}
}
// OFFSET: 0x0067B690
// FUNCTION: fn_05459
void CRenewQuestMgr::sub_67B690() {
void CRenewQuestMgr::UpdateOngoingQuestInfo() {
if (auto* window = static_cast<CUIOngoingQuestInfo*>(g_windowMgr.LookupWindow(0x2719))) {
window->sub_A55B70();
window->UpdateHuntInfo();
}
}
// OFFSET: 0x0067B6B0
// FUNCTION: fn_05460
void CRenewQuestMgr::sub_67B6B0() {
void CRenewQuestMgr::UpdateQuestWindows() {
if (g_windowMgr.window_0428 != nullptr) {
g_windowMgr.window_0428->Invalidate();
}
if (auto* window = static_cast<CUIRenewQuestUI*>(g_windowMgr.LookupWindow(0x2718))) {
window->sub_A67290(0xD);
window->UpdateQuestLists(0xD);
}
}
@ -782,7 +782,7 @@ void CRenewQuestMgr::ReadOngoingQuests(const char* buffer, unsigned int) {
}
if (auto* window = static_cast<CUIRenewQuestUI*>(g_windowMgr.LookupWindow(0x2718))) {
window->sub_A67290(0xD);
window->UpdateQuestLists(0xD);
}
}

View file

@ -121,10 +121,10 @@ public:
void SetParameter(int key, int value);
void SaveOngoingSimpleViewList();
void SaveRecommendedActiveList();
void sub_67B620(unsigned int questId);
void sub_67B650(unsigned int questId);
void sub_67B690();
void sub_67B6B0();
void ShowOngoingQuestInfo(unsigned int questId);
void ShowQuestInfo(unsigned int questId);
void UpdateOngoingQuestInfo();
void UpdateQuestWindows();
void SetOngoingQuest(unsigned int id, const RenewQuestOngoingInfo& info);
};

View file

@ -14,7 +14,7 @@
// OFFSET: 0x0050AE30
// FUNCTION: fn_00894
bool JsonCppLoader::sub_50AE30(std::map<int, ReputeGroupRecord>* out) {
bool JsonCppLoader::GetReputeGroupData(std::map<int, ReputeGroupRecord>* out) {
if (!this->loaded) {
this->Fail("초기화가 되어야 합니다.");
return false;
@ -74,7 +74,7 @@ bool JsonCppLoader::sub_50AE30(std::map<int, ReputeGroupRecord>* out) {
// OFFSET: 0x0050B830
// FUNCTION: fn_00895
bool JsonCppLoader::sub_50B830(std::map<int, ReputeInfoRecord>* out) {
bool JsonCppLoader::GetReputeInfoData(std::map<int, ReputeInfoRecord>* out) {
if (!this->loaded) {
this->Fail("초기화가 되어야 합니다.");
return false;
@ -117,7 +117,7 @@ bool JsonCppLoader::sub_50B830(std::map<int, ReputeInfoRecord>* out) {
// OFFSET: 0x0060DC70
// FUNCTION: fn_04294
bool CReputeMgr::sub_60DC70(std::map<std::uint64_t, ReputeGroup>& groups) {
bool CReputeMgr::LoadReputeGroupData(std::map<std::uint64_t, ReputeGroup>& groups) {
std::string path = "ContentData\\Repute\\ReputeGroupData.bson";
CFile file;
if (!file.Open(path.c_str(), 0, true, false)) {
@ -128,12 +128,12 @@ bool CReputeMgr::sub_60DC70(std::map<std::uint64_t, ReputeGroup>& groups) {
std::vector<unsigned char> buffer(data, data + file.GetSize());
JsonCppLoader loader;
if (!loader.sub_4F3C70(buffer, true)) {
if (!loader.Load(buffer, true)) {
return false;
}
std::map<int, ReputeGroupRecord> records;
if (!loader.sub_50AE30(&records)) {
if (!loader.GetReputeGroupData(&records)) {
return false;
}
@ -146,7 +146,7 @@ bool CReputeMgr::sub_60DC70(std::map<std::uint64_t, ReputeGroup>& groups) {
// OFFSET: 0x0060E090
// FUNCTION: fn_04295
bool CReputeMgr::sub_60E090(std::map<std::uint64_t, ReputeInfo>& infos) {
bool CReputeMgr::LoadReputeInfoData(std::map<std::uint64_t, ReputeInfo>& infos) {
std::string path = "ContentData\\Repute\\ReputeInfoData.bson";
CFile file;
if (!file.Open(path.c_str(), 0, true, false)) {
@ -157,12 +157,12 @@ bool CReputeMgr::sub_60E090(std::map<std::uint64_t, ReputeInfo>& infos) {
std::vector<unsigned char> buffer(data, data + file.GetSize());
JsonCppLoader loader;
if (!loader.sub_4F3C70(buffer, true)) {
if (!loader.Load(buffer, true)) {
return false;
}
std::map<int, ReputeInfoRecord> records;
if (!loader.sub_50B830(&records)) {
if (!loader.GetReputeInfoData(&records)) {
return false;
}
@ -235,8 +235,8 @@ std::vector<const ReputeInfo*> CReputeMgr::GetAllReputes() const {
// OFFSET: 0x0060DBF0
// FUNCTION: fn_04293
bool CReputeMgr::sub_60DBF0() {
if (this->sub_60E090(this->m_infos) && this->sub_60DC70(this->m_groups)) {
bool CReputeMgr::Load() {
if (this->LoadReputeInfoData(this->m_infos) && this->LoadReputeGroupData(this->m_groups)) {
return true;
}

View file

@ -40,9 +40,9 @@ public:
std::vector<std::string> GetGroupNames() const;
std::vector<const ReputeInfo*> GetGroupReputes(const std::string& groupName) const;
std::vector<const ReputeInfo*> GetAllReputes() const;
bool sub_60DBF0();
bool sub_60DC70(std::map<std::uint64_t, ReputeGroup>& groups);
bool sub_60E090(std::map<std::uint64_t, ReputeInfo>& infos);
bool Load();
bool LoadReputeGroupData(std::map<std::uint64_t, ReputeGroup>& groups);
bool LoadReputeInfoData(std::map<std::uint64_t, ReputeInfo>& infos);
void OpenRepute(std::uint64_t groupId, std::uint64_t reputeId);
void SetPoint(std::uint64_t id, std::int64_t point);
std::vector<const ReputeInfo*> FindReputes(const std::string& keyword) const;

View file

@ -5,7 +5,7 @@
class UICashEmotionListWnd {
public:
void sub_7C7E50();
void RefreshPackLists();
void RefreshSelection();
};
@ -22,14 +22,14 @@ CEmotionPurchaseExpireSchedule::CEmotionPurchaseExpireSchedule(const std::uint64
// FUNCTION: fn_04717
void CEmotionPurchaseExpireSchedule::Process(const std::uint64_t& now) {
CSchedule::Process(now);
if (g_cashEmotionMgr->sub_59C5A0()) {
if (g_cashEmotionMgr->RemoveExpiredPacks()) {
if (g_cashEmotionListWnd) {
g_cashEmotionListWnd->sub_7C7E50();
g_cashEmotionListWnd->RefreshPackLists();
}
}
int earliest = g_cashEmotionMgr->GetEarliestExpiry();
if (earliest != 0x7FFFFFFF) {
int current = g_cashEmotionMgr->sub_59FC50();
int current = g_cashEmotionMgr->GetServerTime();
if (current < earliest) {
this->interval = (static_cast<std::int64_t>(earliest) * 10000000i64 - static_cast<std::int64_t>(current) * 10000000i64) / 10000i64;
return;
@ -50,7 +50,7 @@ CEmotionPurchaseUseableTimeUISchedule::CEmotionPurchaseUseableTimeUISchedule(
// FUNCTION: fn_04720
void CEmotionPurchaseUseableTimeUISchedule::Process(const std::uint64_t& now) {
CSchedule::Process(now);
if (!g_cashEmotionMgr->sub_59D2C0()) {
if (!g_cashEmotionMgr->UpdatePurchasedPackExpiry()) {
this->active = false;
}
}
@ -67,11 +67,11 @@ void CEmotionSaleExpireSchedule::Process(const std::uint64_t& now) {
CSchedule::Process(now);
CashEmotionPackRefresh refresh = g_cashEmotionMgr->RefreshUnownedPacks();
if (refresh.changed && g_cashEmotionListWnd) {
g_cashEmotionListWnd->sub_7C7E50();
g_cashEmotionListWnd->RefreshPackLists();
g_cashEmotionListWnd->RefreshSelection();
}
if (refresh.nextTime != 0x7FFFFFFF) {
int current = g_cashEmotionMgr->sub_59FC50();
int current = g_cashEmotionMgr->GetServerTime();
if (current < refresh.nextTime) {
this->interval = (static_cast<std::int64_t>(refresh.nextTime) * 10000000i64 - static_cast<std::int64_t>(current) * 10000000i64) / 10000i64;
return;

View file

@ -145,7 +145,7 @@ void CTimeScheduler::Process() {
// OFFSET: 0x00BA95F0
// FUNCTION: fn_19739
void CTimeScheduler::sub_BA95F0(int value) {
void CTimeScheduler::RemoveSchedulesByKey(int value) {
for (CSchedule* schedule : this->m_schedules) {
if (schedule->unknown_002C == value) {
schedule->active = false;

View file

@ -27,7 +27,7 @@ public:
CSchedule* CreateSchedule(const std::int64_t& interval, int scheduleType);
CSchedule* AddSchedule(CSchedule* schedule);
void Process();
void sub_BA95F0(int value);
void RemoveSchedulesByKey(int value);
};
#if defined(_WIN32) && !defined(_WIN64)

View file

@ -55,7 +55,7 @@ void DestroySignBoardMgr() {
// OFFSET: 0x0081FE50
// FUNCTION: fn_10246
void __fastcall sub_81FE50(CSignBoardMgr* manager) {
void __fastcall InitializeSignBoardManager(CSignBoardMgr* manager) {
manager->LoadList();
manager->Initialize();
}

View file

@ -29,7 +29,7 @@ char g_decodedPlayerName[64];
// OFFSET: 0x00E198F0
// FUNCTION: fn_23844
void sub_E198F0() {
void InitMapTypeInfoTable() {
CFile file;
if (!file.Open("MapInfoTable.scp", 0, true, false)) {
if (g_serviceType == 0) {

View file

@ -73,9 +73,9 @@ public:
class CSkillAction_DamageWereRaptorForm : public CSkillAction_AnimalForm, public CSkillAction_Direction {
public:
void sub_5A4760(int sourceActor, CGameActor* target);
__declspec(noinline) void sub_5A4930(int level, CGameActor* source);
__declspec(noinline) void sub_5A4B00(int level, CGameActor* source);
void SpawnAttack00Effect(int sourceActor, CGameActor* target);
__declspec(noinline) void SpawnAttack01Effect(int level, CGameActor* source);
__declspec(noinline) void SpawnAttack02Effect(int level, CGameActor* source);
void Slot16(int level, CGameActor* source, CGameActor* target) override;
bool Slot17(CGameActor* actor) override;
void Slot18(CGameActor* actor) override;
@ -866,7 +866,7 @@ void CSkillAction_AT_PINION_SHOT::Slot11(int level, CGameActor* source, CGameAct
// OFFSET: 0x005A7180
// FUNCTION: fn_03201
void CSkillAction_AT_PINION_SHOT::Slot15(int level, CGameActor* source, CGameActor* target) {
this->sub_5A4930(level, source);
this->SpawnAttack01Effect(level, source);
}
// OFFSET: 0x005A71A0
@ -1849,7 +1849,7 @@ void CEfstAction_INSANE3::Slot00(int efstId, int value, int argument3, int argum
// OFFSET: 0x005AF030
// FUNCTION: fn_03285
bool __stdcall sub_5AF030(int) {
bool __stdcall KeepSkillAttackMotion(int) {
return false;
}
@ -1901,130 +1901,130 @@ void CSkillAction_AT_TEMPEST_FLAP::Slot08(int level, CGameActor* source) {
// OFFSET: 0x005AF000
// FUNCTION: fn_03282
bool sub_5AF000() {
bool SkillActionIsSupport() {
return false;
}
// OFFSET: 0x005AF010
// FUNCTION: fn_03283
int sub_5AF010() {
int GetSkillCastMotion() {
return 8;
}
// OFFSET: 0x005AF020
// FUNCTION: fn_03284
int sub_5AF020() {
int GetSkillAttackMotion() {
return 7;
}
// OFFSET: 0x005AF040
// FUNCTION: fn_03286
bool sub_5AF040() {
bool IsSkillWithoutMotion() {
return false;
}
// OFFSET: 0x005AF050
// FUNCTION: fn_03287
bool sub_5AF050() {
bool KeepSkillAttackSpeed() {
return false;
}
// OFFSET: 0x005AF060
// FUNCTION: fn_03288
bool sub_5AF060() {
bool SuppressSupportSkillArrow() {
return false;
}
// OFFSET: 0x005AF070
// FUNCTION: fn_03289
bool sub_5AF070() {
bool SuppressAttackSkillArrow() {
return false;
}
// OFFSET: 0x005AF080
// FUNCTION: fn_03290
void __stdcall sub_5AF080(int a, int b) {
void __stdcall OnSkillCast(int a, int b) {
}
// OFFSET: 0x005AF090
// FUNCTION: fn_03291
void __stdcall sub_5AF090(int a, int b, int c) {
void __stdcall OnTargetSkillCast(int a, int b, int c) {
}
// OFFSET: 0x005AF0A0
// FUNCTION: fn_03292
void __stdcall sub_5AF0A0(int a, int b, int c, int d, int e) {
void __stdcall OnGroundSkillCast(int a, int b, int c, int d, int e) {
}
// OFFSET: 0x005AF0B0
// FUNCTION: fn_03293
void __stdcall sub_5AF0B0(int a, int b, int c) {
void __stdcall OnSkillEffect(int a, int b, int c) {
}
// OFFSET: 0x005AF0C0
// FUNCTION: fn_03294
void __stdcall sub_5AF0C0(vector3d a, int b, int c) {
void __stdcall OnGroundSkillEffect(vector3d a, int b, int c) {
}
// OFFSET: 0x005AF0D0
// FUNCTION: fn_03295
bool sub_5AF0D0() {
bool UseGroundSkillLastFrame() {
return false;
}
// OFFSET: 0x005AF0E0
// FUNCTION: fn_03296
int sub_5AF0E0() {
int GetSkillScopeType() {
return 0;
}
// OFFSET: 0x005AF0F0
// FUNCTION: fn_03297
void __stdcall sub_5AF0F0(int a, int b, int c) {
void __stdcall OnSkillHit(int a, int b, int c) {
}
// OFFSET: 0x005AF100
// FUNCTION: fn_03298
void __stdcall sub_5AF100(int a, int b, int c) {
void __stdcall OnSkillDamage(int a, int b, int c) {
}
// OFFSET: 0x005AF110
// FUNCTION: fn_03299
void __stdcall sub_5AF110(int a, int b, int c, int d, int e, int f) {
void __stdcall OnEfstBegin(int a, int b, int c, int d, int e, int f) {
}
// OFFSET: 0x005AF120
// FUNCTION: fn_03300
void __stdcall sub_5AF120(int a, int b, int c, int d, int e) {
void __stdcall OnEfstEnd(int a, int b, int c, int d, int e) {
}
// OFFSET: 0x005AF130
// FUNCTION: fn_03301
void __stdcall sub_5AF130(int a, int b, int c, int d, int e) {
void __stdcall OnEfstUpdate(int a, int b, int c, int d, int e) {
}
// OFFSET: 0x005AF140
// FUNCTION: fn_03302
void __stdcall sub_5AF140(std::uint32_t* out) {
void __stdcall GetEfstBeginMessage(std::uint32_t* out) {
out[0] = 0;
out[1] = 0xFFFF00;
}
// OFFSET: 0x005AF160
// FUNCTION: fn_03303
void __stdcall sub_5AF160(std::uint32_t* out) {
void __stdcall GetEfstEndMessage(std::uint32_t* out) {
out[0] = 0;
out[1] = 0xFF;
}
// OFFSET: 0x005AF180
// FUNCTION: fn_03304
void __stdcall sub_5AF180(int a, int b, int c) {
void __stdcall OnSkillObjectCreate(int a, int b, int c) {
}
// OFFSET: 0x005AF190
// FUNCTION: fn_03305
void __stdcall sub_5AF190(int a) {
void __stdcall OnSkillObjectRemove(int a) {
}
@ -2073,7 +2073,7 @@ const float g_featherOffsets[3] = {0.0f, 0.1f, -0.1f};
// OFFSET: 0x005A4760
// FUNCTION: fn_03152
void CSkillAction_DamageWereRaptorForm::sub_5A4760(int sourceActor, CGameActor* target) {
void CSkillAction_DamageWereRaptorForm::SpawnAttack00Effect(int sourceActor, CGameActor* target) {
CGameActor* source = reinterpret_cast<CGameActor*>(sourceActor);
if (source && target) {
const std::uint8_t bytes[] = {0x46, 0x75, 0x73, 0x0C, 0x60, 0xAE, 0xAC, 0x1F, 0x17, 0x01};
@ -2085,7 +2085,7 @@ void CSkillAction_DamageWereRaptorForm::sub_5A4760(int sourceActor, CGameActor*
// OFFSET: 0x005A4930
// FUNCTION: fn_03153
void CSkillAction_DamageWereRaptorForm::sub_5A4930(int sourceActor, CGameActor* target) {
void CSkillAction_DamageWereRaptorForm::SpawnAttack01Effect(int sourceActor, CGameActor* target) {
CGameActor* source = reinterpret_cast<CGameActor*>(sourceActor);
if (source && target) {
const std::uint8_t bytes[] = {0xD2, 0x13, 0xB7, 0x32, 0x9A, 0xF0, 0x6A, 0x27, 0x82, 0x67};
@ -2097,7 +2097,7 @@ void CSkillAction_DamageWereRaptorForm::sub_5A4930(int sourceActor, CGameActor*
// OFFSET: 0x005A4B00
// FUNCTION: fn_03154
void CSkillAction_DamageWereRaptorForm::sub_5A4B00(int sourceActor, CGameActor* target) {
void CSkillAction_DamageWereRaptorForm::SpawnAttack02Effect(int sourceActor, CGameActor* target) {
CGameActor* source = reinterpret_cast<CGameActor*>(sourceActor);
if (!target || !source) {
return;

View file

@ -68,7 +68,7 @@ public:
class CSkillAction_DamageWereRaptorForm : public CSkillAction_AnimalForm, public CSkillAction_Direction {
public:
void sub_5A4760(int sourceActor, CGameActor* target);
void SpawnAttack00Effect(int sourceActor, CGameActor* target);
void Slot16(int level, CGameActor* source, CGameActor* target) override;
bool Slot17(CGameActor* actor) override;
void Slot18(CGameActor* actor) override;
@ -745,7 +745,7 @@ int CEfstAction_NATURE_PROTECTION::Slot05(int efstId, int argument4) {
// FUNCTION: fn_04512
void CEfstAction_NATURE_PROTECTION::Slot00(int efstId, int value, int argument3, int argument4, CRenderObject* actor, bool argument6) {
if (actor) {
static_cast<CGameActor*>(actor)->sub_CC40D0();
static_cast<CGameActor*>(actor)->ApplyNatureProtection();
}
CEfstAction_BasicAction::Slot00(efstId, value, argument3, argument4, actor, argument6);
}
@ -1223,7 +1223,7 @@ void CSkillAction_DR_SHOOTING_FEATHER::Slot11(int level, CGameActor* source, CGa
// OFFSET: 0x00621830
// FUNCTION: fn_04496
void CSkillAction_DR_SHOOTING_FEATHER::Slot15(int level, CGameActor* source, CGameActor* target) {
this->sub_5A4760(level, source);
this->SpawnAttack00Effect(level, source);
}
// OFFSET: 0x0061FF40

View file

@ -68,8 +68,8 @@ class CSkillAction_Direction {
class CSkillAction_DamageWereRaptorForm : public CSkillAction_AnimalForm, public CSkillAction_Direction {
public:
void sub_5A4930(int level, CGameActor* source);
void sub_5A4B00(int level, CGameActor* source);
void SpawnAttack01Effect(int level, CGameActor* source);
void SpawnAttack02Effect(int level, CGameActor* source);
};
class CSkillAction_DamageWereWolfForm : public CSkillAction_AnimalForm {
@ -637,7 +637,7 @@ int CSkillAction_KR_FEATHER_SPRINKLE::Slot02() {
// OFFSET: 0x005B4240
// FUNCTION: fn_03370
void CSkillAction_KR_FEATHER_SPRINKLE::Slot15(int level, CGameActor* source, CGameActor* target) {
this->sub_5A4930(level, source);
this->SpawnAttack01Effect(level, source);
}
// OFFSET: 0x005B4260
@ -663,8 +663,8 @@ void CSkillAction_KR_SHARPEN_GUST::Slot08(int level, CGameActor* source) {
// OFFSET: 0x005B46D0
// FUNCTION: fn_03375
void CSkillAction_KR_SHARPEN_GUST::Slot15(int level, CGameActor* source, CGameActor* target) {
this->sub_5A4930(level, source);
this->sub_5A4B00(level, source);
this->SpawnAttack01Effect(level, source);
this->SpawnAttack02Effect(level, source);
}
// OFFSET: 0x005B4700
@ -776,7 +776,7 @@ void CSkillAction_KR_SHARPEN_HAIL::Slot11(int level, CGameActor* source, CGameAc
// OFFSET: 0x005B4F70
// FUNCTION: fn_03380
void CSkillAction_KR_SHARPEN_HAIL::Slot15(int level, CGameActor* source, CGameActor* target) {
this->sub_5A4930(level, source);
this->SpawnAttack01Effect(level, source);
}
// OFFSET: 0x005B4F90

View file

@ -56,7 +56,7 @@ const char* g_renewSetupSubKey = RenewSetupSubKey();
// OFFSET: 0x00E59030
// FUNCTION: fn_24366
int sub_E59030() {
int ReadSetup() {
HKEY key;
LSTATUS status = RegOpenKeyExA(HKEY_LOCAL_MACHINE, g_renewSetupSubKey, 0, KEY_QUERY_VALUE, &key);
RegCloseKey(key);

View file

@ -327,7 +327,7 @@ static int gl_25167 = 0;
// OFFSET: 0x006168F0
// FUNCTION: fn_04375
void CWorldViewMgr::sub_6168F0() {
void CWorldViewMgr::LoadTextures() {
const int width = g_renderer->viewport.width;
if (width > 640) {
if (width <= 800) {

View file

@ -99,7 +99,7 @@ public:
void Load(LuaScript& script);
bool ScaleToScreen();
void sub_6168F0();
void LoadTextures();
unsigned int FindWorld(int mapId);
void ResetSelection();
bool SelectField(const char* name);

View file

@ -56,7 +56,7 @@ std::string CreateUniqueFileName(const std::string& filename) {
// OFFSET: 0x0050C2A0
// FUNCTION: fn_00896
bool JsonCppLoader::sub_50C2A0(std::map<std::string, EZ2STREffectRecord>* out) {
bool JsonCppLoader::GetEZ2STREffect(std::map<std::string, EZ2STREffectRecord>* out) {
if (!this->loaded) {
this->Fail("초기화가 되어야 합니다.");
return false;

View file

@ -851,7 +851,7 @@ int UIMinimapZoomWnd::SendMsg(UIWindow* sender, int message, std::intptr_t argum
if (extension != std::string::npos) {
mapName = mapName.substr(0, extension);
}
g_navigationManager.sub_B99030(mapName.c_str(), 0, 5, true, town.x, town.y, 1002);
g_navigationManager.StartNavigation(mapName.c_str(), 0, 5, true, town.x, town.y, 1002);
}
return 0;
}
@ -986,7 +986,7 @@ void UINpcTextEditDialogWnd::Paint() {
}
this->m_tagCtrl->SetTaggedText(std::string(this->edit->Text()), this->edit->geometry.width);
this->m_tagCtrl->sub_8962C0();
this->m_tagCtrl->UpdateItemTags();
if (this->m_tagCtrl->unknown_011C == 0) {
delete this->m_tagCtrl;
this->m_tagCtrl = nullptr;
@ -2375,7 +2375,7 @@ void UINpcTextEditDialogWnd::InsertItemTag(const ITEM_INFO& item) {
}
this->edit->SetText(this->m_tagCtrl->AppendTag(item.DisplayName(0)).c_str());
this->edit->MoveCursorToEnd();
this->m_tagCtrl->sub_89CFE0(item, 0x12B8A4);
this->m_tagCtrl->AddItemTag(item, 0x12B8A4);
}
// OFFSET: 0x008DACF0
@ -2396,7 +2396,7 @@ void UINpcTextEditDialogWnd::InsertSkillTag(int tagId) {
return;
}
std::string tag = this->m_tagCtrl->sub_874A40(tagId, 0xD630A9);
std::string tag = this->m_tagCtrl->AddSkillTag(tagId, 0xD630A9);
{
auto* const tagCtrl = this->m_tagCtrl;
std::string text = this->edit->Text();
@ -4759,7 +4759,7 @@ void UIWhisperWnd::SaveChatLog() {
// OFFSET: 0x0090C350
// FUNCTION: fn_12443
int UISecondPasswordInputWnd::sub_90C350(unsigned int target) {
int UISecondPasswordInputWnd::FindKeypadDigit(unsigned int target) {
for (int i = 0; i < 10; ++i) {
if (this->m_digits[i] == target) {
return i;
@ -4770,7 +4770,7 @@ int UISecondPasswordInputWnd::sub_90C350(unsigned int target) {
// OFFSET: 0x0090C380
// FUNCTION: fn_12444
void UISecondPasswordInputWnd::sub_90C380() {
void UISecondPasswordInputWnd::DisableButtons() {
for (int i = 0; i < 11; ++i) {
UIButton* button = this->unknown_0124[i];
button->SetDisabled(1);
@ -10034,7 +10034,7 @@ void UIEquipWnd::Slot25(int x, int y) {
} else if (g_windowMgr.GetHoverWindow()->geometry.id == 493) {
reinterpret_cast<UIChatEditCtrl*>(ChatWindow()->m_chatEdit)->InsertItemLink(item);
} else if (g_windowMgr.GetHoverWindow()->geometry.id == 491) {
reinterpret_cast<UIRodexComposeWnd*>(g_windowMgr.unknown_0458)->sub_7FF710(item);
reinterpret_cast<UIRodexComposeWnd*>(g_windowMgr.unknown_0458)->InsertItemTag(item);
} else if (g_windowMgr.GetHoverWindow()->geometry.id == 494) {
static_cast<UIChatEditCtrl*>(g_windowMgr.GetHoverWindow())->InsertItemLink(item);
}
@ -10709,7 +10709,7 @@ int UISecondPasswordInputWnd::SendMsg(UIWindow* sender, int message, std::intptr
packet.accountId = g_session.m_passwordWndAccountId;
std::memcpy(packet.password, this->unknown_00D0, sizeof(packet.password));
GetRagConnection().Send(g_packetLengths.FixedLength(packet.packetType), &packet);
this->sub_90C380();
this->DisableButtons();
break;
}
g_windowMgr.Confirm(LookupMessage(1887), 0, true, false, 0, "Message", 280, 120, 0);
@ -10781,7 +10781,7 @@ int UISecondPasswordInputWnd::SendMsg(UIWindow* sender, int message, std::intptr
std::memcpy(packet.password, this->unknown_00D0, sizeof(packet.password));
std::memcpy(packet.newPassword, this->unknown_00E2, sizeof(packet.newPassword));
GetRagConnection().Send(g_packetLengths.FixedLength(packet.packetType), &packet);
this->sub_90C380();
this->DisableButtons();
} else {
g_windowMgr.Confirm(LookupMessage(1016), 0, true, false, 0, "Message", 280, 120, 0);
this->unknown_00F4 = 2;
@ -10843,13 +10843,13 @@ int UISecondPasswordInputWnd::SendMsg(UIWindow* sender, int message, std::intptr
switch (this->unknown_00F4) {
case 0:
case 1:
std::strcat(this->unknown_00D0, IntToString(this->sub_90C350(0), 0).c_str());
std::strcat(this->unknown_00D0, IntToString(this->FindKeypadDigit(0), 0).c_str());
break;
case 2:
std::strcat(this->unknown_00D9, IntToString(this->sub_90C350(0), 0).c_str());
std::strcat(this->unknown_00D9, IntToString(this->FindKeypadDigit(0), 0).c_str());
break;
case 3:
std::strcat(this->unknown_00E2, IntToString(this->sub_90C350(0), 0).c_str());
std::strcat(this->unknown_00E2, IntToString(this->FindKeypadDigit(0), 0).c_str());
break;
}
this->DrawTextAt(this->unknown_00F0 + 416, this->unknown_00F8, "*", 0, 0, 12, 0, 0, 0);
@ -10863,13 +10863,13 @@ int UISecondPasswordInputWnd::SendMsg(UIWindow* sender, int message, std::intptr
switch (this->unknown_00F4) {
case 0:
case 1:
std::strcat(this->unknown_00D0, IntToString(this->sub_90C350(1), 0).c_str());
std::strcat(this->unknown_00D0, IntToString(this->FindKeypadDigit(1), 0).c_str());
break;
case 2:
std::strcat(this->unknown_00D9, IntToString(this->sub_90C350(1), 0).c_str());
std::strcat(this->unknown_00D9, IntToString(this->FindKeypadDigit(1), 0).c_str());
break;
case 3:
std::strcat(this->unknown_00E2, IntToString(this->sub_90C350(1), 0).c_str());
std::strcat(this->unknown_00E2, IntToString(this->FindKeypadDigit(1), 0).c_str());
break;
}
this->DrawTextAt(this->unknown_00F0 + 416, this->unknown_00F8, "*", 0, 0, 12, 0, 0, 0);
@ -10883,13 +10883,13 @@ int UISecondPasswordInputWnd::SendMsg(UIWindow* sender, int message, std::intptr
switch (this->unknown_00F4) {
case 0:
case 1:
std::strcat(this->unknown_00D0, IntToString(this->sub_90C350(2), 0).c_str());
std::strcat(this->unknown_00D0, IntToString(this->FindKeypadDigit(2), 0).c_str());
break;
case 2:
std::strcat(this->unknown_00D9, IntToString(this->sub_90C350(2), 0).c_str());
std::strcat(this->unknown_00D9, IntToString(this->FindKeypadDigit(2), 0).c_str());
break;
case 3:
std::strcat(this->unknown_00E2, IntToString(this->sub_90C350(2), 0).c_str());
std::strcat(this->unknown_00E2, IntToString(this->FindKeypadDigit(2), 0).c_str());
break;
}
this->DrawTextAt(this->unknown_00F0 + 416, this->unknown_00F8, "*", 0, 0, 12, 0, 0, 0);
@ -10903,13 +10903,13 @@ int UISecondPasswordInputWnd::SendMsg(UIWindow* sender, int message, std::intptr
switch (this->unknown_00F4) {
case 0:
case 1:
std::strcat(this->unknown_00D0, IntToString(this->sub_90C350(3), 0).c_str());
std::strcat(this->unknown_00D0, IntToString(this->FindKeypadDigit(3), 0).c_str());
break;
case 2:
std::strcat(this->unknown_00D9, IntToString(this->sub_90C350(3), 0).c_str());
std::strcat(this->unknown_00D9, IntToString(this->FindKeypadDigit(3), 0).c_str());
break;
case 3:
std::strcat(this->unknown_00E2, IntToString(this->sub_90C350(3), 0).c_str());
std::strcat(this->unknown_00E2, IntToString(this->FindKeypadDigit(3), 0).c_str());
break;
}
this->DrawTextAt(this->unknown_00F0 + 416, this->unknown_00F8, "*", 0, 0, 12, 0, 0, 0);
@ -10923,13 +10923,13 @@ int UISecondPasswordInputWnd::SendMsg(UIWindow* sender, int message, std::intptr
switch (this->unknown_00F4) {
case 0:
case 1:
std::strcat(this->unknown_00D0, IntToString(this->sub_90C350(4), 0).c_str());
std::strcat(this->unknown_00D0, IntToString(this->FindKeypadDigit(4), 0).c_str());
break;
case 2:
std::strcat(this->unknown_00D9, IntToString(this->sub_90C350(4), 0).c_str());
std::strcat(this->unknown_00D9, IntToString(this->FindKeypadDigit(4), 0).c_str());
break;
case 3:
std::strcat(this->unknown_00E2, IntToString(this->sub_90C350(4), 0).c_str());
std::strcat(this->unknown_00E2, IntToString(this->FindKeypadDigit(4), 0).c_str());
break;
}
this->DrawTextAt(this->unknown_00F0 + 416, this->unknown_00F8, "*", 0, 0, 12, 0, 0, 0);
@ -10943,13 +10943,13 @@ int UISecondPasswordInputWnd::SendMsg(UIWindow* sender, int message, std::intptr
switch (this->unknown_00F4) {
case 0:
case 1:
std::strcat(this->unknown_00D0, IntToString(this->sub_90C350(5), 0).c_str());
std::strcat(this->unknown_00D0, IntToString(this->FindKeypadDigit(5), 0).c_str());
break;
case 2:
std::strcat(this->unknown_00D9, IntToString(this->sub_90C350(5), 0).c_str());
std::strcat(this->unknown_00D9, IntToString(this->FindKeypadDigit(5), 0).c_str());
break;
case 3:
std::strcat(this->unknown_00E2, IntToString(this->sub_90C350(5), 0).c_str());
std::strcat(this->unknown_00E2, IntToString(this->FindKeypadDigit(5), 0).c_str());
break;
}
this->DrawTextAt(this->unknown_00F0 + 416, this->unknown_00F8, "*", 0, 0, 12, 0, 0, 0);
@ -10963,13 +10963,13 @@ int UISecondPasswordInputWnd::SendMsg(UIWindow* sender, int message, std::intptr
switch (this->unknown_00F4) {
case 0:
case 1:
std::strcat(this->unknown_00D0, IntToString(this->sub_90C350(6), 0).c_str());
std::strcat(this->unknown_00D0, IntToString(this->FindKeypadDigit(6), 0).c_str());
break;
case 2:
std::strcat(this->unknown_00D9, IntToString(this->sub_90C350(6), 0).c_str());
std::strcat(this->unknown_00D9, IntToString(this->FindKeypadDigit(6), 0).c_str());
break;
case 3:
std::strcat(this->unknown_00E2, IntToString(this->sub_90C350(6), 0).c_str());
std::strcat(this->unknown_00E2, IntToString(this->FindKeypadDigit(6), 0).c_str());
break;
}
this->DrawTextAt(this->unknown_00F0 + 416, this->unknown_00F8, "*", 0, 0, 12, 0, 0, 0);
@ -10983,13 +10983,13 @@ int UISecondPasswordInputWnd::SendMsg(UIWindow* sender, int message, std::intptr
switch (this->unknown_00F4) {
case 0:
case 1:
std::strcat(this->unknown_00D0, IntToString(this->sub_90C350(7), 0).c_str());
std::strcat(this->unknown_00D0, IntToString(this->FindKeypadDigit(7), 0).c_str());
break;
case 2:
std::strcat(this->unknown_00D9, IntToString(this->sub_90C350(7), 0).c_str());
std::strcat(this->unknown_00D9, IntToString(this->FindKeypadDigit(7), 0).c_str());
break;
case 3:
std::strcat(this->unknown_00E2, IntToString(this->sub_90C350(7), 0).c_str());
std::strcat(this->unknown_00E2, IntToString(this->FindKeypadDigit(7), 0).c_str());
break;
}
this->DrawTextAt(this->unknown_00F0 + 416, this->unknown_00F8, "*", 0, 0, 12, 0, 0, 0);
@ -11003,13 +11003,13 @@ int UISecondPasswordInputWnd::SendMsg(UIWindow* sender, int message, std::intptr
switch (this->unknown_00F4) {
case 0:
case 1:
std::strcat(this->unknown_00D0, IntToString(this->sub_90C350(8), 0).c_str());
std::strcat(this->unknown_00D0, IntToString(this->FindKeypadDigit(8), 0).c_str());
break;
case 2:
std::strcat(this->unknown_00D9, IntToString(this->sub_90C350(8), 0).c_str());
std::strcat(this->unknown_00D9, IntToString(this->FindKeypadDigit(8), 0).c_str());
break;
case 3:
std::strcat(this->unknown_00E2, IntToString(this->sub_90C350(8), 0).c_str());
std::strcat(this->unknown_00E2, IntToString(this->FindKeypadDigit(8), 0).c_str());
break;
}
this->DrawTextAt(this->unknown_00F0 + 416, this->unknown_00F8, "*", 0, 0, 12, 0, 0, 0);
@ -11023,13 +11023,13 @@ int UISecondPasswordInputWnd::SendMsg(UIWindow* sender, int message, std::intptr
switch (this->unknown_00F4) {
case 0:
case 1:
std::strcat(this->unknown_00D0, IntToString(this->sub_90C350(9), 0).c_str());
std::strcat(this->unknown_00D0, IntToString(this->FindKeypadDigit(9), 0).c_str());
break;
case 2:
std::strcat(this->unknown_00D9, IntToString(this->sub_90C350(9), 0).c_str());
std::strcat(this->unknown_00D9, IntToString(this->FindKeypadDigit(9), 0).c_str());
break;
case 3:
std::strcat(this->unknown_00E2, IntToString(this->sub_90C350(9), 0).c_str());
std::strcat(this->unknown_00E2, IntToString(this->FindKeypadDigit(9), 0).c_str());
break;
}
this->DrawTextAt(this->unknown_00F0 + 416, this->unknown_00F8, "*", 0, 0, 12, 0, 0, 0);
@ -11083,7 +11083,7 @@ int UISecondPasswordInputWnd::SendMsg(UIWindow* sender, int message, std::intptr
packet.accountId = g_session.m_passwordWndAccountId;
std::memcpy(packet.password, this->unknown_00D0, sizeof(packet.password));
GetRagConnection().Send(g_packetLengths.FixedLength(packet.packetType), &packet);
this->sub_90C380();
this->DisableButtons();
break;
}
g_windowMgr.Confirm(LookupMessage(1887), 0, true, false, 0, "Message", 280, 120, 0);
@ -11117,7 +11117,7 @@ int UISecondPasswordEditWnd::SendMsg(UIWindow* sender, int message, std::intptr_
packet.accountId = g_session.m_passwordWndAccountId;
std::memcpy(packet.password, this->unknown_00D0, sizeof(packet.password));
GetRagConnection().Send(g_packetLengths.FixedLength(packet.packetType), &packet);
this->sub_90C380();
this->DisableButtons();
break;
}
g_windowMgr.Confirm(LookupMessage(1887), 0, true, false, 0, "Message", 280, 120, 0);
@ -11183,7 +11183,7 @@ int UISecondPasswordEditWnd::SendMsg(UIWindow* sender, int message, std::intptr_
packet.accountId = g_session.m_passwordWndAccountId;
std::memcpy(packet.password, this->unknown_00E2, sizeof(packet.password));
GetRagConnection().Send(g_packetLengths.FixedLength(packet.packetType), &packet);
this->sub_90C380();
this->DisableButtons();
break;
}
g_windowMgr.Confirm(LookupMessage(1016), 0, true, false, 0, "Message", 280, 120, 0);
@ -11235,13 +11235,13 @@ int UISecondPasswordEditWnd::SendMsg(UIWindow* sender, int message, std::intptr_
switch (this->unknown_00F4) {
case 0:
case 1:
std::strcat(this->unknown_00D0, IntToString(this->sub_90C350(0), 0).c_str());
std::strcat(this->unknown_00D0, IntToString(this->FindKeypadDigit(0), 0).c_str());
break;
case 2:
std::strcat(this->unknown_00D9, IntToString(this->sub_90C350(0), 0).c_str());
std::strcat(this->unknown_00D9, IntToString(this->FindKeypadDigit(0), 0).c_str());
break;
case 3:
std::strcat(this->unknown_00E2, IntToString(this->sub_90C350(0), 0).c_str());
std::strcat(this->unknown_00E2, IntToString(this->FindKeypadDigit(0), 0).c_str());
break;
}
this->DrawTextAt(this->unknown_00F0 + 416, this->unknown_00F8, "*", 0, 0, 12, 0, 0, 0);
@ -11255,13 +11255,13 @@ int UISecondPasswordEditWnd::SendMsg(UIWindow* sender, int message, std::intptr_
switch (this->unknown_00F4) {
case 0:
case 1:
std::strcat(this->unknown_00D0, IntToString(this->sub_90C350(1), 0).c_str());
std::strcat(this->unknown_00D0, IntToString(this->FindKeypadDigit(1), 0).c_str());
break;
case 2:
std::strcat(this->unknown_00D9, IntToString(this->sub_90C350(1), 0).c_str());
std::strcat(this->unknown_00D9, IntToString(this->FindKeypadDigit(1), 0).c_str());
break;
case 3:
std::strcat(this->unknown_00E2, IntToString(this->sub_90C350(1), 0).c_str());
std::strcat(this->unknown_00E2, IntToString(this->FindKeypadDigit(1), 0).c_str());
break;
}
this->DrawTextAt(this->unknown_00F0 + 416, this->unknown_00F8, "*", 0, 0, 12, 0, 0, 0);
@ -11275,13 +11275,13 @@ int UISecondPasswordEditWnd::SendMsg(UIWindow* sender, int message, std::intptr_
switch (this->unknown_00F4) {
case 0:
case 1:
std::strcat(this->unknown_00D0, IntToString(this->sub_90C350(2), 0).c_str());
std::strcat(this->unknown_00D0, IntToString(this->FindKeypadDigit(2), 0).c_str());
break;
case 2:
std::strcat(this->unknown_00D9, IntToString(this->sub_90C350(2), 0).c_str());
std::strcat(this->unknown_00D9, IntToString(this->FindKeypadDigit(2), 0).c_str());
break;
case 3:
std::strcat(this->unknown_00E2, IntToString(this->sub_90C350(2), 0).c_str());
std::strcat(this->unknown_00E2, IntToString(this->FindKeypadDigit(2), 0).c_str());
break;
}
this->DrawTextAt(this->unknown_00F0 + 416, this->unknown_00F8, "*", 0, 0, 12, 0, 0, 0);
@ -11295,13 +11295,13 @@ int UISecondPasswordEditWnd::SendMsg(UIWindow* sender, int message, std::intptr_
switch (this->unknown_00F4) {
case 0:
case 1:
std::strcat(this->unknown_00D0, IntToString(this->sub_90C350(3), 0).c_str());
std::strcat(this->unknown_00D0, IntToString(this->FindKeypadDigit(3), 0).c_str());
break;
case 2:
std::strcat(this->unknown_00D9, IntToString(this->sub_90C350(3), 0).c_str());
std::strcat(this->unknown_00D9, IntToString(this->FindKeypadDigit(3), 0).c_str());
break;
case 3:
std::strcat(this->unknown_00E2, IntToString(this->sub_90C350(3), 0).c_str());
std::strcat(this->unknown_00E2, IntToString(this->FindKeypadDigit(3), 0).c_str());
break;
}
this->DrawTextAt(this->unknown_00F0 + 416, this->unknown_00F8, "*", 0, 0, 12, 0, 0, 0);
@ -11315,13 +11315,13 @@ int UISecondPasswordEditWnd::SendMsg(UIWindow* sender, int message, std::intptr_
switch (this->unknown_00F4) {
case 0:
case 1:
std::strcat(this->unknown_00D0, IntToString(this->sub_90C350(4), 0).c_str());
std::strcat(this->unknown_00D0, IntToString(this->FindKeypadDigit(4), 0).c_str());
break;
case 2:
std::strcat(this->unknown_00D9, IntToString(this->sub_90C350(4), 0).c_str());
std::strcat(this->unknown_00D9, IntToString(this->FindKeypadDigit(4), 0).c_str());
break;
case 3:
std::strcat(this->unknown_00E2, IntToString(this->sub_90C350(4), 0).c_str());
std::strcat(this->unknown_00E2, IntToString(this->FindKeypadDigit(4), 0).c_str());
break;
}
this->DrawTextAt(this->unknown_00F0 + 416, this->unknown_00F8, "*", 0, 0, 12, 0, 0, 0);
@ -11335,13 +11335,13 @@ int UISecondPasswordEditWnd::SendMsg(UIWindow* sender, int message, std::intptr_
switch (this->unknown_00F4) {
case 0:
case 1:
std::strcat(this->unknown_00D0, IntToString(this->sub_90C350(5), 0).c_str());
std::strcat(this->unknown_00D0, IntToString(this->FindKeypadDigit(5), 0).c_str());
break;
case 2:
std::strcat(this->unknown_00D9, IntToString(this->sub_90C350(5), 0).c_str());
std::strcat(this->unknown_00D9, IntToString(this->FindKeypadDigit(5), 0).c_str());
break;
case 3:
std::strcat(this->unknown_00E2, IntToString(this->sub_90C350(5), 0).c_str());
std::strcat(this->unknown_00E2, IntToString(this->FindKeypadDigit(5), 0).c_str());
break;
}
this->DrawTextAt(this->unknown_00F0 + 416, this->unknown_00F8, "*", 0, 0, 12, 0, 0, 0);
@ -11355,13 +11355,13 @@ int UISecondPasswordEditWnd::SendMsg(UIWindow* sender, int message, std::intptr_
switch (this->unknown_00F4) {
case 0:
case 1:
std::strcat(this->unknown_00D0, IntToString(this->sub_90C350(6), 0).c_str());
std::strcat(this->unknown_00D0, IntToString(this->FindKeypadDigit(6), 0).c_str());
break;
case 2:
std::strcat(this->unknown_00D9, IntToString(this->sub_90C350(6), 0).c_str());
std::strcat(this->unknown_00D9, IntToString(this->FindKeypadDigit(6), 0).c_str());
break;
case 3:
std::strcat(this->unknown_00E2, IntToString(this->sub_90C350(6), 0).c_str());
std::strcat(this->unknown_00E2, IntToString(this->FindKeypadDigit(6), 0).c_str());
break;
}
this->DrawTextAt(this->unknown_00F0 + 416, this->unknown_00F8, "*", 0, 0, 12, 0, 0, 0);
@ -11375,13 +11375,13 @@ int UISecondPasswordEditWnd::SendMsg(UIWindow* sender, int message, std::intptr_
switch (this->unknown_00F4) {
case 0:
case 1:
std::strcat(this->unknown_00D0, IntToString(this->sub_90C350(7), 0).c_str());
std::strcat(this->unknown_00D0, IntToString(this->FindKeypadDigit(7), 0).c_str());
break;
case 2:
std::strcat(this->unknown_00D9, IntToString(this->sub_90C350(7), 0).c_str());
std::strcat(this->unknown_00D9, IntToString(this->FindKeypadDigit(7), 0).c_str());
break;
case 3:
std::strcat(this->unknown_00E2, IntToString(this->sub_90C350(7), 0).c_str());
std::strcat(this->unknown_00E2, IntToString(this->FindKeypadDigit(7), 0).c_str());
break;
}
this->DrawTextAt(this->unknown_00F0 + 416, this->unknown_00F8, "*", 0, 0, 12, 0, 0, 0);
@ -11395,13 +11395,13 @@ int UISecondPasswordEditWnd::SendMsg(UIWindow* sender, int message, std::intptr_
switch (this->unknown_00F4) {
case 0:
case 1:
std::strcat(this->unknown_00D0, IntToString(this->sub_90C350(8), 0).c_str());
std::strcat(this->unknown_00D0, IntToString(this->FindKeypadDigit(8), 0).c_str());
break;
case 2:
std::strcat(this->unknown_00D9, IntToString(this->sub_90C350(8), 0).c_str());
std::strcat(this->unknown_00D9, IntToString(this->FindKeypadDigit(8), 0).c_str());
break;
case 3:
std::strcat(this->unknown_00E2, IntToString(this->sub_90C350(8), 0).c_str());
std::strcat(this->unknown_00E2, IntToString(this->FindKeypadDigit(8), 0).c_str());
break;
}
this->DrawTextAt(this->unknown_00F0 + 416, this->unknown_00F8, "*", 0, 0, 12, 0, 0, 0);
@ -11415,13 +11415,13 @@ int UISecondPasswordEditWnd::SendMsg(UIWindow* sender, int message, std::intptr_
switch (this->unknown_00F4) {
case 0:
case 1:
std::strcat(this->unknown_00D0, IntToString(this->sub_90C350(9), 0).c_str());
std::strcat(this->unknown_00D0, IntToString(this->FindKeypadDigit(9), 0).c_str());
break;
case 2:
std::strcat(this->unknown_00D9, IntToString(this->sub_90C350(9), 0).c_str());
std::strcat(this->unknown_00D9, IntToString(this->FindKeypadDigit(9), 0).c_str());
break;
case 3:
std::strcat(this->unknown_00E2, IntToString(this->sub_90C350(9), 0).c_str());
std::strcat(this->unknown_00E2, IntToString(this->FindKeypadDigit(9), 0).c_str());
break;
}
this->DrawTextAt(this->unknown_00F0 + 416, this->unknown_00F8, "*", 0, 0, 12, 0, 0, 0);
@ -11475,7 +11475,7 @@ int UISecondPasswordEditWnd::SendMsg(UIWindow* sender, int message, std::intptr_
packet.accountId = g_session.m_passwordWndAccountId;
std::memcpy(packet.password, this->unknown_00D0, sizeof(packet.password));
GetRagConnection().Send(g_packetLengths.FixedLength(packet.packetType), &packet);
this->sub_90C380();
this->DisableButtons();
break;
}
g_windowMgr.Confirm(LookupMessage(1887), 0, true, false, 0, "Message", 280, 120, 0);
@ -11687,7 +11687,7 @@ int UIFrameWnd::BuildItemName(
}
if (g_serviceType == 12 || g_serviceType == 14) {
*cursor += item->sub_6D5810(*cursor, capacity, 1);
*cursor += item->GetIdDisplayName(*cursor, capacity, 1);
breaks->push_back(*cursor);
*cursor += item->Element(*cursor, capacity, 1);
breaks->push_back(*cursor);
@ -11715,7 +11715,7 @@ int UIFrameWnd::BuildItemName(
}
} else {
if (!isEquipment()) {
*cursor += item->sub_6D5810(*cursor, capacity, 1);
*cursor += item->GetIdDisplayName(*cursor, capacity, 1);
breaks->push_back(*cursor);
if (withSlots == 1) {
*cursor += item->Slots(*cursor, capacity, 1);
@ -11736,7 +11736,7 @@ int UIFrameWnd::BuildItemName(
if (item->HasCards()) {
*cursor += item->Prefixes(*cursor, capacity, 1);
breaks->push_back(*cursor);
*cursor += item->sub_6D5810(*cursor, capacity, 1);
*cursor += item->GetIdDisplayName(*cursor, capacity, 1);
breaks->push_back(*cursor);
*cursor += item->Suffixes(*cursor, capacity, 1);
breaks->push_back(*cursor);
@ -11748,7 +11748,7 @@ int UIFrameWnd::BuildItemName(
}
if (!item->HasSpecialCard()) {
*cursor += item->sub_6D5810(*cursor, capacity, 1);
*cursor += item->GetIdDisplayName(*cursor, capacity, 1);
breaks->push_back(*cursor);
if (withSlots == 1) {
*cursor += item->Slots(*cursor, capacity, 1);
@ -11759,7 +11759,7 @@ int UIFrameWnd::BuildItemName(
if (g_serviceType == 12 || g_serviceType == 14) {
if (g_serviceType == 12) {
*cursor += item->sub_6D5810(*cursor, capacity, 1);
*cursor += item->GetIdDisplayName(*cursor, capacity, 1);
breaks->push_back(*cursor);
*cursor += item->Element(*cursor, capacity, 1);
breaks->push_back(*cursor);
@ -11767,7 +11767,7 @@ int UIFrameWnd::BuildItemName(
} else {
*cursor += item->Star(*cursor, capacity, 1);
breaks->push_back(*cursor);
*cursor += item->sub_6D5810(*cursor, capacity, 1);
*cursor += item->GetIdDisplayName(*cursor, capacity, 1);
breaks->push_back(*cursor);
*cursor += item->Element(*cursor, capacity, 1);
}
@ -11804,7 +11804,7 @@ int UIFrameWnd::BuildItemName(
if (!splitCreator) {
*cursor += item->Element(*cursor, capacity, 1);
breaks->push_back(*cursor);
*cursor += item->sub_6D5810(*cursor, capacity, 1);
*cursor += item->GetIdDisplayName(*cursor, capacity, 1);
breaks->push_back(*cursor);
return 1;
}
@ -11813,7 +11813,7 @@ int UIFrameWnd::BuildItemName(
breaks->push_back(*cursor);
*cursor += item->Element(*cursor, capacity, 1);
breaks->push_back(*cursor);
*cursor += item->sub_6D5810(*cursor, capacity, 1);
*cursor += item->GetIdDisplayName(*cursor, capacity, 1);
breaks->push_back(*cursor);
return 1;
}
@ -12097,7 +12097,7 @@ int UITipboxWnd::SendMsg(UIWindow* sender, int message, std::intptr_t a, std::in
static_cast<UIChatEditCtrl*>(g_windowMgr.GetHoverWindow())->InsertItemTag(id);
break;
case 0x1EB:
static_cast<UIRodexComposeWnd*>(g_windowMgr.unknown_0458)->sub_7FF940(id);
static_cast<UIRodexComposeWnd*>(g_windowMgr.unknown_0458)->InsertSkillTag(id);
break;
case 0x1EC:
static_cast<UINpcTextEditDialogWnd*>(g_windowMgr.unknown_0318)->InsertSkillTag(id);

View file

@ -2062,9 +2062,9 @@ void CUIItem::RequestNavigation() {
}
if (x != -1 && y != -1) {
g_navigationManager.sub_B99030(name, 0, 5, false, x, y, 1002);
g_navigationManager.StartNavigation(name, 0, 5, false, x, y, 1002);
} else {
g_navigationManager.sub_B99030(name, 1, 5, false, -1, -1, 1002);
g_navigationManager.StartNavigation(name, 1, 5, false, -1, -1, 1002);
}
}
@ -2082,9 +2082,9 @@ void CUIQuest::RequestNavigation() {
}
if (x != -1 && y != -1) {
g_navigationManager.sub_B99030(name, 0, 5, false, x, y, 1002);
g_navigationManager.StartNavigation(name, 0, 5, false, x, y, 1002);
} else {
g_navigationManager.sub_B99030(name, 1, 5, false, -1, -1, 1002);
g_navigationManager.StartNavigation(name, 1, 5, false, -1, -1, 1002);
}
}

View file

@ -26,7 +26,7 @@ public:
void Slot25(int x, int y) override;
int SendMsg(UIWindow* sender, int message, std::intptr_t argument1, std::intptr_t argument2, std::intptr_t argument3, std::intptr_t argument4) override;
void Paint() override;
void sub_8A0B10();
void DrawRaceDescription();
/* 0120 */ int m_race;
/* 0124 */ UIDescriptRaceText m_text;

View file

@ -623,7 +623,7 @@ void UIStaticItem::Slot28(int, int) {
char text[260];
std::memset(text, 0, sizeof(text));
int capacity = sizeof(text);
this->m_item.sub_6D5810(text, capacity, 0);
this->m_item.GetIdDisplayName(text, capacity, 0);
if (std::strlen(text) == 0) {
return;
@ -753,7 +753,7 @@ void UIChatHisBox::Resize(int width, int height, bool flag) {
const int oldWidth = this->geometry.width;
this->Resize(width, height);
if (oldWidth != this->geometry.width && flag) {
this->sub_89C080();
this->RebuildHistory();
}
}
@ -2703,7 +2703,7 @@ void UIDescriptRace::Slot25(int, int) {
// FUNCTION: fn_11358
void UIDescriptRace::Paint() {
UIBitmapButton::Paint();
this->sub_8A0B10();
this->DrawRaceDescription();
}
// OFFSET: 0x00890330
@ -2747,7 +2747,7 @@ void UIShowAndEditTimeCtrl::Paint() {
// OFFSET: 0x008906C0
// FUNCTION: fn_11423
void __fastcall sub_8906C0(UINaviLinkButton* button, void*, int x, int y) {
void __fastcall ActivateNaviLink(UINaviLinkButton* button, void*, int x, int y) {
button->UINaviLinkButton::Slot25(x, y);
}

View file

@ -29,7 +29,7 @@ public:
UIBitmapButton* CreateButton(int x, int y, int width, int height, int id, const char* format, bool hasDisabled);
void RefreshCurrentList();
__declspec(noinline) void ShowPack(int packId);
void sub_7C7E50();
void RefreshPackLists();
__declspec(noinline) void ResetLists();
int SetPeriod(int packId);
void SetTab(char tab);

View file

@ -438,9 +438,9 @@ void UICashShopWnd::Paint() {
this->DrawTitleBar(false, LookupMessage(0xCD8), 0);
if (this->m_pageCount == 0) {
this->sub_A84400(0xF7, 0x1EE, std::string("0 / 0"), 0x2B, 0, 6, 0, 0xC, 0x6B2921, 0);
this->DrawWrappedFormattedText(0xF7, 0x1EE, std::string("0 / 0"), 0x2B, 0, 6, 0, 0xC, 0x6B2921, 0);
} else {
this->sub_A84400(0xF7, 0x1EE, FormatOwnedString("^b%d^/b / %d", this->m_page + 1, this->m_pageCount), 0x2B, 0, 6, 0, 0xC, 0x6B2921, 0);
this->DrawWrappedFormattedText(0xF7, 0x1EE, FormatOwnedString("^b%d^/b / %d", this->m_page + 1, this->m_pageCount), 0x2B, 0, 6, 0, 0xC, 0x6B2921, 0);
}
if (!g_session.unknown_5912) {

View file

@ -74,7 +74,7 @@ int UINewChatWnd::SendMsg(UIWindow* sender, int message, std::intptr_t a, std::i
this->m_tabControl->RemoveTab(this->m_currentTab);
this->m_tabWidth = this->m_tabControl->geometry.width / names.size();
UISubChatHisWnd* window = static_cast<UISubChatHisWnd*>(g_windowMgr.sub_A97580(static_cast<int>(g_windowMgr.retainedWindows.size()), -1, -1, 0, 0));
UISubChatHisWnd* window = static_cast<UISubChatHisWnd*>(g_windowMgr.OpenSubChatWindow(static_cast<int>(g_windowMgr.retainedWindows.size()), -1, -1, 0, 0));
if (window == nullptr) {
return 0;
}
@ -516,7 +516,7 @@ int UINewChatWnd::SendMsg(UIWindow* sender, int message, std::intptr_t a, std::i
info.name += _itoa(total + 1, number, 10);
if ((noSubCount + 1) * this->m_tabWidth > this->geometry.width - 0x5A) {
g_session.m_subChatWnds[subCount] = info;
g_windowMgr.sub_A97580(static_cast<int>(g_windowMgr.retainedWindows.size()), -1, -1, 0, 0);
g_windowMgr.OpenSubChatWindow(static_cast<int>(g_windowMgr.retainedWindows.size()), -1, -1, 0, 0);
} else {
g_session.m_noSubChatWnds[noSubCount] = info;
this->m_tabControl->AddTab(info.name.c_str(), "");

View file

@ -434,7 +434,7 @@ int UIMiniMapWnd::SendMsg(UIWindow* sender, int message, std::intptr_t argument1
if (extension != std::string::npos) {
mapName = mapName.substr(0, extension);
}
g_navigationManager.sub_B99030(mapName.c_str(), 0, 5, true, town.x, town.y, 1002);
g_navigationManager.StartNavigation(mapName.c_str(), 0, 5, true, town.x, town.y, 1002);
}
return 0;
}
@ -446,7 +446,7 @@ int UIMiniMapWnd::SendMsg(UIWindow* sender, int message, std::intptr_t argument1
if (extension != std::string::npos) {
mapName = mapName.substr(0, extension);
}
g_navigationManager.sub_B99030(mapName.c_str(), 0, 5, true, mark->second.x, mark->second.y, 1002);
g_navigationManager.StartNavigation(mapName.c_str(), 0, 5, true, mark->second.x, mark->second.y, 1002);
return 0;
}
return 0;

View file

@ -17,7 +17,7 @@ UIPasswordWnd::UIPasswordWnd() : UIItemDropCntWnd() {}
// OFFSET: 0x0090C970
// FUNCTION: fn_12451
void UISecondPasswordInputWnd::sub_90C970(int value) {
void UISecondPasswordInputWnd::SetInputMode(int value) {
this->unknown_011C = value;
if (value == 0) {
this->unknown_0164->SetText(LookupMessage(0xa06), 0);
@ -128,7 +128,7 @@ void UISecondPasswordInputWnd::CreateKeypad(unsigned int seed) {
// OFFSET: 0x0090DE10
// FUNCTION: fn_12454
void UISecondPasswordInputWnd::sub_90DE10() {
void UISecondPasswordInputWnd::EnableKeypad() {
UIBitmapButton** slot = this->unknown_0124;
for (int remaining = 11; remaining != 0; --remaining) {
UIButton* button = *slot;

View file

@ -62,11 +62,11 @@ public:
void Paint() override;
int SendMsg(UIWindow* sender, int message, std::intptr_t a, std::intptr_t b, std::intptr_t c, std::intptr_t d) override;
void ShuffleKeypad();
int sub_90C350(unsigned int target);
void sub_90C380();
void sub_90C970(int value);
int FindKeypadDigit(unsigned int target);
void DisableButtons();
void SetInputMode(int value);
void CreateKeypad(unsigned int seed);
void sub_90DE10();
void EnableKeypad();
/* 010C */ int unknown_010C;
/* 0110 */ unsigned char m_digits[10];

View file

@ -214,7 +214,7 @@ void UIItemTagOnMail::SetLines(const std::vector<std::string>& lines) {
// OFFSET: 0x0089CFE0
// FUNCTION: fn_11597
void UIItemTagCtrl::sub_89CFE0(const ITEM_INFO& item, unsigned int color) {
void UIItemTagCtrl::AddItemTag(const ITEM_INFO& item, unsigned int color) {
std::string tag = "<";
tag += item.DisplayName(0);
tag += ">";
@ -325,7 +325,7 @@ bool UIItemTagOnMegaPhone::CanInsertTag(const std::string& name, int width) {
// OFFSET: 0x008962C0
// FUNCTION: fn_11517
void UIItemTagCtrl::sub_8962C0() {
void UIItemTagCtrl::UpdateItemTags() {
this->unknown_0140.clear();
if (this->unknown_011C != static_cast<int>(this->tags.size()) && this->SyncTagsWithText()) {
this->unknown_011C = static_cast<int>(this->tags.size());

View file

@ -612,7 +612,7 @@ void CUIEditCtrlEx::SetText(const char* value) {
}
if (this->text.find(s_editExItemLinkOpen) != std::string::npos || this->text.find(s_editExItemLinkClose) != std::string::npos) {
this->sub_869810(this->text.c_str());
this->SetLinkedText(this->text.c_str());
}
this->selectedAll = 1;

View file

@ -279,7 +279,7 @@ void UIEditCtrl::Slot24(int) {
// OFFSET: 0x0085E400
// FUNCTION: fn_10828
void UIWhisperEditCtrl::Slot24(int retained) {
this->sub_86A060();
this->AddHistory();
this->Synchronize();
this->Invalidate();
}
@ -630,7 +630,7 @@ void UIChatEditCtrl::PushHistory() {
// OFFSET: 0x0086A060
// FUNCTION: fn_10976
void UIWhisperEditCtrl::sub_86A060() {
void UIWhisperEditCtrl::AddHistory() {
if (this->Length() == 0) {
this->historyIndex = static_cast<int>(this->history.size());
return;
@ -3780,7 +3780,7 @@ bool ItemTypeNameLess::operator()(const ITEM_INFO& left, const ITEM_INFO& right)
// OFFSET: 0x00996870
// FUNCTION: fn_13470
bool UIItemStoreSubWnd::Sort1() {
if (!this->sub_996950()) {
if (!this->UpdateItemNames1()) {
return false;
}
this->items.sort();
@ -3790,7 +3790,7 @@ bool UIItemStoreSubWnd::Sort1() {
// OFFSET: 0x009968B0
// FUNCTION: fn_13471
bool UIItemStoreSubWnd::Sort2() {
if (!this->sub_996AF0()) {
if (!this->UpdateItemNames2()) {
return false;
}
this->items.sort();
@ -3800,7 +3800,7 @@ bool UIItemStoreSubWnd::Sort2() {
// OFFSET: 0x009968F0
// FUNCTION: fn_13472
bool UIItemStoreSubWnd::Sort3() {
if (!this->sub_996C90()) {
if (!this->UpdateItemNames3()) {
return false;
}
this->items.sort();
@ -3810,7 +3810,7 @@ bool UIItemStoreSubWnd::Sort3() {
// OFFSET: 0x00995CF0
// FUNCTION: fn_13463
bool UIItemStoreSubWnd::SortReversed1() {
if (!this->sub_996950()) {
if (!this->UpdateItemNames1()) {
return false;
}
this->items.sort();
@ -3821,7 +3821,7 @@ bool UIItemStoreSubWnd::SortReversed1() {
// OFFSET: 0x00995D50
// FUNCTION: fn_13464
bool UIItemStoreSubWnd::SortReversed2() {
if (!this->sub_996AF0()) {
if (!this->UpdateItemNames2()) {
return false;
}
this->items.sort();
@ -3832,7 +3832,7 @@ bool UIItemStoreSubWnd::SortReversed2() {
// OFFSET: 0x00995DB0
// FUNCTION: fn_13465
bool UIItemStoreSubWnd::SortReversed3() {
if (!this->sub_996C90()) {
if (!this->UpdateItemNames3()) {
return false;
}
this->items.sort();
@ -3928,7 +3928,7 @@ int UIMerchantShopMakeWnd::CommitPrice(int next) {
ITEM_INFO item = g_session.GetItem1768At(this->editIndex);
char name[128];
int capacity = 128;
item.sub_6D5810(name, capacity, 0);
item.GetIdDisplayName(name, capacity, 0);
std::string message = FormatOwnedString(LookupMessage(2473), name);
const int high = static_cast<int>(price / std::atoi(LookupMessage(2474)));
@ -3983,7 +3983,7 @@ void UIMerchantShopMakeWnd::PrintBuyList() {
for (unsigned index = 0; index < this->items.size(); ++index, ++it) {
int capacity = 256;
it->sub_6D5810(name, capacity, 0);
it->GetIdDisplayName(name, capacity, 0);
std::sprintf(text, "%s ", this->priceEdits[index]->Text());
g_session.IsNumberWithCommas(text);
@ -4396,7 +4396,7 @@ std::string UIEditCtrl3::PlaceLineLinks(const char* line, std::string& text, con
// OFFSET: 0x00869810
// FUNCTION: fn_10973
void UIEditCtrl3::sub_869810(const char* value) {
void UIEditCtrl3::SetLinkedText(const char* value) {
std::string resolved = this->ResolveItemLinks(std::string(value, std::strlen(value)));
std::vector<std::string> lines;
@ -5090,7 +5090,7 @@ void UIMerchantShopMakeWnd::Slot10(int x, int y, std::intptr_t value) {
// OFFSET: 0x00972E60
// FUNCTION: fn_13281
std::vector<unsigned char>* sub_972E60(std::vector<unsigned char>* result) {
std::vector<unsigned char>* BuildItemPurchaseReplayRecords(std::vector<unsigned char>* result) {
new (result) std::vector<unsigned char>();
const auto first = BuildReplayTaggedRecord(0x50DC, nullptr, 0);
result->insert(result->end(), first.begin(), first.end());
@ -5120,7 +5120,7 @@ std::vector<unsigned char> UIItemSellWnd2::BuildReplayRecords() {
// OFFSET: 0x00973080
// FUNCTION: fn_13283
std::vector<unsigned char>* sub_973080(std::vector<unsigned char>* result) {
std::vector<unsigned char>* BuildItemSellReplayRecords(std::vector<unsigned char>* result) {
new (result) std::vector<unsigned char>();
const auto first = BuildReplayTaggedRecord(0x510E, nullptr, 0);
result->insert(result->end(), first.begin(), first.end());
@ -5131,7 +5131,7 @@ std::vector<unsigned char>* sub_973080(std::vector<unsigned char>* result) {
// OFFSET: 0x00973170
// FUNCTION: fn_13284
std::vector<unsigned char>* sub_973170(std::vector<unsigned char>* result) {
std::vector<unsigned char>* BuildItemStoreReplayRecords(std::vector<unsigned char>* result) {
new (result) std::vector<unsigned char>();
const auto first = BuildReplayTaggedRecord(0x51A4, nullptr, 0);
result->insert(result->end(), first.begin(), first.end());
@ -5224,7 +5224,7 @@ std::vector<unsigned char> UIMerchantItemShopWnd::BuildReplayRecords() {
// OFFSET: 0x00973670
// FUNCTION: fn_13288
std::vector<unsigned char>* sub_973670(std::vector<unsigned char>* result) {
std::vector<unsigned char>* BuildMerchantMirrorItemReplayRecords(std::vector<unsigned char>* result) {
new (result) std::vector<unsigned char>();
const auto first = BuildReplayTaggedRecord(0x5398, nullptr, 0);
result->insert(result->end(), first.begin(), first.end());
@ -8845,7 +8845,7 @@ void UIChatEditCtrl::InsertItemLink(const ITEM_INFO& item) {
const std::string tag = this->unknown_0144->AppendTag(name);
g_serverLanguage->ResetInput();
g_serverLanguage->Insert(tag.c_str());
this->unknown_0144->sub_89CFE0(item, 0x12B8A4);
this->unknown_0144->AddItemTag(item, 0x12B8A4);
}
// OFFSET: 0x00980340
@ -10006,7 +10006,7 @@ void UIItemWnd::RefreshItems() {
// OFFSET: 0x00995E10
// FUNCTION: fn_13466
bool UIItemStoreSubWnd::FilterByName1(std::string query) {
if (!this->sub_996950()) {
if (!this->UpdateItemNames1()) {
return false;
}
@ -10025,7 +10025,7 @@ bool UIItemStoreSubWnd::FilterByName1(std::string query) {
// OFFSET: 0x00996090
// FUNCTION: fn_13467
bool UIItemStoreSubWnd::FilterByName2(std::string query) {
if (!this->sub_996AF0()) {
if (!this->UpdateItemNames2()) {
return false;
}
@ -10044,7 +10044,7 @@ bool UIItemStoreSubWnd::FilterByName2(std::string query) {
// OFFSET: 0x00996440
// FUNCTION: fn_13468
bool UIItemStoreSubWnd::FilterByName3(std::string query) {
if (!this->sub_996C90()) {
if (!this->UpdateItemNames3()) {
return false;
}
@ -10062,7 +10062,7 @@ bool UIItemStoreSubWnd::FilterByName3(std::string query) {
// OFFSET: 0x00996950
// FUNCTION: fn_13474
bool UIItemStoreSubWnd::sub_996950() {
bool UIItemStoreSubWnd::UpdateItemNames1() {
if (this->items.empty()) {
return false;
}
@ -10083,7 +10083,7 @@ bool UIItemStoreSubWnd::sub_996950() {
// OFFSET: 0x00996AF0
// FUNCTION: fn_13475
bool UIItemStoreSubWnd::sub_996AF0() {
bool UIItemStoreSubWnd::UpdateItemNames2() {
if (this->items.empty()) {
return false;
}
@ -10104,7 +10104,7 @@ bool UIItemStoreSubWnd::sub_996AF0() {
// OFFSET: 0x00996C90
// FUNCTION: fn_13476
bool UIItemStoreSubWnd::sub_996C90() {
bool UIItemStoreSubWnd::UpdateItemNames3() {
if (this->items.empty()) {
return false;
}
@ -10471,16 +10471,16 @@ void UIMerchantShopMakeWnd::PrintSellList() {
if (item.HasCards()) {
cursor += item.Prefixes(cursor, capacity, 1);
cursor += item.sub_6D5810(cursor, capacity, 1);
cursor += item.GetIdDisplayName(cursor, capacity, 1);
cursor += item.Suffixes(cursor, capacity, 1);
item.Slots(cursor, capacity, 1);
} else if (item.HasSpecialCard()) {
cursor += item.Star(cursor, capacity, 1);
cursor += item.Creator(cursor, capacity, 1);
cursor += item.Element(cursor, capacity, 1);
item.sub_6D5810(cursor, capacity, 1);
item.GetIdDisplayName(cursor, capacity, 1);
} else {
cursor += item.sub_6D5810(cursor, capacity, 1);
cursor += item.GetIdDisplayName(cursor, capacity, 1);
item.Slots(cursor, capacity, 1);
}
@ -10536,7 +10536,7 @@ void UIItemWnd::Slot25(int x, int y) {
} else if (g_windowMgr.GetHoverWindow()->geometry.id == 493) {
reinterpret_cast<UIChatEditCtrl*>(ChatWindow()->m_chatEdit)->InsertItemLink(item);
} else if (g_windowMgr.GetHoverWindow()->geometry.id == 491) {
reinterpret_cast<UIRodexComposeWnd*>(g_windowMgr.unknown_0458)->sub_7FF710(item);
reinterpret_cast<UIRodexComposeWnd*>(g_windowMgr.unknown_0458)->InsertItemTag(item);
} else if (g_windowMgr.GetHoverWindow()->geometry.id == 494) {
static_cast<UIChatEditCtrl*>(g_windowMgr.GetHoverWindow())->InsertItemLink(item);
}
@ -10573,7 +10573,7 @@ void UIMerchantItemWnd::Slot25(int x, int y) {
} else if (g_windowMgr.GetHoverWindow()->geometry.id == 493) {
reinterpret_cast<UIChatEditCtrl*>(ChatWindow()->m_chatEdit)->InsertItemLink(item);
} else if (g_windowMgr.GetHoverWindow()->geometry.id == 491) {
reinterpret_cast<UIRodexComposeWnd*>(g_windowMgr.unknown_0458)->sub_7FF710(item);
reinterpret_cast<UIRodexComposeWnd*>(g_windowMgr.unknown_0458)->InsertItemTag(item);
} else if (g_windowMgr.GetHoverWindow()->geometry.id == 494) {
static_cast<UIChatEditCtrl*>(g_windowMgr.GetHoverWindow())->InsertItemLink(item);
}

View file

@ -115,7 +115,7 @@ public:
int SendMsg(UIWindow* sender, int message, std::intptr_t a, std::intptr_t b, std::intptr_t c, std::intptr_t d) override;
void SetText(const char* value) override;
void PaintText() override;
void sub_869810(const char* value);
void SetLinkedText(const char* value);
void Slot35(int value) override;
void Trim() override;
virtual void UpdateScrollBar();
@ -232,7 +232,7 @@ public:
void Slot24(int retained) override;
int SendMsg(UIWindow* sender, int message, std::intptr_t a, std::intptr_t b, std::intptr_t c, std::intptr_t d) override;
void SetText(const char* value) override;
void sub_86A060();
void AddHistory();
/* 011C */ std::vector<std::string> history;
/* 0128 */ int historyIndex;
};

View file

@ -222,7 +222,7 @@ void UIChatEditCtrl::InsertItemTag(int tagId) {
return;
}
const std::string tag = this->unknown_0144->sub_874A40(tagId, 0x7F00E4);
const std::string tag = this->unknown_0144->AddSkillTag(tagId, 0x7F00E4);
const std::string combined = this->text + tag;
g_serverLanguage->ResetInput();
g_serverLanguage->Insert(combined.c_str());

View file

@ -1148,7 +1148,7 @@ void UIChatEditCtrl::Paint() {
if (tag != nullptr) {
tag->SetTaggedText(this->text, this->geometry.width);
tag = this->unknown_0144;
tag->sub_8962C0();
tag->UpdateItemTags();
tag = this->unknown_0144;
const int span = static_cast<int>(tag->unknown_0140.size() - tag->taggedText.size());
this->unknown_00F0 = span > 0 ? span : 0;
@ -1173,7 +1173,7 @@ void UIEditCtrl3::SetText(const char* value) {
this->SelectAll();
if (this->text.find("<ITEML>") != std::string::npos || this->text.find("</ITEML>") != std::string::npos) {
this->sub_869810(this->text.c_str());
this->SetLinkedText(this->text.c_str());
}
if (this->parent != nullptr) {

View file

@ -26,9 +26,9 @@ public:
bool SyncTagsWithText();
bool RemoveInvalidTag(std::list<ItemTagRecord>::iterator& entry);
void SetTaggedText(const std::string& text, int width);
void sub_8962C0();
void sub_89CFE0(const ITEM_INFO& item, unsigned int color);
std::string sub_874A40(int tagId, unsigned int color);
void UpdateItemTags();
void AddItemTag(const ITEM_INFO& item, unsigned int color);
std::string AddSkillTag(int tagId, unsigned int color);
/* 011C */ int unknown_011C;
/* 0120 */ std::list<ItemTagRecord> tags;

View file

@ -1918,7 +1918,7 @@ void CUIGameSettingsUI::Slot25(int x, int y) {
// OFFSET: 0x00A3F0F0
// FUNCTION: fn_15939
void CUIGameSettingsUI::sub_A3F0F0() {
void CUIGameSettingsUI::OnTitleIconClick() {
}
// OFFSET: 0x00A3F100
@ -1927,7 +1927,7 @@ void CUIGameSettingsUI::OnApply() {
const bool modified = this->m_graphicsPage->IsModified();
if (g_windowMgr.Confirm(LookupMessage(modified ? 3168 : 3167), 2, true, false, 0, "Message", 280, 120, 0) != 188) {
this->m_graphicsPage->ApplySettings();
this->sub_A421E0();
this->UpdateApplyButton();
}
}
@ -1952,27 +1952,27 @@ __declspec(noinline) bool CUIGameSettingsUI::IsTab4Selected() {
// OFFSET: 0x00A43380
// FUNCTION: fn_16024
void CUIGameSettingsUI::sub_A43380() {
void CUIGameSettingsUI::OnBasicTabClick() {
}
// OFFSET: 0x00A43390
// FUNCTION: fn_16025
void CUIGameSettingsUI::sub_A43390() {
void CUIGameSettingsUI::OnControlTabClick() {
}
// OFFSET: 0x00A433A0
// FUNCTION: fn_16026
void CUIGameSettingsUI::sub_A433A0() {
void CUIGameSettingsUI::OnEffectTabClick() {
}
// OFFSET: 0x00A433B0
// FUNCTION: fn_16027
void CUIGameSettingsUI::sub_A433B0() {
void CUIGameSettingsUI::OnEtcTabClick() {
}
// OFFSET: 0x00A433C0
// FUNCTION: fn_16028
void CUIGameSettingsUI::sub_A433C0() {
void CUIGameSettingsUI::OnGraphicsTabClick() {
}
// OFFSET: 0x00A42FC0
@ -1984,7 +1984,7 @@ void GameSettingsUI::CUIGroupGraphicsAPI::Apply() {
// OFFSET: 0x00A404D0
// FUNCTION: fn_15973
void sub_A404D0() {
void SetNormalProcessPriority() {
dwPriorityClass = NORMAL_PRIORITY_CLASS;
HANDLE process = GetCurrentProcess();
SetPriorityClass(process, NORMAL_PRIORITY_CLASS);
@ -1992,7 +1992,7 @@ void sub_A404D0() {
// OFFSET: 0x00A421E0
// FUNCTION: fn_16013
void CUIGameSettingsUI::sub_A421E0() {
void CUIGameSettingsUI::UpdateApplyButton() {
bool visible = false;
if (this->m_tab->current && this->m_tab->current->geometry.id == 3) {
GameSettingsUI::CUIGraphicsPage* page = this->m_graphicsPage;
@ -2013,45 +2013,45 @@ void CUIGameSettingsUI::SelectTab4() {
// OFFSET: 0x00A41E50
// FUNCTION: fn_16004
void sub_A41E50(int option) {
void OnFullscreenOptionChanged(int option) {
CUIGameSettingsUI* wnd = dynamic_cast<CUIGameSettingsUI*>(g_windowMgr.LookupWindow(0x271E));
if (wnd) {
wnd->sub_A421E0();
wnd->UpdateApplyButton();
}
}
// OFFSET: 0x00A41FA0
// FUNCTION: fn_16008
void sub_A41FA0(int option) {
void OnTrilinearOptionChanged(int option) {
CUIGameSettingsUI* wnd = dynamic_cast<CUIGameSettingsUI*>(g_windowMgr.LookupWindow(0x271E));
if (wnd) {
wnd->sub_A421E0();
wnd->UpdateApplyButton();
}
}
// OFFSET: 0x00A43000
// FUNCTION: fn_16022
void sub_A43000(int option) {
void OnSpriteDetailLevelChanged(int option) {
CUIGameSettingsUI* wnd = dynamic_cast<CUIGameSettingsUI*>(g_windowMgr.LookupWindow(0x271E));
if (wnd) {
wnd->sub_A421E0();
wnd->UpdateApplyButton();
}
}
// OFFSET: 0x00A43040
// FUNCTION: fn_16023
void sub_A43040(int option) {
void OnTextureDetailLevelChanged(int option) {
CUIGameSettingsUI* wnd = dynamic_cast<CUIGameSettingsUI*>(g_windowMgr.LookupWindow(0x271E));
if (wnd) {
wnd->sub_A421E0();
wnd->UpdateApplyButton();
}
}
// OFFSET: 0x00A433D0
// FUNCTION: fn_16029
void CUIGameSettingsUI::sub_A433D0(UIWindow* window) {
void CUIGameSettingsUI::OnTabChanged(UIWindow* window) {
this->m_pageContainer->Show(window != this->m_tab->FindChildById(3));
this->sub_A421E0();
this->UpdateApplyButton();
}
// OFFSET: 0x00A3F9B0
@ -2111,28 +2111,28 @@ void ToggleGameSettingsTab4() {
// OFFSET: 0x00AAB070
// FUNCTION: fn_17277
void UIWindowMgr::sub_AAB070(int option) {
void UIWindowMgr::RefreshGameSettingOption(int option) {
CUIGameSettingsUI* settings = static_cast<CUIGameSettingsUI*>(this->LookupWindow(0x271E));
if (settings) {
settings->sub_A43590(option);
settings->RefreshOption(option);
}
}
// OFFSET: 0x00AAB090
// FUNCTION: fn_17278
void UIWindowMgr::sub_AAB090() {
void UIWindowMgr::RefreshGameSettings() {
CUIGameSettingsUI* settings = static_cast<CUIGameSettingsUI*>(this->LookupWindow(0x271E));
if (settings) {
settings->sub_A43BA0();
settings->RefreshOptions();
}
}
// OFFSET: 0x00AAB0B0
// FUNCTION: fn_17279
void UIWindowMgr::sub_AAB0B0() {
void UIWindowMgr::RefreshGameSettingHotkeys() {
CUIGameSettingsUI* settings = static_cast<CUIGameSettingsUI*>(this->LookupWindow(0x271E));
if (settings) {
settings->sub_A43C70();
settings->RefreshHotkeyLabels();
}
}
@ -2213,7 +2213,7 @@ bool GameSettingsUI::CUIListPage::SetOptionChecked(int id) {
// OFFSET: 0x00A43590
// FUNCTION: fn_16031
__declspec(noinline) void CUIGameSettingsUI::sub_A43590(int id) {
__declspec(noinline) void CUIGameSettingsUI::RefreshOption(int id) {
for (GameSettingsUI::CUIListPage* page : this->m_pages) {
for (GameSettingsUI::CUIOptionItem* item : page->m_optionList->items) {
if (item->m_optionId == id) {
@ -2418,7 +2418,7 @@ void GameSettingsUI::CUIGroupGraphics::OnModeSelect(CUIComboItem* item, const Di
this->m_pendingMode = *node;
CUIGameSettingsUI* wnd = dynamic_cast<CUIGameSettingsUI*>(g_windowMgr.LookupWindow(0x271E));
if (wnd) {
wnd->sub_A421E0();
wnd->UpdateApplyButton();
}
}
}
@ -2776,7 +2776,7 @@ void GameSettingsUI::CUIGroupFullscreen::Slot15(int width, int height) {
this->m_onButton = new CUIRadioButton();
this->m_onButton->SetSize(12, 12);
this->m_onButton->Move(150, 12);
this->m_onButton->SetOnSelect([this](CUIRadioButton* button) { sub_A41E50(reinterpret_cast<int>(button)); });
this->m_onButton->SetOnSelect([this](CUIRadioButton* button) { OnFullscreenOptionChanged(reinterpret_cast<int>(button)); });
this->m_onButton->disabled = 0;
this->m_onButton->Invalidate();
const std::uint8_t onButtonNormalSource[] = {0x8F, 0xE4, 0x73, 0x75, 0xED, 0xDB, 0x84, 0x4A, 0x89, 0xAF, 0x73, 0x43, 0x90, 0xAF, 0x1D, 0xF5, 0x2E, 0x2F, 0xDA, 0xE0, 0x4F, 0x61, 0x2F, 0xD8, 0x20, 0x2D, 0xD5, 0xA1, 0x4F, 0x78, 0x31, 0x87};
@ -2812,7 +2812,7 @@ void GameSettingsUI::CUIGroupFullscreen::Slot15(int width, int height) {
this->m_offButton = new CUIRadioButton();
this->m_offButton->SetSize(12, 12);
this->m_offButton->Move(270, 12);
this->m_offButton->SetOnSelect([this](CUIRadioButton* button) { sub_A41E50(reinterpret_cast<int>(button)); });
this->m_offButton->SetOnSelect([this](CUIRadioButton* button) { OnFullscreenOptionChanged(reinterpret_cast<int>(button)); });
this->m_offButton->disabled = 0;
this->m_offButton->Invalidate();
const std::uint8_t offButtonNormalSource[] = {0x95, 0x52, 0x75, 0x21, 0x07, 0x7F, 0xB0, 0xFE, 0x93, 0x19, 0x75, 0x17, 0x7A, 0x0B, 0x29, 0x41, 0x34, 0x99, 0xDC, 0xB4, 0xA5, 0xC5, 0x1B, 0x6C, 0x3A, 0x9B, 0xD3, 0xF5, 0xA5, 0xDC, 0x05, 0x33};
@ -3497,7 +3497,7 @@ void GameSettingsUI::CUIGroupSpriteDetailLevel::Slot15(int width, int height) {
this->m_slider = new CUIHScrollBar();
this->m_slider->SetSize(175, 13);
this->m_slider->Move(153, 11);
this->m_slider->SetOnChange([this](int position) { sub_A43000(position); });
this->m_slider->SetOnChange([this](int position) { OnSpriteDetailLevelChanged(position); });
this->m_slider->SetTotal(128);
this->m_slider->SetVisible(128);
this->m_slider->step = 1;
@ -3543,7 +3543,7 @@ void GameSettingsUI::CUIGroupTextureDetailLevel::Slot15(int width, int height) {
this->m_slider = new CUIHScrollBar();
this->m_slider->SetSize(175, 13);
this->m_slider->Move(153, 11);
this->m_slider->SetOnChange([this](int position) { sub_A43040(position); });
this->m_slider->SetOnChange([this](int position) { OnTextureDetailLevelChanged(position); });
this->m_slider->SetTotal(128);
this->m_slider->SetVisible(128);
this->m_slider->step = 1;
@ -3589,7 +3589,7 @@ void GameSettingsUI::CUIGroupTrilinear::Slot15(int width, int height) {
this->m_onButton = new CUIRadioButton();
this->m_onButton->SetSize(12, 12);
this->m_onButton->Move(150, 12);
this->m_onButton->SetOnSelect([this](CUIRadioButton* button) { sub_A41FA0(reinterpret_cast<int>(button)); });
this->m_onButton->SetOnSelect([this](CUIRadioButton* button) { OnTrilinearOptionChanged(reinterpret_cast<int>(button)); });
this->m_onButton->disabled = 0;
this->m_onButton->Invalidate();
const std::uint8_t onButtonNormalSource[] = {0xB1, 0x56, 0x99, 0x0F, 0x41, 0xD3, 0xA0, 0x5C, 0xB7, 0x1D, 0x99, 0x39, 0x3C, 0xA7, 0x39, 0xE3, 0x10, 0x9D, 0x30, 0x9A, 0xE3, 0x69, 0x0B, 0xCE, 0x1E, 0x9F, 0x3F, 0xDB, 0xE3, 0x70, 0x15, 0x91};
@ -3625,7 +3625,7 @@ void GameSettingsUI::CUIGroupTrilinear::Slot15(int width, int height) {
this->m_offButton = new CUIRadioButton();
this->m_offButton->SetSize(12, 12);
this->m_offButton->Move(270, 12);
this->m_offButton->SetOnSelect([this](CUIRadioButton* button) { sub_A41FA0(reinterpret_cast<int>(button)); });
this->m_offButton->SetOnSelect([this](CUIRadioButton* button) { OnTrilinearOptionChanged(reinterpret_cast<int>(button)); });
this->m_offButton->disabled = 0;
this->m_offButton->Invalidate();
const std::uint8_t offButtonNormalSource[] = {0x21, 0x34, 0x33, 0x81, 0x2D, 0x49, 0x3A, 0xAC, 0x27, 0x7F, 0x33, 0xB7, 0x50, 0x3D, 0xA3, 0x13, 0x80, 0xFF, 0x9A, 0x14, 0x8F, 0xF3, 0x91, 0x3E, 0x8E, 0xFD, 0x95, 0x55, 0x8F, 0xEA, 0x8F, 0x61};
@ -3689,7 +3689,7 @@ void GameSettingsUI::CUIOptionItem::OnCheck(bool checked) {
if (Singleton<CGameSettingsMgr>::s_instance == nullptr) {
Singleton<CGameSettingsMgr>::s_instance = new (std::nothrow) CGameSettingsMgr;
}
Singleton<CGameSettingsMgr>::s_instance->sub_6C0C40(this->m_optionId, IsServiceOption(this->m_optionId) ^ checked, false);
Singleton<CGameSettingsMgr>::s_instance->SetOption(this->m_optionId, IsServiceOption(this->m_optionId) ^ checked, false);
}
// OFFSET: 0x00A40280
@ -3779,7 +3779,7 @@ void GameSettingsUI::CUIListPage::RefreshHotkeyLabels() {
// OFFSET: 0x00A43BA0
// FUNCTION: fn_16046
void CUIGameSettingsUI::sub_A43BA0() {
void CUIGameSettingsUI::RefreshOptions() {
for (UIWindow* child : this->m_currentPage->m_children) {
static_cast<GameSettingsUI::CUIGroup*>(child)->Refresh();
}
@ -3790,7 +3790,7 @@ void CUIGameSettingsUI::sub_A43BA0() {
// OFFSET: 0x00A43C70
// FUNCTION: fn_16048
void CUIGameSettingsUI::sub_A43C70() {
void CUIGameSettingsUI::RefreshHotkeyLabels() {
for (GameSettingsUI::CUIListPage* page : this->m_pages) {
for (GameSettingsUI::CUIOptionItem* item : page->m_optionList->items) {
if (!item->geometry.visible) {
@ -4003,7 +4003,7 @@ void CUIGameSettingsUI::Slot15(int width, int height) {
CUIImageButton* baseButton = new CUIImageButton();
baseButton->SetSize(11, 11);
baseButton->Move(3, 3);
baseButton->SetOnClick([this]() { this->sub_A3F0F0(); });
baseButton->SetOnClick([this]() { this->OnTitleIconClick(); });
baseButton->disabled = 0;
baseButton->Invalidate();
{
@ -4087,13 +4087,13 @@ void CUIGameSettingsUI::Slot15(int width, int height) {
this->m_tab = new CUITab();
this->m_tab->SetSize(400, 18);
this->m_tab->Move(0, 17);
this->m_tab->SetOnChange([this](CUITabButton* button) { this->sub_A433D0(button); });
this->m_tab->SetOnChange([this](CUITabButton* button) { this->OnTabChanged(button); });
this->AddChild(this->m_tab);
CUITabButton* basicButton = new CUITabButton();
basicButton->SetSize(72, 18);
basicButton->Move(0, 0);
basicButton->SetOnClick([this]() { this->sub_A43380(); });
basicButton->SetOnClick([this]() { this->OnBasicTabClick(); });
basicButton->disabled = 0;
basicButton->Invalidate();
basicButton->SetId(0);
@ -4120,7 +4120,7 @@ void CUIGameSettingsUI::Slot15(int width, int height) {
CUITabButton* effectButton = new CUITabButton();
effectButton->SetSize(72, 18);
effectButton->Move(71, 0);
effectButton->SetOnClick([this]() { this->sub_A433A0(); });
effectButton->SetOnClick([this]() { this->OnEffectTabClick(); });
effectButton->disabled = 0;
effectButton->Invalidate();
effectButton->SetId(1);
@ -4147,7 +4147,7 @@ void CUIGameSettingsUI::Slot15(int width, int height) {
CUITabButton* controlButton = new CUITabButton();
controlButton->SetSize(72, 18);
controlButton->Move(142, 0);
controlButton->SetOnClick([this]() { this->sub_A43390(); });
controlButton->SetOnClick([this]() { this->OnControlTabClick(); });
controlButton->disabled = 0;
controlButton->Invalidate();
controlButton->SetId(2);
@ -4174,7 +4174,7 @@ void CUIGameSettingsUI::Slot15(int width, int height) {
CUITabButton* graphicsButton = new CUITabButton();
graphicsButton->SetSize(72, 18);
graphicsButton->Move(213, 0);
graphicsButton->SetOnClick([this]() { this->sub_A433C0(); });
graphicsButton->SetOnClick([this]() { this->OnGraphicsTabClick(); });
graphicsButton->disabled = 0;
graphicsButton->Invalidate();
graphicsButton->SetId(3);
@ -4201,7 +4201,7 @@ void CUIGameSettingsUI::Slot15(int width, int height) {
CUITabButton* etcButton = new CUITabButton();
etcButton->SetSize(72, 18);
etcButton->Move(284, 0);
etcButton->SetOnClick([this]() { this->sub_A433B0(); });
etcButton->SetOnClick([this]() { this->OnEtcTabClick(); });
etcButton->disabled = 0;
etcButton->Invalidate();
etcButton->SetId(4);

View file

@ -358,19 +358,19 @@ public:
void OnApply();
void OnCloseButton();
void OnTitleClose();
void sub_A3F0F0();
void sub_A421E0();
void sub_A433D0(UIWindow* window);
void OnTitleIconClick();
void UpdateApplyButton();
void OnTabChanged(UIWindow* window);
bool IsTab4Selected();
void SelectTab4();
void sub_A43380();
void sub_A43390();
void sub_A433A0();
void sub_A433B0();
void sub_A433C0();
void sub_A43590(int id);
__declspec(noinline) void sub_A43BA0();
void sub_A43C70();
void OnBasicTabClick();
void OnControlTabClick();
void OnEffectTabClick();
void OnEtcTabClick();
void OnGraphicsTabClick();
void RefreshOption(int id);
__declspec(noinline) void RefreshOptions();
void RefreshHotkeyLabels();
void ResetToDefaults();
/* 00D8 */ CUITitleBar* m_titleBar;

View file

@ -32,9 +32,9 @@ public:
bool SortReversed1();
bool SortReversed2();
bool SortReversed3();
bool sub_996950();
bool sub_996AF0();
bool sub_996C90();
bool UpdateItemNames1();
bool UpdateItemNames2();
bool UpdateItemNames3();
bool FilterByName1(std::string query);
bool FilterByName2(std::string query);
bool FilterByName3(std::string query);

View file

@ -95,7 +95,7 @@ void UISwapEquipmentWnd::Slot10(int x, int y, std::intptr_t value) {
// OFFSET: 0x0082FD90
// FUNCTION: fn_10391
void UISwapEquipmentWnd::sub_82FD90() {
void UISwapEquipmentWnd::DrawEquipmentSlots() {
this->unknown_00D0 = 0;
this->unknown_00C4 = 0;
this->unknown_00C8 = 0;
@ -339,7 +339,7 @@ void UISwapEquipmentWnd::Paint() {
const char* title = LookupMessage(3110);
this->DrawCenteredText(140, 4, title, std::strlen(title), 0, 12, 0x14234B, 0);
this->sub_82FD90();
this->DrawEquipmentSlots();
FuncDrawWNDChar drawer(
this,
@ -413,7 +413,7 @@ void UISwapEquipmentWnd::Slot25(int x, int y) {
} else if (g_windowMgr.GetHoverWindow()->geometry.id == 493) {
reinterpret_cast<UIChatEditCtrl*>(ChatWindow()->m_chatEdit)->InsertItemLink(item);
} else if (g_windowMgr.GetHoverWindow()->geometry.id == 491) {
reinterpret_cast<UIRodexComposeWnd*>(g_windowMgr.unknown_0458)->sub_7FF710(item);
reinterpret_cast<UIRodexComposeWnd*>(g_windowMgr.unknown_0458)->InsertItemTag(item);
} else if (g_windowMgr.GetHoverWindow()->geometry.id == 494) {
static_cast<UIChatEditCtrl*>(g_windowMgr.GetHoverWindow())->InsertItemLink(item);
}

View file

@ -34,7 +34,7 @@ public:
ITEM_INFO ItemAtPoint(int x, int y);
__declspec(noinline) ITEM_INFO GetSlotItem(int slot);
void SetSlotValue(int index, int value);
void sub_82FD90();
void DrawEquipmentSlots();
protected:
/* 00B4 */ std::uint32_t unknown_00B4;

View file

@ -66,13 +66,13 @@ std::string UIChatHisBox::ResolvePlayerTags(const char* name) {
}
}
this->sub_89C080();
this->RebuildHistory();
return result;
}
// OFFSET: 0x0089C080
// FUNCTION: fn_11581
__declspec(noinline) void UIChatHisBox::sub_89C080() {
__declspec(noinline) void UIChatHisBox::RebuildHistory() {
this->Clear();
this->ClearNaviLinks();

View file

@ -27,8 +27,8 @@ public:
void Clear() override;
virtual void AddText(const char* text, int color, const char* style);
void AddTextWrapped(const char* text, int color, const char* style);
void sub_89DC30(const char* text, int& color, int& mode);
void sub_89E0F0(const char* text, int& color, int& mode);
void AddItemLinkLine(const char* text, int& color, int& mode);
void AddNavigationLinkLine(const char* text, int& color, int& mode);
std::string RenderItemLinks(const char* lineText, std::string& source);
std::string RenderNavigationLinks(const char* text, std::string& source);
void RewrapLinkLines(std::vector<std::string>& wrapped, int& mode);
@ -45,7 +45,7 @@ public:
__declspec(noinline) void PlaceItemTags(int line);
void CopyHistory(const UIChatHisBox& other);
void Resize(int width, int height, bool flag);
void sub_89C080();
void RebuildHistory();
std::string ResolvePlayerTags(const char* name);
bool Name(const std::string& encoded, std::string& output);
bool Next(std::string& remaining, std::string& encoded, unsigned& position, const char* original);

View file

@ -499,7 +499,7 @@ void UIString::ParseTags(std::string text) {
// OFFSET: 0x008A0B10
// FUNCTION: fn_11630
void UIDescriptRace::sub_8A0B10() {
void UIDescriptRace::DrawRaceDescription() {
if (this->m_race == 1) {
if (!g_doramCreationEnabled) {
return;

View file

@ -172,9 +172,9 @@ void UIChatHisBox3::AddText(const char* text, int color) {
const auto* bytes = reinterpret_cast<const unsigned char*>(text);
if (_mbsstr(bytes, reinterpret_cast<const unsigned char*>(g_itemLinkTagBegin.c_str())) || _mbsstr(bytes, reinterpret_cast<const unsigned char*>(g_itemLinkTagEnd.c_str()))) {
this->sub_89DC30(text, color, mode);
this->AddItemLinkLine(text, color, mode);
} else if (g_navigationLinkParser->HasLink(std::string(text))) {
this->sub_89E0F0(text, color, mode);
this->AddNavigationLinkLine(text, color, mode);
} else {
this->UIListBox::AddLine(text);
}
@ -207,9 +207,9 @@ void UIChatHisBox::AddText(const char* text, int color, const char* style) {
const auto* bytes = reinterpret_cast<const unsigned char*>(text);
if (_mbsstr(bytes, reinterpret_cast<const unsigned char*>(g_itemLinkTagBegin.c_str())) || _mbsstr(bytes, reinterpret_cast<const unsigned char*>(g_itemLinkTagEnd.c_str()))) {
this->sub_89DC30(text, color, mode);
this->AddItemLinkLine(text, color, mode);
} else if (g_navigationLinkParser->HasLink(std::string(text))) {
this->sub_89E0F0(text, color, mode);
this->AddNavigationLinkLine(text, color, mode);
} else {
this->UIListBox::AddLine(text);
}
@ -508,7 +508,7 @@ void UIChatHisBox::CopyHistory(const UIChatHisBox& other) {
this->unknown_0100 = other.unknown_0100;
this->unknown_010C = other.unknown_010C;
this->unknown_0118 = other.unknown_0118;
this->sub_89C080();
this->RebuildHistory();
}
// OFFSET: 0x00875860

View file

@ -1246,7 +1246,7 @@ void UIChatHisBox::DropOldestRecords() {
}
this->unknown_0118.resize(half);
this->sub_89C080();
this->RebuildHistory();
}
// OFFSET: 0x0087CEC0
@ -2082,7 +2082,7 @@ void UIChatHisBox::RewrapLinkLines(std::vector<std::string>& wrapped, int& mode)
}
std::vector<std::string> split;
this->sub_8932D0(&mode, &split, wrapped[line]);
this->WrapLinkText(&mode, &split, wrapped[line]);
if (split.size() > 1) {
for (unsigned int part = 0; part < split.size(); ++part) {
if (part == 0) {
@ -2143,7 +2143,7 @@ void UIChatHisBox::RewrapLinkLines(std::vector<std::string>& wrapped, int& mode)
// OFFSET: 0x0089DC30
// FUNCTION: fn_11598
void UIChatHisBox::sub_89DC30(const char* text, int& color, int& mode) {
void UIChatHisBox::AddItemLinkLine(const char* text, int& color, int& mode) {
if (!_mbsstr(reinterpret_cast<const unsigned char*>(text), reinterpret_cast<const unsigned char*>(g_itemLinkTagBegin.c_str())) ||
!_mbsstr(reinterpret_cast<const unsigned char*>(text), reinterpret_cast<const unsigned char*>(g_itemLinkTagEnd.c_str()))) {
this->UIListBox::AddLine(text);
@ -2152,7 +2152,7 @@ void UIChatHisBox::sub_89DC30(const char* text, int& color, int& mode) {
std::vector<std::string> wrapped;
const std::string converted = this->Convert(text);
this->sub_8932D0(&mode, &wrapped, converted);
this->WrapLinkText(&mode, &wrapped, converted);
this->RewrapLinkLines(wrapped, mode);
std::string source = text;
for (unsigned int line = 0; line < wrapped.size(); ++line) {
@ -2167,7 +2167,7 @@ void UIChatHisBox::sub_89DC30(const char* text, int& color, int& mode) {
// OFFSET: 0x0089E0F0
// FUNCTION: fn_11599
void UIChatHisBox::sub_89E0F0(const char* text, int& color, int& mode) {
void UIChatHisBox::AddNavigationLinkLine(const char* text, int& color, int& mode) {
if (!g_navigationLinkParser->HasLink(text)) {
this->UIListBox::AddLine(text);
return;
@ -2176,7 +2176,7 @@ void UIChatHisBox::sub_89E0F0(const char* text, int& color, int& mode) {
std::vector<std::string> wrapped;
std::string display;
DisplayNavigationLink(display, text);
this->sub_8932D0(&mode, &wrapped, display);
this->WrapLinkText(&mode, &wrapped, display);
this->RewrapLinkLines(wrapped, mode);
std::string source = text;
for (unsigned int line = 0; line < wrapped.size(); ++line) {

View file

@ -354,10 +354,10 @@ int UITagListBox::SendMsg(UIWindow* sender, int message, std::intptr_t argument1
}
break;
case 29:
this->sub_9B9EA0(argument1, argument2, argument3, argument4);
this->AppendText(argument1, argument2, argument3, argument4);
return 0;
case 98:
this->sub_9BC0A0(argument1, sender);
this->OnTagClick(argument1, sender);
break;
default:
return UIListBox::SendMsg(sender, message, argument1, argument2, argument3, argument4);
@ -368,7 +368,7 @@ int UITagListBox::SendMsg(UIWindow* sender, int message, std::intptr_t argument1
// OFFSET: 0x009B9EA0
// FUNCTION: fn_13881
void UITagListBox::sub_9B9EA0(std::intptr_t argument1, std::intptr_t argument2, std::intptr_t argument3, std::intptr_t argument4) {
void UITagListBox::AppendText(std::intptr_t argument1, std::intptr_t argument2, std::intptr_t argument3, std::intptr_t argument4) {
char* text = reinterpret_cast<char*>(argument1);
const int width = static_cast<int>(argument2);
std::vector<std::string> lines;
@ -394,8 +394,8 @@ void UITagListBox::sub_9B9EA0(std::intptr_t argument1, std::intptr_t argument2,
}
} else {
std::vector<STagInfoV2> tags;
const std::string parsed = this->sub_9B8AA0(std::string(text), tags);
this->sub_9BB8E0(parsed, tags, width == 0 ? 35 : width);
const std::string parsed = this->ParseTaggedText(std::string(text), tags);
this->AppendTaggedLines(parsed, tags, width == 0 ? 35 : width);
}
this->unknown_00BC &= ~255;
@ -483,7 +483,7 @@ std::pair<std::string, std::string> UITagListBox::ParseTag(std::string text, int
// OFFSET: 0x009BC0A0
// FUNCTION: fn_13889
void UITagListBox::sub_9BC0A0(std::intptr_t type, UIWindow* sender) {
void UITagListBox::OnTagClick(std::intptr_t type, UIWindow* sender) {
UITagButton* button = static_cast<UITagButton*>(sender);
if (!button) {
return;
@ -509,7 +509,7 @@ void UITagListBox::sub_9BC0A0(std::intptr_t type, UIWindow* sender) {
}
tag += name;
g_navigationManager.sub_B995D0(tag, mode, false);
g_navigationManager.SearchNavigation(tag, mode, false);
} else {
const int flag = std::atoi(button->GetString(5).c_str());
const int id = std::atoi(button->GetString(6).c_str());
@ -522,10 +522,10 @@ void UITagListBox::sub_9BC0A0(std::intptr_t type, UIWindow* sender) {
const unsigned char group = code < 10 ? hundreds : static_cast<unsigned char>(hundreds + 2);
const int remainder = code < 10 ? code : code - 10;
const unsigned char kind = remainder < 1 ? group : static_cast<unsigned char>(group + 4);
g_navigationManager.sub_B99030(name.c_str(), mode, kind, flag == 0, x, y, id);
g_navigationManager.StartNavigation(name.c_str(), mode, kind, flag == 0, x, y, id);
}
} else {
g_navigationManager.sub_B99030(name.c_str(), 2, 5, false, x, y, 1002);
g_navigationManager.StartNavigation(name.c_str(), 2, 5, false, x, y, 1002);
}
break;
}
@ -540,7 +540,7 @@ void UITagListBox::sub_9BC0A0(std::intptr_t type, UIWindow* sender) {
// OFFSET: 0x009B8AA0
// FUNCTION: fn_13874
std::string UITagListBox::sub_9B8AA0(std::string text, std::vector<STagInfoV2>& tags) {
std::string UITagListBox::ParseTaggedText(std::string text, std::vector<STagInfoV2>& tags) {
std::vector<STagString> extracted = ExtractTextTags(text);
if (extracted.empty()) {
return text;
@ -606,7 +606,7 @@ int WrappedLineLength(const char* text, int length, int width) {
// OFFSET: 0x009BB8E0
// FUNCTION: fn_13888
void UITagListBox::sub_9BB8E0(std::string text, std::vector<STagInfoV2>& tags, int width) {
void UITagListBox::AppendTaggedLines(std::string text, std::vector<STagInfoV2>& tags, int width) {
const int firstLine = static_cast<int>(this->lines.size());
const char* buffer = text.c_str();
std::size_t position = 0;

View file

@ -31,11 +31,11 @@ public:
void Slot31(int x, int y) override;
int SendMsg(UIWindow* sender, int message, std::intptr_t argument1, std::intptr_t argument2, std::intptr_t argument3, std::intptr_t argument4) override;
void sub_9B9EA0(std::intptr_t argument1, std::intptr_t argument2, std::intptr_t argument3, std::intptr_t argument4);
void sub_9BC0A0(std::intptr_t type, UIWindow* sender);
std::string sub_9B8AA0(std::string text, std::vector<STagInfoV2>& tags);
void AppendText(std::intptr_t argument1, std::intptr_t argument2, std::intptr_t argument3, std::intptr_t argument4);
void OnTagClick(std::intptr_t type, UIWindow* sender);
std::string ParseTaggedText(std::string text, std::vector<STagInfoV2>& tags);
std::pair<std::string, std::string> ParseTag(std::string text, int tagIndex);
void sub_9BB8E0(std::string text, std::vector<STagInfoV2>& tags, int width);
void AppendTaggedLines(std::string text, std::vector<STagInfoV2>& tags, int width);
int DecodeNumber(std::string text);
void DecodeItemFields(const std::string& text, std::vector<int>& fields);
bool ItemFromFields(const std::vector<int>& fields, ITEM_INFO& item);

View file

@ -295,7 +295,7 @@ int UIMiniPartyInfoWnd::SendMsg(UIWindow* sender, int message, std::intptr_t arg
break;
case 61:
if (this->m_owner->GetMember().valid) {
g_windowMgr.sub_A8C4B0(this->m_owner->GetMember().accountId);
g_windowMgr.CloseMiniPartyWindow(this->m_owner->GetMember().accountId);
return 0;
}
break;

View file

@ -351,7 +351,7 @@ void CUIRewards::Slot16() {
// OFFSET: 0x00A55B70
// FUNCTION: fn_16313
void CUIOngoingQuestInfo::sub_A55B70() {
void CUIOngoingQuestInfo::UpdateHuntInfo() {
OngoingQuestInfo::CUIScrollWindow* window = this->scrollWindow;
const unsigned int questId = this->questId;
window->secondContents->textViewer->Clear();

View file

@ -22,7 +22,7 @@ public:
void OnFirstAction();
void OnClose();
virtual void Slot53();
void sub_A55B70();
void UpdateHuntInfo();
void SetQuest(unsigned int id);
/* 00D8 */ CUITitleBar* titleBar;

View file

@ -229,7 +229,7 @@ int UIQuestDisplay::SendMsg(UIWindow* sender, int message, std::intptr_t argumen
GetRagConnection().Send(reinterpret_cast<const PacketLengths&>(GetRagConnection()).FixedLength(packet.packetType), &packet);
this->Invalidate();
} else if (command == 49) {
g_renewQuestMgr->sub_67B620(it->first);
g_renewQuestMgr->ShowOngoingQuestInfo(it->first);
}
break;
}

View file

@ -856,7 +856,7 @@ void RenewQuestUI::CUIQuestItem::OnActiveStateChanged(bool active) {
if (this->questType == 2) {
g_renewQuestMgr->SetRecommendedQuestActive(this->questId, active);
if (auto* window = static_cast<CUIRenewQuestUI*>(g_windowMgr.LookupWindow(0x2718))) {
window->sub_A67290(this->questType);
window->UpdateQuestLists(this->questType);
}
g_renewQuestMgr->SaveRecommendedActiveList();
return;
@ -919,7 +919,7 @@ void CUIRenewQuestUI::Slot53() {
void CUIRenewQuestUI::OnFilterButton(UIWindow* button) {
if (button) {
this->filter = button->geometry.id;
this->sub_A67290(0xF);
this->UpdateQuestLists(0xF);
}
}
@ -993,7 +993,7 @@ void CUIRenewQuestUI::OnCallback56() {
// OFFSET: 0x00A66FF0
// FUNCTION: fn_16628
void CUIRenewQuestUI::sub_A66FF0(unsigned int questId) {
void CUIRenewQuestUI::SelectQuest(unsigned int questId) {
for (RenewQuestUI::CUIQuestList* list : this->questLists) {
CUIListBoxEx<RenewQuestUI::CUIQuestItem, unsigned long>* listBox = list->list;
auto node = listBox->data.begin();
@ -1194,7 +1194,7 @@ void RenewQuestUI::CUIQuestList::BindItem(CUIQuestItem* item, const unsigned lon
// OFFSET: 0x00A67290
// FUNCTION: fn_16629
void CUIRenewQuestUI::sub_A67290(unsigned int flags) {
void CUIRenewQuestUI::UpdateQuestLists(unsigned int flags) {
if (flags & 1) {
for (RenewQuestUI::CUIQuestList* list : this->questLists) {
if (list->type != 1) {
@ -2010,7 +2010,7 @@ void CUIRenewQuestUI::Slot15(int width, int height) {
this->searchEdit->SetAlignment(0);
this->searchEdit->SetOnSubmit([this]() {
this->searchText = this->searchEdit->edit->Text();
this->sub_A67290(0xF);
this->UpdateQuestLists(0xF);
});
this->AddChild(this->searchEdit);
@ -2019,7 +2019,7 @@ void CUIRenewQuestUI::Slot15(int width, int height) {
this->searchButton->Move(342, 416);
this->searchButton->SetOnClick([this]() {
this->searchText = this->searchEdit->edit->Text();
this->sub_A67290(0xF);
this->UpdateQuestLists(0xF);
});
this->searchButton->disabled = 0;
this->searchButton->Invalidate();
@ -2184,7 +2184,7 @@ void CUIRenewQuestUI::OnWaitTabClick() {
// FUNCTION: fn_45521
void CUIRenewQuestUI::OnSearchSubmit() {
this->searchText = this->searchEdit->edit->Text();
this->sub_A67290(0xF);
this->UpdateQuestLists(0xF);
}
// OFFSET: 0x00A66100
@ -2197,7 +2197,7 @@ void CUIRenewQuestUI::OnClose() {
// FUNCTION: fn_45520
void CUIRenewQuestUI::OnSearchButton() {
this->searchText = this->searchEdit->edit->Text();
this->sub_A67290(0xF);
this->UpdateQuestLists(0xF);
}
// OFFSET: 0x00A65AF0
@ -2228,7 +2228,7 @@ void CUIRenewQuestUI::Slot16() {
for (unsigned int index = 0; index < this->questLists.size(); ++index) {
this->questLists[index]->type = 1 << index;
}
this->sub_A67290(0xF);
this->UpdateQuestLists(0xF);
for (UIWindow* child : this->filterPanel->m_children) {
const std::string name = g_renewQuestMgr->GetFilterName(child->geometry.id);

View file

@ -85,8 +85,8 @@ public:
void OnCallback56();
void OnCallback74();
void OnCallback80();
void sub_A67290(unsigned int flags);
void sub_A66FF0(unsigned int questId);
void UpdateQuestLists(unsigned int flags);
void SelectQuest(unsigned int questId);
/* 00D8 */ CUITitleBar* titleBar;

View file

@ -131,7 +131,7 @@ void UINpcSprWnd::Paint() {
// FUNCTION: fn_09935
void UINpcSprWnd::Slot31(int, int) {
if (this->m_mapName.size() != 0) {
g_navigationManager.sub_B99030(this->m_mapName, 0, 5, false, this->m_destinationX, this->m_destinationY, 1002);
g_navigationManager.StartNavigation(this->m_mapName, 0, 5, false, this->m_destinationX, this->m_destinationY, 1002);
}
}

View file

@ -90,7 +90,7 @@ ITEM_INFO UIRodexComposeWnd::GetItemAtPoint(int x, int y) {
// OFFSET: 0x007FF710
// FUNCTION: fn_10003
void UIRodexComposeWnd::sub_7FF710(const ITEM_INFO& item) {
void UIRodexComposeWnd::InsertItemTag(const ITEM_INFO& item) {
if (!this->unknown_0100) {
this->unknown_0100 = new UIItemTagOnMail();
if (!this->unknown_0100) {
@ -108,12 +108,12 @@ void UIRodexComposeWnd::sub_7FF710(const ITEM_INFO& item) {
std::string appendResult = tagCtrl->AppendTag(item.DisplayName(0));
this->m_contents->SetText(appendResult.c_str());
this->m_contents->MoveCursorToEnd();
tagCtrl->sub_89CFE0(item, 0xd630a9);
tagCtrl->AddItemTag(item, 0xd630a9);
}
// OFFSET: 0x007FF940
// FUNCTION: fn_10004
void UIRodexComposeWnd::sub_7FF940(int tagId) {
void UIRodexComposeWnd::InsertSkillTag(int tagId) {
if (!this->unknown_0100) {
this->unknown_0100 = new UIItemTagOnMail();
if (!this->unknown_0100) {
@ -130,7 +130,7 @@ void UIRodexComposeWnd::sub_7FF940(int tagId) {
return;
}
std::string tagText = tagCtrl->sub_874A40(tagId, 0xd630a9);
std::string tagText = tagCtrl->AddSkillTag(tagId, 0xd630a9);
tagCtrl->taggedText = std::string(this->m_contents->Text());
std::string fullText = std::string(this->m_contents->Text()) + tagText;
@ -534,7 +534,7 @@ void UIRodexComposeWnd::Paint() {
auto* tagCtrl = static_cast<UIItemTagOnMail*>(this->unknown_0100);
tagCtrl->SetLines(this->m_contents->unknown_0168);
tagCtrl->SetTaggedText(this->m_contents->Text(), this->m_contents->geometry.width);
tagCtrl->sub_8962C0();
tagCtrl->UpdateItemTags();
auto* editCtrl3 = static_cast<UIEditCtrl3*>(this->unknown_0100);
int diff = editCtrl3->unknown_0150 - editCtrl3->unknown_0138;
this->m_contents->unknown_00F0 = std::max(0, diff);

View file

@ -41,8 +41,8 @@ public:
void Slot32(int x, int y) override;
void Paint() override;
int SendMsg(UIWindow* sender, int message, std::intptr_t argument1, std::intptr_t argument2, std::intptr_t argument3, std::intptr_t argument4) override;
void sub_7FF710(const ITEM_INFO& item);
void sub_7FF940(int tagId);
void InsertItemTag(const ITEM_INFO& item);
void InsertSkillTag(int tagId);
ITEM_INFO GetItemAtPoint(int x, int y);
int MeasureText(const std::string& text, const unsigned& bytes);
void SetRecipient(int id, unsigned short job, unsigned short level, const char* name);

View file

@ -396,7 +396,7 @@ void UIRodexInboxWnd::Paint() {
if (!g_rodexMailStore->unknown_001C) {
this->DrawBitmap(0x1F, 0x9A, reinterpret_cast<const BitmapImage*>(ResourceMgr::Instance().Load(Resolve("유저인터페이스\\basic_interface\\rodexsystem\\renewal\\img_notice.bmp"))), true);
this->sub_A84400(0x1F, 0xE5, std::string(LookupMessage(0xC76)), 0xF8, 3, 6, 0, 12, 0, 0);
this->DrawWrappedFormattedText(0x1F, 0xE5, std::string(LookupMessage(0xC76)), 0xF8, 3, 6, 0, 12, 0, 0);
this->DrawCenteredText(0x1F, 0x10E, LookupMessage(0xC77), 0xF8, 0, 0x12, 0xC89482, 1);
return;
}

View file

@ -1075,7 +1075,7 @@ void UIDecomlist::Paint() {
std::memset(text, 0, sizeof(text));
int capacity = sizeof(text);
item.sub_6D5810(text, capacity, 0);
item.GetIdDisplayName(text, capacity, 0);
this->DrawTextAt(57, y + 8, text, 0, 0, 13, 0, 0, 0);
this->DrawTextAt(58, y + 28, FormatOwnedString("%d", item.quantity).c_str(), 0, 0, 13, 0, 0, 0);
}

View file

@ -642,7 +642,7 @@ void UIRoMapWnd::Slot31(int x, int y) {
}
g_navigationMinimized = false;
g_navigationManager.sub_B995D0(name, 0, false);
g_navigationManager.SearchNavigation(name, 0, false);
if (g_windowMgr.window_4F174) {
static_cast<UINavigationV4Wnd*>(g_windowMgr.window_4F174)->SelectRoute(0);
static_cast<UINavigationV4Wnd*>(g_windowMgr.window_4F174)->SelectRouteNode(0);
@ -1407,7 +1407,7 @@ void UINewChatWnd::Slot15(int width, int height) {
int subIndex = 0;
for (std::map<int, SubChatWndInfo>::iterator it = g_session.m_subChatWnds.begin(); it != g_session.m_subChatWnds.end(); ++it, ++subIndex) {
g_windowMgr.sub_A97580(subIndex, it->second.x, it->second.y, it->second.width, it->second.height);
g_windowMgr.OpenSubChatWindow(subIndex, it->second.x, it->second.y, it->second.width, it->second.height);
}
this->m_chatEdit = new UIChatEditCtrl();

View file

@ -1416,7 +1416,7 @@ int CCreateLineInfo::ParseItemName(int index) {
char name[260];
std::memset(name, 0, sizeof(name));
int capacity = sizeof(name);
item.sub_6D5810(name, capacity, 0);
item.GetIdDisplayName(name, capacity, 0);
this->AddSegment(LINE_SEGMENT_TEXT);
this->AppendText(std::string(name));
index += static_cast<int>(digits.size()) + 9;
@ -1770,7 +1770,7 @@ void OpenTextButtonNavigation(UITextButton* button) {
const int x = std::atoi(button->GetLine(1).c_str());
const int y = std::atoi(button->GetLine(2).c_str());
if (button->m_lines.size() <= 3) {
g_navigationManager.sub_B99030(name, 2, 5, false, x, y, 1002);
g_navigationManager.StartNavigation(name, 2, 5, false, x, y, 1002);
return;
}
@ -1783,7 +1783,7 @@ void OpenTextButtonNavigation(UITextButton* button) {
}
tag += name;
g_navigationManager.sub_B995D0(tag, mode, false);
g_navigationManager.SearchNavigation(tag, mode, false);
return;
}
@ -1798,7 +1798,7 @@ void OpenTextButtonNavigation(UITextButton* button) {
const unsigned char group = code < 10 ? hundreds : static_cast<unsigned char>(hundreds + 2);
const int remainder = code < 10 ? code : code - 10;
const unsigned char kind = remainder < 1 ? group : static_cast<unsigned char>(group + 4);
g_navigationManager.sub_B99030(name, mode, kind, flag == 0, x, y, id);
g_navigationManager.StartNavigation(name, mode, kind, flag == 0, x, y, id);
}
// OFFSET: 0x0083BAF0

View file

@ -129,7 +129,7 @@ void UIWindow::WrapPixelText(const char* text, std::vector<std::string>& lines,
// OFFSET: 0x008932D0
// FUNCTION: fn_11504
void UIWindow::sub_8932D0(int* kind, std::vector<std::string>* lines, const std::string& text) {
void UIWindow::WrapLinkText(int* kind, std::vector<std::string>* lines, const std::string& text) {
const char* characters = text.c_str();
if (*kind != 3) {
this->WrapPixelText(characters, *lines, this->geometry.width - 16);

View file

@ -101,7 +101,7 @@ void WrapRichText(
char name[260];
int capacity = sizeof(name);
item.sub_6D5810(name, capacity, 0);
item.GetIdDisplayName(name, capacity, 0);
lines.push_back(name);
}
} else {

View file

@ -53,7 +53,7 @@ UIAchievementWnd::~UIAchievementWnd() {
// OFFSET: 0x007B37F0
// FUNCTION: fn_09205
void UIAchListWnd::sub_7B37F0(int index) {
void UIAchListWnd::SelectAchievement(int index) {
this->selectedIndex = index;
if (this->parent) {
@ -168,7 +168,7 @@ std::string UIAchTab::Label(int group, int sub) {
// OFFSET: 0x007B4370
// FUNCTION: fn_09211
bool UIAchTab::sub_7B4370(int x, int y, int* a, int* b) {
bool UIAchTab::HitTestTab(int x, int y, int* a, int* b) {
if (x < 0 || x > this->tabWidth || y < 0) {
return false;
}
@ -665,7 +665,7 @@ void UIToolTipBitmapWnd::Paint() {
void UIAchTab::Slot27(int x, int y) {
int group = 0;
int sub = 0;
this->sub_7B4370(x, y, &group, &sub);
this->HitTestTab(x, y, &group, &sub);
this->hoverGroup = group;
this->hoverSub = sub;
this->Invalidate();
@ -787,7 +787,7 @@ void UIAchListWnd::UpdateScroll() {
// OFFSET: 0x007B7F10
// FUNCTION: fn_09242
void UIAchTab::sub_7B7F10() {
void UIAchTab::UpdateScrollBar() {
if (!this->scrollBar) {
return;
}
@ -863,7 +863,7 @@ int UIAchTab::SendMsg(UIWindow*, int message, std::intptr_t argument1, std::intp
}
if (previous != this->scrollPos) {
this->sub_7B7F10();
this->UpdateScrollBar();
this->Invalidate();
}

View file

@ -67,7 +67,7 @@ public:
/* 00AC */ UIAchListInfo* unknown_00AC;
void Create(int width, int height, int rows);
void sub_7B37F0(int index);
void SelectAchievement(int index);
__declspec(noinline) void SetAchievements(std::map<int, AchievementInfo>* achievements, int mode);
__declspec(noinline) void UpdateScroll();
@ -116,8 +116,8 @@ public:
void ClearGroups();
void DrawGroup(int group);
__declspec(noinline) std::string Label(int group, int sub);
__declspec(noinline) bool sub_7B4370(int x, int y, int* a, int* b);
__declspec(noinline) void sub_7B7F10();
__declspec(noinline) bool HitTestTab(int x, int y, int* a, int* b);
__declspec(noinline) void UpdateScrollBar();
void Refresh();
void SetLabel(const char* text, int group, int sub);

View file

@ -7,7 +7,7 @@
// FUNCTION: fn_12915
void UIStaticText_LF::Paint() {
this->ClearSurface(0xFFFF00FF);
this->sub_A84400(
this->DrawWrappedFormattedText(
0, 0,
*reinterpret_cast<const std::string*>(reinterpret_cast<const char*>(this) + 0x7C),
this->geometry.width,

View file

@ -116,7 +116,7 @@ void UIAchListWnd::Slot25(int x, int y) {
return;
}
this->sub_7B37F0(this->unknown_008C + row);
this->SelectAchievement(this->unknown_008C + row);
g_windowMgr.SetCapture(this);
}
@ -138,7 +138,7 @@ void UIAchTV::Slot25(int, int) {
void UIAchTab::Slot25(int x, int y) {
int a = 0;
int b = 0;
if (!this->sub_7B4370(x, y, &a, &b)) {
if (!this->HitTestTab(x, y, &a, &b)) {
return;
}
@ -149,7 +149,7 @@ void UIAchTab::Slot25(int x, int y) {
this->parent->Invalidate();
}
this->sub_7B7F10();
this->UpdateScrollBar();
this->Invalidate();
g_windowMgr.SetCapture(this);
}
@ -337,7 +337,7 @@ int UITextViewEX::SendMsg(UIWindow* sender, int message, std::intptr_t argument1
// OFFSET: 0x00874A40
// FUNCTION: fn_11193
std::string UIItemTagCtrl::sub_874A40(int tagId, unsigned int color) {
std::string UIItemTagCtrl::AddSkillTag(int tagId, unsigned int color) {
std::string label;
const std::string title = g_itemTagOwner->Title(tagId, &label, 17);

View file

@ -63,7 +63,7 @@ __forceinline void UITextViewer::Activate(UITextButton* button, int id) {
}
name += map;
g_navigationManager.sub_B995D0(name, type, 0);
g_navigationManager.SearchNavigation(name, type, 0);
break;
}
@ -85,9 +85,9 @@ __forceinline void UITextViewer::Activate(UITextButton* button, int id) {
flag += 4;
}
g_navigationManager.sub_B99030(map.c_str(), type, flag, option == 0, x, y, target);
g_navigationManager.StartNavigation(map.c_str(), type, flag, option == 0, x, y, target);
} else {
g_navigationManager.sub_B99030(map.c_str(), 2, 5, false, x, y, 1002);
g_navigationManager.StartNavigation(map.c_str(), 2, 5, false, x, y, 1002);
}
break;
@ -336,7 +336,7 @@ int UITextViewer::SendMsg(UIWindow* sender, int message, std::intptr_t argument1
if (policy == -222) {
std::string name = type == 3 ? "$$DB " : "";
name += map;
g_navigationManager.sub_B995D0(name, type, 0);
g_navigationManager.SearchNavigation(name, type, 0);
break;
}
const int option = std::atoi(button->GetLine(5).c_str());
@ -345,9 +345,9 @@ int UITextViewer::SendMsg(UIWindow* sender, int message, std::intptr_t argument1
if (policy >= 100) { flag = 1; policy -= 100; }
if (policy >= 10) { flag += 2; policy -= 10; }
if (policy >= 1) { flag += 4; }
g_navigationManager.sub_B99030(map.c_str(), type, flag, option == 0, x, y, target);
g_navigationManager.StartNavigation(map.c_str(), type, flag, option == 0, x, y, target);
} else {
g_navigationManager.sub_B99030(map.c_str(), 2, 5, false, x, y, 1002);
g_navigationManager.StartNavigation(map.c_str(), 2, 5, false, x, y, 1002);
}
}
break;

View file

@ -287,7 +287,7 @@ void UICheckAttendanceWnd::Slot28(int x, int y) {
char name[260];
std::memset(name, 0, sizeof(name));
int capacity = sizeof(name);
item.sub_6D5810(name, capacity, 0);
item.GetIdDisplayName(name, capacity, 0);
if (std::strlen(name) != 0) {
int tipX = 0;
int tipY = -20;

View file

@ -225,9 +225,9 @@ void UIGradeEnchantWnd::Paint() {
this->DrawBitmap(152, 62, reinterpret_cast<const BitmapImage*>(ResourceMgr::Instance().Load(Resolve(FormatOwnedString("유저인터페이스\\grade_enchant\\caution.bmp").c_str()))), true);
this->DrawBitmap(152, 78, reinterpret_cast<const BitmapImage*>(ResourceMgr::Instance().Load(Resolve(FormatOwnedString("유저인터페이스\\grade_enchant\\caution.bmp").c_str()))), true);
this->sub_A85850(166, 46, LookupMessage(3870), 228, 0, 0x00A0ADC, 0, 0, 11, 1, 0);
this->sub_A85850(166, 62, LookupMessage(3871), 228, 0, 0x5AEB00, 0, 0, 11, 1, 0);
this->sub_A85850(166, 78, LookupMessage(3872), 228, 0, 0x5AEB00, 0, 0, 11, 1, 0);
this->DrawAlignedText(166, 46, LookupMessage(3870), 228, 0, 0x00A0ADC, 0, 0, 11, 1, 0);
this->DrawAlignedText(166, 62, LookupMessage(3871), 228, 0, 0x5AEB00, 0, 0, 11, 1, 0);
this->DrawAlignedText(166, 78, LookupMessage(3872), 228, 0, 0x5AEB00, 0, 0, 11, 1, 0);
}
if (this->state == 1 || this->state == 2) {
@ -250,23 +250,23 @@ void UIGradeEnchantWnd::Paint() {
for (const GradeEnchantMaterial& material : this->materials) {
ITEM_INFO itemInfo;
itemInfo.SetItemId(material.itemId);
itemInfo.sub_6D5810(description, capacity, 0);
itemInfo.GetIdDisplayName(description, capacity, 0);
DrawItemIcon(*this, ResourceMgr::Instance(), 170, y - 9, itemInfo, 0);
std::string text = FormatOwnedString(LookupMessage(3553), description, material.amount);
this->sub_A85850(203, y, text, 180, 0, 0, 0, 0, 11, 0, 0);
this->DrawAlignedText(203, y, text, 180, 0, 0, 0, 0, 11, 0, 0);
y += 40;
}
if (this->info.unknown_0000 > 0) {
ITEM_INFO itemInfo;
itemInfo.SetItemId(this->info.unknown_0000);
itemInfo.sub_6D5810(description, capacity, 0);
itemInfo.GetIdDisplayName(description, capacity, 0);
DrawItemIcon(*this, ResourceMgr::Instance(), 195, 228, itemInfo, 0);
std::string text = FormatOwnedString(LookupMessage(3553), description, this->unknown_0114);
this->sub_A85850(228, 237, text, 160, 0, 0xFFFFFF, 0, 0, 11, 1, 1);
this->DrawAlignedText(228, 237, text, 160, 0, 0xFFFFFF, 0, 0, 11, 1, 1);
}
this->sub_7E7050();
this->UpdateEnchantMessages();
const int count = static_cast<int>(this->unknown_011C.size());
for (int i = 0; i < 3; ++i) {
@ -275,15 +275,15 @@ void UIGradeEnchantWnd::Paint() {
this->DrawBitmap(152, itemY, reinterpret_cast<const BitmapImage*>(ResourceMgr::Instance().Load(Resolve(FormatOwnedString("유저인터페이스\\grade_enchant\\caution.bmp").c_str()))), true);
const int msgId = this->unknown_011C[i];
if (msgId == 3711 || msgId == 3822) {
this->sub_A85850(166, itemY, LookupMessage(msgId), 228, 0, 0x5AEB00, 0, 0, 11, 1, 0);
this->DrawAlignedText(166, itemY, LookupMessage(msgId), 228, 0, 0x5AEB00, 0, 0, 11, 1, 0);
} else {
this->sub_A85850(166, itemY, LookupMessage(msgId), 228, 0, 0x00A0ADC, 0, 0, 11, 1, 0);
this->DrawAlignedText(166, itemY, LookupMessage(msgId), 228, 0, 0x00A0ADC, 0, 0, 11, 1, 0);
}
}
}
std::string zeny = FormatOwnedString("%d", this->SelectedMaterialZeny());
this->sub_A85850(307, 303, zeny, 120, 2, 0, 0, 0, 16, 1, 0);
this->DrawAlignedText(307, 303, zeny, 120, 2, 0, 0, 0, 16, 1, 0);
}
if (this->state == 2) {
@ -301,7 +301,7 @@ void UIGradeEnchantWnd::Paint() {
if (this->state == 1 || this->state == 2) {
std::string rate = FormatOwnedString("%d%%", this->SuccessRate());
this->sub_A85850(39, 88, rate, 74, 6, 0xFFFFFF, 0, 29, 28, 1, 1);
this->DrawAlignedText(39, 88, rate, 74, 6, 0xFFFFFF, 0, 29, 28, 1, 1);
}
}
@ -667,7 +667,7 @@ void UIGradeEnchantWnd::SetResult(int state, int result) {
// OFFSET: 0x007E7050
// FUNCTION: fn_09748
void UIGradeEnchantWnd::sub_7E7050() {
void UIGradeEnchantWnd::UpdateEnchantMessages() {
this->unknown_011C.clear();
if (this->state != 1) {
return;

View file

@ -72,7 +72,7 @@ public:
void ResetItem();
int SelectedMaterialZeny();
int SuccessRate();
void sub_7E7050();
void UpdateEnchantMessages();
void SetEnchantInfo(
short index, int value, int materialCount, GradeEnchantInfo info, int value0108, int value010C, const GradeEnchantMaterial* materials
);

View file

@ -26,7 +26,7 @@ public:
void Slot35(int argument) override;
void Paint() override;
void Click(int button, int unused);
void sub_6028C0(std::uint32_t id);
void SetIngredientItem(std::uint32_t id);
/* 00B8 */ ITEM_INFO item;
/* 01B0 */ unsigned char selected;

View file

@ -528,7 +528,7 @@ void UILapineBoxWnd::SetIngredient(int id) {
char name[0x104];
std::memset(name, 0, sizeof(name));
int capacity = 0x104;
item.sub_6D5810(name, capacity, 0);
item.GetIdDisplayName(name, capacity, 0);
this->title.assign(name, std::strlen(name));
}
@ -574,7 +574,7 @@ void UILapineBoxWnd::AddMaterial(int id, int quantity) {
// OFFSET: 0x006028C0
// FUNCTION: fn_04183
void UIIngredientInfoWnd::sub_6028C0(std::uint32_t id) {
void UIIngredientInfoWnd::SetIngredientItem(std::uint32_t id) {
this->item = LookupClientItemByIdentity(g_session.m_inventoryItems, id);
std::vector<char*> breaks;

Some files were not shown because too many files have changed in this diff Show more