mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2024-11-01 08:05:07 -04:00
Merge branch 'develop-rando' of garrettjoecox.github.com:HarbourMasters/Shipwright into develop-rando-changes
This commit is contained in:
commit
7e5854756e
@ -1466,40 +1466,44 @@ typedef struct {
|
|||||||
//special respawns used when voided out without swim to prevent infinite loops
|
//special respawns used when voided out without swim to prevent infinite loops
|
||||||
std::map<s32, SpecialRespawnInfo> swimSpecialRespawnInfo = {
|
std::map<s32, SpecialRespawnInfo> swimSpecialRespawnInfo = {
|
||||||
{
|
{
|
||||||
0x1D9,//hf to zr in water
|
ENTR_ZORAS_RIVER_3,//hf to zr in water
|
||||||
{ { -1455.443, -20, 1384.826 }, 28761 }
|
{ { -1455.443, -20, 1384.826 }, 28761 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
0x311,//zr to hf in water
|
ENTR_HYRULE_FIELD_14,//zr to hf in water
|
||||||
{ { 5830.209, -92.16, 3925.911 }, -20025 }
|
{ { 5830.209, -92.16, 3925.911 }, -20025 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
0x4DA,//zr to lw
|
ENTR_LOST_WOODS_7,//zr to lw
|
||||||
{ { 1978.718, -36.908, -855 }, -16384 }
|
{ { 1978.718, -36.908, -855 }, -16384 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
0x1DD,//lw to zr
|
ENTR_ZORAS_RIVER_4,//lw to zr
|
||||||
{ { 4082.366, 860.442, -1018.949 }, -32768 }
|
{ { 4082.366, 860.442, -1018.949 }, -32768 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
0x219,//gv to lh
|
ENTR_LAKE_HYLIA_1,//gv to lh
|
||||||
{ { -3276.416, -1033, 2908.421 }, 11228 }
|
{ { -3276.416, -1033, 2908.421 }, 11228 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
0x10,//lh to water temple
|
ENTR_WATER_TEMPLE_0,//lh to water temple
|
||||||
{ { -182, 780, 759.5 }, -32768 }
|
{ { -182, 780, 759.5 }, -32768 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
0x21D,//water temple to lh
|
ENTR_LAKE_HYLIA_2,//water temple to lh
|
||||||
{ { -955.028, -1306.9, 6768.954 }, -32768 }
|
{ { -955.028, -1306.9, 6768.954 }, -32768 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
0x328,//lh to zd
|
ENTR_ZORAS_DOMAIN_4,//lh to zd
|
||||||
{ { -109.86, 11.396, -9.933 }, -29131 }
|
{ { -109.86, 11.396, -9.933 }, -29131 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
0x560,//zd to lh
|
ENTR_LAKE_HYLIA_7,//zd to lh
|
||||||
{ { -912, -1326.967, 3391 }, 0 }
|
{ { -912, -1326.967, 3391 }, 0 }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
ENTR_GERUDO_VALLEY_1,//caught by gerudos as child
|
||||||
|
{ { -424, -2051, -74 }, 16384 }
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -287,7 +287,7 @@ Text AutoFormatHintText(const Text& unformattedHintText, const std::vector<std::
|
|||||||
strings[i] = textStr;
|
strings[i] = textStr;
|
||||||
}
|
}
|
||||||
|
|
||||||
return {strings[0], strings[1], ""/*spanish*/, strings[2]};
|
return {strings[0], strings[2], ""/*spanish*/, strings[1]};
|
||||||
}
|
}
|
||||||
|
|
||||||
std::array<DungeonHintInfo, 10> dungeonInfoData;
|
std::array<DungeonHintInfo, 10> dungeonInfoData;
|
||||||
@ -615,6 +615,7 @@ void CreateGanonAndSheikText() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ctx->AddHint(RH_GANONDORF_HINT, AutoFormatHintText(ganonHintText), lightArrowLocation[0], HINT_TYPE_STATIC, "Static", lightArrowArea);
|
ctx->AddHint(RH_GANONDORF_HINT, AutoFormatHintText(ganonHintText), lightArrowLocation[0], HINT_TYPE_STATIC, "Static", lightArrowArea);
|
||||||
|
ctx->AddHint(RH_GANONDORF_NOHINT, AutoFormatHintText(ganonText), lightArrowLocation[0], HINT_TYPE_STATIC, "Static", lightArrowArea);
|
||||||
|
|
||||||
if (!ctx->GetOption(RSK_TRIAL_COUNT).Is(0)) {
|
if (!ctx->GetOption(RSK_TRIAL_COUNT).Is(0)) {
|
||||||
sheikText = ::Hint(RHT_SHEIK_LIGHT_ARROW_HINT).GetText() + LightArrowAreaText + "%w.";
|
sheikText = ::Hint(RHT_SHEIK_LIGHT_ARROW_HINT).GetText() + LightArrowAreaText + "%w.";
|
||||||
@ -963,7 +964,7 @@ static void DistributeHints(std::vector<uint8_t>& selected, size_t stoneCount, s
|
|||||||
for (uint8_t distribution = 0; distribution < distTable.size(); distribution++){
|
for (uint8_t distribution = 0; distribution < distTable.size(); distribution++){
|
||||||
currentWeight -= distTable[distribution].weight;
|
currentWeight -= distTable[distribution].weight;
|
||||||
if (currentWeight <= 0){
|
if (currentWeight <= 0){
|
||||||
if (stoneCount >= distTable[distribution].copies){
|
if (stoneCount >= distTable[distribution].copies || distTable[distribution].copies == 0){
|
||||||
selected[distribution] += 1;
|
selected[distribution] += 1;
|
||||||
stoneCount -= distTable[distribution].copies;
|
stoneCount -= distTable[distribution].copies;
|
||||||
break;
|
break;
|
||||||
@ -1074,8 +1075,9 @@ void CreateStoneHints() {
|
|||||||
|
|
||||||
while(totalStones != 0){
|
while(totalStones != 0){
|
||||||
totalStones = PlaceHints(selectedHints, distTable);
|
totalStones = PlaceHints(selectedHints, distTable);
|
||||||
if (totalStones != 0){
|
while (totalStones != 0){
|
||||||
DistributeHints(selectedHints, totalStones, distTable, hintSetting.junkWeight, false);
|
DistributeHints(selectedHints, totalStones, distTable, hintSetting.junkWeight, false);
|
||||||
|
totalStones = PlaceHints(selectedHints, distTable);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -13,13 +13,19 @@ public:
|
|||||||
: english(std::move(english_)),
|
: english(std::move(english_)),
|
||||||
french(std::move(french_)),
|
french(std::move(french_)),
|
||||||
spanish(std::move(spanish_)),
|
spanish(std::move(spanish_)),
|
||||||
german(std::move("")) {}
|
german(std::move("")) {
|
||||||
|
// german defaults to english text until a translation is provided.
|
||||||
|
german = english;
|
||||||
|
}
|
||||||
Text(std::string english_, std::string french_, std::string spanish_, std::string german_)
|
Text(std::string english_, std::string french_, std::string spanish_, std::string german_)
|
||||||
: english(std::move(english_)),
|
: english(std::move(english_)),
|
||||||
french(std::move(french_)),
|
french(std::move(french_)),
|
||||||
spanish(std::move(spanish_)),
|
spanish(std::move(spanish_)),
|
||||||
german(std::move(german_)) {}
|
german(std::move(german_)) {}
|
||||||
Text(std::string english_) : english(std::move(english_)), french(std::move("")), spanish(std::move("")), german(std::move("")) {}
|
Text(std::string english_) : english(std::move(english_)), french(std::move("")), spanish(std::move("")), german(std::move("")) {
|
||||||
|
// default unprovided languages to english text
|
||||||
|
french = spanish = german = english;
|
||||||
|
}
|
||||||
|
|
||||||
const std::string& GetEnglish() const {
|
const std::string& GetEnglish() const {
|
||||||
return english;
|
return english;
|
||||||
|
@ -47,6 +47,10 @@ const std::string& Hint::GetDistribution() {
|
|||||||
|
|
||||||
void Hint::ResetVariables() {
|
void Hint::ResetVariables() {
|
||||||
hintedLocation = RC_UNKNOWN_CHECK;
|
hintedLocation = RC_UNKNOWN_CHECK;
|
||||||
|
text = Text{};
|
||||||
|
distribution = "";
|
||||||
|
hintedArea = RA_NONE;
|
||||||
|
hintType = HINT_TYPE_STATIC;
|
||||||
addedToPool = false;
|
addedToPool = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -256,7 +256,7 @@ void Randomizer::LoadHintMessages() {
|
|||||||
CustomMessage(ctx->GetHint(RH_GANONDORF_HINT)->GetText()));
|
CustomMessage(ctx->GetHint(RH_GANONDORF_HINT)->GetText()));
|
||||||
CustomMessageManager::Instance->CreateMessage(
|
CustomMessageManager::Instance->CreateMessage(
|
||||||
Randomizer::hintMessageTableID, TEXT_GANONDORF_NOHINT,
|
Randomizer::hintMessageTableID, TEXT_GANONDORF_NOHINT,
|
||||||
CustomMessage(ctx->GetHint(RH_SARIA)->GetText()));//RANDOTODO: Change to RH_BLANK or remove {{message}} replacment
|
CustomMessage(ctx->GetHint(RH_GANONDORF_NOHINT)->GetText()));
|
||||||
CustomMessageManager::Instance->CreateMessage(
|
CustomMessageManager::Instance->CreateMessage(
|
||||||
Randomizer::hintMessageTableID, TEXT_SHEIK_NEED_HOOK,
|
Randomizer::hintMessageTableID, TEXT_SHEIK_NEED_HOOK,
|
||||||
CustomMessage("{{message}}", "{{message}}", "{{message}}"));
|
CustomMessage("{{message}}", "{{message}}", "{{message}}"));
|
||||||
|
@ -75,6 +75,9 @@ void func_8006D0EC(PlayState* play, Player* player) {
|
|||||||
} else if ((play->sceneNum == gSaveContext.horseData.scene) &&
|
} else if ((play->sceneNum == gSaveContext.horseData.scene) &&
|
||||||
(((Flags_GetEventChkInf(EVENTCHKINF_EPONA_OBTAINED) != 0) && (!IS_RANDO ||
|
(((Flags_GetEventChkInf(EVENTCHKINF_EPONA_OBTAINED) != 0) && (!IS_RANDO ||
|
||||||
(IS_RANDO && CHECK_QUEST_ITEM(QUEST_SONG_EPONA) &&
|
(IS_RANDO && CHECK_QUEST_ITEM(QUEST_SONG_EPONA) &&
|
||||||
|
Flags_GetRandomizerInf(RAND_INF_HAS_OCARINA_C_UP) &&
|
||||||
|
Flags_GetRandomizerInf(RAND_INF_HAS_OCARINA_C_LEFT) &&
|
||||||
|
Flags_GetRandomizerInf(RAND_INF_HAS_OCARINA_C_RIGHT) &&
|
||||||
(INV_CONTENT(ITEM_OCARINA_FAIRY) != ITEM_NONE)))) || DREG(1) != 0)) {
|
(INV_CONTENT(ITEM_OCARINA_FAIRY) != ITEM_NONE)))) || DREG(1) != 0)) {
|
||||||
// "Set by existence of horse %d %d %d"
|
// "Set by existence of horse %d %d %d"
|
||||||
osSyncPrintf("馬存在によるセット %d %d %d\n", gSaveContext.horseData.scene, Flags_GetEventChkInf(EVENTCHKINF_EPONA_OBTAINED),
|
osSyncPrintf("馬存在によるセット %d %d %d\n", gSaveContext.horseData.scene, Flags_GetEventChkInf(EVENTCHKINF_EPONA_OBTAINED),
|
||||||
|
Loading…
Reference in New Issue
Block a user