mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-08-26 06:52:40 -04:00
Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| b0e2f7915c | |||
| a9e26784fb | |||
| 24614615de | |||
| 9e99db03c4 | |||
| af82f701d2 |
@@ -1553,24 +1553,23 @@
|
||||
Parameters: "F01F"
|
||||
State: -1
|
||||
|
||||
# Leave Disabled for now: The Spawn point changes based on progression
|
||||
# - Type: Interior
|
||||
# Forward:
|
||||
# Connection: Castle Town West -> Castle Town STAR Game
|
||||
# Stage: 74
|
||||
# Room: 7
|
||||
# Spawn: 3
|
||||
# Spawn Type: "10"
|
||||
# Parameters: "F090"
|
||||
# State: -1
|
||||
# Return:
|
||||
# Connection: Castle Town STAR Game -> Castle Town West
|
||||
# Stage: 53
|
||||
# Room: 2
|
||||
# Spawn: 1
|
||||
# Spawn Type: "10"
|
||||
# Parameters: "F01F"
|
||||
# State: -1
|
||||
- Type: Interior
|
||||
Forward:
|
||||
Connection: Castle Town West -> Castle Town STAR Game
|
||||
Stage: 74
|
||||
Room: 7
|
||||
Spawn: 3
|
||||
Spawn Type: "10"
|
||||
Parameters: "F090"
|
||||
State: -1
|
||||
Return:
|
||||
Connection: Castle Town STAR Game -> Castle Town West
|
||||
Stage: 53
|
||||
Room: 2
|
||||
Spawn: 1
|
||||
Spawn Type: "10"
|
||||
Parameters: "F01F"
|
||||
State: -1
|
||||
|
||||
- Type: Interior
|
||||
Entrance Couple Tag: Castle Town Goron House
|
||||
|
||||
@@ -71,6 +71,13 @@
|
||||
parameters: 0x00000032
|
||||
next: Kakariko Malo Mart Wooden Shield Sold Out
|
||||
|
||||
# Patch Shad's flow to set the custom flag for receiving his item
|
||||
- index: 0x946
|
||||
type: event
|
||||
event: set event flag
|
||||
parameters: 0x0333
|
||||
next: 0xFFFF
|
||||
|
||||
#3: # zel_03.bmg
|
||||
4: # zel_04.bmg - Castle Town
|
||||
# Patch Charlo to check for 100 rupees instead of 30
|
||||
|
||||
@@ -1509,6 +1509,18 @@
|
||||
- Ilia Memory Reward
|
||||
Event Flag: 0x5E04
|
||||
|
||||
- Name: Shad Dominion Rod
|
||||
Original Item: Progressive Dominion Rod
|
||||
Categories:
|
||||
- Overworld
|
||||
- Npc
|
||||
- Kakariko Village
|
||||
- ARC
|
||||
Metadata:
|
||||
Name Lookup:
|
||||
- Shad Dominion Rod
|
||||
Event Flag: 0x6308
|
||||
|
||||
- Name: Rutelas Blessing
|
||||
Original Item: Zora Armor
|
||||
Categories:
|
||||
|
||||
@@ -59,7 +59,6 @@ EventFlags:
|
||||
- 0x5E10 # Midna text after beating Forest Temple.
|
||||
- 0x1D40 # Listened to Fyer at drained lake.
|
||||
- 0x2201 # Plumm initial CS watched.
|
||||
- 0x2310 # STAR initial CS watched.
|
||||
- 0x2602 # Talked to Yeto on Snowpeak.
|
||||
- 0x2840 # Used Ooccoo for the first time.
|
||||
- 0x3704 # Postman twilight text.
|
||||
@@ -73,6 +72,8 @@ EventFlags:
|
||||
- 0x5940 # Met Postman for the first time.
|
||||
- 0x5D40 # Midna text after Kargarok flight.
|
||||
- 0x2502 # Watched cutscene with Yeto on top of mountain
|
||||
- Skip_Minor_Cutscenes == On or Randomize_Interior_Entrances == On:
|
||||
- 0x2310 # STAR initial CS watched.
|
||||
- Faron_Woods_Logic == Open:
|
||||
- 0x0602 # Forest Temple Story Flag
|
||||
- 0x0C40 # Talked to Farone after clearing Forest Temple
|
||||
@@ -305,8 +306,9 @@ RegionFlags:
|
||||
- 0x7E # Jovani Chest CS
|
||||
- 0x50 # Set flag for Midna breaking Barrier CS.
|
||||
- 0xBC # Spawn Gengle by default as his actor interferes with the poe soul
|
||||
- Skip_Minor_Cutscenes == On:
|
||||
- Skip_Minor_Cutscenes == On or Randomize_Interior_Entrances == On:
|
||||
- 0x55 # STAR Tent intro CS.
|
||||
- Skip_Minor_Cutscenes == On:
|
||||
- 0x7D # Jovani House intro CS.
|
||||
- Ilia_Memory_Quest >= Statue:
|
||||
- 0x56 # Remove invisible wall from Doctor
|
||||
|
||||
@@ -168,6 +168,7 @@
|
||||
- Name: Kakariko Renados Sanctuary Basement
|
||||
Twilight: Eldin
|
||||
Locations:
|
||||
Shad Dominion Rod: Progressive_Sky_Book and Can_Complete_Eldin_Twilight
|
||||
Sanctuary Basement Twilit Insect 1: Can_Defeat_Eldin_Twilit_Insect
|
||||
Sanctuary Basement Twilit Insect 2: Can_Defeat_Eldin_Twilit_Insect
|
||||
Sanctuary Basement Twilit Insect 3: Can_Defeat_Eldin_Twilit_Insect
|
||||
|
||||
@@ -299,10 +299,10 @@ namespace randomizer::logic::item_pool
|
||||
itemPool.erase("Gerudo Desert Bulblin Camp Key");
|
||||
}
|
||||
|
||||
// Remove sky book characters if we're starting with the sky canon open
|
||||
// Remove all but 1 sky book characters if we're starting with the sky canon open
|
||||
if (world->Setting("City Does Not Require Filled Skybook") == "On")
|
||||
{
|
||||
itemPool.erase("Progressive Sky Book");
|
||||
itemPool["Progressive Sky Book"] = 1;
|
||||
}
|
||||
|
||||
// Remove Small Keys if we're playing without them
|
||||
|
||||
@@ -679,10 +679,6 @@ namespace randomizer::logic::world
|
||||
(this->Setting("Big Keys") == "Keysy" && originalItem->IsBigKey()) ||
|
||||
(this->Setting("Maps and Compasses") == "Start With" &&
|
||||
(originalItem->IsDungeonMap() || originalItem->IsCompass())))) ||
|
||||
// Sky Characters are not randomized, but City in the Sky doesn't require Sky Book Characters (Sky characters
|
||||
// shouldn't exist)
|
||||
(this->Setting("Sky Characters") == "Off" && this->Setting("City Does Not Require Filled Skybook") == "On" &&
|
||||
location->HasCategories("Sky Character")) ||
|
||||
// We're starting with a shop item, but shop items aren't randomized
|
||||
(this->Setting("Shop Items") == "Off" && location->HasCategories("Shop") &&
|
||||
utility::container::ElementInContainer(this->_startingItemPool, originalItem)))
|
||||
|
||||
@@ -135,7 +135,6 @@ DEFINE_HOOK(&daNpc_Bans_c::isDelete, daNpc_Bans_c__isDelete);
|
||||
|
||||
DEFINE_HOOK(&daNpc_Fairy_c::AppearDemoCall, daNpc_Fairy_c__AppearDemoCall);
|
||||
|
||||
DEFINE_HOOK(&daNpcShad_c::Create, daNpcShad_c__Create);
|
||||
DEFINE_HOOK(&daNpcShad_c::wait_type1, daNpcShad_c__wait_type1);
|
||||
|
||||
DEFINE_HOOK(&daNpc_Yelia_c::cutTakeWoodStatue, daNpc_Yelia_c__cutTakeWoodStatue);
|
||||
@@ -3366,7 +3365,6 @@ ModResult uninstall() {
|
||||
|
||||
mods::hook::uninstall<daNpc_Fairy_c__AppearDemoCall>(svc_hook);
|
||||
|
||||
mods::hook::uninstall<daNpcShad_c__Create>(svc_hook);
|
||||
mods::hook::uninstall<daNpcShad_c__wait_type1>(svc_hook);
|
||||
|
||||
mods::hook::uninstall<daNpc_Yelia_c__cutTakeWoodStatue>(svc_hook);
|
||||
|
||||
@@ -914,6 +914,19 @@ void randomizer_checkAndOverrideEntranceData(const char*& stageName, s8& roomNo,
|
||||
lastMode = (lastMode&0xFFFFFFF0);
|
||||
}
|
||||
|
||||
// Check if we are going through a randomized entrance with epona, reset the lastMode
|
||||
// Todo: Create a list of entrances where epona is allowed and don't reset the lastMode if
|
||||
// Epona can be rode there
|
||||
if ((lastMode&0xF) == 2 || (lastMode&0xF) == 8) {
|
||||
lastMode = (lastMode&0xFFFFFFF0);
|
||||
}
|
||||
|
||||
// Override the spawn link will go to if we are going through the Telma's bar entrance during
|
||||
// Lanayru twilight. The door is ajar in this layer, so going through the normal spawn doesn't work.
|
||||
if (!dComIfGs_isDarkClearLV(2) && newOverride.stageId == 53 && roomNo == 3 && pointNo == 1) {
|
||||
pointNo = 30;
|
||||
}
|
||||
|
||||
// mods::log::info("New Stage:{}, {}, {}, {}",stageName,roomNo,pointNo,mapLayer);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -404,11 +404,14 @@ ModResult onNewSave(void*, ModError*) {
|
||||
if (hash.empty())
|
||||
return MOD_ERROR;
|
||||
|
||||
deactivateSeed();
|
||||
if (!activateSeed(hash.c_str()))
|
||||
return MOD_ERROR;
|
||||
|
||||
svc_mng.save->set_blob(svc_mng.mod_ctx, kSeedHashBlobName, hash.data(), hash.size());
|
||||
setAncientDocumentNum(0);
|
||||
setupRandomizerFile();
|
||||
saveAncientDocumentNum();
|
||||
return MOD_OK;
|
||||
}
|
||||
|
||||
@@ -439,6 +442,7 @@ ModResult onSaveLoaded(void*, ModError*) {
|
||||
void onSaveWritten(ModContext*, uint32_t, void*) {
|
||||
const std::string hash = randomizer_GetContext().mHash;
|
||||
svc_mng.save->set_blob(svc_mng.mod_ctx, kSeedHashBlobName, hash.data(), hash.size());
|
||||
saveAncientDocumentNum();
|
||||
}
|
||||
|
||||
TextureReplacementHandle logoTexHandle{};
|
||||
|
||||
@@ -547,6 +547,7 @@ std::string nameLookupOverride(const std::string& locationName) {
|
||||
{"Sacred Grove Pedestal Master Sword", ITEM_CHECK_MASTER_SWORD},
|
||||
{"Sacred Grove Pedestal Shadow Crystal", ITEM_CHECK_SHADOW_CRYSTAL},
|
||||
{"Sera Shop Slingshot", "shop:R_SP01:75"},
|
||||
{"Shad Dominion Rod", ITEM_CHECK_SHAD_DOMINION_ROD},
|
||||
{"Skybook From Impaz", ITEM_CHECK_SKYBOOK},
|
||||
{"Snowboard Racing Prize", ITEM_CHECK_SNOWBOARD_REWARD},
|
||||
{"Snowpeak Ruins Dungeon Reward", ITEM_CHECK_DUNGEON_REWARD_SNOWPEAK},
|
||||
|
||||
@@ -120,6 +120,12 @@ constexpr std::array kMessageChecks{
|
||||
.vanillaItem = dItemNo_HORSE_FLUTE_e,
|
||||
.enqueueAtDisplay = false,
|
||||
},
|
||||
MessageCheck{
|
||||
.group = 2,
|
||||
.messageId = 6531,
|
||||
.name = ITEM_CHECK_SHAD_DOMINION_ROD,
|
||||
.vanillaItem = dItemNo_COPY_ROD_2_e,
|
||||
}
|
||||
};
|
||||
|
||||
std::unordered_map<LoadedMod*, ModItemChecks> s_modChecks;
|
||||
|
||||
Reference in New Issue
Block a user