From 0cf40cf0cafe16478a2f2e44a780faaec5d7abb2 Mon Sep 17 00:00:00 2001 From: Dregu Date: Fri, 22 Nov 2024 07:43:47 +0200 Subject: [PATCH] Fix patterns for 1.0.0.20 --- README.md | 2 +- search.cpp | 82 ++++++++++++++++++++++++++++++++++++++++++++---------- ui.cpp | 6 +++- 3 files changed, 73 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index 6d0abc2..a1f16d3 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ MAXWELL is an ingame ImGui overlay for the game ANIMAL WELL, featuring an inventory editor, warping map, cheats etc. -It has been tested on the 2024-06-14 version 1.0.0.19 on Windows 10. This is the only version officially supported by the latest autobuild, but it might work for older or newer versions too. There might also be compatibility releases for older versions available in the release section, but those probably won't have the latest features. +It has been tested on the 2024-10-31 version 1.0.0.20 on Windows 10. This is the only version officially supported by the latest autobuild, but it might work for older or newer versions too. There might also be compatibility releases for older versions available in the release section, but those probably won't have the latest features. **Please go away if you haven't finished the game, this will spoil everything for you.** diff --git a/search.cpp b/search.cpp index c87cb36..2fa1c37 100644 --- a/search.cpp +++ b/search.cpp @@ -492,8 +492,8 @@ std::unordered_map g_address_rules{ "keyboard"sv, PatternCommandBuffer{} .set_optional(true) - .find_after_inst( - "0f 11 .. .. .. .. .. 0f 11 .. .. .. .. .. .. 89 .."_gh) + .find_inst("48 89 f1 ff 15 .. .. .. .. 0f 10"_gh) + .offset(3) .at_exe(), }, { @@ -677,19 +677,35 @@ std::unordered_map g_address_rules{ }, { "draw_push_color"sv, - PatternCommandBuffer{}.from_exe_base(0x177d0), // TODO + PatternCommandBuffer{} //.from_exe_base(0x177d0), + .set_optional(true) + .find_inst("4c 63 80 8c dc 89 00 49 8d 50 01"_gh) + .at_exe() + .function_start(), }, { "draw_pop_color"sv, - PatternCommandBuffer{}.from_exe_base(0x17830), // TODO + PatternCommandBuffer{} //.from_exe_base(0x17830), + .set_optional(true) + .find_inst("83 80 8c dc 89 00 ff c3"_gh) + .at_exe() + .function_start(), }, { "draw_push_shader"sv, - PatternCommandBuffer{}.from_exe_base(0x17840), // TODO + PatternCommandBuffer{} //.from_exe_base(0x17840), + .set_optional(true) + .find_inst("42 89 8c 80 4c dc 89 00 c3"_gh) + .at_exe() + .function_start(), }, { "draw_pop_shader"sv, - PatternCommandBuffer{}.from_exe_base(0x178a0), // TODO + PatternCommandBuffer{} //.from_exe_base(0x178a0), + .set_optional(true) + .find_inst("83 80 68 dc 89 00 ff c3"_gh) + .at_exe() + .function_start(), }, { "render_player"sv, @@ -701,7 +717,10 @@ std::unordered_map g_address_rules{ }, { "render_clouds"sv, - PatternCommandBuffer{}.from_exe_base(0x103264), + PatternCommandBuffer{} //.from_exe_base(0x103264), + .set_optional(true) + .find_inst("74 24 49 8b 8d d8 06 00 00"_gh) + .at_exe(), }, { "get_room_params"sv, @@ -754,32 +773,65 @@ std::unordered_map g_address_rules{ .at_exe(), }, { - "key_down"sv, PatternCommandBuffer{}.from_exe_base(0x11c50), // TODO + "key_down"sv, + PatternCommandBuffer{} //.from_exe_base(0x11c50), + .set_optional(true) + .find_inst("8a 84 08 00 01 00 00 c0 e8 07 c3"_gh) + .at_exe() + .function_start(), }, { - "key_pressed"sv, PatternCommandBuffer{}.from_exe_base(0x11c70), // TODO + "key_pressed"sv, + PatternCommandBuffer{} //.from_exe_base(0x11c70), + .set_optional(true) + .find_inst("80 bc 08 00 01 00 00 00"_gh) + .at_exe() + .function_start(), }, { - "draw_button"sv, PatternCommandBuffer{}.from_exe_base(0x6e950), // TODO + "draw_button"sv, + PatternCommandBuffer{} //.from_exe_base(0x6e950), + .set_optional(true) + .find_inst("48 83 ec 58 44 89 c5 41 89 d5"_gh) + .at_exe() + .function_start(), }, { "draw_action_button"sv, - PatternCommandBuffer{}.from_exe_base(0x6df70), // TODO + PatternCommandBuffer{} //.from_exe_base(0x6df70), + .set_optional(true) + .find_inst("48 83 ec 58 44 89 c5 89 d6"_gh) + .at_exe() + .function_start(), }, { - "skip_credits"sv, PatternCommandBuffer{}.from_exe_base(0x476d9), // TODO + "skip_credits"sv, + PatternCommandBuffer{} //.from_exe_base(0x476d9), + .set_optional(true) + .find_inst("73 4c c7 85 c0 34 03 00 00 00 00 00"_gh) + .at_exe(), }, { "room_tile_flags"sv, - PatternCommandBuffer{}.from_exe_base(0x1A190), // TODO + PatternCommandBuffer{} //.from_exe_base(0x1A190), + .set_optional(true) + .find_inst("44 89 c0 83 fa 15 41 b8 15 00 00 00"_gh) + .at_exe(), }, { "render_water"sv, - PatternCommandBuffer{}.from_exe_base(0x103f4a), // TODO + PatternCommandBuffer{} //.from_exe_base(0x103f4a), + .set_optional(true) + .find_inst("76 35 48 89 f1"_gh) + .at_exe(), }, { "load_map_from_data"sv, - PatternCommandBuffer{}.from_exe_base(0x2ec0), // TODO + PatternCommandBuffer{} //.from_exe_base(0x2ec0), + .set_optional(true) + .find_inst("48 83 ec 20 49 89 d7 48 85 c9"_gh) + .at_exe() + .function_start(), }, /*{ "load_asset"sv, PatternCommandBuffer{}.from_exe_base(0x74450), // TODO diff --git a/ui.cpp b/ui.cpp index 8138b3c..524270e 100644 --- a/ui.cpp +++ b/ui.cpp @@ -222,7 +222,11 @@ std::array asset_type_names{ }; std::array progress_names{ - "Game Started", "Unknown", "Ready to hatch", "Show HP", "Drop House Key", + "Game started", + "Unknown", + "Ready to hatch", + "Show health bar", + "Rolled credits (Drop House Key)", }; std::array unlockable_names{