mirror of
https://github.com/jugeeya/UltimateTrainingModpack.git
synced 2024-11-20 00:46:34 +00:00
Fix left-facing effects (FLIP_COLOR), add import macro
This commit is contained in:
parent
0738d15edd
commit
a3ae55f65e
1 changed files with 15 additions and 10 deletions
|
@ -19,6 +19,10 @@
|
|||
#include "l2c.h"
|
||||
#include "saltysd_helper.h"
|
||||
|
||||
u64 ANCHOR_REL;
|
||||
u64 ANCHOR_ABS;
|
||||
#define IMPORT(x) (x - ANCHOR_REL + ANCHOR_ABS)
|
||||
|
||||
u32 __nx_applet_type = AppletType_None;
|
||||
|
||||
static char g_heap[0x8000];
|
||||
|
@ -55,6 +59,9 @@ __int64_t (*app_sv_animcmd_EFFECT)(__int64_t);
|
|||
// app::sv::animcmd::EFFECT_FOLLOW_FLIP_COLOR(lua_State* a1)
|
||||
__int64_t (*app_sv_animcmd_EFFECT_FOLLOW_FLIP_COLOR)(__int64_t);
|
||||
|
||||
// app::sv::animcmd::EFFECT_FOLLOW_COLOR(lua_State* a1)
|
||||
__int64_t (*app_sv_animcmd_EFFECT_FOLLOW_COLOR)(__int64_t);
|
||||
|
||||
void __libnx_init(void* ctx, Handle main_thread, void* saved_lr)
|
||||
{
|
||||
extern char* fake_heap_start;
|
||||
|
@ -103,7 +110,6 @@ void _ZN3app10sv_animcmd6ATTACKEP9lua_State_replace(__int64_t a1) {
|
|||
lua_replace((lua_State*) l2c_agent.lua_state_agent, 4);
|
||||
*/
|
||||
|
||||
|
||||
// Get all necessary hitbox params
|
||||
L2CValue bone;
|
||||
get_lua_stack(&l2c_agent, 3, &bone);
|
||||
|
@ -133,13 +139,10 @@ void _ZN3app10sv_animcmd6ATTACKEP9lua_State_replace(__int64_t a1) {
|
|||
get_lua_stack(&l2c_agent, 15, &z2);
|
||||
|
||||
v1 = a1;
|
||||
u64 attack_code_addr = SaltySDCore_FindSymbol("_ZN3app10sv_animcmd6ATTACKEP9lua_State");
|
||||
void (*sub_71019420D0)(__int64_t, __int64_t) = (void (*)(__int64_t, __int64_t))(attack_code_addr + 96);
|
||||
void (*sub_71019420D0)(__int64_t, __int64_t) = (void (*)(__int64_t, __int64_t))(IMPORT(0x71019420D0));
|
||||
sub_71019420D0(*(__int64_t *)(*(__int64_t *)(a1 - 8) + 416LL), a1);
|
||||
|
||||
// EFFECT_FOLLOW_COLOR(Graphic, Bone, Z, Y, X, ZRot, YRot, XRot, Size, unknown=0x1, Red, Green, Blue)
|
||||
// FIRST, to test, let's assume single hitbox, not extended, so ignore x2,y2,z2.
|
||||
// EFFECT_FOLLOW_FLIP_COLOR(GFXLeft,GFXRight,Bone, Z, Y, X, ZRot, YRot, XRot, Size,Terminate,unknown,R,G,B)
|
||||
float sizeMult = 19.0 / 200.0;
|
||||
Hash40 shieldEffectHash = {.hash = 0xAFAE75F05LL};
|
||||
|
||||
|
@ -171,7 +174,6 @@ void _ZN3app10sv_animcmd6ATTACKEP9lua_State_replace(__int64_t a1) {
|
|||
|
||||
lib_L2CAgent_clear_lua_stack(&l2c_agent);
|
||||
lib_L2CAgent_push_lua_stack(&l2c_agent, &shieldEffect);
|
||||
lib_L2CAgent_push_lua_stack(&l2c_agent, &shieldEffect);
|
||||
lib_L2CAgent_push_lua_stack(&l2c_agent, &bone);
|
||||
lib_L2CAgent_push_lua_stack(&l2c_agent, &currX);
|
||||
lib_L2CAgent_push_lua_stack(&l2c_agent, &currY);
|
||||
|
@ -181,11 +183,10 @@ void _ZN3app10sv_animcmd6ATTACKEP9lua_State_replace(__int64_t a1) {
|
|||
lib_L2CAgent_push_lua_stack(&l2c_agent, &zRot);
|
||||
lib_L2CAgent_push_lua_stack(&l2c_agent, &effectSize);
|
||||
lib_L2CAgent_push_lua_stack(&l2c_agent, &unkParam);
|
||||
lib_L2CAgent_push_lua_stack(&l2c_agent, &unkParam);
|
||||
lib_L2CAgent_push_lua_stack(&l2c_agent, &red);
|
||||
lib_L2CAgent_push_lua_stack(&l2c_agent, &green);
|
||||
lib_L2CAgent_push_lua_stack(&l2c_agent, &blue);
|
||||
app_sv_animcmd_EFFECT_FOLLOW_FLIP_COLOR(l2c_agent.lua_state_agent);
|
||||
app_sv_animcmd_EFFECT_FOLLOW_COLOR(l2c_agent.lua_state_agent);
|
||||
}
|
||||
|
||||
// clear_lua_stack section
|
||||
|
@ -204,14 +205,18 @@ int main(int argc, char *argv[])
|
|||
{
|
||||
SaltySD_printf("SaltySD Plugin: alive\n");
|
||||
|
||||
// get necessary functions
|
||||
// Get anchor for imports
|
||||
ANCHOR_REL = 0x7101942070;
|
||||
ANCHOR_ABS = SaltySDCore_FindSymbol("_ZN3app10sv_animcmd6ATTACKEP9lua_State");
|
||||
|
||||
// Get necessary functions
|
||||
lib_L2CAgent = (__int64_t (*)(__int64_t*, __int64_t))(SaltySDCore_FindSymbol("_ZN3lib8L2CAgentC2EP9lua_State"));
|
||||
lib_L2CAgent_push_lua_stack = (__int64_t (*)(__int64_t, const __int64_t*))(SaltySDCore_FindSymbol("_ZN3lib8L2CAgent14push_lua_stackERKNS_8L2CValueE"));
|
||||
lib_L2CAgent_pop_lua_stack = (__int64_t (*)(__int64_t, int))(SaltySDCore_FindSymbol("_ZN3lib8L2CAgent13pop_lua_stackEi"));
|
||||
lib_L2CAgent_clear_lua_stack = (__int64_t (*)(__int64_t))(SaltySDCore_FindSymbol("_ZN3lib8L2CAgent15clear_lua_stackEv"));
|
||||
app_sv_animcmd_EFFECT = (__int64_t (*)(__int64_t))(SaltySDCore_FindSymbol("_ZN3app10sv_animcmd6EFFECTEP9lua_State"));
|
||||
app_sv_animcmd_EFFECT_FOLLOW_FLIP_COLOR = (__int64_t (*)(__int64_t))(SaltySDCore_FindSymbol("_ZN3app10sv_animcmd24EFFECT_FOLLOW_FLIP_COLOREP9lua_State"));
|
||||
|
||||
app_sv_animcmd_EFFECT_FOLLOW_COLOR = (__int64_t (*)(__int64_t))(IMPORT(0x7101955F10));
|
||||
|
||||
char* ver = "Ver. %d.%d.%d";
|
||||
u64 dst_3 = SaltySDCore_findCode(ver, strlen(ver));
|
||||
|
|
Loading…
Reference in a new issue