mirror of
https://github.com/SunsetMkt/Akebi-GC.git
synced 2025-09-19 20:16:01 +08:00
292 lines
5.1 KiB
C++
292 lines
5.1 KiB
C++
#include "pch-il2cpp.h"
|
|
#include "AnimationChanger.h"
|
|
|
|
#include <helpers.h>
|
|
#include <cheat/events.h>
|
|
#include <misc/cpp/imgui_stdlib.h>
|
|
#include <cheat/game/EntityManager.h>
|
|
|
|
namespace cheat::feature
|
|
{
|
|
static std::string f_Animation;
|
|
|
|
AnimationChanger::AnimationChanger() : Feature(),
|
|
NFEX(f_Enabled, "Animation Changer", "AnimationChanger", "Visuals", false, false)
|
|
{
|
|
events::GameUpdateEvent += MY_METHOD_HANDLER(AnimationChanger::OnGameUpdate);
|
|
}
|
|
|
|
const FeatureGUIInfo& AnimationChanger::GetGUIInfo() const
|
|
{
|
|
static const FeatureGUIInfo info{ "AnimationChanger", "Visuals", false };
|
|
return info;
|
|
}
|
|
|
|
void AnimationChanger::DrawMain()
|
|
{
|
|
ConfigWidget(f_Enabled, "Changes active character's animation.");
|
|
ImGui::InputText("Animation", &f_Animation);
|
|
}
|
|
|
|
bool AnimationChanger::NeedStatusDraw() const
|
|
{
|
|
return f_Enabled;
|
|
}
|
|
|
|
void AnimationChanger::DrawStatus()
|
|
{
|
|
ImGui::Text("AnimationChanger");
|
|
}
|
|
|
|
AnimationChanger& AnimationChanger::GetInstance()
|
|
{
|
|
static AnimationChanger instance;
|
|
return instance;
|
|
}
|
|
|
|
void AnimationChanger::OnGameUpdate()
|
|
{
|
|
auto& manager = game::EntityManager::instance();
|
|
auto avatar = manager.avatar();
|
|
if (avatar->animator() == nullptr)
|
|
return;
|
|
|
|
static bool changed = false;
|
|
|
|
if (f_Enabled)
|
|
{
|
|
auto avatarObj = avatar->gameObject();
|
|
auto rootObj = app::MoleMole_BaseEntity_get_rootGameObject(avatar->raw(), nullptr); // (Clone)
|
|
auto path = app::Object_1_get_name(reinterpret_cast<app::Object_1*>(avatarObj), nullptr);
|
|
auto pathavatarObj = app::Object_1_get_name(reinterpret_cast<app::Object_1*>(rootObj), nullptr); // (Clone)
|
|
|
|
if (!changed)
|
|
{
|
|
app::Animator_Play(avatar->animator(), string_to_il2cppi(f_Animation.c_str()), 0, 0, nullptr);
|
|
changed = true;
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
if (changed)
|
|
{
|
|
app::Animator_Rebind(avatar->animator(), nullptr);
|
|
changed = false;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/*
|
|
//------Animations------\\
|
|
SlipFaceWall
|
|
SlipBackWall
|
|
DropDown
|
|
JumpOffWall
|
|
Jump
|
|
JumpForRun
|
|
JumpForWalk
|
|
Fly
|
|
FlyStart
|
|
JumpForSprint
|
|
SwimIdle
|
|
SwimMove
|
|
SwimDash
|
|
ClimbMove1
|
|
ClimbIdle
|
|
ClimbJump
|
|
ClimbMove0
|
|
FallToGroundRun
|
|
FallOnGroundLit
|
|
FallOnGround
|
|
FallToGroundRunHard
|
|
FallToGroundSprint
|
|
Walk
|
|
Run
|
|
Standby
|
|
RunToIdle
|
|
RunToWalk
|
|
WalkToIdle
|
|
WalkToRun
|
|
Sprint
|
|
SprintToIdle
|
|
SprintToRun
|
|
ClimbDownToGround
|
|
SprintBS
|
|
ShowUp
|
|
CrouchToStandby
|
|
CrouchIdle
|
|
CrouchRoll
|
|
CrouchMove
|
|
SkiffNormal
|
|
Upstairs
|
|
JumpUpWallForStandby
|
|
JumpUpWallReady
|
|
Standby2ClimbA
|
|
SwimJump
|
|
SwimJumpDrop
|
|
SwimJumpToWater
|
|
Standby2ClimbB
|
|
CrouchDrop
|
|
TurnDir
|
|
StandbyWeapon
|
|
StandbyPutaway
|
|
StandbyPutawayOver
|
|
Icespine_Out
|
|
Icespine
|
|
LiquidStrike_MoveStandby
|
|
LiquidStrike_AS
|
|
LiquidStrike_BS
|
|
LiquidStrike_BS1
|
|
LiquidStrike_Move
|
|
LiquidStrike_Strike
|
|
LiquidStrike_FatalStandby
|
|
LiquidStrike_FatalMove
|
|
LiquidStrike_AS_OnWater
|
|
LiquidStrike_BS_0
|
|
FrozenWindmill
|
|
FrozenWindmill_AS
|
|
Attack03
|
|
Attack04
|
|
Attack05
|
|
Attack01
|
|
Attack02
|
|
ExtraAttack
|
|
ExtraAttack_AS
|
|
FallingAnthem_Loop
|
|
FallingAnthem_AS_2
|
|
FallingAnthem_BS_1
|
|
FallingAnthem_BS_2
|
|
FallingAnthem_AS_1
|
|
FallingAnthem_Loop_Low
|
|
SitBDown
|
|
SitBLoop
|
|
SitBUp
|
|
SitDown
|
|
SitLoop
|
|
SitUp
|
|
StandbyShow_01
|
|
StandbyShow_02
|
|
StandbyVoice
|
|
Think01BS
|
|
Think01Loop
|
|
Think01AS
|
|
Akimbo02BS
|
|
Akimbo02Loop
|
|
Akimbo02AS
|
|
ChannelBS
|
|
ChannelLoop
|
|
ChannelAS
|
|
PlayMusic_Lyre_AS
|
|
PlayMusic_Lyre_BS
|
|
PlayMusic_Lyre_Loop
|
|
PlayMusic_Qin_BS
|
|
PlayMusic_Qin_AS
|
|
PlayMusic_Qin_Loop
|
|
ActivitySkill_ElectricCoreFly
|
|
Hit_H
|
|
Hit_L
|
|
Hit_Throw
|
|
Hit_Throw_Ground
|
|
Hit_ThrowAir
|
|
Struggle
|
|
NormalDie
|
|
SwimDie
|
|
HitGroundDie
|
|
FallDie_AS
|
|
FallDie
|
|
|
|
//------Main Character------\\
|
|
UziExplode_AS
|
|
UziExplode_BS
|
|
UziExplode_Charge_01
|
|
UziExplode_Strike_02
|
|
UziExplode_Charge_02
|
|
UziExplode_Strike_01
|
|
UziExplode_BS_1
|
|
WindBreathe_AS
|
|
WindBreathe
|
|
Hogyoku_AS
|
|
Hogyoku_BS
|
|
Hogyoku
|
|
Hogyoku_Charge
|
|
Hogyoku_Charge_AS
|
|
Hogyoku_Charge_2
|
|
RockTide_AS
|
|
RockTide
|
|
CrouchThrowBS
|
|
CrouchThrowLoop
|
|
CrouchThrowAS
|
|
FindCatThrowBS
|
|
FindCatThrowLoop
|
|
FindCatThrowAS
|
|
Player_Electric_ElementalArt
|
|
Player_Electric_ElementalArt_AS
|
|
Player_Electric_ElementalBurst
|
|
Player_Electric_ElementalBurst_AS
|
|
PutHand01BS
|
|
PutHand01Loop
|
|
PutHand01AS
|
|
Akimbo01BS
|
|
Backrake01BS
|
|
Forerake01BS
|
|
StrikeChest01BS
|
|
Akimbo01Loop
|
|
Akimbo01AS
|
|
Backrake01Loop
|
|
Backrake01AS
|
|
Forerake01Loop
|
|
Forerake01AS
|
|
StrikeChest01Loop
|
|
StrikeChest01AS
|
|
HoldHead01BS
|
|
HoldHead01Loop
|
|
HoldHead01AS
|
|
Clap01
|
|
Turn01_90LBS
|
|
Turn01_90RBS
|
|
Turn01_90LAS
|
|
Turn01_90RAS
|
|
Alert01BS
|
|
Alert01Loop
|
|
Alert01AS
|
|
Fishing01_BS
|
|
Fishing01Loop
|
|
Fishing01AS
|
|
Think01_BS
|
|
Think01_Loop
|
|
Think01_AS
|
|
Channel01BS
|
|
Channel01Loop
|
|
Channel01AS
|
|
Fishing_Battle_BS
|
|
Fishing_Cast_AS
|
|
Fishing_Cast_BS
|
|
Fishing_Cast_Loop
|
|
Fishing_Choose
|
|
Fishing_Choose_Loop
|
|
Fishing_End
|
|
Fishing_Pull_01
|
|
Fishing_Pull_02
|
|
Fishing_Wait
|
|
Fishing_Pull_Fail
|
|
Bartender_MixingStandby
|
|
Bartender_MixingStart
|
|
Bartender_MixingToPour
|
|
Bartender_Pour
|
|
Bartender_PourFinish
|
|
Bartender_PourStandby
|
|
Bartender_AddLoop
|
|
Bartender_PrepareStart
|
|
Bartender_Standby
|
|
Bartender_AddStandby
|
|
Bartender_PrepareToStandby
|
|
Bartender_StandbyFinish
|
|
Blocking_BS
|
|
Blocking_Loop
|
|
Blocking_Back
|
|
Blocking_Bounce
|
|
Blocking_Hit
|
|
Blocking_AS
|
|
*/ |