Maintenance: Link-completeness fixes so the whole client links into one executable (all units in data/compile.json plus exe-only thir

Batch #13186 by ragnarok-clanker: forced by an admin (40 lower score(s), 206 changed function(s)); checked with 620 compiled unit(s), including every includer of Source/Archive/GPak.h, Source/Client/Mode/CGameMode.h, Source/Client/Mode/CLoginMode.h, Source/Client/Session.h, Source/Client/Stove/StoveMgr.h, Source/Client/Stove/StovePCSDK.h, Source/Client/Timer.h, Source/Contents/Actors/GameActor.h, Source/Contents/Actors/RenderObject.h, Source/Contents/CashEmotionMgr.h, Source/Contents/Configuration/ServiceOptions.h, Source/Contents/Skills/SkillTreeScript.h, Source/Render/DX9/D3DX9Runtime.h, Source/Resource/GifResource.h, Source/UI/AdventureGuide/UIAdventureGuide.h, Source/UI/Cooldowns/CooldownOwner.h, Source/UI/Edit/UIEditBoxEx.h, Source/UI/Lists/UIListBoxTemplate.h, Source/UI/Quest/UIRenewQuestUI.h, Source/UI/Rodex/UIRodexComposeWnd.h, Source/UI/Text/UITextViewerControl.h, Source/UI/UIBroadcastBalloon.h, Source/UI/UICaptchaRegisterWnd.h, Source/UI/UIMacroDetectorWnd.h, Source/UI/UIReputeWnd.h, Source/UI/Window/UIRegisterMgr.h, Source/UI/Window/UISecondCostumeWnd.h, Source/UI/Window/UISelCharForUServerWnd.h, Source/UI/Window/UIWindow.h, Source/UI/Window/UIWindowMgr.h, Source/Utility/EncryptedName.h.
This commit is contained in:
ragnarok-clanker 2026-11-06 10:56:48 +00:00
commit fec919b88e
110 changed files with 1184 additions and 940 deletions

View file

@ -11,52 +11,50 @@ extern "C" {
CSkillInfo* FindGroupedSkill(CSession& session, std::uint32_t id);
namespace {
// OFFSET: 0x00AFEE00
// FUNCTION: fn_18349
int AddSkill(lua_State* state) {
CSkillInfo skill(0);
const double group = luaL_checknumber(state, 1);
const double id = luaL_checknumber(state, 2);
const char* name = luaL_checkstring(state, 3);
const int position = static_cast<int>(luaL_checknumber(state, 4));
const int value = static_cast<int>(luaL_checknumber(state, 5));
const double last = luaL_checknumber(state, 6);
// OFFSET: 0x00AFEE00
// FUNCTION: fn_18349
int AddSkill(lua_State* state) {
CSkillInfo skill(0);
const double group = luaL_checknumber(state, 1);
const double id = luaL_checknumber(state, 2);
const char* name = luaL_checkstring(state, 3);
const int position = static_cast<int>(luaL_checknumber(state, 4));
const int value = static_cast<int>(luaL_checknumber(state, 5));
const double last = luaL_checknumber(state, 6);
if (std::strcmp(name, "") != 0 && position != -1 && value != -1) {
skill.level = 0;
skill.unknown_0014 = 0;
skill.unknown_001C = 0;
skill.unknown_0018 = 0;
skill.available = 1;
skill.name = name;
skill.unknown_0024 = position;
skill.unknown_0028 = value;
skill.id = static_cast<std::uint32_t>(static_cast<int>(id));
skill.unknown_0034 = 0;
skill.unknown_002C = static_cast<int>(last);
g_session.m_skillBundle.AddGrouped(static_cast<int>(group), skill);
}
return 1;
if (std::strcmp(name, "") != 0 && position != -1 && value != -1) {
skill.level = 0;
skill.unknown_0014 = 0;
skill.unknown_001C = 0;
skill.unknown_0018 = 0;
skill.available = 1;
skill.name = name;
skill.unknown_0024 = position;
skill.unknown_0028 = value;
skill.id = static_cast<std::uint32_t>(static_cast<int>(id));
skill.unknown_0034 = 0;
skill.unknown_002C = static_cast<int>(last);
g_session.m_skillBundle.AddGrouped(static_cast<int>(group), skill);
}
// OFFSET: 0x00AFED50
// FUNCTION: fn_18348
int AddNeededSkill(lua_State* state) {
const int id = static_cast<int>(luaL_checknumber(state, 1));
const int needed = static_cast<int>(luaL_checknumber(state, 2));
const int level = static_cast<int>(luaL_checknumber(state, 3));
return 1;
}
if (id != -1 && needed != -1 && level != -1) {
CSkillInfo* skill = FindGroupedSkill(g_session, static_cast<std::uint32_t>(id));
if (skill && skill->available) {
skill->entries.push_back({static_cast<std::uint32_t>(needed), static_cast<std::uint32_t>(level)});
}
// OFFSET: 0x00AFED50
// FUNCTION: fn_18348
int AddNeededSkill(lua_State* state) {
const int id = static_cast<int>(luaL_checknumber(state, 1));
const int needed = static_cast<int>(luaL_checknumber(state, 2));
const int level = static_cast<int>(luaL_checknumber(state, 3));
if (id != -1 && needed != -1 && level != -1) {
CSkillInfo* skill = FindGroupedSkill(g_session, static_cast<std::uint32_t>(id));
if (skill && skill->available) {
skill->entries.push_back({static_cast<std::uint32_t>(needed), static_cast<std::uint32_t>(level)});
}
return 1;
}
return 1;
}
// INLINED