Decompile 3 functions in Source/Contents/Skills/SkillInfo.cpp, Source/Contents/Skills/SkillInfo.h
Batch #1771 by Yommy: 3 byte-identical, 0 confirmed by peer review. - fn_08371 CSkillAction_ABC_CHASING_BREAK::Slot07: byte-identical - fn_08375 CSkillAction_ABC_CHASING_SHOT::Slot07: byte-identical - fn_08385 CSkillAction_ABC_ABYSS_FLAME_ATK::Slot03: byte-identical Merged automatically: every function is byte-identical to the original.
This commit is contained in:
parent
996f026515
commit
be749d87c8
2 changed files with 214 additions and 2 deletions
|
|
@ -1,11 +1,83 @@
|
|||
#include "Client/Mode/ActiveGameMode.h"
|
||||
#include "Client/Mode/CGameMode.h"
|
||||
#include "Contents/Actors/GameActor.h"
|
||||
#include "Contents/Configuration/ServiceOptions.h"
|
||||
#include "Contents/Effects/EffectActor.h"
|
||||
#include "Contents/Effects/EffectLists.h"
|
||||
#include "Contents/Effects/EffectPrimitiveState.h"
|
||||
#include "Contents/MessageTable.h"
|
||||
#include "Contents/Skills/SkillId.h"
|
||||
#include "Contents/Skills/SkillInfo.h"
|
||||
#include "Contents/Sound/SoundMgr.h"
|
||||
#include "Contents/UserData/NormalItemSlots.h"
|
||||
#include "Contents/World/WorldScene.h"
|
||||
#include "Resource/World/TerrainResource.h"
|
||||
#include "Script/LuaScript.h"
|
||||
|
||||
#include <cstdlib>
|
||||
#include <cstring>
|
||||
#include <memory>
|
||||
|
||||
class CEfstAction_ChangeSize : public CEfstAction {
|
||||
public:
|
||||
void Slot01(int efstId, int argument2, int argument3, int argument4, CRenderObject* actor) override;
|
||||
void Slot02(int efstId, int value, int argument3, int argument4, CRenderObject* actor) override;
|
||||
};
|
||||
|
||||
class CEfstAction_GenderChange : public CEfstAction {
|
||||
public:
|
||||
void Slot02(int efstId, int value, int argument3, int argument4, CRenderObject* actor) override;
|
||||
};
|
||||
|
||||
class CEfstAction_ShowEffect : public CEfstAction {
|
||||
public:
|
||||
void Slot02(int efstId, int value, int argument3, int argument4, CRenderObject* actor) override;
|
||||
};
|
||||
|
||||
class CSkillAction_RA_UNLIMIT : public CSkillAction {
|
||||
public:
|
||||
void Slot08(int level, CGameActor* source) override;
|
||||
};
|
||||
|
||||
class CEfstAction_UNLIMIT : public CEfstAction {
|
||||
public:
|
||||
void Slot02(int efstId, int value, int argument3, int argument4, CRenderObject* actor) override;
|
||||
};
|
||||
|
||||
class CEfstAction_SHADOW_WEAPON : public CEfstAction {
|
||||
public:
|
||||
EfstActionMessage Slot03() override;
|
||||
EfstActionMessage Slot04() override;
|
||||
};
|
||||
|
||||
class CEfstAction_DANCING_KNIFE : public CEfstAction {
|
||||
public:
|
||||
void Slot02(int efstId, int value, int argument3, int argument4, CRenderObject* actor) override;
|
||||
};
|
||||
|
||||
class CEfstAction_SHADOW_EXCEED : public CEfstAction {
|
||||
public:
|
||||
void Slot01(int efstId, int argument2, int argument3, int argument4, CRenderObject* actor) override;
|
||||
void Slot02(int efstId, int value, int argument3, int argument4, CRenderObject* actor) override;
|
||||
EfstActionMessage Slot03() override;
|
||||
EfstActionMessage Slot04() override;
|
||||
};
|
||||
|
||||
class CSkillAction_ABC_CHASING_BREAK : public CSkillAction {
|
||||
public:
|
||||
bool Slot07() override;
|
||||
};
|
||||
|
||||
class CSkillAction_ABC_CHASING_SHOT : public CSkillAction {
|
||||
public:
|
||||
bool Slot07() override;
|
||||
};
|
||||
|
||||
class CSkillAction_ABC_ABYSS_FLAME_ATK : public CSkillAction {
|
||||
public:
|
||||
bool Slot03(int argument) override;
|
||||
};
|
||||
|
||||
// GLOBAL: gl_24640
|
||||
CSkillActionMgr* g_skillActionMgr;
|
||||
|
||||
|
|
@ -405,3 +477,65 @@ bool ShowsCastEffect(int skillId) {
|
|||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
// OFFSET: 0x007747B0
|
||||
|
||||
// OFFSET: 0x007747E0
|
||||
|
||||
// OFFSET: 0x00774E20
|
||||
|
||||
// OFFSET: 0x00774F30
|
||||
|
||||
// OFFSET: 0x00774FB0
|
||||
|
||||
// OFFSET: 0x007756D0
|
||||
|
||||
// OFFSET: 0x007764E0
|
||||
|
||||
// OFFSET: 0x00776510
|
||||
|
||||
// OFFSET: 0x00777910
|
||||
|
||||
// OFFSET: 0x00777E80
|
||||
|
||||
// OFFSET: 0x00777EE0
|
||||
|
||||
// OFFSET: 0x00777F00
|
||||
|
||||
// OFFSET: 0x00777F30
|
||||
|
||||
// OFFSET: 0x00778140
|
||||
// FUNCTION: fn_08371
|
||||
bool CSkillAction_ABC_CHASING_BREAK::Slot07() {
|
||||
return true;
|
||||
}
|
||||
|
||||
// OFFSET: 0x00778580
|
||||
// FUNCTION: fn_08375
|
||||
bool CSkillAction_ABC_CHASING_SHOT::Slot07() {
|
||||
return true;
|
||||
}
|
||||
|
||||
// OFFSET: 0x007794D0
|
||||
// FUNCTION: fn_08385
|
||||
bool CSkillAction_ABC_ABYSS_FLAME_ATK::Slot03(int argument) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// OFFSET: 0x0077ACC0
|
||||
|
||||
// OFFSET: 0x0077AD90
|
||||
|
||||
// OFFSET: 0x0077AEA0
|
||||
|
||||
// OFFSET: 0x0077AF80
|
||||
|
||||
// OFFSET: 0x0077B060
|
||||
|
||||
// OFFSET: 0x0077B210
|
||||
|
||||
// OFFSET: 0x0077B2E0
|
||||
|
||||
// OFFSET: 0x0077B3A0
|
||||
|
||||
// OFFSET: 0x0077B460
|
||||
|
|
|
|||
|
|
@ -6,16 +6,83 @@
|
|||
#include <functional>
|
||||
#include <map>
|
||||
#include <new>
|
||||
#include <utility>
|
||||
#include <vector>
|
||||
|
||||
class CEfstAction;
|
||||
class CGameActor;
|
||||
class CRenderObject;
|
||||
class CSkillObjectAction;
|
||||
class LuaScript;
|
||||
struct EffectVector3;
|
||||
struct NormalItemSlot;
|
||||
|
||||
struct EfstActionMessage {
|
||||
/* 0000 */ const char* text;
|
||||
/* 0004 */ std::uint32_t color;
|
||||
};
|
||||
|
||||
class CSkillAction {
|
||||
public:
|
||||
virtual bool Slot00() = 0;
|
||||
virtual bool Slot00() {
|
||||
return false;
|
||||
}
|
||||
virtual int Slot01() {
|
||||
return 8;
|
||||
}
|
||||
virtual int Slot02() {
|
||||
return 7;
|
||||
}
|
||||
virtual bool Slot03(int argument) {
|
||||
return false;
|
||||
}
|
||||
virtual bool Slot04() {
|
||||
return false;
|
||||
}
|
||||
virtual bool Slot05() {
|
||||
return false;
|
||||
}
|
||||
virtual bool Slot06() {
|
||||
return false;
|
||||
}
|
||||
virtual bool Slot07() {
|
||||
return false;
|
||||
}
|
||||
virtual void Slot08(int level, CGameActor* source) {
|
||||
}
|
||||
virtual void Slot09(int argument1, int argument2, int argument3) {
|
||||
}
|
||||
virtual void Slot10(int argument1, int argument2, int argument3, int argument4, int argument5) {
|
||||
}
|
||||
virtual void Slot11(int level, CGameActor* source, CGameActor* target) {
|
||||
}
|
||||
virtual void Slot12(int argument1, int argument2, int argument3, int argument4, int argument5) {
|
||||
}
|
||||
virtual bool Slot13() {
|
||||
return false;
|
||||
}
|
||||
virtual int Slot14() {
|
||||
return 0;
|
||||
}
|
||||
virtual void Slot15(int level, CGameActor* source, CGameActor* target) {
|
||||
}
|
||||
virtual void Slot16(int level, CGameActor* source, CGameActor* target) {
|
||||
}
|
||||
};
|
||||
|
||||
class CEfstAction {
|
||||
public:
|
||||
virtual void Slot00(int efstId, int value, int argument3, int argument4, CRenderObject* actor, bool argument6) {
|
||||
}
|
||||
virtual void Slot01(int efstId, int argument2, int argument3, int argument4, CRenderObject* actor) {
|
||||
}
|
||||
virtual void Slot02(int efstId, int value, int argument3, int argument4, CRenderObject* actor) {
|
||||
}
|
||||
virtual EfstActionMessage Slot03() {
|
||||
return {nullptr, 0xFFFF00};
|
||||
}
|
||||
virtual EfstActionMessage Slot04() {
|
||||
return {nullptr, 0xFF};
|
||||
}
|
||||
};
|
||||
|
||||
struct SkillInfoEntry {
|
||||
|
|
@ -68,6 +135,14 @@ public:
|
|||
static CSkillActionMgr* GetInstance();
|
||||
|
||||
bool IsSupportAction(int skillId);
|
||||
std::pair<bool, int> ActionSlot01(int skillId);
|
||||
std::pair<bool, int> ActionSlot02(int skillId);
|
||||
int ActionSlot14(int skillId);
|
||||
bool ActionSlot03(int skillId, int argument);
|
||||
bool ActionSlot04(int skillId);
|
||||
EfstActionMessage EfstSlot03(int efstId);
|
||||
EfstActionMessage EfstSlot04(int efstId);
|
||||
bool HasEfstAction(int efstId);
|
||||
};
|
||||
|
||||
extern CSkillActionMgr* g_skillActionMgr;
|
||||
|
|
@ -85,6 +160,7 @@ bool IsOptionalSelfTargetSkill(int skillId);
|
|||
bool HidesUseFailureMessage(int skillId);
|
||||
bool IsSupportSkill(int skillId);
|
||||
bool ShowsCastEffect(int skillId);
|
||||
EffectVector3 CellWorldPosition(int column, int row);
|
||||
static_assert(sizeof(SkillInfoEntry) == 8);
|
||||
#if defined(_WIN32) && !defined(_WIN64)
|
||||
static_assert(offsetof(SkillInfoEntry, unknown_0004) == 0x4);
|
||||
|
|
@ -93,6 +169,8 @@ static_assert(offsetof(CSkillActionMgr, m_efstActions) == 0x0C);
|
|||
static_assert(offsetof(CSkillActionMgr, m_skillObjectActions) == 0x14);
|
||||
static_assert(sizeof(CSkillActionMgr) == 0x1C);
|
||||
static_assert(sizeof(CSkillAction) == 4);
|
||||
static_assert(sizeof(CEfstAction) == 4);
|
||||
static_assert(sizeof(EfstActionMessage) == 8);
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue