Decompile 22 functions in Source/Contents/Skills/SkillInfo.cpp, Source/Contents/Skills/SkillInfo.h
Batch #1769 by Yommy: 0 byte-identical, 22 confirmed by peer review. - fn_08327 CEfstAction_ChangeSize::Slot01: logic confirmed by peer review - fn_08328 CEfstAction_ChangeSize::Slot02: logic confirmed by peer review - fn_08331 CEfstAction_GenderChange::Slot02: logic confirmed by peer review - fn_08334 CEfstAction_ShowEffect::Slot02: logic confirmed by peer review - fn_08335 CSkillAction_RA_UNLIMIT::Slot08: logic confirmed by peer review - fn_08339 CEfstAction_UNLIMIT::Slot02: logic confirmed by peer review - fn_08346 CEfstAction_SHADOW_WEAPON::Slot03: logic confirmed by peer review - fn_08347 CEfstAction_SHADOW_WEAPON::Slot04: logic confirmed by peer review - fn_08359 CEfstAction_DANCING_KNIFE::Slot02: logic confirmed by peer review - fn_08366 CEfstAction_SHADOW_EXCEED::Slot01: logic confirmed by peer review - fn_08367 CEfstAction_SHADOW_EXCEED::Slot02: logic confirmed by peer review - fn_08368 CEfstAction_SHADOW_EXCEED::Slot03: logic confirmed by peer review - fn_08369 CEfstAction_SHADOW_EXCEED::Slot04: logic confirmed by peer review - fn_08404 CSkillActionMgr::ActionSlot01: logic confirmed by peer review - fn_08405 CellWorldPosition: logic confirmed by peer review - fn_08406 CSkillActionMgr::EfstSlot03: logic confirmed by peer review - fn_08407 CSkillActionMgr::EfstSlot04: logic confirmed by peer review - fn_08408 CSkillActionMgr::ActionSlot14: logic confirmed by peer review - fn_08409 CSkillActionMgr::ActionSlot02: logic confirmed by peer review - fn_08410 CSkillActionMgr::ActionSlot03: logic confirmed by peer review - fn_08411 CSkillActionMgr::ActionSlot04: logic confirmed by peer review - fn_08412 CSkillActionMgr::HasEfstAction: logic confirmed by peer review Reviewed-by: ragnarok-clanker
This commit is contained in:
parent
43198220b9
commit
5a44997d9c
1 changed files with 137 additions and 0 deletions
|
|
@ -479,30 +479,91 @@ bool ShowsCastEffect(int skillId) {
|
|||
}
|
||||
|
||||
// OFFSET: 0x007747B0
|
||||
// FUNCTION: fn_08327
|
||||
void CEfstAction_ChangeSize::Slot01(int efstId, int argument2, int argument3, int argument4, CRenderObject* actor) {
|
||||
if (actor) {
|
||||
g_effectMgr->Retire(actor->render.accountId, 2374);
|
||||
}
|
||||
}
|
||||
|
||||
// OFFSET: 0x007747E0
|
||||
// FUNCTION: fn_08328
|
||||
void CEfstAction_ChangeSize::Slot02(int efstId, int value, int argument3, int argument4, CRenderObject* actor) {
|
||||
this->Slot00(efstId, value, 0, 0, actor, false);
|
||||
}
|
||||
|
||||
// OFFSET: 0x00774E20
|
||||
// FUNCTION: fn_08331
|
||||
void CEfstAction_GenderChange::Slot02(int efstId, int value, int argument3, int argument4, CRenderObject* actor) {
|
||||
this->Slot00(efstId, value, 0, 0, actor, false);
|
||||
}
|
||||
|
||||
// OFFSET: 0x00774F30
|
||||
// FUNCTION: fn_08334
|
||||
void CEfstAction_ShowEffect::Slot02(int efstId, int value, int argument3, int argument4, CRenderObject* actor) {
|
||||
this->Slot00(efstId, value, 0, 0, actor, false);
|
||||
}
|
||||
|
||||
// OFFSET: 0x00774FB0
|
||||
// FUNCTION: fn_08335
|
||||
void CSkillAction_RA_UNLIMIT::Slot08(int level, CGameActor* source) {
|
||||
g_soundMgr->PlayWave("effect\\EF_BeginSpell.wav", 0.0f, 0.0f, 0.0f, 250, 40, 1.0f, 0);
|
||||
}
|
||||
|
||||
// OFFSET: 0x007756D0
|
||||
// FUNCTION: fn_08339
|
||||
void CEfstAction_UNLIMIT::Slot02(int efstId, int value, int argument3, int argument4, CRenderObject* actor) {
|
||||
this->Slot00(efstId, value, 0, 0, actor, false);
|
||||
}
|
||||
|
||||
// OFFSET: 0x007764E0
|
||||
// FUNCTION: fn_08346
|
||||
EfstActionMessage CEfstAction_SHADOW_WEAPON::Slot03() {
|
||||
return {LookupMessage(3766), 0xFFFF00};
|
||||
}
|
||||
|
||||
// OFFSET: 0x00776510
|
||||
// FUNCTION: fn_08347
|
||||
EfstActionMessage CEfstAction_SHADOW_WEAPON::Slot04() {
|
||||
return {LookupMessage(3767), 0xFF};
|
||||
}
|
||||
|
||||
// OFFSET: 0x00777910
|
||||
// FUNCTION: fn_08359
|
||||
void CEfstAction_DANCING_KNIFE::Slot02(int efstId, int value, int argument3, int argument4, CRenderObject* actor) {
|
||||
this->Slot00(efstId, value, 0, 0, actor, false);
|
||||
}
|
||||
|
||||
// OFFSET: 0x00777E80
|
||||
// FUNCTION: fn_08366
|
||||
void CEfstAction_SHADOW_EXCEED::Slot01(int efstId, int argument2, int argument3, int argument4, CRenderObject* actor) {
|
||||
if (!actor) {
|
||||
return;
|
||||
}
|
||||
|
||||
auto* effectActor = static_cast<EffectActor*>(actor);
|
||||
while (effectActor->state.Attachments().HasId(1004)) {
|
||||
actor->SendObjectMessage(nullptr, 109, 0, 1004, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
// OFFSET: 0x00777EE0
|
||||
// FUNCTION: fn_08367
|
||||
void CEfstAction_SHADOW_EXCEED::Slot02(int efstId, int value, int argument3, int argument4, CRenderObject* actor) {
|
||||
this->Slot00(efstId, value, 0, 0, actor, true);
|
||||
}
|
||||
|
||||
// OFFSET: 0x00777F00
|
||||
// FUNCTION: fn_08368
|
||||
EfstActionMessage CEfstAction_SHADOW_EXCEED::Slot03() {
|
||||
return {LookupMessage(3762), 0xFFFF00};
|
||||
}
|
||||
|
||||
// OFFSET: 0x00777F30
|
||||
// FUNCTION: fn_08369
|
||||
EfstActionMessage CEfstAction_SHADOW_EXCEED::Slot04() {
|
||||
return {LookupMessage(3763), 0xFF};
|
||||
}
|
||||
|
||||
// OFFSET: 0x00778140
|
||||
// FUNCTION: fn_08371
|
||||
|
|
@ -523,19 +584,95 @@ bool CSkillAction_ABC_ABYSS_FLAME_ATK::Slot03(int argument) {
|
|||
}
|
||||
|
||||
// OFFSET: 0x0077ACC0
|
||||
// FUNCTION: fn_08404
|
||||
std::pair<bool, int> CSkillActionMgr::ActionSlot01(int skillId) {
|
||||
const auto found = this->m_skillActions.find(skillId);
|
||||
std::unique_ptr<CSkillAction> action(found != this->m_skillActions.end() ? found->second() : nullptr);
|
||||
if (!action) {
|
||||
return {false, 8};
|
||||
}
|
||||
|
||||
return {true, action->Slot01()};
|
||||
}
|
||||
|
||||
// OFFSET: 0x0077AD90
|
||||
// FUNCTION: fn_08405
|
||||
EffectVector3 CellWorldPosition(int column, int row) {
|
||||
if (!g_world.ActiveGameMode() || !static_cast<CGameMode*>(g_world.ActiveGameMode())->scene ||
|
||||
!static_cast<CGameMode*>(g_world.ActiveGameMode())->scene->terrain) {
|
||||
return EffectVector3{0.0f, 0.0f, 0.0f};
|
||||
}
|
||||
|
||||
float x = 0.0f;
|
||||
float y = 0.0f;
|
||||
float z = 0.0f;
|
||||
static_cast<CGameMode*>(g_world.ActiveGameMode())->scene->terrain->Grid().CellOrigin(column, row, x, z);
|
||||
y = static_cast<CGameMode*>(g_world.ActiveGameMode())->scene->terrain->Grid().Height(x, z);
|
||||
return EffectVector3{x + 2.5f, y + 0.0f, z + 2.5f};
|
||||
}
|
||||
|
||||
// OFFSET: 0x0077AEA0
|
||||
// FUNCTION: fn_08406
|
||||
EfstActionMessage CSkillActionMgr::EfstSlot03(int efstId) {
|
||||
const auto found = this->m_efstActions.find(efstId);
|
||||
std::unique_ptr<CEfstAction> action(found != this->m_efstActions.end() ? found->second() : nullptr);
|
||||
if (!action) {
|
||||
return {nullptr, 0xFFFF00};
|
||||
}
|
||||
|
||||
return action->Slot03();
|
||||
}
|
||||
|
||||
// OFFSET: 0x0077AF80
|
||||
// FUNCTION: fn_08407
|
||||
EfstActionMessage CSkillActionMgr::EfstSlot04(int efstId) {
|
||||
const auto found = this->m_efstActions.find(efstId);
|
||||
std::unique_ptr<CEfstAction> action(found != this->m_efstActions.end() ? found->second() : nullptr);
|
||||
if (!action) {
|
||||
return {nullptr, 0xFF};
|
||||
}
|
||||
|
||||
return action->Slot04();
|
||||
}
|
||||
|
||||
// OFFSET: 0x0077B060
|
||||
// FUNCTION: fn_08408
|
||||
int CSkillActionMgr::ActionSlot14(int skillId) {
|
||||
const auto found = this->m_skillActions.find(skillId);
|
||||
std::unique_ptr<CSkillAction> action(found != this->m_skillActions.end() ? found->second() : nullptr);
|
||||
return action ? action->Slot14() : 0;
|
||||
}
|
||||
|
||||
// OFFSET: 0x0077B210
|
||||
// FUNCTION: fn_08409
|
||||
std::pair<bool, int> CSkillActionMgr::ActionSlot02(int skillId) {
|
||||
const auto found = this->m_skillActions.find(skillId);
|
||||
std::unique_ptr<CSkillAction> action(found != this->m_skillActions.end() ? found->second() : nullptr);
|
||||
if (!action) {
|
||||
return {false, 7};
|
||||
}
|
||||
|
||||
return {true, action->Slot02()};
|
||||
}
|
||||
|
||||
// OFFSET: 0x0077B2E0
|
||||
// FUNCTION: fn_08410
|
||||
bool CSkillActionMgr::ActionSlot03(int skillId, int argument) {
|
||||
const auto found = this->m_skillActions.find(skillId);
|
||||
std::unique_ptr<CSkillAction> action(found != this->m_skillActions.end() ? found->second() : nullptr);
|
||||
return action ? action->Slot03(argument) : false;
|
||||
}
|
||||
|
||||
// OFFSET: 0x0077B3A0
|
||||
// FUNCTION: fn_08411
|
||||
bool CSkillActionMgr::ActionSlot04(int skillId) {
|
||||
const auto found = this->m_skillActions.find(skillId);
|
||||
std::unique_ptr<CSkillAction> action(found != this->m_skillActions.end() ? found->second() : nullptr);
|
||||
return action ? action->Slot04() : false;
|
||||
}
|
||||
|
||||
// OFFSET: 0x0077B460
|
||||
// FUNCTION: fn_08412
|
||||
bool CSkillActionMgr::HasEfstAction(int efstId) {
|
||||
return this->m_efstActions.find(efstId) != this->m_efstActions.end();
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue