1
0
Fork 0
mirror of https://github.com/notwa/mm synced 2024-06-01 18:53:06 -07:00

add half-broken race file creator

This commit is contained in:
Connor Olding 2015-11-15 19:59:10 -08:00
parent eb73ba66b2
commit 628bc7b49c
3 changed files with 110 additions and 2 deletions

View File

@ -99,7 +99,7 @@ function Actor(addr)
end
return {
link = A(link, 0x4000),
link = AL(0x00, 0x4000),
exit_value = AL(0x02, 2),
mask_worn = AL(0x04, 1),
intro_completed = AL(0x05, 1),
@ -125,6 +125,7 @@ return {
has_normal_magic = AL(0x40, 1),
has_double_magic = AL(0x41, 1),
owls_hit = AL(0x46, 2),
tunic_boots = AL(0x6C, 1),
sword_shield = AL(0x6D, 1),
inventory_items = AL(0x70, 24),
inventory_masks = AL(0x88, 24),
@ -188,6 +189,11 @@ return {
},
-- note: these addresses are invalid for JP10, JP11.
epona_scene = AL(0x1000, 2), -- this is where you left epona
epona_x = AL(0x1002, 2), -- NOT where she currently is
epona_y = AL(0x1004, 2),
epona_z = AL(0x1006, 2),
epona_angle = AL(0x1008, 2),
checksum = AL(0x100A, 2),
event_inf = AL(0x100C, 8),
disable_pause = AL(0x100D, 1),

View File

@ -242,7 +242,7 @@ return oot and Menu{
Oneshot("Z Targeting: Hold", Setter{[a.target_style]=1}),
Text(""),
Oneshot("Setup First Cycle", first_cycle),
--Oneshot("Setup Race File", race_file),
Oneshot("Setup Race File", Setter{[dofile]="race.lua"}),
Text(""),
Oneshot("Set Bombers Code to 12345", Setter{
[a.bombers_code[1]]=1,

102
Lua/race.lua Normal file
View File

@ -0,0 +1,102 @@
require "boilerplate"
local a = require "addrs.init"
local inv = a.inventory
local masks = a.masks
local quantities = a.quantities
local iv
if version == "M JP10" or version == "M JP11" then
iv = require "data.item values early"
elseif oot then
iv = require "data.item values oot"
else
iv = require "data.item values"
end
require "flag manager"
-- TODO: just force a song of time cutscene to reset most things
-- TODO: wipe flags
for i=a.link.addr, a.link.addr + a.link.type, 4 do
W4(i, 0)
end
a.exit_value(0xD800)
--a.mask_worn(0)
a.intro_completed(1)
a.time(0x3FFF)
--a.owl_id(0)
--a.day_night(0)
--a.time_speed(0)
--a.day(0)
--a.days_elapsed(0)
a.transformation(4)
a.have_tatl(1)
--a.owl_save(0)
a.sot_count(2)
a.max_hearts(0x30)
a.hearts(0x30)
a.magic_level(1)
a.magic(0x30)
a.magic_max(0x30)
--a.rupees(0)
a.has_normal_magic(1)
--a.has_double_magic(0)
--a.owls_hit(0)
for k, f in pairs(inv) do f(-1) end
for k, f in pairs(masks) do f(-1) end
inv.b_button_item(0x4D) -- TODO: add to item values table
inv.b_button_goron(0x4D)
inv.b_button_zora(0x4D)
inv.b_button_deku(iv.deku_nuts)
inv.c_left_item(iv.ocarina)
inv.c_down_item(-1)
inv.c_right_item(-1)
inv.c_left_slot(iv.ocarina)
inv.c_down_slot(-1)
inv.c_right_slot(-1)
--a.tunic_boots(0)
a.sword_shield(0x11)
inv.ocarina(iv.ocarina)
masks.deku(iv.deku)
--for k, f in pairs(quantities) do f(0) end
a.upgrades(0x00120000) -- deku nut 20 and deku stick 10
a.quest_items(0x10003000)
AL(0x3D7, 5) -- unknown
scene_flag_set(9, 0, 10)
scene_flag_set(94, 2, 0)
scene_flag_set(111, 4, 10)
AL(0xE6C, 0x1D4C) -- unknown
AL(0xE70, 0x1D4C) -- unknown
AL(0xE74, 0x1DB0) -- unknown
AL(0xEE8, 0x0013000A) -- unknown
AL(0xEEC, 0x1770) -- unknown
AL(0xEF4, 0x000A0027) -- unknown
event_flag_set(2, 5)
event_flag_set(2, 4)
event_flag_set(2, 3)
event_flag_set(31, 2)
event_flag_set(59, 2)
event_flag_set(92, 7)
a.map_visited(0x20)
a.map_visible(0x00)
a.bombers_code[1](1)
a.bombers_code[2](2)
a.bombers_code[3](3)
a.bombers_code[4](4)
a.bombers_code[5](5)
a.spider_mask_order[1](0) -- red
a.spider_mask_order[2](1) -- blue
a.spider_mask_order[3](0) -- red
a.spider_mask_order[4](1) -- blue
a.spider_mask_order[5](0) -- red
a.spider_mask_order[6](1) -- blue
a.lottery_numbers[1](0x010203)
a.lottery_numbers[2](0x040506)
a.lottery_numbers[3](0x070809)
a.epona_scene(53)
a.epona_x(-1420)
a.epona_y(257)
a.epona_z(-1285)
a.epona_angle(10922)