Skip to content

Commit 8b2decf

Browse files
committed
1.20.4X support
1 parent a5960b0 commit 8b2decf

File tree

7 files changed

+256
-12
lines changed

7 files changed

+256
-12
lines changed

src/SDK/Client/Actor/Actor.cpp

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,6 @@ Component *Actor::tryGet(uintptr_t addr) { // TODO: Multiversion
1616
using efunc = Component *(__thiscall *)(uintptr_t *, const EntityId &);
1717
auto func = reinterpret_cast<efunc>(addr);
1818
return func(basicReg, id);
19-
}else if(WinrtUtils::check(20, 40)) {
20-
auto ctx = GetEntityContextV1_20_40();
21-
id = ctx->id;
22-
basicReg = &ctx->basicReg;
23-
using efunc = Component *(__thiscall *)(uintptr_t *, const EntityId &);
24-
auto func = reinterpret_cast<efunc>(addr);
25-
return func(basicReg, id);
2619
}else{
2720
auto a1 = **(uintptr_t***)(this + 0x8);
2821
auto a2 = *(uintptr_t*)(this + 0x10);

src/SDK/Client/Core/Options.hpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,9 @@ class Options {
3535
static void initialize(const uintptr_t optionsEntryPtr){
3636
optionsBaseEntry = (uintptr_t **) optionsEntryPtr;
3737
initialized = true;
38-
initVsync();
38+
if((WinrtUtils::check(20,30) && !WinrtUtils::check(20,40)) || WinrtUtils::check(20,50)) { // does not work in 1.20.4X (crashes)
39+
initVsync();
40+
}
3941
};
4042

4143
static bool isInitialized() {

src/Utils/Memory/Game/Offset/OffsetInit.cpp

Lines changed: 147 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ void OffsetInit::init2080() {
2424
ADD_OFFSET("Actor::getActorFlag", 0);
2525
ADD_OFFSET("Actor::isAlive", 51);
2626
ADD_OFFSET("Actor::isValidTarget", 57);
27-
ADD_OFFSET("Player::getXuid", 240);
27+
ADD_OFFSET("Player::getXuid", 240); // likely wrong ?
2828

2929
// AutoSprint
3030
ADD_OFFSET("Mob::setSprinting", 154); // +
@@ -474,7 +474,7 @@ void OffsetInit::init2050() {
474474
ADD_OFFSET("Actor::getActorFlag", 0);
475475
ADD_OFFSET("Actor::isAlive", 57);
476476
ADD_OFFSET("Actor::isValidTarget", 65);
477-
ADD_OFFSET("Player::getXuid", 268);
477+
ADD_OFFSET("Player::getXuid", 268); // unused
478478

479479
// AutoSprint
480480
ADD_OFFSET("Mob::setSprinting", 252);
@@ -598,6 +598,151 @@ void OffsetInit::init2050() {
598598
ADD_OFFSET("Level::getPlayerMap", 0x1EA8);
599599
}
600600

601+
void OffsetInit::init2040() {
602+
// getGamma, combo &
603+
Logger::debug("[Offsets] Loading offsets for 1.20.4X"); // quite some offsets are wrong
604+
605+
ADD_OFFSET("MoveInputComponent::forward", 0x0A);
606+
ADD_OFFSET("MoveInputComponent::backward", 0x0B);
607+
ADD_OFFSET("MoveInputComponent::left", 0x0C);
608+
ADD_OFFSET("MoveInputComponent::right", 0x0D);
609+
ADD_OFFSET("MoveInputComponent::sneaking", 0x20);
610+
ADD_OFFSET("MoveInputComponent::jumping", 0x26);
611+
ADD_OFFSET("MoveInputComponent::sprinting", 0x27);
612+
613+
// Speed display
614+
ADD_OFFSET("StateVectorComponent::pos", 0x0);
615+
ADD_OFFSET("StateVectorComponent::posDelta", 0x18);
616+
ADD_OFFSET("StateVectorComponent::posPrev", 0x0C);
617+
618+
// Hitboxes and other
619+
ADD_OFFSET("Actor::getActorFlag", 0);
620+
ADD_OFFSET("Actor::isAlive", 58);
621+
ADD_OFFSET("Actor::isValidTarget", 66);
622+
ADD_OFFSET("Player::getXuid", 396);
623+
624+
// AutoSprint
625+
ADD_OFFSET("Mob::setSprinting", 175);
626+
627+
ADD_OFFSET("BlockSource::getBlock", 2); // unused
628+
629+
// Armour HUD, Inventory HUD
630+
ADD_OFFSET("Inventory::getItem", 5);
631+
632+
ADD_OFFSET("ClientInstance::getBlockSource", 26);
633+
ADD_OFFSET("ClientInstance::getLocalPlayer", 27);
634+
ADD_OFFSET("ClientInstance::refocusMouse", 307); // unused
635+
ADD_OFFSET("ClientInstance::levelRenderer", 0xE0);
636+
637+
ADD_OFFSET("ClientInstance::getFovX", 0x6F8);
638+
ADD_OFFSET("ClientInstance::getFovY", 0x70C);
639+
ADD_OFFSET("ClientInstance::getPacketSender", 0xF0);
640+
641+
ADD_OFFSET("Packet::getId", 1);
642+
ADD_OFFSET("Packet::getName", 2); // unused
643+
644+
ADD_OFFSET("createMaterial", 1); // unused
645+
646+
ADD_OFFSET("Actor::hurtTime", 0x204);
647+
ADD_OFFSET("Actor::level", 0x260);
648+
ADD_OFFSET("Actor::categories", 0x298);
649+
ADD_OFFSET("Actor::actorRotationComponent", 0x2B0);
650+
ADD_OFFSET("Actor::aabb", 0x2A8);
651+
ADD_OFFSET("Actor::stateVector", 0x2A0);
652+
ADD_OFFSET("Actor::rotations", 0x2B0);
653+
ADD_OFFSET("Actor::wasHurt", 0x20E);
654+
ADD_OFFSET("Actor::baseTickVft", 30);
655+
656+
ADD_OFFSET("Gamemode::player", 0x8);
657+
ADD_OFFSET("Gamemode::lastBreakProgress", 0x20);
658+
ADD_OFFSET("Gamemode::attackVft", 14);
659+
660+
ADD_OFFSET("Mob::mobHurtTimeComponent", 0x608);
661+
662+
ADD_OFFSET("Player::playerInventory", 0x7C0);
663+
ADD_OFFSET("Player::playerName", 0x1CB8);
664+
ADD_OFFSET("Player::gamemode", 0xEB0);
665+
666+
ADD_OFFSET("BlockSource::dimension", 0x30);
667+
668+
ADD_OFFSET("PlayerInventory::SelectedSlot", 0x10);
669+
ADD_OFFSET("PlayerInventory::inventory", 0xC0);
670+
671+
ADD_OFFSET("Camera::viewMatrix", 0xC0);
672+
ADD_OFFSET("Camera::projectionMatrix", 0x100);
673+
674+
ADD_OFFSET("ClientHMDState::lastLevelProjMatrix", 0x148);
675+
676+
ADD_OFFSET("ClientInstance::minecraftGame", 0xC8);
677+
ADD_OFFSET("ClientInstance::guiData", 0x560);
678+
ADD_OFFSET("ClientInstance::camera", 0x270);
679+
ADD_OFFSET("ClientInstance::Matrix1", 0x330);
680+
ADD_OFFSET("ClientInstance::clientHMDState", 0x5B0);
681+
682+
ADD_OFFSET("Minecraft::timer", 0x00D8);
683+
684+
ADD_OFFSET("MinecraftGame::mouseGrabbed", 0x190);
685+
686+
ADD_OFFSET("Option::optionInformation", 0x8);
687+
ADD_OFFSET("Option::value", 0x10);
688+
ADD_OFFSET("Option::value1", 0x70);
689+
ADD_OFFSET("OptionInfo::TranslateName", 0x158);
690+
691+
ADD_OFFSET("Item::AtlasTextureFile", 0x8);
692+
ADD_OFFSET("Item::Namespace", 0xF8);
693+
ADD_OFFSET("Item::name",0xD0);
694+
695+
ADD_OFFSET("ItemStack::tag", 0x10);
696+
ADD_OFFSET("ItemStack::count", 0x20);
697+
698+
ADD_OFFSET("Biome::temparature", 0x40);
699+
700+
ADD_OFFSET("Dimension::weather", 0x1A8);
701+
702+
ADD_OFFSET("Weather::lightingLevel", 0x48);
703+
ADD_OFFSET("Weather::rainLevel", 0x3C);
704+
705+
ADD_OFFSET("LevelRendererPlayer::cameraPos", 0x5E4);
706+
707+
ADD_OFFSET("LoopbackPacketSender::networkSystem", 0x20);
708+
709+
ADD_OFFSET("NetworkSystem::remoteConnectorComposite", 0x60);
710+
711+
ADD_OFFSET("RemoteConnectorComposite::rakNetConnector", 0x60);
712+
713+
ADD_OFFSET("RaknetConnector::JoinedIp", 0x438);
714+
ADD_OFFSET("RaknetConnector::getPeer", 0x278);
715+
716+
ADD_OFFSET("BaseActorRenderContext::itemRenderer", 0x58);
717+
718+
ADD_OFFSET("GuiData::ScreenSize", 0x30);
719+
ADD_OFFSET("GuiData::ScreenSizeScaled", 0x40);
720+
ADD_OFFSET("GuiData::GuiScale", 0x4C);
721+
ADD_OFFSET("GuiData::screenResRounded", 0x38);
722+
ADD_OFFSET("GuiData::sliderAmount", 0x4C);
723+
ADD_OFFSET("GuiData::scalingMultiplier", 0x50);
724+
725+
ADD_OFFSET("MinecraftUIRenderContext::clientInstance", 0x8);
726+
ADD_OFFSET("MinecraftUIRenderContext::screenContext", 0x10);
727+
728+
ADD_OFFSET("ScreenView::VisualTree", 0x48);
729+
730+
ADD_OFFSET("MinecraftCustomUIRenderer::state", 0x10);
731+
732+
ADD_OFFSET("CustomRenderComponent::renderer", 0x18);
733+
734+
ADD_OFFSET("UIControl::LayerName", 0x18);
735+
ADD_OFFSET("UIControl::scale", 0x40);
736+
ADD_OFFSET("UIControl::x", 0x78);
737+
ADD_OFFSET("UIControl::y", 0x7C);
738+
ADD_OFFSET("UIControl::children", 0xA0);
739+
740+
ADD_OFFSET("VisualTree::root", 0x8);
741+
742+
ADD_OFFSET("Level::hitResult", 0xA68);
743+
ADD_OFFSET("Level::getPlayerMap", 0x25F0);
744+
};
745+
601746
void OffsetInit::init2030() {
602747
Logger::debug("[Offsets] Loading offsets for 1.20.3X"); // quite some offsets are wrong
603748

src/Utils/Memory/Game/Offset/OffsetInit.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
class OffsetInit {
44
public:
55
static void init2030();
6+
static void init2040();
67
static void init2050();
78
static void init2060();
89
static void init2070();

src/Utils/Memory/Game/Sig/SigInit.cpp

Lines changed: 101 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -388,7 +388,7 @@ void SigInit::init2050() {
388388
ADD_SIG("Actor::getMoveInputHandler", "40 53 48 83 EC ? 48 8B DA BA 2E CD 8B 46");
389389

390390
// Hitboxes
391-
ADD_SIG("Actor::getActorTypeComponent", "48 8B 89 20 04 00 00 48 8B 01 48 8B 40 28 48");
391+
ADD_SIG("Actor::getActorTypeComponent", "48 8B 89 18 01 0 0 48 8B 01 48 8B 40 28 48");
392392
ADD_SIG("Actor::getRenderPositionComponent", "40 53 48 83 EC ? 48 8B DA BA 6E F3 E8 D4");
393393
ADD_SIG("Actor::canSee", "E8 ? ? ? ? 84 C0 74 1C 48 8B 4F 48"); // Hitboxes
394394

@@ -420,6 +420,105 @@ void SigInit::init2050() {
420420
ADD_SIG("HitResult::getEntity", "E8 ? ? ? ? EB 1A 48 8B CE");
421421
}
422422

423+
void SigInit::init2040() {
424+
Logger::debug("[Signatures] Loading sigs for 1.20.4X");
425+
426+
ADD_SIG("Keyboard::feed", "48 ?? ?? ?? 0F B6 ?? 4C ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? 88");
427+
ADD_SIG("MouseDevice::feed", "48 8B C4 48 89 58 ? 48 89 68 ? 48 89 70 ? 57 41 54 41 55 41 56 41 57 48 83 EC ? 44 0F B7 BC 24 ? ? ? ? 48 8B D9");
428+
429+
ADD_SIG("ClientInstance::grabMouse", "48 8B 80 ? ? ? ? FF 15 ? ? ? ? 90 48 85 DB 74 08 48 8B CB E8 ? ? ? ? 48 8B 8F ? ? ? ? E8 ? ? ? ? 33 D2");
430+
431+
ADD_SIG("MinecraftGame::onAppSuspended", "48 89 5C 24 ? 48 89 74 24 ? 55 57 41 56 48 8D AC 24 ? ? ? ? 48 81 EC ? ? ? ? 4C 8B F1 48 8D B1 ? ? ? ? 48 83 3E 00 0F 85 ? ? ? ? 48 8D 4C 24 ? E8 ? ? ? ? 48 3B F0 74 1A 48 8B 08 48 C7 00 ? ? ? ? 48 8B 16 48 89 0E");
432+
433+
ADD_SIG("ScreenView::setupAndRender", "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 ? 0F 29 78 ? 48 8B 05 ? ? ? ? 48 33 C4 48 89 85 ? ? ? ? 4C 8B FA 48 89 54 24 ? 4C 8B E9 48 89 4C 24");
434+
ADD_SIG("Font::drawTransformed", "48 8B C4 48 89 58 ? 48 89 68 ? 48 89 70 ? 48 89 78 ? 41 54 41 56 41 57 48 81 EC ? ? ? ? 0F 29 70 ? 0F 29 78");
435+
436+
// AutoGG, AutoRQ, DiscordRPC ...
437+
ADD_SIG("LoopbackPacketSender::sendPacket", "48 83 EC ? 48 0F BE ? ? 48 83 C0 ? 74 27");
438+
ADD_SIG("MinecraftPackets::createPacket", "40 53 48 83 EC 30 45 33 C0 48 8B D9 FF CA 81 FA ? ? ? ? 0F 87 ? ? ? ? 48 63 C2 48 8D 0D ? ? ? ? 0F B6 84 01 ? ? ? ? 8B 94 81 ? ? ? ? 48 03 D1");
439+
ADD_SIG("RaknetTick", "48 89 5C 24 ? 48 89 74 24 ? 48 89 7C 24 ? 55 41 56 41 57 48 8D AC 24 ? ? ? ? 48 81 EC ? ? ? ? 48 8B 05 ? ? ? ? 48 33 C4 48 89 85 ? ? ? ? 48 8B F9 45 33 FF 4C 89 BD ? ? ? ? 48 8D 95 ? ? ? ?");
440+
441+
// Reach display
442+
ADD_SIG("GameMode::attack", "48 8D 05 ? ? ? ? 48 89 01 48 89 51 08 48 C7 41 ? ? ? ? ? C7 41 ? ? ? ? ?");
443+
444+
// Fog color
445+
ADD_SIG("Dimension::getBrightnessDependentFogColor", "41 0F 10 00 48 8B C2 0F 11 02");
446+
ADD_SIG("OverworldDimension::getBrightnessDependentFogColor", "41 0F 10 08 48 8B C2 0F");
447+
448+
// Zoom, UpsideDown and FOV Changer
449+
ADD_SIG("LevelRendererPlayer::getFov", "48 8B ? 48 89 ? ? 48 89 ? ? 57 48 81 EC ? ? ? ? 0F 29 ? ? 0F 29 ? ? 44 0F ? ? ? 44 0F ? ? ? 48 8B ? ? ? ? ? 48 33 ? 48 89 ? ? ? 41 0F");
450+
451+
// Zoom
452+
ADD_SIG("Options::getSensitivity", "4C 8B 51 20 49 B9");
453+
454+
// Fullbright
455+
ADD_SIG("Options::getGamma", "? ? ? ? ? ? ? ? ? ? ? 48 8D 54 24 ? 48 8B 01 48 8B 40 ? 74 ? 41 B8 ? ? ? ? FF 15 ? ? ? ? 48 8B 10 48 85 D2 74 ? 48 8B 42 ? 48 8B 88 ? ? ? ? 48 85 C9 74 ? E8 ? ? ? ? 48 83 C4 ? C3 F3 0F 10 42 ? 48 83 C4 ? C3 41 B8 ? ? ? ? FF 15 ? ? ? ? 48 8B 10 48 85 D2 75 ? E8 ? ? ? ? CC E8 ? ? ? ? CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC F3 0F 11 4C 24");
456+
457+
// HurtColor
458+
ADD_SIG("HurtColor", "E8 ? ? ? ? E9 ? ? ? ? 48 8B ? ? 48 8B ? 8B 43 ? 89 44 ? ? 48 8D ? ? ? E8 ? ? ? ? 48 8B ? 48 85 ? 0F 84 ? ? ? ? 48 8B");
459+
460+
// Block outline
461+
ADD_SIG("blockHighlightColor", "? ? ? ? 0F 11 45 ? 0F 11 00 C6 40 10 ? 45 38 96");
462+
ADD_SIG("mce::Color::BLACK", "? ? ? ? 0F 11 00 C6 40 10 ? 0F 57 C9 0F 11");
463+
464+
// Coordinates
465+
ADD_SIG("ForceCoordsOption", "80 78 ? ? 0F 95 C0 48 8B 5C 24");
466+
467+
//TimeChanger
468+
ADD_SIG("TimeChanger", "44 8B C2 B8 F1 19 76 05 F7 EA");
469+
470+
// Weather
471+
ADD_SIG("BlockSource::getBiome", "40 57 48 83 EC 50 48 8B F9 E8");
472+
473+
// FreeLook
474+
ADD_SIG("CameraYaw", "F3 0F 11 30 F3 ? ? 78 ? 49 8B CE");
475+
ADD_SIG("CameraYaw2", "F3 0F 11 ? F3 0F 11 ? ? 48 8B 4D");
476+
ADD_SIG("CameraPitch", "F3 0F 11 0E 48 89 9C");
477+
ADD_SIG("CameraMovement", "F3 0F 11 01 48 8D 56");
478+
ADD_SIG("getViewPerspective", "48 83 EC ? 48 8B 01 48 8D 54 ? ? 41 B8 03 00 00 00");
479+
480+
// No Hurt Cam
481+
ADD_SIG("CameraAssignAngle", "8B 44 24 48 89 43 08 C6");
482+
483+
// Nametag
484+
ADD_SIG("ThirdPersonNametag", "? ? ? ? ? ? 49 8B ? 48 8B ? E8 ? ? ? ? 84 C0 ? ? ? ? ? ? 49 8B ? 49 8b");
485+
486+
// Keystrokes
487+
ADD_SIG("Actor::getMoveInputHandler", "40 53 48 83 EC 20 48 8B DA BA 2E");
488+
489+
// Hitboxes
490+
ADD_SIG("Actor::getActorTypeComponent", "48 8B 89 18 01 0 0 48 8B 01 48 8B 40 28 48");
491+
ADD_SIG("Actor::getRenderPositionComponent", "40 53 48 83 EC ? 48 8B DA BA 6E F3 E8 D4");
492+
ADD_SIG("Actor::canSee", "E8 ? ? ? ? 84 C0 74 1C 48 8B 4F 48"); // Hitboxes
493+
494+
// onTick event
495+
ADD_SIG("Actor::baseTick", "48 8D 05 ? ? ? ? 48 89 01 B8 ? ? ? ? 8D 50 FA 44 8D 48 ? 44 8D 40 ? 66 89 44 ? ? E8 ? ? ? ? 48 8B 8B");
496+
497+
// Nick
498+
ADD_SIG("Actor::setNametag", "48 89 5C 24 ? 57 48 83 EC ? 48 8B D9 48 8B FA 48 8B 89 ? ? ? ? 48 85 C9 0F 84");
499+
500+
501+
// Armour HUD
502+
ADD_SIG("Actor::getArmor", "48 8B 89 28 04 00 00 48 8B 01 48 8B 40 28 48 FF 25");
503+
ADD_SIG("Actor::getOffhandSlot", "48 8B 89 30 04 00 00 BA 01 00 00 00");
504+
ADD_SIG("ItemStack::getDamageValue", "48 89 5C 24 ? 57 48 83 EC ? 48 8B DA 48 85 D2");
505+
ADD_SIG("ItemStack::getMaxDamage", "48 8B 41 08 48 85 C0 74 19");
506+
ADD_SIG("ItemRenderer::renderGuiItemNew", "48 8B ? 53 55 56 57 41 ? 41 ? 41 ? 41 ? 48 81 EC ? ? ? ? 0F 29 ? ? 0F 29 ? ? 48 8B ? ? ? ? ? 48 33 ? 48 89 ? ? ? ? ? ? 45 8B");
507+
508+
// Tablist
509+
ADD_SIG("Actor::getNametag", "48 83 EC ? 48 8B 81 ? ? ? ? 48 85 C0 74 3B 48 8B 08 BA ? ? ? ? 48 8B 40 ? 48 2B C1 48 C1 F8 ? 66 3B D0 73 17");
510+
ADD_SIG("Level::getRuntimeActorList", "40 53 48 83 EC 30 48 81 C1 78");
511+
512+
ADD_SIG("MinecraftUIRenderContext::getUIMaterial", "4C 8D 05 ? ? ? ? 48 8B D3 48 8B CF 48 8B 5C 24 ? 0F 28 7C 24 ? 44 0F 28 44 24 ? 48 83 C4 40 5F E9 ? ? ? ?");
513+
ADD_SIG("Tessellator::createMaterial", "48 8B 05 ? ? ? ? 48 8D 55 ? 48 8D 0D ? ? ? ? 48 8B 40 ? FF 15 ? ? ? ? 48 8B F8");
514+
515+
ADD_SIG("baseActorRenderContext", "48 89 ? ? ? 48 89 ? ? ? 48 89 ? ? ? 48 89 ? ? ? 57 48 83 EC ? 49 8B ? 48 8B ? 48 8B ? 48 8D ? ? ? ? ? 48 89 ? 33 ED");
516+
517+
//ADD_SIG("clientInstanceSig", "");
518+
519+
ADD_SIG("HitResult::getEntity", "E8 ? ? ? ? EB 1A 48 8B CE");
520+
}
521+
423522
void SigInit::init2030() {
424523
Logger::debug("[Signatures] Loading sigs for 1.20.3X");
425524

@@ -481,7 +580,7 @@ void SigInit::init2030() {
481580
ADD_SIG("CameraAssignAngle", "8B 44 24 48 89 43 08 C6");
482581

483582
// Nametag
484-
ADD_SIG("ThirdPersonNametag", "? ? ? ? ? ? 49 8B ? 48 8B ? E8 ? ? ? ? 84 C0 ? ? ? ? ? ? 49 8B ? 49 8b ? ? ? ? ? 49");
583+
ADD_SIG("ThirdPersonNametag", "? ? ? ? ? ? 49 8B ? 48 8B ? E8 ? ? ? ? 84 C0 ? ? ? ? ? ? 49 8B ? 49 8b");
485584

486585
// Keystrokes
487586
ADD_SIG("Actor::getMoveInputHandler", "40 53 48 83 EC 20 48 8B DA BA 2E");

src/Utils/Memory/Game/Sig/SigInit.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
class SigInit {
44
public:
55
static void init2030();
6+
static void init2040();
67
static void init2050();
78
static void init2060();
89
static void init2070();

src/Utils/Versions/VersionUtils.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ void VersionUtils::init() {
2323
std::pair<std::function<void()>, std::function<void()>> p2050 = {SigInit::init2050, OffsetInit::init2050};
2424
versions.emplace("1.20.5", p2050);
2525

26+
std::pair<std::function<void()>, std::function<void()>> p2040 = {SigInit::init2040, OffsetInit::init2040};
27+
versions.emplace("1.20.4", p2040);
28+
2629
std::pair<std::function<void()>, std::function<void()>> p2030 = {SigInit::init2030, OffsetInit::init2030};
2730
versions.emplace("1.20.3", p2030);
2831
}

0 commit comments

Comments
 (0)