From 5e8ac74b2a168568a4d26c7cddef0878372af5fc Mon Sep 17 00:00:00 2001 From: wildham0 <64616385+wildham0@users.noreply.github.com> Date: Mon, 5 Sep 2022 03:21:00 -0400 Subject: [PATCH] FFR: fix NoOverworld mode (#999) * Add Sigil/Mark to item list --- data/lua/FF1/ff1_connector.lua | 12 ++++++++++-- worlds/ff1/Items.py | 2 +- worlds/ff1/__init__.py | 2 +- worlds/ff1/data/items.json | 4 +++- 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/data/lua/FF1/ff1_connector.lua b/data/lua/FF1/ff1_connector.lua index ed3ee1ca..6b2eec26 100644 --- a/data/lua/FF1/ff1_connector.lua +++ b/data/lua/FF1/ff1_connector.lua @@ -97,6 +97,11 @@ local extensionConsumableLookup = { [443] = 0x3F } +local noOverworldItemsLookup = { + [499] = 0x2B, + [500] = 0x12, +} + local itemMessages = {} local consumableStacks = nil local prevstate = "" @@ -341,7 +346,7 @@ function processBlock(block) -- This is a key item memoryLocation = memoryLocation - 0x0E0 wU8(memoryLocation, 0x01) - elseif v >= 0x1E0 then + elseif v >= 0x1E0 and v <= 0x1F2 then -- This is a movement item -- Minus Offset (0x100) - movement offset (0xE0) memoryLocation = memoryLocation - 0x1E0 @@ -351,7 +356,10 @@ function processBlock(block) else wU8(memoryLocation, 0x01) end - + elseif v >= 0x1F3 and v <= 0x1F4 then + -- NoOverworld special items + memoryLocation = noOverworldItemsLookup[v] + wU8(memoryLocation, 0x01) elseif v >= 0x16C and v <= 0x1AF then -- This is a gold item amountToAdd = goldLookup[v] diff --git a/worlds/ff1/Items.py b/worlds/ff1/Items.py index e045fbaf..469cf6f0 100644 --- a/worlds/ff1/Items.py +++ b/worlds/ff1/Items.py @@ -20,7 +20,7 @@ FF1_STARTER_ITEMS = [ FF1_PROGRESSION_LIST = [ "Rod", "Cube", "Lute", "Key", "Chime", "Oxyale", - "Ship", "Canoe", "Floater", "Canal", + "Ship", "Canoe", "Floater", "Mark", "Sigil", "Canal", "Crown", "Crystal", "Herb", "Tnt", "Adamant", "Slab", "Ruby", "Bottle", "Shard", "EarthOrb", "FireOrb", "WaterOrb", "AirOrb" diff --git a/worlds/ff1/__init__.py b/worlds/ff1/__init__.py index 0d731ace..b9f90a2e 100644 --- a/worlds/ff1/__init__.py +++ b/worlds/ff1/__init__.py @@ -31,7 +31,7 @@ class FF1World(World): game = "Final Fantasy" topology_present = False remote_items = True - data_version = 1 + data_version = 2 remote_start_inventory = True ff1_items = FF1Items() diff --git a/worlds/ff1/data/items.json b/worlds/ff1/data/items.json index 99611837..33308097 100644 --- a/worlds/ff1/data/items.json +++ b/worlds/ff1/data/items.json @@ -190,5 +190,7 @@ "Ship": 480, "Bridge": 488, "Canal": 492, - "Canoe": 498 + "Canoe": 498, + "Sigil": 499, + "Mark": 500 }