Skip to content
This repository has been archived by the owner on Dec 26, 2021. It is now read-only.

Commit

Permalink
Initial 1.16.201 support
Browse files Browse the repository at this point in the history
  • Loading branch information
SurvirvorHRG committed Dec 23, 2020
1 parent b4d61e8 commit 74c3a18
Show file tree
Hide file tree
Showing 13 changed files with 46 additions and 55 deletions.
4 changes: 2 additions & 2 deletions Horion/Command/Commands/EnchantCommand.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -98,12 +98,12 @@ bool EnchantCommand::execute(std::vector<std::string>* args) {
using addEnchant_t = bool(__fastcall*)(void*, __int64);
using saveEnchantsToUserData_t = void(__fastcall*)(C_ItemStack*, void*);

static getEnchantsFromUserData_t getEnchantsFromUserData = reinterpret_cast<getEnchantsFromUserData_t>(FindSignature("48 8B C4 55 57 41 54 41 56 41 57 48 8D 68 ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? ?? 48 89 58 ?? 48 89 70 ?? 0F 29 70 C8 4C 8B E2 4C 8B F9 48 89 54 24 ?? 33 F6"));
static getEnchantsFromUserData_t getEnchantsFromUserData = reinterpret_cast<getEnchantsFromUserData_t>(FindSignature("48 89 5C 24 ? 55 56 57 48 81 EC ? ? ? ? 48 8B F2 48 8B D9 48 89 54 24 ? 33 FF 89 7C 24 ? E8 ? ? ? ? 84 C0"));
static addEnchant_t addEnchant = reinterpret_cast<addEnchant_t>(FindSignature("48 89 5C 24 ?? 48 89 54 24 ?? 57 48 83 EC ?? 45 0F"));

static saveEnchantsToUserData_t saveEnchantsToUserData = 0x0;
if (!saveEnchantsToUserData) {
saveEnchantsToUserData = reinterpret_cast<saveEnchantsToUserData_t>(FindSignature("40 57 48 81 EC ?? ?? ?? ?? 48 C7 44 24 ?? ?? ?? ?? ?? 48 89 9C 24 ?? ?? ?? ?? 48 8B FA 4C 8B C1 48 8B 41 ?? 48 85 C0 74 29 48 83 38 ?? 74 23 48 8D 42 ?? 48 83 C2 50"));
saveEnchantsToUserData = reinterpret_cast<saveEnchantsToUserData_t>(FindSignature("48 89 5C 24 ? 56 57 41 56 48 81 EC ? ? ? ? 0F 29 B4 24 ? ? ? ? 48 8B FA 4C 8B C1 48 8B 41 08 48 85 C0"));
}

if (strcmp(args->at(1).c_str(), "all") == 0) {
Expand Down
4 changes: 2 additions & 2 deletions Horion/Module/Modules/Godmode.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ void Godmode::onSendPacket(C_Packet* p) {
if (p->isInstanceOf<C_MovePlayerPacket>()) {
C_MovePlayerPacket* movePacket = reinterpret_cast<C_MovePlayerPacket*>(p);
movePacket->onGround = true;
} else if (p->isInstanceOf<C_ActorFallPacket>()) {
} /*else if (p->isInstanceOf<C_ActorFallPacket>()) {
C_ActorFallPacket* fallPacket = reinterpret_cast<C_ActorFallPacket*>(p);
fallPacket->fallDistance = 0.f;
}
}*/
}
4 changes: 2 additions & 2 deletions Horion/Module/Modules/NoFall.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@ void NoFall::onSendPacket(C_Packet* packet) {
if (packet->isInstanceOf<C_MovePlayerPacket>()) {
C_MovePlayerPacket* movePacket = reinterpret_cast<C_MovePlayerPacket*>(packet);
movePacket->onGround = true;
} else if (packet->isInstanceOf<C_ActorFallPacket>()) {
} /*else if (packet->isInstanceOf<C_ActorFallPacket>()) {
C_ActorFallPacket* fallPacket = reinterpret_cast<C_ActorFallPacket*>(packet);
fallPacket->fallDistance = 0.f;
}
}*/
}
}
4 changes: 2 additions & 2 deletions Memory/GameData.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ void GameData::retrieveClientInstance() {
logF("clinet: %llX", clientInstanceOffset);
}
}*/
clientInstanceOffset = 0x03A30F18; // pointer scanned, can't find good signatures so it'll stay
clientInstanceOffset = 0x03A30ED8; // pointer scanned, can't find good signatures so it'll stay
g_Data.clientInstance = reinterpret_cast<C_ClientInstance*>(g_Data.slimMem->ReadPtr<uintptr_t*>(g_Data.gameModule->ptrBase + clientInstanceOffset, {0x0, 0x0, 0x40}));

#ifdef _DEBUG
Expand Down Expand Up @@ -199,7 +199,7 @@ void GameData::forEachEntity(std::function<void(C_Entity*, bool)> callback) {
C_EntityList* entList = g_Data.getEntityList();
if (entList == 0) {
#ifdef _DEBUG
logF("EntityList broken btw");
logF("EntityList broken btw yeeeeeeyt");
#endif
} else {
size_t listSize = entList->getListSize();
Expand Down
16 changes: 7 additions & 9 deletions Memory/Hooks.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -42,19 +42,17 @@ void Hooks::Init() {
}

// BlockLegacy::vtable
/*{
//uintptr_t sigOffset = FindSignature("48 8D ?? ?? ?? ?? ?? 48 89 ?? 4C 39"); // BlockLegacy constructor
intptr_t sigOffset = FindSignature("48 8D 05 ? ? ? ? 48 89 01 4C 39 7A ? 75 1A 48 C7 45"); // BlockLegacy constructor
{
intptr_t sigOffset = FindSignature("48 8D 05 ? ? ? ? 48 89 01 4C 8B 72 ? 48 B9"); // BlockLegacy constructor
int offset = *reinterpret_cast<int*>(sigOffset + 3);
uintptr_t** blockLegacyVtable = reinterpret_cast<uintptr_t**>(sigOffset + offset + 7);
if (blockLegacyVtable == 0x0 || sigOffset == 0x0)
logF("C_BlockLegacy signature not working!!!");
else {
g_Hooks.BlockLegacy_getRenderLayerHook = std::make_unique<FuncHook>(blockLegacyVtable[125], Hooks::BlockLegacy_getRenderLayer);
g_Hooks.BlockLegacy_getLightEmissionHook = std::make_unique<FuncHook>(blockLegacyVtable[16], Hooks::BlockLegacy_getLightEmission);
g_Hooks.BlockLegacy_getRenderLayerHook = std::make_unique<FuncHook>(blockLegacyVtable[168], Hooks::BlockLegacy_getRenderLayer);
g_Hooks.BlockLegacy_getLightEmissionHook = std::make_unique<FuncHook>(blockLegacyVtable[171], Hooks::BlockLegacy_getLightEmission);
}
}*/
}

// LocalPlayer::vtable
{
Expand All @@ -64,7 +62,7 @@ void Hooks::Init() {
if (localPlayerVtable == 0x0 || sigOffset == 0x0)
logF("C_LocalPlayer signature not working!!!");
else {
g_Hooks.Actor_isInWaterHook = std::make_unique<FuncHook>(localPlayerVtable[61], Hooks::Actor_isInWater);
g_Hooks.Actor_isInWaterHook = std::make_unique<FuncHook>(localPlayerVtable[65], Hooks::Actor_isInWater);

g_Hooks.Actor_startSwimmingHook = std::make_unique<FuncHook>(localPlayerVtable[182], Hooks::Actor_startSwimming);

Expand Down Expand Up @@ -220,7 +218,7 @@ void Hooks::Init() {
g_Hooks.PleaseAutoCompleteHook = std::make_unique<FuncHook>(autoComplete, Hooks::PleaseAutoComplete);

uintptr_t** packetSenderVtable = reinterpret_cast<uintptr_t**>(*(uintptr_t*)g_Data.getClientInstance()->loopbackPacketSender);
//g_Hooks.LoopbackPacketSender_sendToServerHook = std::make_unique<FuncHook>(packetSenderVtable[2], Hooks::LoopbackPacketSender_sendToServer);
g_Hooks.LoopbackPacketSender_sendToServerHook = std::make_unique<FuncHook>(packetSenderVtable[2], Hooks::LoopbackPacketSender_sendToServer);

void* getFov = reinterpret_cast<void*>(FindSignature("40 53 48 83 EC 70 0F 29 7C 24 ? 44 0F 29 4C 24 ? 48 8B 05 ? ? ? ? 48 33 C4 48 89 44 24 ? F3 0F 10 3D ? ? ? ? 44 0F"));
g_Hooks.LevelRendererPlayer_getFovHook = std::make_unique<FuncHook>(getFov, Hooks::LevelRendererPlayer_getFov);
Expand Down
4 changes: 2 additions & 2 deletions SDK/CEntity.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@ C_InventoryTransactionManager *C_Entity::getTransactionManager() {
if (offset == 0) {
// EnchantCommand::execute
//offset = *reinterpret_cast<int *>(FindSignature("48 8D 8B ?? ?? ?? ?? E8 ?? ?? ?? ?? 90 48 8D 8D ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 8D 8D ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 8B ?? ?? ?? 8B") + 3);
offset = *reinterpret_cast<int *>(FindSignature("49 8D 8E ? ? ? ? E8 ? ? ? ? 90 48 8D 8D ? ? ? ? E8 ? ? ? ? 48 8D 8D ? ? ? ? E8 ? ? ? ?") + 3);
offset = *reinterpret_cast<int *>(FindSignature("49 8D 8E ? ? ? ? E8 ? ? ? ? 90 48 8D 8D ? ? ? ? E8 ? ? ? ? 48 8D 8D ? ? ? ? E8 ? ? ? ? 48 8B 4D") + 3);
}
return reinterpret_cast<C_InventoryTransactionManager *>(reinterpret_cast<__int64>(this) + offset);
}
C_PlayerInventoryProxy *C_Player::getSupplies() {
static unsigned int offset = 0xBD0;
static unsigned int offset = 0xBE8;
/*if (offset == 0) {
offset = *reinterpret_cast<int *>(FindSignature("48 8B 51 ?? 4C 8B 82 ?? ?? ?? ?? 48 8B B2 ?? ?? ?? ?? 41 80 B8") + 7); // GameMode::startDestroyBlock -> GameMode::_canDestroy -> getSupplies
}*/
Expand Down
4 changes: 2 additions & 2 deletions SDK/CInventory.h
Original file line number Diff line number Diff line change
Expand Up @@ -49,11 +49,11 @@ class C_Inventory {
virtual __int64 initializeContainerContents(C_BlockSource&);
virtual __int64 add(C_ItemStack&);
virtual __int64 canAdd(const C_ItemStack&);
virtual void unknown();
//virtual void unknown();
virtual __int64 clearSlot(int);
virtual __int64 clearInventory(int);
virtual __int64 load(); // ListTag const&,SemVersion const&,Level &
virtual void unknown2();
//virtual void unknown2();
virtual __int64 getEmptySlotsCount();
virtual int getFirstEmptySlot();
virtual __int64 setContainerSize();
Expand Down
2 changes: 1 addition & 1 deletion SDK/CInventoryTransaction.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
void C_InventoryTransactionManager::addInventoryAction(const C_InventoryAction& action,bool idk) {
using InventoryTransactionManager__addAction_t = void(__fastcall*)(C_InventoryTransactionManager*, C_InventoryAction const&,bool);
//static auto InventoryTransactionManager__addAction = reinterpret_cast<InventoryTransactionManager__addAction_t>(FindSignature("40 55 56 57 41 56 41 57 48 83 EC 30 48 ?? ?? ?? ?? ?? ?? ?? ?? 48 89 5C 24 ?? 48 8B EA 4C 8B F1 4C 8B C2 48 8B 51 ?? 48 8B 49 ?? E8"));
static auto InventoryTransactionManager__addAction = reinterpret_cast<InventoryTransactionManager__addAction_t>(FindSignature("40 56 57 41 54 41 56 41 57 48 83 EC 30 48 C7 44 24 ? ? ? ? ? 48 89 5C 24 ? 48 89 6C 24 ? 45 0F B6 F8 4C 8B F2 48 8B F9 48 8B 01 48 8B 88 ? ? ? ?"));
static auto InventoryTransactionManager__addAction = reinterpret_cast<InventoryTransactionManager__addAction_t>(FindSignature("48 89 5C 24 ? 55 56 57 41 56 41 57 48 83 EC ? 45 0F B6 F8 48 8B EA 4C 8B F1 48 8B 01 48 8B 88 ? ? ? ? 48 85 C9"));
if (InventoryTransactionManager__addAction != 0)
InventoryTransactionManager__addAction(this, action,idk);
}
30 changes: 11 additions & 19 deletions SDK/CItem.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,14 @@ C_BaseActorRenderContext::C_BaseActorRenderContext(C_ScreenContext *ScreenCtx, C
}
void C_ItemRenderer::renderGuiItemNew(C_BaseActorRenderContext *BaseActorRenderCtx, C_ItemStack *item, MinecraftGame *game, float x, float y, float opacity, float scale, bool isEnchanted) {
using renderGuiItemNew_t = void(__fastcall *)(C_ItemRenderer *, C_BaseActorRenderContext *, C_ItemStack *, MinecraftGame *, float, float, float, float, float, bool);
static renderGuiItemNew_t renderGuiItemNew = reinterpret_cast<renderGuiItemNew_t>(FindSignature("48 8B C4 55 56 57 41 54 41 55 41 56 41 57 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 48 89 58 20 0F 29 70 B8 48 8B 05 ?? ?? ?? ??"));
static renderGuiItemNew_t renderGuiItemNew = reinterpret_cast<renderGuiItemNew_t>(FindSignature("40 53 55 57 41 55 48 81 EC ? ? ? ? 48 8B 05 ? ? ? ? 48 33 C4 48 89 84 24 ? ? ? ? 49 8B 40 ? 49 8B D8 48 8B EA 4C 8B E9 48 85 C0"));
item->setShowPickUp(false);
renderGuiItemNew(this, BaseActorRenderCtx, item, game, x, y, 1, opacity, scale, isEnchanted);
}

void C_ItemRenderer::renderGuiItemInChunk(C_BaseActorRenderContext* BaseActorRenderCtx, C_ItemStack* item, float x, float y, float opacity, float scale, bool isEnchanted, int mode) {
using renderGuiItemInChunk_t = void(__fastcall *)(C_ItemRenderer *, C_BaseActorRenderContext *, __int64, C_ItemStack *, float, float, float, float, float, int);
static renderGuiItemInChunk_t renderGuiItem = reinterpret_cast<renderGuiItemInChunk_t>(FindSignature("48 8B C4 55 56 57 41 54 41 55 41 56 41 57 48 8D A8 ?? ?? ?? ?? 48 81 EC ?? ?? ?? ?? 48 C7 45 ?? ?? ?? ?? ?? 48 89 58 ?? 0F 29 70 ?? 0F 29 78 ?? 44 0F 29 40 ?? 44 0F 29 48 ?? 44 0F 29 90 ?? ?? ?? ?? 48 8B 05 ?? ?? ?? ?? 48 33 C4 48 89 85 ?? ?? ?? ?? 49 8B F1 45"));
static renderGuiItemInChunk_t renderGuiItem = reinterpret_cast<renderGuiItemInChunk_t>(FindSignature("48 8B C4 48 89 58 ? 55 56 57 41 54 41 55 41 56 41 57 48 8D A8 ? ? ? ? 48 81 EC ? ? ? ? 0F 29 70 B8 0F 29 78 A8 44 0F 29 40 ? 44 0F 29 48 ? 44 0F 29 90 ? ? ? ? 44 0F 29 98 ? ? ? ? 44 0F 29 A0 ? ? ? ? 44 0F 29 A8 ? ? ? ? 48 8B 05 ? ? ? ?"));
//item->setShowPickUp(false);

renderGuiItem(this, BaseActorRenderCtx, 2, item, x, y, 1, 1, scale, 0);
Expand All @@ -28,7 +28,7 @@ void C_ItemRenderer::renderGuiItemInChunk(C_BaseActorRenderContext* BaseActorRen
C_ItemStack::C_ItemStack(const C_ItemStack &src) {
memset(this, 0x0, sizeof(C_ItemStack));
using ItemStackCopyConstructor_t = void(__fastcall *)(C_ItemStack &, C_ItemStack const &);
static ItemStackCopyConstructor_t ItemStackCopyConstructor = reinterpret_cast<ItemStackCopyConstructor_t>(FindSignature("48 8B C4 56 57 41 54 41 56 41 57 48 83 EC ?? 48 ?? ?? ?? ?? ?? ?? ?? 48 89 58 ?? 48 89 68 ?? 48 8B FA 48 8B D9 48 89 48 ??"));
static ItemStackCopyConstructor_t ItemStackCopyConstructor = reinterpret_cast<ItemStackCopyConstructor_t>(FindSignature("48 89 5C 24 ? 55 56 57 41 54 41 55 41 56 41 57 48 83 EC 40 4C 8B F2 48 8B F1 48 89 4C 24 ? 33 ED 89 6C 24 20 48 8D"));
ItemStackCopyConstructor(*this, src);
this->setVtable();
}
Expand All @@ -42,38 +42,30 @@ C_ItemStack::C_ItemStack(const Tag &tag) {
}
void C_ItemStack::fromTag(const Tag &tag) {
using ItemStackBase__loadItemF = void(__fastcall *)(C_ItemStack *, Tag const &);
static ItemStackBase__loadItemF fromTag = nullptr;

if (!fromTag) {
if (g_Data.getVersion() == GAMEVERSION::g_1_16_0)
fromTag = reinterpret_cast<ItemStackBase__loadItemF>(FindSignature("48 8B C4 55 57 41 56 48 8D 68 A1 48 81 EC ? ? ? ? 48 C7 45 ? ? ? ? ? 48 89 58 ? 48 89 70 ? 48 8B 05 ? ? ? ? 48 33 C4 48 89 45 ? 48 8B DA 48 8B F9 48 89 4D ? 33 D2 41 B8 ? ? ? ? 48 8D 4D A7 E8 ? ? ? ? 48 8D 05 ? ? ? ?"));
else
fromTag = reinterpret_cast<ItemStackBase__loadItemF>(FindSignature("40 55 57 41 56 48 8D 6C 24 ? 48 81 EC ? ? ? ? 48 C7 45 ? ? ? ? ? 48 89 9C 24 ? ? ? ? 48 8B 05 ? ? ? ? 48 33 C4 48 89 45 ? 48 8B DA 48 8B F9 48 89 4D ? 33 D2 41 B8 ? ? ? ?"));
}

static ItemStackBase__loadItemF fromTag = reinterpret_cast<ItemStackBase__loadItemF>(FindSignature("48 89 5C 24 ? 48 89 74 24 ? 55 57 41 56 48 8D 6C 24 ? 48 81 EC ? ? ? ? 48 8B 05 ? ? ? ? 48 33 C4 48 89 45 37 48 8B DA 48 8B F9 48 89 4D 97 0F 57 C0 0F 11 45 A7 0F 11 45 B7 0F 11 45 C7 0F 11 45 D7 0F 11 45 E7 0F 11 45 F7 0F 11 45 07"));
fromTag(this, tag);
}
void C_ItemStack::save(CompoundTag **tag) {
using ItemStackBase__saveF = void(__fastcall *)(C_ItemStack *, CompoundTag **);
ItemStackBase__saveF save = reinterpret_cast<ItemStackBase__saveF>(FindSignature("40 55 56 57 41 56 41 57 48 8D 6C 24 ? 48 81 EC ? ? ? ? 48 C7 45 ? ? ? ? ? 48 89 9C 24 ? ? ? ? 48 8B F2 4C 8B F1 48 89 55"));
ItemStackBase__saveF save = reinterpret_cast<ItemStackBase__saveF>(FindSignature("48 89 5C 24 ? 55 56 57 41 54 41 55 41 56 41 57 48 8D 6C 24 ? 48 81 EC ? ? ? ? 48 8B FA 48 8B F1 48 89 55 F7 45 33 ED"));
return save(this, tag);
}
void C_ItemStack::setUserData(std::unique_ptr<Tag> tag) {
using setUserData_t = void(__fastcall *)(C_ItemStack *, std::unique_ptr<Tag>);
setUserData_t setUserData = reinterpret_cast<setUserData_t>(FindSignature("40 53 48 83 EC ?? 48 ?? ?? ?? ?? ?? ?? ?? ?? 48 8B DA 48 8D 51 10 48 3B D3 74 20 48 8B 03 48 ?? ?? ?? ?? ?? ?? 48 8B 0A 48 89 02 48 85 C9 74 0B 48 8B 01 BA ?? ?? ?? ?? FF 10"));
setUserData_t setUserData = reinterpret_cast<setUserData_t>(FindSignature("40 53 48 83 EC ? 48 8B DA 48 8D 51 10 48 3B D3 74 1F 48 8B 03 48 C7 03 ? ? ? ?"));
setUserData(this, std::move(tag));
}
void C_ItemStack::reinit(C_BlockLegacy &legacy, int count) {
this->setVtable();
Utils::CallVFunc<1, void>(this, &legacy, count);
Utils::CallVFunc<2, void>(this, &legacy, count);
}
void C_ItemStack::reinit(C_Item &item, int count, int itemData) {
this->setVtable();
Utils::CallVFunc<2, void>(this, &item, count, itemData);
Utils::CallVFunc<3, void>(this, &item, count, itemData);
}
int C_ItemStack::getEnchantValue(int enchantId) {
using getEnchantsLevel_t = int(__fastcall *)(int, C_ItemStack *);
static getEnchantsLevel_t getEnchantsLevel = reinterpret_cast<getEnchantsLevel_t>(FindSignature("48 8B C4 57 48 81 EC ? ? ? ? 48 C7 40 ? ? ? ? ? 48 89 58 ? 48 89 70 ? 48 8B F2 0F B6 D9 33 FF 48 8B CA E8"));
static getEnchantsLevel_t getEnchantsLevel = reinterpret_cast<getEnchantsLevel_t>(FindSignature("48 89 5C 24 ? 48 89 74 24 ? 57 48 83 EC ? 48 8B F2 0F B6 D9 33 FF 48 8B CA E8 ? ? ? ?"));
return getEnchantsLevel(enchantId, this);
}
void C_ItemStack::setVtable(void) {
Expand All @@ -83,12 +75,12 @@ void C_ItemStack::setVtable(void) {
}
C_Item ***ItemRegistry::getItemFromId(void *ptr, int itemId) {
using getItemFromId_t = C_Item ***(__fastcall *)(void *, int);
static getItemFromId_t getItemFromId = reinterpret_cast<getItemFromId_t>(FindSignature("40 53 48 83 EC ? 48 8B D9 66 85 D2 0F 84 ? ? ? ? 44 0F BF C2 48 B9 ? ? ? ? ? ? ? ? 44"));
static getItemFromId_t getItemFromId = reinterpret_cast<getItemFromId_t>(FindSignature("40 53 48 83 EC ? 8D 42 ? 48 8B D9 66 83 F8 ? 0F 86 ? ? ? ? 44 0F BF C2 49 B9 ? ? ? ? ? ? ? ? 41 8B C0"));
return getItemFromId(ptr, itemId);
}

C_Item ***ItemRegistry::lookUpByName(void *a1, void *a2, TextHolder &text) {
using ItemRegistry__lookupByName_t = C_Item ***(__fastcall *)(void *, void *, TextHolder &);
static ItemRegistry__lookupByName_t ItemRegistry__lookupByNameF = reinterpret_cast<ItemRegistry__lookupByName_t>(FindSignature("40 55 56 57 41 54 41 55 41 56 41 57 ?? ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 48 8B 05 ?? ?? ?? ?? 48 33 C4 ?? ?? ?? ?? ?? ?? ?? 4C 8B F9 48 89 4D ?? 45 33 ED 44 89 6C 24 ?? 4D 39 68"));
static ItemRegistry__lookupByName_t ItemRegistry__lookupByNameF = reinterpret_cast<ItemRegistry__lookupByName_t>(FindSignature("48 89 5C 24 ? 55 56 57 41 54 41 55 41 56 41 57 48 8D AC 24 ? ? ? ? 48 81 EC ? ? ? ? 48 8B 05 ? ? ? ? 48 33 C4 48 89 85 ? ? ? ? 4C 8B EA 48 89 54 24 ? 48 89 4C 24 ? 48 89 4D"));
return ItemRegistry__lookupByNameF(a1, a2, text);
}
2 changes: 1 addition & 1 deletion SDK/CItem.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ class C_BaseActorRenderContext {
public:
C_ItemRenderer* renderer; //0x0058
private:
char pad_0x50[0x228]; //0x60
char pad_0x50[0x238]; //0x60
public:
C_BaseActorRenderContext(C_ScreenContext* ScreenCtx, C_ClientInstance* client, MinecraftGame* game);
};
Expand Down
Loading

1 comment on commit 74c3a18

@Mainthedevil789fh
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

are you going to finish this or?

Please sign in to comment.