From 489694ad8aef5314a532bf0a7a147cedb611b365 Mon Sep 17 00:00:00 2001 From: codemann8 Date: Tue, 18 Feb 2025 16:54:47 -0600 Subject: [PATCH 1/5] Fixed issue where empty cave lists were being added to candidates list in ER --- source/overworld/EntranceShuffle2.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source/overworld/EntranceShuffle2.py b/source/overworld/EntranceShuffle2.py index baa6b2c6..5135c920 100644 --- a/source/overworld/EntranceShuffle2.py +++ b/source/overworld/EntranceShuffle2.py @@ -906,7 +906,8 @@ def figure_out_connectors(exits, avail, cross_world=True): cave_list = list(Connector_List) if avail.assumed_loose_caves or (not avail.skull_handled and (cross_world or not avail.world.is_tile_swapped(0x00, avail.player))): skull_connector = [x for x in ['Skull Woods Second Section Exit (West)', 'Skull Woods Second Section Exit (East)'] if x in exits] - cave_list.extend([skull_connector]) + if len(skull_connector): + cave_list.extend([skull_connector]) if avail.assumed_loose_caves or not avail.keep_drops_together: cave_list.extend([[entrance_map[e]] for e in linked_drop_map.values() if 'Inverted ' not in e and 'Skull Woods ' not in e]) From 3f6b932410daa8209492c52d6e2773020274270a Mon Sep 17 00:00:00 2001 From: codemann8 Date: Tue, 18 Feb 2025 16:56:44 -0600 Subject: [PATCH 2/5] Fixed common error with shopsanity --- ItemList.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ItemList.py b/ItemList.py index ef3c7a12..08be1d62 100644 --- a/ItemList.py +++ b/ItemList.py @@ -969,7 +969,7 @@ def balance_prices(world, player): target -= flex elif adjustment <= 0: old_price = inventory['price'] - new_price = max(0, inventory['price'] + adjustment) + new_price = max(0, int(inventory['price'] + adjustment)) inventory['price'] = new_price target += (old_price - new_price) else: @@ -978,7 +978,7 @@ def balance_prices(world, player): for loc in shop_locations: slot = shop_to_location_table[loc.parent_region.name].index(loc.name) inventory = loc.parent_region.shop.inventory[slot] - new_price = inventory['price'] + adjustment + new_price = int(inventory['price'] + adjustment) new_price = min(500, max(0, new_price)) # cap prices between 0--twice base price inventory['price'] = new_price target -= adjustment From 8e511ff5c88ed0e7644aaae1930a19ffa63d8490 Mon Sep 17 00:00:00 2001 From: codemann8 Date: Tue, 18 Feb 2025 21:47:22 -0600 Subject: [PATCH 3/5] Removing dungeon items from hint pool for nearby shuffle --- Rom.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Rom.py b/Rom.py index 7f1dfe90..b78abbc7 100644 --- a/Rom.py +++ b/Rom.py @@ -2211,11 +2211,11 @@ def write_strings(rom, world, player, team): this_hint = this_hint[0].upper() + this_hint[1:] tt[hint_locations.pop(0)] = this_hint items_to_hint.remove(flute_item) - if world.keyshuffle[player] not in ['none', 'universal']: + if world.keyshuffle[player] not in ['none', 'nearby', 'universal']: items_to_hint.extend(SmallKeys) - if world.bigkeyshuffle[player] != 'none': + if world.bigkeyshuffle[player] not in ['none', 'nearby']: items_to_hint.extend(BigKeys) - if world.prizeshuffle[player] not in ['none', 'dungeon']: + if world.prizeshuffle[player] not in ['none', 'dungeon', 'nearby']: items_to_hint.extend(Prizes) random.shuffle(items_to_hint) hint_count = 5 if world.shuffle[player] not in ['vanilla', 'dungeonssimple', 'dungeonsfull', 'district', 'swapped'] else 8 From 609bbef49a25d806281cae009880e2b906f124b7 Mon Sep 17 00:00:00 2001 From: codemann8 Date: Tue, 18 Feb 2025 21:54:24 -0600 Subject: [PATCH 4/5] Various baserom fixes - Fixed overworld map check VRAM crash - Fixed cavestate dark room hidden items --- Rom.py | 2 +- data/base2current.bps | Bin 133995 -> 133998 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/Rom.py b/Rom.py index b78abbc7..e4582388 100644 --- a/Rom.py +++ b/Rom.py @@ -43,7 +43,7 @@ from source.enemizer.Enemizer import write_enemy_shuffle_settings JAP10HASH = '03a63945398191337e896e5771f77173' -RANDOMIZERBASEHASH = 'b439d99c7f41914eedb9f4097ecc8cc7' +RANDOMIZERBASEHASH = '80e0a4f8bd5cc6f83ac9f7f46c01bf4f' class JsonRom(object): diff --git a/data/base2current.bps b/data/base2current.bps index e1a2fc7a277030b07c92557dc5c47f9724f4235f..db46c22a6aaf24c4317e0d06e25a5acb3590b983 100644 GIT binary patch delta 1355 zcmWNM3s4hx5XRYrJV-FSEs;mk1HwcEfuf?KK%ojXh)R9b$F$;T?L+~!6>Synf^H|<0t~MHnjPmnWTScQrr544X)MvDjeyw7?p(D@Mc}2ce>(wGL)(&~p;!EA2 z>rxMkk~#(~wPID(pYlZmYNykgO&G8#gBE8$p{vtjvByqOvTaCbPnNe_BXnt`4vRts zS^FUb-Oic`tq8Kq0Hg8j{1o2WVGFj8?%(ssA2R8SKbL+N8l5P^1#Wx^1m$5fDL z9A6w$&_k$9Te{EV0e${$tPUzCl8-#4YBZR1ga3#a@-1hr`z zgj#)Dbv2zKamZm?@v>~1-cwv^TMQK(dyt4ROS+L%T1CVl4H2W) z=!+^SQE(NZpwhbug}JaBZTFZ8kEzgWNX5%CY6W`mW-dgb5LYIoq1CSUp&A`?Z3H!% zbmc-BS~Rf`<|FOIn%qE1wRZit&9T{Jr@Gy%v3E+&(-{KW>wnMbXx}VShL*=VHWV|u4C2W+d3PaZ>75 z2gw9bo4&YkeI}^e%Tb0q7*3;=?sy1974E3$15{#pE3!E7%^>qP!!N z$1q%Fd)R}gi_i`CCQ0#oeEg`5HM2IBF=e3nZ?kxDUhR|!RlJRc0^0g^BoLl6^#Py& zP*GihupE?>BnU9bp^}0i4pNv6L7?M$&*(H`%+sl0;7lzJKG10wTY8Nr9{J0EuECRR zhp62_OuZE9IK1NM1Lh(oAslwb^JOuWr}soNt+~(<#8b|}sZ{3U4bUav@FS^rHpAx- z%MhD^2FPS)eFhpKgix1?VLHf}fnsP3_9YAg3zrL3I=91OCfGVtkcF#)RLlDa6#f7=4^^DR8$LIKj7g&0p7AgD>ajez6>Z(*XN|b$E2EIgQ$W4|e%3O?z0+ ZvUgd;QlZSqJt$2U-fEP*iO9HV{2zk=OX2_k delta 1415 zcmWMk2~ZPf6wb>n| zer3@N2E&zz7@XCvSP=%TM_b!i@hF{oQDBS|sZy{UZg<|yoA-U+%=_k>_eN_a&uS&r zKf)Jhep<^H`t*;g=x{+kA2uPA=$0h(snyj~kF7*Hu@;Ky^I}hc&**DzAcP$HhHQ|7 zv?C}Q+?KkmE+<(=4+Iwi*wFi-NwOxFl}eVE{9J>{X>;gt02RGdaZ?NUk~FF_T)4qMMBAt)y3r%vf_e%hBGeZ1yx&4{_D(L0zE_ zCss*g?E}_onYQAgGJQbja=Fro8cZ^1b@dU3!v-w!SOcZlh78U)W%CunkVG1=FtjFh zKX{{CsSDu*g0x}?rSY`v1ku`OR;-Bb+x^HJlIU~fD!&AVjPOB+0S%Bq2m$o4L&)02@NExcM$ z;XP>=@Nf?fbx={rb7G!UPSl8}x_KAS1(Y%o3v#q;VmUlU-%V&C0tqHFRGMx=Yu?ax z2KTw)?UY~xe_3(2fZC$C+7pR7NA}C&v5vrazlB|W+C zo#7S3?+$Mq-aA}A?09dyILOGgDV;+_`9+o!DvPiSc?DJwDpW$Kj3vhH2PmFj1rb3l z>LMa6>$}iqPK@Bh2xAEuFH(YHDO(Q#Xc3yqYoXpWEH^-~LI}9{Gl~myQ8KgP)PyJS%B@n~OWiD%X z7={yjkpOS>d7!|zWsrJXrtx2tkJK|7@IX6fBBS>|Mk#-wEm`F6y7n2tm>afowq6@J z(w-wwgHymwRAC%mAJZH>CeZq$Ycoo>pb_h{GBN~>&ICgUlFq7CJ8}of1)wwUI{U*y z(AoDI;>7k5L%i5-H6(~@l_LC((%ypB&qjj;mCeo#kB{r8K8o!(9AKweDmbf-JivCF zld|e4PN=!ecC+PepQ4+yn?3X5#rRPNYhfKMV_uAsU#E)R Date: Tue, 18 Feb 2025 22:01:52 -0600 Subject: [PATCH 5/5] Version bump 0.5.1.5 --- CHANGELOG.md | 7 +++++++ OverworldShuffle.py | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 07eeb96f..a9e21869 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## 0.5.1.5 +- Fixed rare overworld map check VRAM crash +- Fixed cavestate dark room hidden item issue +- Removed dungeon items from hint pool for nearby dungeon items +- Fixed generation error with shopsanity +- Fixed generation error in ER: empty cave lists being added as candidates + ## 0.5.1.4 - Fixed incorrect ganon silvers hint - \~Merged in DR v1.4.8.1~ diff --git a/OverworldShuffle.py b/OverworldShuffle.py index 883ecfa8..6934829e 100644 --- a/OverworldShuffle.py +++ b/OverworldShuffle.py @@ -8,7 +8,7 @@ from OWEdges import OWTileRegions, OWEdgeGroups, OWEdgeGroupsTerrain, OWExitType from OverworldGlitchRules import create_owg_connections from Utils import bidict -version_number = '0.5.1.4' +version_number = '0.5.1.5' # branch indicator is intentionally different across branches version_branch = '-u'