mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-07-03 19:10:19 -04:00
implement golden wolf checks
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
#include "flags.h"
|
||||
#include "stages.h"
|
||||
#include "tools.h"
|
||||
|
||||
goldenWolfFlags getCurrentGoldenWolfFlags(u8 roomNo) {
|
||||
switch (getStageID()) {
|
||||
case Ordon_Spring:
|
||||
return {0x41, HOWLED_AT_DEATH_MOUNTAIN_STONE, GOT_SKILL_FROM_ORDON_WOLF};
|
||||
case Faron_Woods:
|
||||
return {0xFF, 0xFFFF, 0x3C10}; // Custom flag for rando
|
||||
case Kakariko_Graveyard:
|
||||
return {0x79, HOWLED_AT_SNOWPEAK_STONE, GOT_SKILL_FROM_GRAVEYARD_WOLF};
|
||||
case Outside_Castle_Town:
|
||||
if (roomNo == 8) {
|
||||
return {0x29, HOWLED_AT_UPPER_ZORAS_RIVER_STONE, GOT_SKILL_FROM_WEST_CT_WOLF};
|
||||
}
|
||||
return {0x2A, HOWLED_AT_SACRED_GROVE_OUTSIDE_STONE, GOT_SKILL_FROM_SOUTH_CT_FIELD_WOLF};
|
||||
case Castle_Town:
|
||||
return {0x32, HOWLED_AT_HIDDEN_VILLAGE_STONE, GOT_SKILL_FROM_BARRIER_WOLF};
|
||||
case Gerudo_Desert:
|
||||
return {0x32, HOWLED_AT_LAKE_HYLIA_STONE, GOT_SKILL_FROM_BULBLIN_CAMP_WOLF};
|
||||
default:
|
||||
return {0xFF, 0xFFFF, 0xFFFF};
|
||||
}
|
||||
}
|
||||
@@ -398,7 +398,7 @@ enum EventFlags
|
||||
TALKED_TO_YETA_AFTER_WINNING_RACE_AGAINST_YETO = 0x3B20,
|
||||
WON_SNOWBOARD_RACE_AGAINST_YETO = 0x3B40,
|
||||
GOT_CORAL_EARRING_FROM_RALIS = 0x3B80,
|
||||
GOT_SKILL_FROM_BULBLIN_CAMP_WOLF = 0x3C01,
|
||||
GOT_SKILL_FROM_BULBLIN_CAMP_WOLF = 0x3C01,
|
||||
GOT_SKILL_FROM_SOUTH_CT_FIELD_WOLF = 0x3C02,
|
||||
GOT_SKILL_FROM_WEST_CT_WOLF = 0x3C04,
|
||||
GOT_SKILL_FROM_ORDON_WOLF = 0x3C08,
|
||||
@@ -616,3 +616,11 @@ enum EventFlags
|
||||
TALKED_TO_COLIN_ORDON_DAY_1 = 0x6280,
|
||||
HENA_BEAT_ROLLGOAL_8_8 = 0x6302
|
||||
};
|
||||
|
||||
struct goldenWolfFlags {
|
||||
u8 mapMarkerFlag{};
|
||||
u16 howledAtStoneFlag{};
|
||||
u16 obtainedItemFlag{};
|
||||
};
|
||||
|
||||
goldenWolfFlags getCurrentGoldenWolfFlags(u8 roomNo);
|
||||
@@ -67,6 +67,9 @@ std::optional<std::string> RandomizerContext::WriteToFile() {
|
||||
const std::unordered_map<u16, u16> u16SkyCharacterOverrides(this->mSkyCharacterOverrides.begin(), this->mSkyCharacterOverrides.end());
|
||||
out["mSkyCharacterOverrides"] = u16SkyCharacterOverrides;
|
||||
|
||||
const std::unordered_map<u16, u16> u16GoldenWolfOverrides(this->mGoldenWolfOverrides.begin(), this->mGoldenWolfOverrides.end());
|
||||
out["mGoldenWolfOverrides"] = u16GoldenWolfOverrides;
|
||||
|
||||
out["mItemLocations"] = this->mItemLocations;
|
||||
|
||||
out["mStartHour"] = static_cast<u16>(this->mStartHour);
|
||||
@@ -172,6 +175,13 @@ std::optional<std::string> RandomizerContext::LoadFromHash(const std::string& ha
|
||||
this->mSkyCharacterOverrides[key] = itemId;
|
||||
}
|
||||
|
||||
// Golden Wolves
|
||||
for (const auto& goldenWolfNode : in["mGoldenWolfOverrides"]) {
|
||||
u16 key = goldenWolfNode.first.as<u16>();
|
||||
u8 itemId = goldenWolfNode.second.as<u8>();
|
||||
this->mGoldenWolfOverrides[key] = itemId;
|
||||
}
|
||||
|
||||
// Items we call by location name
|
||||
for (const auto& locationNode : in["mItemLocations"]) {
|
||||
const auto& locationName = locationNode.first.as<std::string>();
|
||||
@@ -624,6 +634,14 @@ void GenerateAndWriteSeed(std::string& generationStatusMsg) {
|
||||
randoData.mSkyCharacterOverrides[key] = itemId;
|
||||
}
|
||||
|
||||
// Golden Wolves
|
||||
// Keyed by u16 of the event flag for obtaining the golden wolf item
|
||||
if (location->HasCategories("Golden Wolf")) {
|
||||
u16 flag = metaData[0]["Flag"].as<u16>();
|
||||
u8 itemId = location->GetCurrentItem()->GetID();
|
||||
randoData.mGoldenWolfOverrides[flag] = itemId;
|
||||
}
|
||||
|
||||
// Items that we lookup just by calling their location name
|
||||
if (location->HasCategories("Location Name Lookup")) {
|
||||
const auto& locationName = metaData.as<std::string>();
|
||||
@@ -833,4 +851,4 @@ void GenerateAndWriteSeed(std::string& generationStatusMsg) {
|
||||
}
|
||||
|
||||
generationStatusMsg = fmt::format("Seed generated! Hash: {}", randoData.mHash);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,6 +33,7 @@ public:
|
||||
std::unordered_map<u8, std::unordered_map<u8, u8>> mFreestandingItemOverrides{};
|
||||
std::unordered_map<u8, u8> mBugRewardOverrides{};
|
||||
std::unordered_map<u16, u8> mSkyCharacterOverrides{};
|
||||
std::unordered_map<u16, u8> mGoldenWolfOverrides{};
|
||||
std::unordered_map<std::string, int> mItemLocations{};
|
||||
u8 mStartHour{0};
|
||||
u8 mMapBits{};
|
||||
|
||||
@@ -4,6 +4,24 @@
|
||||
|
||||
|
||||
ACTR: # Objects which have the ACTR dzx type
|
||||
# Faron Woods
|
||||
F_SP108:
|
||||
# Room 6 - North Faron Woods
|
||||
6:
|
||||
# Spawn Item for Golden Wolf in North Faron Woods layer 3
|
||||
- name: htPiece
|
||||
parameters: 0xFFFFFFE1
|
||||
position:
|
||||
x: -36699.4375
|
||||
y: 428.600311279297
|
||||
z: -23663.64453125
|
||||
angle:
|
||||
x: 0x0000
|
||||
y: 0x0000
|
||||
z: 0x00FF
|
||||
layers:
|
||||
- 3
|
||||
|
||||
F_SP115: # Lake Hylia
|
||||
0: # Room 0 - Main Lake
|
||||
# Spawn Auru on layers 1 & 3
|
||||
|
||||
@@ -111,6 +111,28 @@ F_SP103:
|
||||
layers:
|
||||
- 0
|
||||
|
||||
# Ordon Spring
|
||||
F_SP104:
|
||||
# Room 1 - Main Spring
|
||||
1:
|
||||
# Golden Wolf in Ordon Spring
|
||||
- name: GWolf
|
||||
parameters: 0x0E4102FF
|
||||
position:
|
||||
x: -1855.69543457031
|
||||
y: 311.160461425781
|
||||
z: -8084.61572265625
|
||||
angle:
|
||||
x: 0x0BD1
|
||||
y: 0x8000
|
||||
z: 0x00FF
|
||||
patch:
|
||||
# Turn the golden wolf into a htPiece actor with the hidden skill item
|
||||
name: htPiece
|
||||
parameters: 0xFFFFFFE1
|
||||
layers:
|
||||
- 2
|
||||
|
||||
# Kakariko Graveyard
|
||||
F_SP111:
|
||||
# Room 0 - Main graveyard
|
||||
@@ -135,6 +157,25 @@ F_SP111:
|
||||
- 2
|
||||
- 3
|
||||
|
||||
# Golden Wolf in Kakariko Graveyard
|
||||
- name: GWolf
|
||||
parameters: 0x037906FF
|
||||
position:
|
||||
x: 17575.34375
|
||||
y: 500.0
|
||||
z: -51.3761901855469
|
||||
angle:
|
||||
x: 0x0BD1
|
||||
y: 0xC000
|
||||
z: 0x00FF
|
||||
patch:
|
||||
# Turn the golden wolf into a htPiece actor with the hidden skill item
|
||||
name: htPiece
|
||||
parameters: 0xFFFFFFE1
|
||||
layers:
|
||||
- 2
|
||||
- 3
|
||||
|
||||
# Zora's Domain
|
||||
F_SP113:
|
||||
# Room 1 - Main Zora's Domain Area
|
||||
@@ -183,6 +224,28 @@ F_SP115:
|
||||
- 3
|
||||
- 4
|
||||
|
||||
# Castle Town
|
||||
F_SP116:
|
||||
# Room 1 - North Castle Town
|
||||
1:
|
||||
# Golden Wolf in North Castle Town
|
||||
- name: GWolf
|
||||
parameters: 0x013207FF
|
||||
position:
|
||||
x: 0.0
|
||||
y: 800.0
|
||||
z: -9500.0
|
||||
angle:
|
||||
x: 0x0BD1
|
||||
y: 0x0000
|
||||
z: 0x00FF
|
||||
patch:
|
||||
# Turn the golden wolf into a htPiece actor with the hidden skill item
|
||||
name: htPiece
|
||||
parameters: 0xFFFFFFE1
|
||||
layers:
|
||||
- 1
|
||||
|
||||
# Sacred Grove
|
||||
F_SP117:
|
||||
# Room 1 - Pedestal of Time
|
||||
@@ -542,6 +605,28 @@ F_SP122:
|
||||
- 0
|
||||
- 6
|
||||
|
||||
# Golden Wolf Outside Castle Town West
|
||||
- name: GWolf
|
||||
parameters: 0x042903FF
|
||||
position:
|
||||
x: -68310.15625
|
||||
y: -1050.0
|
||||
z: 5925.4560546875
|
||||
angle:
|
||||
x: 0x0BD1
|
||||
y: 0xC16D
|
||||
z: 0x00FF
|
||||
patch:
|
||||
# Turn the golden wolf into a htPiece actor with the hidden skill item
|
||||
name: htPiece
|
||||
parameters: 0xFFFFFFE1
|
||||
layers:
|
||||
- 0
|
||||
- 4
|
||||
- 6
|
||||
- 13
|
||||
- 14
|
||||
|
||||
# Room 16 - Outside South Castle Town
|
||||
16:
|
||||
# Male Ladybug
|
||||
@@ -586,6 +671,28 @@ F_SP122:
|
||||
- 1
|
||||
- 6
|
||||
|
||||
# Golden Wolf Outside Castle Town South
|
||||
- name: GWolf
|
||||
parameters: 0x022A04FF
|
||||
position:
|
||||
x: -55927.09375
|
||||
y: -6100.0
|
||||
z: 25315.892578125
|
||||
angle:
|
||||
x: 0x0BD1
|
||||
y: 0xE9F5
|
||||
z: 0x00FF
|
||||
patch:
|
||||
# Turn the golden wolf into a htPiece actor with the hidden skill item
|
||||
name: htPiece
|
||||
parameters: 0xFFFFFFE1
|
||||
layers:
|
||||
- 0
|
||||
- 4
|
||||
- 6
|
||||
- 13
|
||||
- 14
|
||||
|
||||
# Gerudo Desert
|
||||
F_SP124:
|
||||
# Room 0 - Main Desert
|
||||
@@ -626,6 +733,24 @@ F_SP124:
|
||||
layers:
|
||||
- 0
|
||||
|
||||
# Golden Wolf in Desert
|
||||
- name: GWolf
|
||||
parameters: 0x0B3205FF
|
||||
position:
|
||||
x: 1112.08215332031
|
||||
y: -162.940002441406
|
||||
z: 12659.6689453125
|
||||
angle:
|
||||
x: 0x0BD1
|
||||
y: 0x0000
|
||||
z: 0x00FF
|
||||
patch:
|
||||
# Turn the golden wolf into a htPiece actor with the hidden skill item
|
||||
name: htPiece
|
||||
parameters: 0xFFFFFFE1
|
||||
layers:
|
||||
- 0
|
||||
|
||||
# Upper Zora's River
|
||||
F_SP126:
|
||||
# Room 0 - Main area
|
||||
|
||||
@@ -272,15 +272,14 @@
|
||||
- Tbox ID: 7
|
||||
Stage: D_SB05
|
||||
|
||||
# TODO
|
||||
- Name: Ordon Spring Golden Wolf
|
||||
Original Item: Progressive Hidden Skill
|
||||
Categories:
|
||||
- Overworld
|
||||
- Hidden Skill
|
||||
- Golden Wolf
|
||||
- Ordona Province
|
||||
Metadata:
|
||||
- None
|
||||
- Flag: 0x3C08
|
||||
|
||||
- Name: Ordon Spring Warp Portal
|
||||
Original Item: Ordon Spring Portal
|
||||
@@ -582,15 +581,14 @@
|
||||
Metadata:
|
||||
- None
|
||||
|
||||
# TODO
|
||||
- Name: Faron Woods Golden Wolf
|
||||
Original Item: Progressive Hidden Skill
|
||||
Categories:
|
||||
- Overworld
|
||||
- Hidden Skill
|
||||
- Golden Wolf
|
||||
- Faron Woods
|
||||
Metadata:
|
||||
- None
|
||||
- Flag: 0x3C10
|
||||
|
||||
- Name: North Faron Woods Deku Baba Chest
|
||||
Original Item: Yellow Rupee
|
||||
@@ -1452,15 +1450,14 @@
|
||||
Metadata:
|
||||
- None
|
||||
|
||||
# TODO
|
||||
- Name: Kakariko Graveyard Golden Wolf
|
||||
Original Item: Progressive Hidden Skill
|
||||
Categories:
|
||||
- Overworld
|
||||
- Hidden Skill
|
||||
- Golden Wolf
|
||||
- Kakariko Graveyard
|
||||
Metadata:
|
||||
- None
|
||||
- Flag: 0x3D80
|
||||
|
||||
- Name: Kakariko Graveyard Open Poe
|
||||
Original Item: Poe Soul
|
||||
@@ -2188,15 +2185,14 @@
|
||||
- Tbox ID: 0
|
||||
Stage: D_SB05
|
||||
|
||||
# TODO
|
||||
- Name: West Hyrule Field Golden Wolf
|
||||
Original Item: Progressive Hidden Skill
|
||||
Categories:
|
||||
- Overworld
|
||||
- Hidden Skill
|
||||
- Golden Wolf
|
||||
- Hyrule Field - Lanayru Province
|
||||
Metadata:
|
||||
- None
|
||||
- Flag: 0x3C04
|
||||
|
||||
- Name: Hyrule Field Amphitheater Owl Statue Chest
|
||||
Original Item: Orange Rupee
|
||||
@@ -2288,10 +2284,10 @@
|
||||
Original Item: Progressive Hidden Skill
|
||||
Categories:
|
||||
- Overworld
|
||||
- Hidden Skill
|
||||
- Golden Wolf
|
||||
- Castle Town
|
||||
Metadata:
|
||||
- None
|
||||
- Flag: 0x3D40
|
||||
|
||||
- Name: Doctors Office Balcony Chest
|
||||
Original Item: Red Rupee
|
||||
@@ -2686,15 +2682,14 @@
|
||||
- Tbox ID: 1
|
||||
Stage: D_SB09
|
||||
|
||||
# TODO
|
||||
- Name: Outside South Castle Town Golden Wolf
|
||||
Original Item: Progressive Hidden Skill
|
||||
Categories:
|
||||
- Overworld
|
||||
- Hidden Skill
|
||||
- Golden Wolf
|
||||
- Hyrule Field - Lanayru Province
|
||||
Metadata:
|
||||
- None
|
||||
- Flag: 0x3C02
|
||||
|
||||
- Name: Outside South Castle Town Double Clawshot Chasm Chest
|
||||
Original Item: Orange Rupee
|
||||
@@ -4337,15 +4332,14 @@
|
||||
- Tbox ID: 13
|
||||
Stage: F_SP124
|
||||
|
||||
# TODO
|
||||
- Name: Gerudo Desert Golden Wolf
|
||||
Original Item: Progressive Hidden Skill
|
||||
Categories:
|
||||
- Overworld
|
||||
- Hidden Skill
|
||||
- Golden Wolf
|
||||
- Gerudo Desert
|
||||
Metadata:
|
||||
- None
|
||||
- Flag: 0x3C01
|
||||
|
||||
- Name: Outside Bulblin Camp Poe
|
||||
Original Item: Poe Soul
|
||||
|
||||
@@ -186,7 +186,7 @@
|
||||
Kakariko Graveyard Male Ant: Nothing
|
||||
Kakariko Graveyard Grave Poe: Can_Use_Senses and Night
|
||||
Kakariko Graveyard Open Poe: Can_Use_Senses and Night
|
||||
Kakariko Graveyard Golden Wolf: "'Howl_at_Snowpeak_Mountain_Howling_Stone'"
|
||||
Kakariko Graveyard Golden Wolf: Can_Complete_Eldin_Twilight and 'Howl_at_Snowpeak_Mountain_Howling_Stone'
|
||||
Kakariko Graveyard Twilit Insect: Can_Defeat_Eldin_Twilit_Insect
|
||||
Exits:
|
||||
Kakariko Graveyard Pond: "'Can_Follow_Rutella'"
|
||||
|
||||
@@ -231,7 +231,7 @@
|
||||
Locations:
|
||||
North Faron Warp Portal: Can_Complete_Prologue
|
||||
North Faron Woods Deku Baba Chest: Nothing
|
||||
Faron Woods Golden Wolf: Nothing
|
||||
Faron Woods Golden Wolf: Can_Complete_Faron_Twilight
|
||||
North Faron Woods Twilit Insect 1: Can_Defeat_Faron_Twilit_Insect
|
||||
North Faron Woods Twilit Insect 2: Can_Defeat_Faron_Twilit_Insect
|
||||
Exits:
|
||||
|
||||
Reference in New Issue
Block a user