Decompile fn_18348 (?AddNeededSkill@?A0xf8bc354c@@YAHPAUlua_State@@@Z)
Batch #12490 by cremane: 0 byte-identical, 1 confirmed by peer review. - fn_18348 ?AddNeededSkill@?A0xf8bc354c@@YAHPAUlua_State@@@Z: logic confirmed by peer review Peer-reviewed-by: Yommy, gordaoprogramas, dori Accepted without human review: peers confirmed the logic ("same" ahead by at least 3, with 70% of the votes).
This commit is contained in:
parent
f00a4f0331
commit
98d93b74b5
1 changed files with 8 additions and 9 deletions
|
|
@ -1,3 +1,4 @@
|
|||
#include "Client/Session.h"
|
||||
#include "Contents/Skills/PlayerSkillBundle.h"
|
||||
#include "Contents/Skills/SkillTreeScript.h"
|
||||
|
||||
|
|
@ -6,16 +7,15 @@ extern "C" {
|
|||
}
|
||||
|
||||
#include <cstdint>
|
||||
#include <cstring>
|
||||
|
||||
CSkillInfo* FindGroupedSkill(CSession& session, std::uint32_t id);
|
||||
|
||||
namespace {
|
||||
// INLINED
|
||||
CPlayerSkillBundle& Bundle(lua_State* state) {
|
||||
return *static_cast<CPlayerSkillBundle*>(lua_touserdata(state, lua_upvalueindex(1)));
|
||||
}
|
||||
|
||||
// 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);
|
||||
|
|
@ -23,8 +23,7 @@ namespace {
|
|||
const int value = static_cast<int>(luaL_checknumber(state, 5));
|
||||
const double last = luaL_checknumber(state, 6);
|
||||
|
||||
if (*name && position != -1 && value != -1) {
|
||||
CSkillInfo skill(0);
|
||||
if (std::strcmp(name, "") != 0 && position != -1 && value != -1) {
|
||||
skill.available = 1;
|
||||
skill.name = name;
|
||||
skill.unknown_0024 = position;
|
||||
|
|
@ -36,7 +35,7 @@ namespace {
|
|||
skill.unknown_001C = 0;
|
||||
skill.unknown_0034 = 0;
|
||||
skill.unknown_002C = static_cast<int>(last);
|
||||
Bundle(state).AddGrouped(static_cast<int>(group), skill);
|
||||
g_session.m_skillBundle.AddGrouped(static_cast<int>(group), skill);
|
||||
}
|
||||
|
||||
return 1;
|
||||
|
|
@ -50,7 +49,7 @@ namespace {
|
|||
const int level = static_cast<int>(luaL_checknumber(state, 3));
|
||||
|
||||
if (id != -1 && needed != -1 && level != -1) {
|
||||
CSkillInfo* skill = Bundle(state).FindGrouped(static_cast<std::uint32_t>(id));
|
||||
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)});
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue