mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-06-14 21:39:01 -04:00
fix more startflags
This commit is contained in:
@@ -1381,6 +1381,9 @@ set(DUSK_FILES
|
||||
src/dusk/OSThread.cpp
|
||||
src/dusk/OSMutex.cpp
|
||||
# Randomizer files
|
||||
src/dusk/randomizer/game/flags.h
|
||||
src/dusk/randomizer/game/stages.cpp
|
||||
src/dusk/randomizer/game/stages.h
|
||||
src/dusk/randomizer/game/tools.cpp
|
||||
src/dusk/randomizer/game/tools.h
|
||||
src/dusk/randomizer/game/verify_item_functions.cpp
|
||||
|
||||
@@ -1432,6 +1432,12 @@ inline BOOL dComIfGs_isDarkClearLV(int i_no) {
|
||||
return g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusB().isDarkClearLV(i_no);
|
||||
}
|
||||
|
||||
#if TARGET_PC
|
||||
inline u8 dComIfGs_getDarkClearLV() {
|
||||
return g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusB().getDarkClearLV();
|
||||
}
|
||||
#endif
|
||||
|
||||
inline void dComIfGs_onTransformLV(int i_no) {
|
||||
g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusB().onTransformLV(i_no);
|
||||
}
|
||||
@@ -1509,6 +1515,12 @@ inline void dComIfGs_onRegionBit(int i_region) {
|
||||
g_dComIfG_gameInfo.info.getPlayer().getPlayerFieldLastStayInfo().onRegionBit(i_region);
|
||||
}
|
||||
|
||||
#if TARGET_PC
|
||||
inline void dComIfGs_setRegionBit(u8 i_region) {
|
||||
g_dComIfG_gameInfo.info.getPlayer().getPlayerFieldLastStayInfo().setRegionBit(i_region);
|
||||
}
|
||||
#endif
|
||||
|
||||
inline void dComIfGs_setPlayerFieldLastStayInfo(const char* i_stage, cXyz& i_pos, s16 i_angle,
|
||||
s8 i_point, u8 i_region) {
|
||||
g_dComIfG_gameInfo.info.getPlayer().getPlayerFieldLastStayInfo().set(i_stage, i_pos, i_angle,
|
||||
|
||||
@@ -203,6 +203,9 @@ public:
|
||||
void setTime(f32 i_time) { mTime = i_time; }
|
||||
u16 getDate() const { return mDate; }
|
||||
void setDate(u16 i_date) { mDate = i_date; }
|
||||
#if TARGET_PC
|
||||
u8 getDarkClearLV() const { return mDarkClearLevelFlag; }
|
||||
#endif
|
||||
|
||||
/* 0x00 */ BE(OSTime) mDateIpl;
|
||||
/* 0x08 */ u8 mTransformLevelFlag;
|
||||
@@ -276,6 +279,9 @@ public:
|
||||
bool isFieldDataExistFlag() const { return mFieldDataExistFlag ? true : false; }
|
||||
void offFieldDataExistFlag() { mFieldDataExistFlag = false; }
|
||||
void onFieldDataExistFlag() { mFieldDataExistFlag = true; }
|
||||
#if TARGET_PC
|
||||
void setRegionBit(u8 region) { mRegion |= region;}
|
||||
#endif
|
||||
|
||||
#if TARGET_PC
|
||||
/* 0x00 */ BE(Vec) mPos;
|
||||
|
||||
@@ -30,6 +30,10 @@
|
||||
#if TARGET_PC
|
||||
#include "dusk/randomizer/randomizer.hpp"
|
||||
#include "dusk/randomizer/utility/yaml.hpp"
|
||||
#include "dusk/randomizer/game/tools.h"
|
||||
#include "dusk/randomizer/game/stages.h"
|
||||
#include "dusk/randomizer/game/flags.h"
|
||||
#include "dusk/randomizer//game/verify_item_functions.h"
|
||||
#endif
|
||||
|
||||
|
||||
@@ -167,6 +171,580 @@ int dComIfG_play_c::getLayerNo_common_common(const char* i_stageName, int i_room
|
||||
layer = 14;
|
||||
}
|
||||
|
||||
#if TARGET_PC
|
||||
// Special layer checks for randomizer
|
||||
if (dComIfG_isRandomizer()) {
|
||||
int stageID = getStageID(i_stageName);
|
||||
bool condition = false;
|
||||
bool darkIsClear = false;
|
||||
|
||||
if (layer < 13) {
|
||||
|
||||
switch(stageID) {
|
||||
case Snowpeak_Ruins: {
|
||||
if (dComIfGs_isEventBit(SNOWPEAK_RUINS_CLEARED)) {
|
||||
layer = 3;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case Snowpeak: {
|
||||
if (dComIfGs_isEventBit(SNOWPEAK_RUINS_CLEARED) && (i_roomNo != 0)) {
|
||||
layer = 3;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case Faron_Woods:
|
||||
case Faron_Woods_Interiors: {
|
||||
if ((i_roomNo == 5) || (i_roomNo == 6)) { // North Faron or Mist Area
|
||||
condition = dComIfGs_isEventBit(ORDON_DAY_2_OVER); // Talo Saved
|
||||
if (condition) {
|
||||
layer = 3;
|
||||
} else {
|
||||
layer = 1;
|
||||
}
|
||||
}
|
||||
else {
|
||||
condition = dComIfGs_isEventBit(ORDON_DAY_2_OVER); // Talo Saved
|
||||
if (condition) {
|
||||
condition = dComIfGs_isEventBit(FOREST_TEMPLE_CLEARED); // Forest Temple Completed
|
||||
|
||||
if (condition) {
|
||||
layer = 5;
|
||||
}
|
||||
} else {
|
||||
layer = 1;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case Kakariko_Village:
|
||||
{
|
||||
condition = dComIfGs_isEventBit(WATCHED_CUTSCENE_AFTER_GORON_MINES); // Cutscene after GM Watched
|
||||
if (condition == false) {
|
||||
condition = dComIfGs_isEventBit(GORON_MINES_CLEARED); // Goron Mines Completed
|
||||
if (condition == false) {
|
||||
layer = 2;
|
||||
|
||||
// If it is night, the layer is different.
|
||||
dComIfG_get_timelayer(&layer);
|
||||
}
|
||||
else {
|
||||
layer = 12;
|
||||
}
|
||||
}
|
||||
else {
|
||||
layer = 2;
|
||||
dComIfG_get_timelayer(&layer);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
case Kakariko_Graveyard:
|
||||
{
|
||||
condition = dComIfGs_isEventBit(GOT_ZORA_ARMOR_FROM_RUTELA); // Got Zora Armor from Rutela
|
||||
if (condition == false) {
|
||||
condition = dComIfGs_isEventBit(ZORA_ESCORT_CLEARED); // Zora Escort Cleared
|
||||
|
||||
if (condition == false) {
|
||||
layer = 2;
|
||||
|
||||
// If it is night, the layer is different.
|
||||
dComIfG_get_timelayer(&layer);
|
||||
}
|
||||
else {
|
||||
layer = 4;
|
||||
}
|
||||
}
|
||||
else {
|
||||
layer = 2;
|
||||
dComIfG_get_timelayer(&layer);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case Kakariko_Graveyard_Interiors: {
|
||||
if (((i_roomNo == 1 &&
|
||||
(condition = dComIfGs_isEventBit(LAKEBED_TEMPLE_CLEARED),
|
||||
condition != false)))) // Lakebed Completed
|
||||
{
|
||||
layer = 4;
|
||||
dComIfG_get_timelayer(&layer);
|
||||
}
|
||||
else {
|
||||
layer = 2;
|
||||
dComIfG_get_timelayer(&layer);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case Kakariko_Village_Interiors: {
|
||||
if (i_roomNo == 1) { // Lakebed Completed
|
||||
layer = 4;
|
||||
dComIfG_get_timelayer(&layer);
|
||||
}
|
||||
else if (i_roomNo == 3) {
|
||||
layer = 2;
|
||||
}
|
||||
else {
|
||||
layer = 2;
|
||||
dComIfG_get_timelayer(&layer);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case Death_Mountain: {
|
||||
condition =
|
||||
dComIfGs_isEventBit(GORON_MINES_CLEARED); // Goron Mines Completed
|
||||
|
||||
if (condition) {
|
||||
layer = 2;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case Death_Mountain_Interiors: {
|
||||
layer = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
case Lake_Hylia: {
|
||||
if (i_roomNo == 1) { // Lanayru Spring
|
||||
|
||||
condition = dComIfGs_isEventBit(LAKEBED_TEMPLE_CLEARED); // Lakebed Temple has been completed
|
||||
if (condition) {
|
||||
condition = dComIfGs_isEventBit(MIDNAS_DESPERATE_HOUR_STARTED); // MDH has been started
|
||||
if (condition == false) {
|
||||
layer = 9;
|
||||
}
|
||||
else {
|
||||
layer = 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
condition = dComIfGs_isEventBit(SKY_CANNON_REPAIRED); // Sky Cannon Repaired
|
||||
if (condition == false) {
|
||||
condition = dComIfGs_isEventBit(WARPED_SKY_CANNON_TO_LAKE_HYLIA); // Sky Cannon Warped to Lake Hylia
|
||||
|
||||
if (condition == false) {
|
||||
layer = 2;
|
||||
}
|
||||
else {
|
||||
layer = 1;
|
||||
}
|
||||
}
|
||||
else {
|
||||
layer = 3;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case Castle_Town_Interiors:
|
||||
{
|
||||
if (condition = dComIfGs_isEventBit(LAKEBED_TEMPLE_CLEARED),condition) { // Lakebed Temple Completed
|
||||
layer = 2;
|
||||
if (condition = dComIfGs_isEventBit(MIDNAS_DESPERATE_HOUR_COMPLETED),condition) { // MDH Completed
|
||||
layer = 0;
|
||||
}
|
||||
}
|
||||
if (i_roomNo == 5) { // Telma's Bar
|
||||
layer = 4;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case Castle_Town: {
|
||||
condition = dComIfGs_isEventBit(MIDNAS_DESPERATE_HOUR_COMPLETED); // MDH Completed
|
||||
if (condition == false) {
|
||||
condition = dComIfGs_isEventBit(LAKEBED_TEMPLE_CLEARED); // Lakebed Temple Completed
|
||||
if (condition == false) {
|
||||
if ((i_roomNo == 3) &&
|
||||
(condition = dComIfGs_isEventBit(ZORA_ESCORT_CLEARED),condition != false)) { // Zora Escort Cleared
|
||||
layer = 1;
|
||||
}
|
||||
else if (i_roomNo == 4) {
|
||||
layer = 1;
|
||||
}
|
||||
}
|
||||
else {
|
||||
layer = 2;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (((i_roomNo == 4) || (i_roomNo == 3)) || (i_roomNo == 1)) {
|
||||
layer = 1;
|
||||
}
|
||||
else {
|
||||
layer = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (i_roomNo == 0) {
|
||||
if (dComIfGs_getStartPoint() == 0xF) {
|
||||
layer = 5;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case Zoras_Domain: {
|
||||
layer = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
case Upper_Zoras_River: {
|
||||
condition = dComIfGs_isEventBit(IZA_1_MINIGAME_UNLOCKED); // Iza 1 Unlocked
|
||||
if (condition != false)
|
||||
{
|
||||
layer = 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case Gerudo_Desert: {
|
||||
layer = 8;
|
||||
|
||||
condition = dComIfGs_isEventBit(VISITED_DESERT_FOR_THE_FIRST_TIME); // Have been to desert
|
||||
if (condition != false) {
|
||||
layer = 0;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case Zoras_River: {
|
||||
condition = dComIfGs_isEventBit(IZA_1_MINIGAME_DONE); // Iza 1 Minigame Completed
|
||||
|
||||
if (condition == false) {
|
||||
condition = dComIfGs_isEventBit(STARTED_IZA_1_MINIGAME); // Iza 1 Minigame Started
|
||||
if (condition != false) {
|
||||
layer = 2;
|
||||
}
|
||||
}
|
||||
else {
|
||||
layer = 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case Ordon_Village: {
|
||||
if (i_roomNo == 0) {
|
||||
if (!dKy_daynight_check()) {
|
||||
layer = 0;
|
||||
}
|
||||
else {
|
||||
layer = 5;
|
||||
}
|
||||
}
|
||||
|
||||
else {
|
||||
if (i_roomNo == 1) {
|
||||
condition =
|
||||
dComIfGs_isEventBit(ORDON_DAY_1_FINISHED); // Ordon Day 1 done
|
||||
|
||||
if (condition) {
|
||||
condition = dComIfGs_isEventBit(ORDON_DAY_2_OVER); // Talo Saved
|
||||
if (condition) {
|
||||
layer = 2;
|
||||
}
|
||||
else {
|
||||
layer = 4;
|
||||
}
|
||||
}
|
||||
else {
|
||||
layer = 3;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case Ordon_Village_Interiors:
|
||||
{
|
||||
/* not used in randomizer anymore. keeping for documentation sake
|
||||
if ( i_roomNo == 1 ) // Sera's Shop
|
||||
{
|
||||
condition = dComIfGs_isEventBit(
|
||||
BOUGHT_SLINGSHOT_FROM_SERA ); // Bought slinghot from Sera
|
||||
|
||||
if ( condition )
|
||||
{
|
||||
layer = 2;
|
||||
}
|
||||
}*/
|
||||
if (i_roomNo == 2) { // Jaggle's House
|
||||
|
||||
darkIsClear = dComIfGs_isDarkClearLV(0);
|
||||
if (darkIsClear == false) {
|
||||
condition = dComIfGs_isEventBit(FINISHED_SEWERS); // First Trip to Sewers done
|
||||
if (condition != false) {
|
||||
layer = 1;
|
||||
}
|
||||
}
|
||||
else {
|
||||
layer = 1;
|
||||
}
|
||||
}
|
||||
/* not used in randomizer anymore. keeping for documentation sake
|
||||
else
|
||||
{
|
||||
if ( i_roomNo == 5 ) // Rusl's House
|
||||
{
|
||||
darkIsClear = libtp::tp::d_save::isDarkClearLV( playerStatusBPtr, 0 );
|
||||
if ( darkIsClear != false )
|
||||
{
|
||||
layer = 2;
|
||||
}
|
||||
}
|
||||
}*/
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case Ordon_Spring: {
|
||||
condition = dComIfGs_isEventBit(ORDON_DAY_2_OVER); // Talo saved
|
||||
if (condition) {
|
||||
condition =
|
||||
dComIfGs_isEventBit(FINISHED_SEWERS); // First trip to Sewers done
|
||||
|
||||
if (condition) {
|
||||
darkIsClear = dComIfGs_isDarkClearLV(0);
|
||||
if (darkIsClear != false) {
|
||||
layer = 2;
|
||||
}
|
||||
else {
|
||||
layer = 4;
|
||||
}
|
||||
}
|
||||
else {
|
||||
layer = 0;
|
||||
}
|
||||
}
|
||||
else {
|
||||
condition = dComIfGs_isEventBit(TALO_CHASES_MONKEY); // Sword training done on Ordon Day 2
|
||||
if (condition) {
|
||||
layer = 3;
|
||||
}
|
||||
else {
|
||||
layer = 1;
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case Ordon_Ranch: {
|
||||
condition = dComIfGs_isEventBit(ORDON_DAY_1_FINISHED); // Day 1 done
|
||||
if (condition) {
|
||||
condition = dComIfGs_isEventBit(ORDON_DAY_2_OVER); // Talo Saved
|
||||
if (condition) {
|
||||
condition = dComIfGs_isEventBit(WATCHED_CUTSCENE_AFTER_GOATS_2); // Saw CS after Goats 2 done
|
||||
|
||||
if (condition) {
|
||||
layer = 2;
|
||||
dComIfG_get_timelayer(&layer);
|
||||
}
|
||||
else {
|
||||
layer = 9;
|
||||
}
|
||||
}
|
||||
else {
|
||||
layer = 2;
|
||||
}
|
||||
}
|
||||
else {
|
||||
layer = 12;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case Hyrule_Field: {
|
||||
// First 3 twilights are cleared
|
||||
if ((dComIfGs_getDarkClearLV() & 0x7) == 0x7) {
|
||||
if (dComIfGs_isEventBit(MIDNAS_DESPERATE_HOUR_COMPLETED)) {
|
||||
layer = 6;
|
||||
}
|
||||
else if (dComIfGs_isEventBit(MIDNAS_DESPERATE_HOUR_STARTED)) {
|
||||
layer = 4;
|
||||
}
|
||||
else {
|
||||
layer = 0;
|
||||
}
|
||||
}
|
||||
else {
|
||||
layer = 0;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case Outside_Castle_Town: {
|
||||
if (i_roomNo == 8) {
|
||||
condition = dComIfGs_isEventBit(MIDNAS_DESPERATE_HOUR_COMPLETED); // MDH Completed
|
||||
if (condition == false) {
|
||||
condition = dComIfGs_isEventBit(MIDNAS_DESPERATE_HOUR_STARTED); // MDH State Activated
|
||||
if (condition != false) {
|
||||
layer = 4;
|
||||
}
|
||||
}
|
||||
else {
|
||||
layer = 6;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (i_roomNo == 0x10) {
|
||||
condition = dComIfGs_isEventBit(GOT_WOOD_STATUE); // Wooden Statue Gotten
|
||||
if (condition == false) {
|
||||
condition = dComIfGs_isEventBit(TALKED_TO_LOUISE_ABOUT_THE_STOLEN_STATUE); // Talked to Louise after Medicine Scent
|
||||
if (condition == false) {
|
||||
condition = dComIfGs_isEventBit(MIDNAS_DESPERATE_HOUR_COMPLETED); // MDH Completed
|
||||
if (condition == false) {
|
||||
condition = dComIfGs_isEventBit(MIDNAS_DESPERATE_HOUR_STARTED); // MDH State Activated
|
||||
if (condition != false) {
|
||||
layer = 4;
|
||||
}
|
||||
else {
|
||||
layer = 6;
|
||||
}
|
||||
}
|
||||
else {
|
||||
layer = 6;
|
||||
}
|
||||
}
|
||||
else {
|
||||
layer = 1;
|
||||
}
|
||||
}
|
||||
else {
|
||||
layer = 6;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (i_roomNo == 0x11) {
|
||||
condition = dComIfGs_isEventBit(MIDNAS_DESPERATE_HOUR_COMPLETED); // MDH Completed
|
||||
if (condition == false) {
|
||||
condition = dComIfGs_isEventBit(MIDNAS_DESPERATE_HOUR_STARTED); // MDH State Activated
|
||||
if (condition != false) {
|
||||
layer = 4;
|
||||
}
|
||||
}
|
||||
else {
|
||||
layer = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case Hidden_Village: {
|
||||
condition = dComIfGs_isEventBit(GAVE_ILIA_THE_WOOD_STATUE); // Ilia shown the wooden statue
|
||||
if (condition != false) {
|
||||
condition = dComIfGs_isEventBit(GOT_ILIAS_CHARM); // Ilia shown Ilia's Charm
|
||||
if (condition != false) {
|
||||
layer = 1;
|
||||
}
|
||||
}
|
||||
else {
|
||||
layer = 1;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case Castle_Town_Shops: {
|
||||
if (i_roomNo == 5) {
|
||||
layer = 0;
|
||||
condition = dComIfGs_isEventBit(MIDNAS_DESPERATE_HOUR_STARTED);
|
||||
if (condition) {
|
||||
layer = 1;
|
||||
condition = dComIfGs_isEventBit(MIDNAS_DESPERATE_HOUR_COMPLETED);
|
||||
if (condition) {
|
||||
layer = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
condition = dComIfGs_isEventBit(MALO_MART_CASTLE_TOWN_BRANCH_IS_OPEN); // CT Shop is Malo Mart
|
||||
|
||||
if (condition != false) {
|
||||
layer = 1;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case Sacred_Grove: {
|
||||
layer = 2;
|
||||
break;
|
||||
}
|
||||
|
||||
case Bulblin_Camp: {
|
||||
condition = dComIfGs_isEventBit(ESCAPED_BURNING_TENT_IN_BULBLIN_CAMP); // Escaped Burning Tent in Bulblin Camp
|
||||
if (condition) {
|
||||
if (i_roomNo == 3) // Other states for this room are very similar, but do not have the boar
|
||||
// in the dzx.
|
||||
{ // Setting state 1 solves for any potential softlocks regarding the boar in that area.
|
||||
layer = 1;
|
||||
}
|
||||
else {
|
||||
layer = 3;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case Faron_Woods_Cave: {
|
||||
condition = dComIfGs_isEventBit(ORDON_DAY_2_OVER); // Talo saved
|
||||
if (condition != false) {
|
||||
layer = 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case Hyrule_Castle_Sewers: {
|
||||
condition = dComIfGs_isEventBit(FINISHED_SEWERS); // Sewers Finished
|
||||
if (condition) {
|
||||
layer = 13;
|
||||
}
|
||||
else {
|
||||
layer = 14;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case Hyrule_Castle: {
|
||||
if (((i_roomNo != 0xb) && (i_roomNo != 0xd)) && (i_roomNo != 0xe)) {
|
||||
layer = 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case Fishing_Pond:
|
||||
case Fishing_Pond_Interiors: {
|
||||
switch (g_env_light.fishing_hole_season) {
|
||||
case 1:
|
||||
layer = 0;
|
||||
break;
|
||||
case 2:
|
||||
layer = 1;
|
||||
break;
|
||||
case 3:
|
||||
layer = 2;
|
||||
break;
|
||||
case 4:
|
||||
layer = 3;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else
|
||||
#endif
|
||||
if (layer < 13) {
|
||||
// Stage is Snowpeak Ruins or Snowpeak
|
||||
if (!strcmp(i_stageName, "D_MN11") || !strcmp(i_stageName, "F_SP114")) {
|
||||
@@ -2343,6 +2921,55 @@ void dComIfGs_setupRandomizerSave() {
|
||||
}
|
||||
}
|
||||
|
||||
// Other flags based on starting flags
|
||||
if (dComIfGs_isEventBit(CLEARED_FARON_TWILIGHT))
|
||||
{
|
||||
dComIfGs_onDarkClearLV(0);
|
||||
dComIfGs_setLightDropNum(0, 0x10);
|
||||
execItemGet(dItemNo_Randomizer_DROP_CONTAINER_e);
|
||||
execItemGet(dItemNo_Randomizer_WEAR_KOKIRI_e);
|
||||
}
|
||||
|
||||
if (dComIfGs_isEventBit(CLEARED_ELDIN_TWILIGHT))
|
||||
{
|
||||
dComIfGs_onDarkClearLV(1);
|
||||
dComIfGs_setLightDropNum(1, 0x10);
|
||||
execItemGet(dItemNo_Randomizer_DROP_CONTAINER02_e);
|
||||
}
|
||||
|
||||
if (dComIfGs_isEventBit(CLEARED_LANAYRU_TWILIGHT))
|
||||
{
|
||||
dComIfGs_onDarkClearLV(2);
|
||||
dComIfGs_setLightDropNum(2, 0x10);
|
||||
execItemGet(dItemNo_Randomizer_DROP_CONTAINER03_e);
|
||||
}
|
||||
|
||||
// if (skipMinorCutscenes())
|
||||
// {
|
||||
// dComIfGs_setAllLetterGet();
|
||||
// dComIfGs_setAllLetterRead();
|
||||
// }
|
||||
|
||||
if (dComIfGs_isEventBit(MIDNAS_DESPERATE_HOUR_COMPLETED))
|
||||
{
|
||||
if (dComIfGs_getDarkClearLV() == 0x7)
|
||||
{
|
||||
dComIfGs_onDarkClearLV(3);
|
||||
dComIfGs_onTransformLV(3);
|
||||
}
|
||||
}
|
||||
|
||||
if (world->Setting("Unlock Map Regions") == "On")
|
||||
{
|
||||
int mapBits = 0x20;
|
||||
if (world->Setting("Snowpeak Does Not Require Reekfish Scent") == "On") {mapBits |= 0x40;}
|
||||
if (dComIfGs_isEventBit(CLEARED_LANAYRU_TWILIGHT)) {mapBits |= 0x10;}
|
||||
if (dComIfGs_isEventBit(CLEARED_ELDIN_TWILIGHT)) {mapBits |= 0x08;}
|
||||
if (dComIfGs_isEventBit(CLEARED_FARON_TWILIGHT)) {mapBits |= 0x04;}
|
||||
if (world->Setting("Skip Prologue") == "On") {mapBits |= 0x02;}
|
||||
dComIfGs_setRegionBit(mapBits);
|
||||
}
|
||||
|
||||
// Set starting inventory
|
||||
for (const auto& item: world->GetStartingItemPool()) {
|
||||
execItemGet(static_cast<u8>(item->GetID()));
|
||||
|
||||
@@ -0,0 +1,618 @@
|
||||
#pragma once
|
||||
|
||||
enum EventFlags
|
||||
{
|
||||
CHEESE_PUT_IN_SOUP = 0x0001,
|
||||
PUMPKIN_PUT_IN_SOUP = 0x0002,
|
||||
LOST_TO_GOR_CORON_IN_SUMO = 0x0004,
|
||||
TALKED_TO_RENADO_AFTER_GORON_MINES = 0x0008,
|
||||
YETO_TOOK_CHEESE = 0x0010,
|
||||
YETO_TOOK_PUMPKIN = 0x0020,
|
||||
MIDNA_TEXT_ABOUT_FINDING_GORGE_BRIDGE = 0x0080,
|
||||
TALKED_TO_COLIN_OUTSIDE_LINKS_HOUSE = 0x104,
|
||||
TALKED_TO_FADO_BEFORE_GOATS_1 = 0x110,
|
||||
TOLD_YETA_ABOUT_CHEESE = 0x120,
|
||||
TALKED_TO_YETO_IN_SPR_FOR_FIRST_TIME = 0x140,
|
||||
CAN_FIGHT_TWILIGHT_BLOAT = 0x180,
|
||||
TALKED_TO_SERA_BEFORE_CAT_RESCUED = 0x201,
|
||||
TALKED_TO_COLIN_THROUGH_SPRING_GATE = 0x202,
|
||||
FINISHED_SLINGSHOT_TRAINING = 0x220,
|
||||
FINISHED_SWORD_TRAINING = 0x240,
|
||||
FAILED_TO_CATCH_GOAT_AT_BO_HOUSE = 0x280,
|
||||
GOT_FISHING_ROD_FROM_ULI = 0x301,
|
||||
GAVE_WOODEN_SWORD_TO_TALO = 0x302,
|
||||
BROUGHT_CRADLE_TO_ULI = 0x304,
|
||||
TALKED_TO_KIDS_OUTSIDE_LINKS_HOUSE = 0x308,
|
||||
JAGGLE_ASKED_TO_LOOK_UP_PILLAR = 0x310,
|
||||
TALKED_TO_PERGIE = 0x340,
|
||||
TALKED_TO_SQUIRREL_AFTER_FARON_TWILIGHT = 0x380,
|
||||
TALKED_TO_ULI = 0x404,
|
||||
ULI_RAN_DOWN_RIVER = 0x408,
|
||||
TALKED_TO_ULI_BEFORE_GETTING_CRADLE = 0x410,
|
||||
UNK_0420 = 0x420,
|
||||
REFUSED_SWORD_TRAINING = 0x440,
|
||||
TOLD_YETA_ABOUT_PUMPKIN = 0x480,
|
||||
MIDNA_CHARGE_UNLOCKED = 0x501,
|
||||
FINISHED_SEWERS = 0x502,
|
||||
MIDNA_TEXT_AFTER_ENTERING_FARON_TWILIGHT = 0x504,
|
||||
MET_ZELDA_IN_SEWERS = 0x508,
|
||||
MIDNA_CUT_PRISON_CHAIN = 0x510,
|
||||
WATCHED_SEWERS_INTRO_CUTSCENE = 0x520,
|
||||
ESCAPED_CELL_IN_SEWERS = 0x540,
|
||||
ENTERED_ORDON_SPRING_DAY_3 = 0x580,
|
||||
EPONA_TAMED = 0x601,
|
||||
FOREST_TEMPLE_CLEARED = 0x602,
|
||||
MAP_WARPING_UNLOCKED = 0x604,
|
||||
KING_BULBLIN_1_TRIGGER_ACTIVATED = 0x608,
|
||||
CLEARED_FARON_TWILIGHT = 0x610,
|
||||
WARPED_KAKARIKO_GORGE_BRIDGE_BACK = 0x620,
|
||||
WATCHED_FARON_TWILIGHT_INTRO_CUTSCENE = 0x640,
|
||||
WATCHED_FARONE_CUTSCENE_AFTER_OPENING_ORDON_SPRING_WARP = 0x680,
|
||||
GORON_MINES_CLEARED = 0x701,
|
||||
FIRST_TIME_TALKING_TO_GOR_CORON = 0x702,
|
||||
WON_SUMO_AGAINST_GOR_CORON = 0x704,
|
||||
CLEARED_ELDIN_TWILIGHT = 0x708,
|
||||
WATCHED_ELDIN_TWILIGHT_SANCTUARY_CUTSCENE = 0x710,
|
||||
TALKED_TO_BO_AFTER_TAMING_EPONA = 0x720,
|
||||
STARTED_SUMO_AGAINST_GOR_CORON = 0x740,
|
||||
WATCHED_COLIN_CUTSCENE_AFTER_KING_BULBLIN_1 = 0x780,
|
||||
TALKED_WITH_TALO_TO_START_ARCHERY_MINIGAME = 0x801,
|
||||
GOT_ZORA_ARMOR_FROM_RUTELA = 0x804,
|
||||
ZORA_ESCORT_CLEARED = 0x810,
|
||||
ENTERED_TELMAS_BAR_AFTER_LANAYRU_TWILIGHT = 0x820,
|
||||
WAGON_ESCORT_STARTED = 0x840,
|
||||
WARPED_METEOR_TO_ZORAS_DOMAIN = 0x880,
|
||||
LISTENED_TO_IZA_SPIRIT_AFTER_KILLING_BUG_NEXT_TO_HER = 0x901,
|
||||
STARTED_IZA_1_MINIGAME = 0x902,
|
||||
LAKEBED_TEMPLE_CLEARED = 0x904,
|
||||
BOUGHT_BARNES_BOMB_BAG = 0x908,
|
||||
WON_ARCHERY_MINIGAME_IN_KAKARIKO_WITH_HAWKEYE = 0x910,
|
||||
WON_ARCHERY_MINIGAME_IN_KAKARIKO_LEGITIMATELY = 0x920,
|
||||
STARTED_ARCHERY_MINIGAME_IN_KAKARIKO = 0x940,
|
||||
TALKED_TO_TALO_AFTER_WINNING_ARCHERY_MINIGAME_LEGITIMATELY = 0x980,
|
||||
KING_BULBLIN_1_HIT_ONCE_DURING_PHASE_2 = 0xA01,
|
||||
KING_BULBLIN_1_PHASE_1_DONE = 0xA02,
|
||||
KING_BULBLIN_1_FIGHT_STARTED = 0xA04,
|
||||
KING_BULBLIN_1_DEFEATED = 0xA08,
|
||||
STARTED_KARGOROK_FLIGHT_UP_ZORAS_RIVER_DURING_TWILIGHT = 0xA10,
|
||||
BRIDGE_OF_ELDIN_STOLEN = 0xA20,
|
||||
THREW_FIRST_GORON_OFF_LEDGE_WHILE_SCALING_DMT = 0xA40,
|
||||
LEFT_AFTER_AGREEING_TO_HELP_IZA_1 = 0xA80,
|
||||
IZA_1_MINIGAME_DONE = 0xB01,
|
||||
IZA_1_MINIGAME_UNLOCKED = 0xB02,
|
||||
AGREED_TO_HELP_IZA = 0xB04,
|
||||
LEFT_AFTER_AGREEING_TO_HELP_IZA = 0xB08,
|
||||
GOT_SNOWPEAK_RUINS_MAP_FROM_YETA = 0xB10,
|
||||
TALKED_TO_YETA_IN_SNOWPEAK_RUINS_FOR_THE_FIRST_TIME = 0xB20,
|
||||
ESCAPED_BURNING_TENT_IN_BULBLIN_CAMP = 0xB40,
|
||||
DECLINED_TO_HELP_IZA = 0xB80,
|
||||
MIDNAS_DESPERATE_HOUR_STARTED = 0xC01,
|
||||
CLEARED_LANAYRU_TWILIGHT = 0xC02,
|
||||
TALKED_TO_KID_GORON_SHOP_IN_KAKARIKO_AT_NIGHT = 0xC04,
|
||||
REMOVE_SWORD_SHIELD_FROM_WOLF_BACK = 0xC08,
|
||||
MIDNA_ACCOMPANIES_WOLF = 0xC10,
|
||||
TALKED_WITH_FARONE_AFTER_CLEARING_FOREST_TEMPLE = 0xC40,
|
||||
MET_RUTELLA_AFTER_WARPING_METEOR_TO_ZORAS_DOMAIN = 0xC80,
|
||||
ENTERED_ORDON_SHIELD_HOUSE_AS_WOLF_AT_NIGHT = 0xD01,
|
||||
TALKED_TO_ONE_OF_THE_FROGS_OUTSIDE_RUSLS_HOUSE_AS_WOLF_AT_NIGHT = 0xD02,
|
||||
TRANSFORMING_UNLOCKED = 0xD04,
|
||||
TALKED_WITH_CLERK_AT_CASTLE_TOWN_MALO_MART = 0xD08,
|
||||
TALKED_WITH_YETA_AFTER_GETTING_BEDROOM_KEY = 0xD10,
|
||||
MIDNA_TEXT_AFTER_ORDON_SHIELD_OBTAINED = 0xD80,
|
||||
START_ILIA_MEMORY_SIDEQUEST = 0xE01,
|
||||
TWILIGHT_BLOAT_TEAR_APPEARS_ON_MAP = 0xE02,
|
||||
MALO_TEXT_AFTER_LEAVING_SHOP_MENU = 0xE08,
|
||||
LISTENED_TO_FYER_SPIRIT_IN_FILLED_LAKE_HYLIA_DURING_TWILIGHT = 0xE10,
|
||||
TALKED_TO_RIGHT_GORON_IN_HOTSPRING_AFTER_KING_BULBLIN_1 = 0xE20,
|
||||
TALKED_TO_SECOND_GORON_IN_DMT_AFTER_CLEARING_GORON_MINES = 0xE40,
|
||||
TALKED_TO_BROWN_CUCOO_OUTSIDE_BOS_HOUSE_AS_WOLF_AT_NIGHT = 0xE80,
|
||||
GOT_LANTERN_FROM_CORO = 0xF01,
|
||||
IZA_TEXT_AFTER_IZA_1_DONE = 0xF02,
|
||||
TALKED_WITH_FYER_AFTER_GOING_TO_DESERT = 0xF04,
|
||||
WARPED_BRIDGE_OF_ELDIN_BACK = 0xF08,
|
||||
FUNDED_CASTLE_TOWN_MALO_MART = 0xF10,
|
||||
TALKED_WITH_DOCTOR_BEFORE_GIVING_INVOICE = 0xF20,
|
||||
FORCED_TEXT_WHEN_ENTERING_DOCTORS_CLINIC_FOR_THE_FIRST_TIME = 0xF40,
|
||||
GOT_RENADOS_LETTER = 0xF80,
|
||||
SERAS_CAT_RETURNED_TO_SHOP = 0x1001,
|
||||
ORDON_DAY_2_TALKED_TO_JAGGLE_ON_THE_PILLAR = 0x1002,
|
||||
ORDON_DAY_2_L_TARGET_TALKED_TO_JAGGLE_ON_THE_PILLAR = 0x1004,
|
||||
ORDON_DAY_2_TALKED_TO_COLIN_AFTER_FISHING_ROD = 0x1008,
|
||||
WATCHED_START_OF_GAME_CUTSCENE = 0x1010,
|
||||
ORDON_DAY_2_TALKED_TO_COLIN_BEFORE_FISHING_ROD = 0x1020,
|
||||
ORDON_DAY_3_TALKED_TO_RUSL = 0x1040,
|
||||
ORDON_DAY_3_TALKED_TO_PERGIE = 0x1080,
|
||||
TALKED_TO_SERA_AFTER_GETTING_BOTTLE = 0x1101,
|
||||
ORDON_DAY_3_TALKED_TO_ULI = 0x1102,
|
||||
ORDON_DAY_2_STARTED_SWORD_TRAINING = 0x1104,
|
||||
TALKED_TO_GOR_EBIZO_AFTER_COMPLETING_HOTSPRING_MINIGAME = 0x1108,
|
||||
TALKED_WITH_YETA_AFTER_SHE_WALKS_UP_TO_BEDROOM = 0x1110,
|
||||
HANCH_IS_ATTACKED_BY_BEES = 0x1120,
|
||||
ORDON_DAY_2_TALKED_TO_JAGGLE_AFTER_CALLING_DOWN_EAGLE = 0x1140,
|
||||
ORDON_DAY_2_TALKED_TO_HANCH_AFTER_TOUCHING_BEE_NEST = 0x1180,
|
||||
SOUTH_FARON_WARP_FIGHT_STARTED = 0x1202,
|
||||
ORDON_DAY_2_TALKED_TO_SERA_BEFORE_CAT_RETURNS = 0x1204,
|
||||
TALKED_TO_SERA_AFTER_CAT_RETURNS = 0x1208,
|
||||
HEARD_BO_TEXT_AFTER_SUMO_FIGHT = 0x1210,
|
||||
TALK_TO_GORON_IN_FRONT_OF_DM_SHOP_AFTER_WINNING_GOR_CORON_SUMO_MATCH = 0x1302,
|
||||
TALKED_TO_IZA_BEFORE_UZR_PORTAL = 0x1304,
|
||||
WATCHED_CUTSCENE_AFTER_GORON_MINES = 0x1320,
|
||||
LOST_SUMO_TO_GOR_CORON_TWICE = 0x1340,
|
||||
TALKED_TO_FARONE_IN_FARON_TWILIGHT = 0x1380,
|
||||
ORDON_DAY_3_COLIN_WENT_TO_SEE_ILIA_IN_ORDON_SPRING = 0x1402,
|
||||
GOT_BOTTLE_FROM_SERA = 0x1408,
|
||||
WATCHED_CUTSCENE_AFTER_GETTING_KNOCKED_OFF_DM_LEDGE_BY_GORON = 0x1410,
|
||||
TALKED_WITH_YETA_AFTER_GIVING_CHEESE = 0x1420,
|
||||
TALKED_WITH_YETA_AFTER_GIVING_PUMPKIN = 0x1440,
|
||||
ENTERED_FYERS_CANON_FOR_THE_FIRST_TIME = 0x1480,
|
||||
TALKED_TO_AGITHA_IN_HER_CASTLE_FOR_THE_FIRST_TIME = 0x1501,
|
||||
TALKED_TO_HANCH_AFTER_HE_JUMPS_IN_THE_WATER_ORDON_DAY_2_OR_3 = 0x1502,
|
||||
ORDON_DAY_2_JAGGLE_SCOLDS_YOU_FOR_BREAKING_ALL_THE_PUMPKINS_NEXT_TO_HIM = 0x1504,
|
||||
HANCH_HIT_BEE_NEST_AND_DOVE_IN_WATER = 0x1508,
|
||||
ORDON_DAY_2_TOUCHED_ORDON_HANGING_BEE_NEST = 0x1510,
|
||||
ORDON_DAY_2_TOOK_DOWN_ORDON_BEE_NEST_WITH_HAWK = 0x1520,
|
||||
WARPING_IN_LANAYRU_PROVINCE_DISABLED = 0x1540,
|
||||
WATCHED_CUTSCENE_AFTER_GOATS_2 = 0x1580,
|
||||
ORDON_DAY_2_DONE = 0x1601,
|
||||
TOOK_DOWN_ORDON_BEE_NEST_WITH_SLINGSHOT = 0x1602,
|
||||
GOT_A_LETTER_FROM_AGITHA = 0x1604,
|
||||
ORDON_DAY_2_TALKED_TO_BO_AFTER_CATCHING_GOAT = 0x1620,
|
||||
ORDON_DAY_2_CAUGHT_GOAT_IN_FRONT_OF_BOS_HOUSE = 0x1640,
|
||||
HANCH_HIT_BEE_NEST_AND_DOVE_IN_WATER_TRIGGER = 0x1680,
|
||||
TALKED_TO_FEMALE_OWNER_OF_GROCERY_STORE_IN_SOUTH_CASTLE_TOWN = 0x1701,
|
||||
TALKED_TO_HYRULE_SOLDIER_IN_SOUTH_CASTLE_TOWN = 0x1702,
|
||||
TALKED_TO_STALKER_OUTSIDE_AGITHAS_CASTLE = 0x1704,
|
||||
ORDON_DAY_3_TALKED_TO_BO = 0x1710,
|
||||
ORDON_DAY_2_TALKED_TO_HANCH_AFTER_TAKING_DOWN_BEE_NEST = 0x1780,
|
||||
WATCHED_CUTSCENE_BETWEEN_RUSL_ULI_AFTER_ORDON_SHIELD = 0x1801,
|
||||
CHECKED_TRILLS_MONEY_BOX = 0x1804,
|
||||
CAUGHT_BY_RUSL_IN_ORDON_AS_WOLF_AT_NIGHT = 0x1808,
|
||||
ORDON_DAY_2_TALO_RAN_AFTER_MONKEY_AFTER_SWORD_TRAINING = 0x1880,
|
||||
WATCHED_ELDIN_SPIRIT_CUTSCENE_AFTER_OPENING_KAKARIKO_WARP = 0x1901,
|
||||
SUCCESSFULLY_LISTENED_TO_BO_AND_JAGGLES_CONVERSATION_AS_WOLF = 0x1904,
|
||||
COLIN_STOPPED_YOU_FROM_GETTING_ON_EPONA_ORDON_DAY_2 = 0x1908,
|
||||
FAILED_TO_LISTEN_TO_BO_AND_JAGGLES_CONVERSATION_AS_WOLF = 0x1910,
|
||||
SCARED_OFF_HANCH_AS_WOLF_AT_NIGHT = 0x1920,
|
||||
HANCH_SPOTTED_YOU_AS_WOLF_AT_NIGHT = 0x1940,
|
||||
TRIED_TO_ENTER_FARON_TWILIGHT_WITHOUT_SWORD_SHIELD = 0x1980,
|
||||
TALKED_TO_ELDIN_SPIRIT_IN_ELDIN_TWILIGHT = 0x1A01,
|
||||
LISTENED_TO_FIRST_GUARD_IN_SEWERS = 0x1A02,
|
||||
BOUGHT_COROS_OIL_BOTTLE = 0x1A08,
|
||||
TALKED_TO_CORO_AFTER_FARON_TWILIGHT = 0x1A10,
|
||||
TALKED_TO_WHITE_CUCOO_NEAR_RUSLS_HOUSE_AS_WOLF_AT_NIGHT = 0x1A20,
|
||||
TALKED_TO_SERAS_CAT_AS_WOLF_AT_NIGHT = 0x1A40,
|
||||
TALKED_TO_MIDNA_AFTER_ESCAPING_CELL_IN_SEWERS = 0x1A80,
|
||||
TRIED_TO_LEAVE_MIST_AREA_WITHOUT_PICKING_UP_LANTERN = 0x1B01,
|
||||
LISTENED_TO_FIRST_GORON_SPIRIT_IN_DEATH_MOUNTAIN_TWILIGHT = 0x1B02,
|
||||
PICKED_UP_LANTERN_AFTER_MONKEY_STEALING_SEQUENCE = 0x1B08,
|
||||
MONKEY_DROPPED_YOUR_LANTERN = 0x1B10,
|
||||
MONKEY_STOLE_YOUR_LANTERN = 0x1B20,
|
||||
LISTENED_TO_CORO_SPIRIT_BEFORE_KILLING_BUGS_IN_HIS_HOUSE = 0x1B40,
|
||||
TALKED_TO_MALO_AFTER_KING_BULBLIN_1 = 0x1C01,
|
||||
SAW_MIDNA_TEXT_AFTER_TRYING_TO_WARP_AN_OBJECT_TO_THE_WRONG_PLACE = 0x1C02,
|
||||
SACRED_GROVE_STATUE_PUZZLE_COMPLETED = 0x1C04,
|
||||
WIN_SUMO_ROUND_1_AGAINST_BO = 0x1C10,
|
||||
BO_TALKED_TO_YOU_AFTER_OPENING_IRON_BOOTS_CHEST = 0x1C20,
|
||||
ACCEPTED_TO_KEEP_BOS_SECRET = 0x1C40,
|
||||
LISTENED_TO_SECOND_GORON_SPIRIT_IN_DEATH_MOUNTAIN_TWILIGHT = 0x1C80,
|
||||
MINI_MAP_RETRACTED = 0x1D01,
|
||||
TALKED_TO_TALO_AFTER_KING_BULBLIN_1 = 0x1D02,
|
||||
TALKED_TO_LUDA_AFTER_KING_BULBLIN_1 = 0x1D04,
|
||||
TALKED_TO_DARBUS_AFTER_DEFEATING_FYRUS = 0x1D08,
|
||||
TALKED_TO_BARNES_AFTER_GORON_MINES = 0x1D10,
|
||||
TALKED_TO_BARNES_AFTER_KING_BULBLIN_1 = 0x1D20,
|
||||
LISTENED_TO_FYER_SPIRIT_IN_DRAINED_LAKE_HYLIA_DURING_LANAYRU_TWILIGHT = 0x1D40,
|
||||
TALKED_TO_SERA_A_SECOND_TIME_AFTER_FARON_TWILIGHT = 0x1E02,
|
||||
TALKED_TO_SERA_AFTER_FARON_TWILIGHT = 0x1E04,
|
||||
MIDNAS_DESPERATE_HOUR_COMPLETED = 0x1E08,
|
||||
TALKED_TO_CORO_AFTER_FOREST_TEMPLE = 0x1E20,
|
||||
TALK_TO_MALO_AFTER_FUNDRAISING_IS_OPEN = 0x1E40,
|
||||
MALO_MART_FUNDRAISING_STARTS = 0x1E80,
|
||||
HEARD_FORCED_MIDNA_TEXT_E3_2006_GORON_MINES = 0x1F04,
|
||||
HEARD_MIDNA_TEXT_ONTOP_OF_MAGNET_SWITCH_E3_2006_GORON_MINES = 0x1F08,
|
||||
FYRUS_IS_ON_THE_GROUND = 0x1F10,
|
||||
KNOCKED_FYRUS_DOWN_FOR_THE_FIRST_TIME = 0x1F20,
|
||||
FYRUS_IS_STUNNED = 0x1F40,
|
||||
SHOT_FYRUS_EYE_FOR_THE_FIRST_TIME = 0x1F80,
|
||||
TALKED_WITH_TELMA_AFTER_GETTING_MASTER_SWORD = 0x2001,
|
||||
CITY_IN_THE_SKY_CLEARED = 0x2002,
|
||||
TEMPLE_OF_TIME_CLEARED = 0x2004,
|
||||
SNOWPEAK_RUINS_CLEARED = 0x2008,
|
||||
ARBITERS_GROUNDS_CLEARED = 0x2010,
|
||||
GOT_MASTER_SWORD = 0x2020,
|
||||
WATCHED_TELMA_ILIA_SPIRIT_CUTSCENE_IN_THE_BAR_DURING_LANAYRU_TWILIGHT = 0x2101,
|
||||
TALKED_TO_LOUISE_ABOUT_THE_STOLEN_STATUE = 0x2102,
|
||||
GAVE_TELMA_RENADOS_LETTER = 0x2180,
|
||||
TALKED_TO_PLUMM_AS_WOLF_FOR_THE_FIRST_TIME = 0x2201,
|
||||
GOT_A_HIGH_SCORE_IN_PLUMMS_MINIGAME = 0x2202,
|
||||
GOT_WOOD_STATUE = 0x2204,
|
||||
TALKED_TO_YETO_ON_TOP_OF_THE_MOUNTAIN_AFTER_CLEARING_SPR = 0x2208,
|
||||
MALO_MART_CASTLE_TOWN_BRANCH_IS_OPEN = 0x2210,
|
||||
GOT_ILIAS_SCENT = 0x2220,
|
||||
GOT_YOUTHS_SCENT = 0x2240,
|
||||
GOT_ILIAS_CHARM = 0x2280,
|
||||
CLEARED_STAR_2 = 0x2301,
|
||||
STARTED_STAR_2 = 0x2302,
|
||||
MAGIC_UNLOCKED = 0x2304,
|
||||
CLEARED_STAR_1 = 0x2308,
|
||||
ENTERED_STAR_FOR_THE_FIRST_TIME = 0x2310,
|
||||
GAVE_ILIA_HER_CHARM = 0x2320,
|
||||
GAVE_ILIA_THE_WOOD_STATUE = 0x2340,
|
||||
WON_PLUMMS_HEART_PIECE = 0x2380,
|
||||
TALKED_TO_SHAD_AFTER_FINISHING_CITY_IN_THE_SKY = 0x2401,
|
||||
TALKED_TO_SHAD_FOR_A_SECOND_TIME_IN_TELMAS_BAR = 0x2402,
|
||||
TALKED_TO_SHAD_IN_TELMAS_BAR = 0x2404,
|
||||
TALKED_TO_AURU_IN_TELMAS_BAR = 0x2408,
|
||||
TALKED_TO_CENTRAL_CASTLE_TOWN_SHOP_CLERK = 0x2410,
|
||||
TALKED_TO_LOUISE_AFTER_BEING_THROWN_OUT_DURING_MDH = 0x2420,
|
||||
WATCHED_LOUISE_CUTSCENE_DURING_MIDNAS_DESPERATE_HOUR = 0x2440,
|
||||
DONATED_1000_RUPEES_TO_CHARLO = 0x2480,
|
||||
WATCHED_CUTSCENE_WITH_YETO_ON_TOP_OF_MOUNTAIN = 0x2502,
|
||||
TALKED_TO_YETO_ON_TOP_OF_MOUNTAIN_AS_WOLF = 0x2504,
|
||||
GOT_AURUS_MEMO = 0x2510,
|
||||
TALKED_TO_AURU_IN_LAKE_HYLIA = 0x2520,
|
||||
SHAD_USED_COMPLETED_SKYBOOK = 0x2540,
|
||||
SHAD_CASTS_UNFINISHED_SPELL_ON_STATUE = 0x2580,
|
||||
SOL_FLAG_1 = 0x2601,
|
||||
SOL_FLAG_2 = 0x2602,
|
||||
PALACE_WEST_SOL_TAKEN_IN_PHANTOM_ZANT_ROOM = 0x2604,
|
||||
SOL_FLAG_3 = 0x2608,
|
||||
PALACE_WEST_SOL_TAKEN_OUT_PHANTOM_ZANT_ROOM = 0x2610,
|
||||
PALACE_EAST_SOL_TAKEN_OUTSIDE = 0x2620,
|
||||
PALACE_WEST_SOL_TAKEN_OUTSIDE = 0x2640,
|
||||
SHOWED_AURUS_MEMO_TO_FYER = 0x2680,
|
||||
TALKED_TO_UNDERWATER_ZORA_ABOUT_GORON_IN_THRONE_ROOM_AFTER_RELEASE = 0x2701,
|
||||
TALKED_TO_UNDERWATER_ZORA_ABOUT_GORON_IN_THRONE_ROOM_BEFORE_RELEASE = 0x2702,
|
||||
TALKED_TO_WEST_ZORA_IN_DOMAIN_THRONE_ROOM_AFTER_LANAYRU_TWILIGHT = 0x2704,
|
||||
TALKED_TO_SWIMMING_ZORA_IN_ZORAS_DOMAIN_BEFORE_LAKEBED = 0x2708,
|
||||
GAVE_INVOICE_TO_DOCTOR = 0x2710,
|
||||
PALACE_EAST_SOL_TAKEN_IN_PHANTOM_ZANT_ROOM = 0x2720,
|
||||
SOL_FLAG_4 = 0x2740,
|
||||
PALACE_EAST_SOL_TAKEN_OUT_OF_PHANTOM_ZANT_ROOM = 0x2780,
|
||||
SAW_ULI_TEXT_BEFORE_LEAVING_RUSLS_HOUSE = 0x2801,
|
||||
TALKED_TO_ULI_A_SECOND_TIME_AFTER_FARON_TWILIGHT = 0x2802,
|
||||
TALKED_TO_ULI_AFTER_FARON_TWILIGHT = 0x2804,
|
||||
SAW_FORCED_ULI_TEXT_IN_RUSLS_HOUSE_AFTER_FARON_TWILIGHT = 0x2808,
|
||||
TALKED_TO_JAGGLE_A_SECOND_TIME_AFTER_FARON_TWILIGHT = 0x2810,
|
||||
TALKED_TO_JAGGLE_AFTER_FARON_TWILIGHT = 0x2820,
|
||||
USED_OOCCOO_FOR_THE_FIRST_TIME = 0x2840,
|
||||
HELM_SPLITTER_UNLOCKED = 0x2901,
|
||||
BACKSLICE_UNLOCKED = 0x2902,
|
||||
ENDING_BLOW_UNLOCKED = 0x2904,
|
||||
SHIELD_ATTACK_UNLOCKED = 0x2908,
|
||||
LISTENED_TO_LADY_SPIRITS_TALKING_IN_WEST_CASTLE_TOWN_DURING_TWILIGHT = 0x2910,
|
||||
FREED_UNDERWATER_GORON_IN_ZORAS_DOMAIN = 0x2920,
|
||||
GOT_ASHEIS_SKETCH = 0x2940,
|
||||
TALKED_TO_ASHEI_IN_TELMAS_BAR = 0x2980,
|
||||
TALKED_TO_ZORA_SOLDIER_NEAR_LAKEBED_ENTRANCE_AFTER_OPENING = 0x2A01,
|
||||
TALKED_TO_ZORA_SOLDIER_NEAR_LAKEBED_ENTRANCE_BEFORE_OPENING = 0x2A02,
|
||||
TALKED_TO_ASHEI_IN_TELMAS_BAR_AFTER_FINISHING_SPR = 0x2A04,
|
||||
ORDON_DAY_2_LIT_COROS_POT = 0x2A10,
|
||||
GREAT_SPIN_UNLOCKED = 0x2A20,
|
||||
JUMP_STRIKE_UNLOCKED = 0x2A40,
|
||||
MORTAL_DRAW_UNLOCKED = 0x2A80,
|
||||
TALKED_TO_DOCTOR_AFTER_RESTORING_ILIAS_MEMORY = 0x2B02,
|
||||
SHOWED_WOOD_STATUE_TO_DOCTOR = 0x2B04,
|
||||
FIXED_THE_MIRROR_OF_TWILIGHT = 0x2B08,
|
||||
TALKED_TO_LADIES_OUTSIDE_CENTRAL_CASTLE_TOWN_SHOP_BEFORE_MALO_MART = 0x2B10,
|
||||
UNK_2B20 = 0x2B20,
|
||||
TALKED_TO_GOR_CORON_AFTER_CLEARING_GORON_MINES = 0x2C01,
|
||||
SAVED_MONKEY_IN_FARON_TWILIGHT = 0x2C02,
|
||||
UNK_2C04 = 0x2C04,
|
||||
TALKED_TO_RUSL_IN_TELMAS_BAR = 0x2C08,
|
||||
RAISED_MIRROR_IN_MIRROR_CHAMBER = 0x2C10,
|
||||
UNK_2C20 = 0x2C20,
|
||||
UNK_2C40 = 0x2C40,
|
||||
TALKED_TO_TELMA_AFTER_RECOVERING_ILIAS_MEMORY = 0x2C80,
|
||||
TALKED_TO_DARBUS_AFTER_RESTORING_ILIAS_MEMORY = 0x2D01,
|
||||
UNK_2D02 = 0x2D02,
|
||||
UNK_2D04 = 0x2D04,
|
||||
TALKED_TO_GORON_BY_BARNES_SHOP_AFTER_GORON_MINES = 0x2D08,
|
||||
TALKED_TO_GORON_IN_KAKARIKO_HOTSPRING_AFTER_GORON_MINES = 0x2D10,
|
||||
TALKED_TO_GORON_BY_KAKARIKO_WATCHTOWER_AFTER_GORON_MINES = 0x2D20,
|
||||
TALKED_TO_GORON_IN_FRONT_OF_KAKARIKO_INN_AFTER_GORON_MINES = 0x2D40,
|
||||
TALKED_TO_FIRST_GORON_ON_DEATH_MOUNTAIN_TRAIL_AFTER_GORON_MINES = 0x2D80,
|
||||
TALKED_TO_ADULT_GORON_AFTER_OPENING_HOTSPRING_WATER_SHOP_IN_CASTLE_TOWN = 0x2E01,
|
||||
TALKED_TO_AGITHA_FOR_THE_FIRST_TIME_OUTSIDE_SOUTH_CASTLE_TOWN = 0x2E02,
|
||||
GAVE_ALL_24_GOLDEN_BUGS_TO_AGITHA = 0x2E04,
|
||||
HIDDEN_VILLAGE_BARRIER_REMOVED = 0x2E08,
|
||||
HELPED_OUTSIDE_SOUTH_CASTLE_TOWN_GORON = 0x2E10,
|
||||
BRIDGE_REPAIR_FUNDRAISING_COMPLETED = 0x2E20,
|
||||
TALKED_TO_GOR_EBIZO_IN_KAKARIKO = 0x2E40,
|
||||
TALKED_TO_DARBUS_AFTER_CLEARING_GORON_MINES = 0x2E80,
|
||||
TALKED_TO_GORON_OUTSIDE_SOUTH_CASTLE_TOWN = 0x2F01,
|
||||
UNK_2F02 = 0x2F02,
|
||||
GOT_MEDICINE_SCENT = 0x2F04,
|
||||
TALKED_TO_BARNES_AFTER_UNLOCKING_BOMBLINGS = 0x2F08,
|
||||
TALKED_TO_BARNES_AFTER_UNLOCKING_WATER_BOMBS = 0x2F10,
|
||||
TALKED_TO_CHILD_GORON_BEFORE_OPENING_HOTSPRING_WATER_SHOP_IN_CASTLE_TOWN = 0x2F20,
|
||||
TALKED_TO_CHILD_GORON_AFTER_OPENING_HOTSPRING_WATER_SHOP_IN_CASTLE_TOWN = 0x2F40,
|
||||
TALKED_TO_GORON_OUTSIDE_EAST_CASTLE_TOWN = 0x2F80,
|
||||
TALKED_TO_GOR_LIGGS_AFTER_UNK = 0x3001,
|
||||
STARTED_HOTSPRING_WATER_MINIGAME = 0x3002,
|
||||
TALKED_TO_GOR_LIGGS_IN_KAKARIKO_VILLAGE = 0x3004,
|
||||
TALKED_TO_GOR_AMATO_IN_GORON_MINES = 0x3008,
|
||||
UNK_3010 = 0x3010,
|
||||
TALKED_TO_GORON_OUTSIDE_SOUTH_CASTLE_TOWN_AFTER_GIVING_WATER = 0x3020,
|
||||
GAVE_HOTSPRING_WATER_TO_GORON_OUTSIDE_SOUTH_CASTLE_TOWN = 0x3040,
|
||||
TALKED_TO_JOVANI_FOR_THE_FIRST_TIME_BEFORE_POE = 0x3080,
|
||||
M_STAG_BEETLE_TURNED_IN = 0x3101,
|
||||
F_BUTTERFLY_TURNED_IN = 0x3102,
|
||||
M_BUTTERFLY_TURNED_IN = 0x3104,
|
||||
F_BEETLE_TURNED_IN = 0x3108,
|
||||
M_BEETLE_TURNED_IN = 0x3110,
|
||||
WARPED_SKY_CANNON_TO_LAKE_HYLIA = 0x3120,
|
||||
TALKED_TO_GOR_LIGGS_AFTER_TALKING_TO_GORON_OUTSIDE_EAST_CASTLE_TOWN = 0x3140,
|
||||
TALKED_TO_GOR_LIGGS_AFTER_BRIDGE_HAS_BEEN_FIXED = 0x3180,
|
||||
M_MANTIS_TURNED_IN = 0x3201,
|
||||
F_PILLBUG_TURNED_IN = 0x3202,
|
||||
M_PILLBUG_TURNED_IN = 0x3204,
|
||||
F_PHASMID_TURNED_IN = 0x3208,
|
||||
M_PHASMID_TURNED_IN = 0x3210,
|
||||
F_GRASSHOPPER_TURNED_IN = 0x3220,
|
||||
M_GRASSHOPPER_TURNED_IN = 0x3240,
|
||||
F_STAG_BEETLE_TURNED_IN = 0x3280,
|
||||
M_ANT_TURNED_IN = 0x3301,
|
||||
F_DRAGONFLY_TURNED_IN = 0x3302,
|
||||
M_DRAGONFLY_TURNED_IN = 0x3304,
|
||||
F_SNAIL_TURNED_IN = 0x3308,
|
||||
M_SNAIL_TURNED_IN = 0x3310,
|
||||
F_LADYBUG_TURNED_IN = 0x3320,
|
||||
M_LADYBUG_TURNED_IN = 0x3340,
|
||||
F_MANTIS_TURNED_IN = 0x3380,
|
||||
F_DAYFLY_TURNED_IN = 0x3420,
|
||||
M_DAYFLY_TURNED_IN = 0x3440,
|
||||
F_ANT_TURNED_IN = 0x3480,
|
||||
TALKED_TO_GOR_LIGGS_IN_GORON_MINES = 0x3701,
|
||||
TALKED_TO_GOR_EBIZO_IN_GORON_MINES = 0x3702,
|
||||
TALKED_TO_POSTMAN_FOR_THE_FIRST_TIME = 0x3704,
|
||||
TALKED_TO_GOR_LIGGS_AFTER_TALKING_TO_GORON_OUTSIDE_EAST_CASTLE_TOWN_BEFORE_FIXING_BRIDGE = 0x3710,
|
||||
TEMP_USED_AFTER_PAYING_TO_FISH_WITH_HENA = 0x3801,
|
||||
TALKED_TO_HENA_FOR_THE_FIRST_TIME = 0x3802,
|
||||
ENTERED_HENAS_CABIN_FOR_THE_FIRST_TIME = 0x3804,
|
||||
TALKED_TO_GENGLE_AFTER_COLLECTING_20_POE_SOULS = 0x3808,
|
||||
TALKED_TO_JOVANI_AFTER_COLLECTING_60_POE_SOULS = 0x3820,
|
||||
UNK_3840 = 0x3840,
|
||||
TALKED_TO_JOVANI_AFTER_DEFEATING_THE_POE_IN_HIS_HOUSE = 0x3880,
|
||||
WON_2ND_SUMO_ROUND_AGAINST_BO = 0x3901,
|
||||
RELEASED_FIRST_CAUGHT_FISH_ORDON_DAY_2 = 0x3902,
|
||||
BEAT_ROLLGOAL_1_8 = 0x3904,
|
||||
CAUGHT_THE_FISHING_BOTTLE = 0x3908,
|
||||
RESERVED_FOR_FISHING_1 = 0x3910,
|
||||
CAUGHT_THE_SINKING_LURE = 0x3920,
|
||||
WENT_FISHING_WITH_HENA_FOR_THE_FIRST_TIME = 0x3940,
|
||||
TEMP_USED_AFTER_PAYING_TO_FISH_WITH_HENA_2 = 0x3980,
|
||||
TALKED_WITH_RALIS_IN_KAKARIKO_GRAVEYARD = 0x3A01,
|
||||
TALKED_TO_RALIS_IN_ZORAS_DOMAIN_THRONE_ROOM = 0x3A02,
|
||||
HOWLED_AT_HIDDEN_VILLAGE_STONE = 0x3A04,
|
||||
HOWLED_AT_SNOWPEAK_STONE = 0x3A08,
|
||||
HOWLED_AT_LAKE_HYLIA_STONE = 0x3A10,
|
||||
HOWLED_AT_SACRED_GROVE_OUTSIDE_STONE = 0x3A20,
|
||||
HOWLED_AT_UPPER_ZORAS_RIVER_STONE = 0x3A40,
|
||||
HOWLED_AT_DEATH_MOUNTAIN_STONE = 0x3A80,
|
||||
TALKED_WITH_LUDA_AFTER_RALIS_RETURNS_TO_ZORAS_DOMAIN = 0x3B01,
|
||||
TALKED_WITH_LUDA_WHILE_RALIS_IS_IN_KAKARIKO_GRAVEYARD = 0x3B02,
|
||||
TALKED_TO_FYER_ABOUT_REPAIRING_THE_SKY_CANNON = 0x3B04,
|
||||
SKY_CANNON_REPAIRED = 0x3B08,
|
||||
WON_SNOWBOARD_RACE_AGAINST_YETA = 0x3B10,
|
||||
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_SOUTH_CT_FIELD_WOLF = 0x3C02,
|
||||
GOT_SKILL_FROM_WEST_CT_WOLF = 0x3C04,
|
||||
GOT_SKILL_FROM_ORDON_WOLF = 0x3C08,
|
||||
TALKED_TO_WHITE_CUCCOO_INSIDE_FENCES_NEXT_TO_BOS_HOUSE_AS_WOLF_AT_NIGHT = 0x3C20,
|
||||
TALKED_TO_GORON_OUTSIDE_BARNES_SHOP_AFTER_UNLOCKING_BOMBLINGS = 0x3C40,
|
||||
TALKED_TO_GORON_OUTSIDE_BARNES_SHOP_AFTER_UNLOCKING_WATER_BOMBS = 0x3C80,
|
||||
ELDIN_SPRING_HAS_FARIES = 0x3D01,
|
||||
FARON_SPRING_HAS_FARIES = 0x3D02,
|
||||
ORDON_SPRING_HAS_FARIES = 0x3D04,
|
||||
ENTER_RUSLS_HOUSE_AFTER_FARON_TWILIGHT = 0x3D08,
|
||||
UNK_3D10 = 0x3D10,
|
||||
GOT_SKILL_FROM_BARRIER_WOLF = 0x3D40,
|
||||
GOT_SKILL_FROM_GRAVEYARD_WOLF = 0x3D80,
|
||||
TALKED_WITH_COLIN_WHILE_RALIS_IS_IN_KAKARIKO_GRAVEYARD = 0x3E01,
|
||||
CITY_OOCCOO_CS_WATCHED = 0x3E02,
|
||||
FOUND_OOCCOO_FOR_THE_SECOND_TIME = 0x3E04,
|
||||
FOUND_OOCCOO_FOR_THE_FIRST_TIME = 0x3E08,
|
||||
OOCCOO_NOW_HAS_OOCCOO_JR_NEXT_TO_HER = 0x3E10,
|
||||
OOCCOO_MET_BUT_DOESNT_HAVE_OOCCOO_JR_YET_UNSET_ONCE_JR_MET = 0x3E20,
|
||||
SPRING_SPIRITS_CAN_GIVE_FARY_TEARS = 0x3E40,
|
||||
LANAYRU_SPRING_HAS_FARIES = 0x3E80,
|
||||
TALKED_TO_SERA_A_SECOND_TIME_AFTER_ELDIN_TWILIGHT = 0x3F01,
|
||||
TALKED_TO_SERA_AFTER_ELDIN_TWILIGHT = 0x3F02,
|
||||
TALKED_TO_JAGGLE_AFTER_ELDIN_TWILIGHT = 0x3F04,
|
||||
TALKED_TO_ULI_AFTER_GM = 0x3F08,
|
||||
TALKED_TO_ULI_A_SECOND_TIME_AFTER_ELDIN_TWILIGHT = 0x3F10,
|
||||
TALKED_TO_ULI_AFTER_ELDIN_TWILIGHT = 0x3F20,
|
||||
TALKED_WITH_COLIN_AFTER_RALIS_RETURNS_TO_ZORAS_DOMAIN = 0x3F40,
|
||||
TALKED_TO_RUSL_IN_TELMAS_BAR_AFTER_FINISHING_TOT = 0x4001,
|
||||
RUSL_IN_N_FARON_SUMMONS_GOLD_CUCCO = 0x4002,
|
||||
DECLINED_TO_HELP_RUSL_IN_N_FARON_OFF_AFTER_SAYING_YES = 0x4004,
|
||||
VISITED_DESERT_FOR_THE_FIRST_TIME = 0x4008,
|
||||
TALKED_TO_ZORA_BOMB_SELLER_BY_LAKEBED_ENTRANCE_BEFORE_OPENING = 0x4010,
|
||||
TALK_TO_HANCH_AFTER_ELDIN_TWILIGHT = 0x4020,
|
||||
TALK_TO_HANCH_AFTER_FARON_TWILIGHT = 0x4040,
|
||||
SAVED_MONKEY_FROM_PUPPETS = 0x4080,
|
||||
TALKED_TO_UNDERWATER_GORON_IN_ZORAS_DOMAIN_AFTER_X_ = 0x4104,
|
||||
TALK_TO_FADO_AFTER_FARON_TWILIGHT = 0x4108,
|
||||
TALK_TO_FADO_AFTER_ELDIN_TWILIGHT = 0x4110,
|
||||
TALK_TO_PERGIE_AFTER_FARON_TWILIGHT = 0x4140,
|
||||
TALK_TO_PERGIE_AFTER_ELDIN_TWILIGHT = 0x4180,
|
||||
WATCHED_POST_TOT_OOCCOO_CS = 0x4201,
|
||||
TRIGGERED_MONKEY_PUPPET_SCENE = 0x4202,
|
||||
WATCHED_CUTSCENE_WITH_RUSL_IN_N_FARON_AFTER_FINISHING_SPR = 0x4204,
|
||||
BARRIER_GONE = 0x4208,
|
||||
MIDNA_TEXT_AFTER_WARPING_BACK_TO_FARON_IN_ELDIN_TWILIGHT = 0x4220,
|
||||
GOATS_3_DONE = 0x4240,
|
||||
PALACE_WEST_WING_SOL_IN_WEST_SLOT = 0x4302,
|
||||
SENSES_UNLOCKED = 0x4308,
|
||||
LISTENED_TO_ADULT_SPIRITS_NEXT_TO_FOUNTAIN_IN_CASTLE_TOWN_TWILIGHT = 0x4310,
|
||||
TALKED_TO_JAGGLE_ORDON_DAY_3 = 0x4320,
|
||||
TALKED_TO_EAST_CT_GUARD = 0x4380,
|
||||
PALACE_EAST_WING_SOL_IN_WEST_SLOT = 0x4408,
|
||||
PALACE_WEST_WING_SOL_IN_EAST_SLOT = 0x4420,
|
||||
POSTMAN_LEAVES_FOR_THE_FIRST_TIME_1 = 0x4504,
|
||||
POSTMAN_LEAVES_FOR_THE_FIRST_TIME_2 = 0x4508,
|
||||
ORDON_DAY_2_OVER = 0x4510,
|
||||
LISTENED_TO_SOLDIER_SPIRITS_IN_TELMAS_BAR_DURING_TWILIGHT_1 = 0x4520,
|
||||
TOOK_CRADLE_FROM_MONKEY_DAY_2 = 0x4601,
|
||||
TALKED_TO_FADO_DAY_2 = 0x4602,
|
||||
RODE_EPONA_BACK_TO_LINKS_HOUSE_ORDON_DAY_1 = 0x4610,
|
||||
REFUSE_TO_GIVE_WOODEN_SWORD_SECOND_TIME_ORDON_DAY_3 = 0x4620,
|
||||
REFUSE_TO_GIVE_WOODEN_SWORD_FIRST_TIME_ORDON_DAY_3 = 0x4640,
|
||||
UNK_4680 = 0x4680,
|
||||
TALKED_TO_BO_ORDON_DAY_1 = 0x4701,
|
||||
TALKED_TO_RUSL_ORDON_DAY_1 = 0x4702,
|
||||
TALKED_TO_ILIA_BEFORE_CALLING_EPONA_ORDON_DAY_1 = 0x4704,
|
||||
TALKED_TO_ILIA_AFTER_CALLING_EPONA_ORDON_DAY_1 = 0x4708,
|
||||
USED_HAWK_GRASS_FOR_THE_FIRST_TIME_ORDON_DAY_2 = 0x4710,
|
||||
CALLED_EPONA_IN_ORDON_SPRING = 0x4720,
|
||||
TALKED_TO_HANCH_BEFORE_BEE_ATTACK_ORDON_DAY_2 = 0x4740,
|
||||
TALKED_TO_BETH_ORDON_DAY_3 = 0x4780,
|
||||
TALKED_TO_BETH_DURING_TALO_RESCUE_SEQUENCE = 0x4801,
|
||||
TALKED_TO_MALO_DURING_TALO_RESCUE_SEQUENCE = 0x4804,
|
||||
TALKED_TO_SERA_ORDON_DAY_1 = 0x4810,
|
||||
FAILED_TO_CATCH_GOAT_IN_FRONT_OF_BOS_HOUSE_ORDON_DAY_3 = 0x4820,
|
||||
CAUGHT_GOAT_IN_FRONT_OF_BOS_HOUSE_ORDON_DAY_3 = 0x4840,
|
||||
TALKED_TO_BO_AFTER_CATCHING_A_GOAT_ORDON_DAY_3 = 0x4880,
|
||||
TALKED_TO_TALO_IN_CAGE_DAY_2 = 0x4901,
|
||||
BOUGHT_SLINGSHOT_FROM_SERA = 0x4902,
|
||||
TALKED_TO_BO_START_OF_DAY_2 = 0x4908,
|
||||
TALKED_TO_BO_AFTER_CATCHING_GOAT_DAY_2 = 0x4910,
|
||||
TALKED_TO_COLIN_DURING_TALO_RESCUE_SEQUENCE = 0x4920,
|
||||
STARTED_SLINGSHOT_TUTORIAL = 0x4A02,
|
||||
SACRED_GROVE_STATUES_SWITCHED = 0x4A08,
|
||||
SAW_TALO_IN_CAGE_CUTSCENE_ORDON_DAY_2 = 0x4A10,
|
||||
TALO_CHASES_MONKEY = 0x4A20,
|
||||
ORDON_DAY_1_FINISHED = 0x4A40,
|
||||
ZOOMED_IN_ON_FISH_TANK_HENAS_HUT = 0x4A80,
|
||||
TALKED_TO_TALO_AFTER_GIVING_HIM_THE_WOODEN_SWORD_DAY_3 = 0x4B02,
|
||||
TALKED_TO_LANAYRU_SPIRIT_IN_TWILIGHT = 0x4B04,
|
||||
TALKED_TO_KIDS_AFTER_FINISHING_SLINGSHOT_TUTORIAL = 0x4B08,
|
||||
TALKED_TO_KIDS_AFTER_HITTING_OBJECT_SLINGSHOT_TUTORIAL = 0x4B10,
|
||||
TALKED_TO_KIDS_BEFORE_HITTING_OBJECT_SLINGSHOT_TUTORIAL = 0x4B20,
|
||||
BROKE_A_PUMPKIN_FIRST_SLINGSHOT_TUTORIAL = 0x4B40,
|
||||
BROKE_A_TARGET_FIRST_SLINGSHOT_TUTORIAL = 0x4B80,
|
||||
RESCUED_TALO_AND_THE_MONKEY_ORDON_DAY_2 = 0x4C01,
|
||||
TALKED_TO_HANCH_ORDON_DAY_3 = 0x4C04,
|
||||
TALKED_TO_HANCH_AFTER_TALKING_TO_SERA_ORDON_DAY_2 = 0x4C08,
|
||||
UNK_4C20 = 0x4C20,
|
||||
TALKED_TO_ZORA_CLOSE_TO_FYER_LAKE_HYLIA_AFTER_LANAYRU_TWILIGHT = 0x4C40,
|
||||
PUT_BEE_LARVA_IN_BOTTLE_ORDON_DAY_2 = 0x4C80,
|
||||
ZOOMED_IN_ON_LURES_1_HENA = 0x4D01,
|
||||
WATCHED_CUTSCENE_AFTER_BEING_CAPTURED_IN_FARON_TWILIGHT = 0x4D08,
|
||||
TALKED_TO_GENGLE_AFTER_TALKING_TO_JOVANI_IN_THE_BAR = 0x4D10,
|
||||
TALKED_TO_JOVANI_IN_BAR = 0x4D40,
|
||||
GOT_BOTTLE_FROM_JOVANI = 0x4D80,
|
||||
ZOOMED_IN_ON_BOOK_HENAS_HUT = 0x4E01,
|
||||
ZOOMED_IN_ON_CARPET_HENAS_HUT = 0x4E02,
|
||||
ZOOMED_IN_ON_JARS_HENAS_HUT = 0x4E04,
|
||||
ZOOMED_IN_ON_HAT_HENAS_HUT = 0x4E08,
|
||||
ZOOMED_IN_ON_CANOE_HENAS_HUT = 0x4E10,
|
||||
HENA_BEAT_ROLLGOAL_1_8_FROG_LURE = 0x4E20,
|
||||
HENA_ZOOMED_IN_ON_LURES_2 = 0x4E80,
|
||||
HENA_ZOOMED_IN_ON_LINK_LOACH_PIC_2 = 0x4F01,
|
||||
HENA_ZOOMED_IN_ON_LINK_LOACH_PIC_1 = 0x4F02,
|
||||
COMPARE_HENA_AND_IZA_PICTURES_HENAS_HUT = 0x4F04,
|
||||
ZOOMED_IN_ON_HENA_PICTURE_LEFT = 0x4F08,
|
||||
ZOOMED_IN_ON_HENA_PICTURE_RIGHT = 0x4F10,
|
||||
ZOOMED_IN_ON_IZA_PICTURE_HENAS_HUT = 0x4F20,
|
||||
ZOOMED_IN_ON_CORO_PICTURE_HENAS_HUT = 0x4F40,
|
||||
ZOOMED_IN_ON_FISHERMAN_PICTURE_HENAS_HUT = 0x4F80,
|
||||
UNK_5001 = 0x5001,
|
||||
CAUGHT_AN_ADULT_HYLIAN_LOACH = 0x5002,
|
||||
CAUGHT_FIRST_FISH_WITH_HENA = 0x5004,
|
||||
CAUGHT_AN_ORDON_CATFISH_NON_BOAT = 0x5008,
|
||||
CAUGHT_A_BABY_HYLIAN_LOACH = 0x5010,
|
||||
CAUGHT_A_HYLIAN_PIKE_NON_BOAT = 0x5020,
|
||||
CAUGHT_A_HYRULE_BASS_NON_BOAT = 0x5040,
|
||||
CAUGHT_A_GREENGILL = 0x5080,
|
||||
ZOOMED_IN_ON_ROLLGOAL_HENAS_HUT = 0x5102,
|
||||
HENA_TALKS_ABOUT_HARDER_ROLLGOAL_BEFORE_2_1 = 0x5108,
|
||||
BEAT_ROLLGOAL_LEVEL_HENAS_HUT = 0x5110,
|
||||
LISTENED_TO_TWO_ZORA_SPIRITS_IN_DRAINED_LAKE_HYLIA_TWILIGHT = 0x5120,
|
||||
LISTENED_TO_LONE_ZORA_SPIRIT_IN_DRAINED_LAKE_HYLIA_TWILIGHT = 0x5140,
|
||||
LISTENED_TO_SOLDIER_SPIRITS_IN_TELMAS_BAR_DURING_TWILIGHT_2 = 0x5180,
|
||||
DANGORO_WENT_IN_A_BALL_FOR_THE_FIRST_TIME = 0x5204,
|
||||
THREW_DANGORO_IN_LAVA_FOR_THE_FIRST_TIME = 0x5208,
|
||||
FYRUS_GETS_UP_FIRST_TIME = 0x5210,
|
||||
FYRUS_KNOCKED_DOWN_FIRST_TIME = 0x5220,
|
||||
OOCCOO_SHOPKEEPER_OPENING_TEXT_READ = 0x5301,
|
||||
TALKED_TO_GUY_OUTSIDE_CT_MALO_MART = 0x5308,
|
||||
TALKED_TO_LADY_OUTSIDE_AGITHAS_CASTLE = 0x5401,
|
||||
TALKED_TO_NPC_BY_SPRINGWATER = 0x5404,
|
||||
TALKED_TO_NPC_BY_SPRINGWATER_SHOP_BEFORE_FIXING = 0x5408,
|
||||
PALACE_OF_TWILIGHT_CLEARED = 0x5410,
|
||||
UPDATE_SHARDS_TO_HAVE_AT_LEAST_ARBITERS_SHARD = 0x5420,
|
||||
USED_SENSES_TO_SEE_STATUE_GHOST_IN_TEMPLE_OF_TIME_FIRST_ROOM = 0x5440,
|
||||
UNK_5502 = 0x5502,
|
||||
TALKED_TO_SOLDIER_IN_SOUTH_CASTLE_TOWN_BY_FLOWER_SHOP = 0x5504,
|
||||
FIRST_FROG_LURE_FAIL_WITH_HENA = 0x5508,
|
||||
TALKED_TO_JOVANI_AFTER_COLLECTING_20_POE_SOULS = 0x5510,
|
||||
TALKED_TO_PLUMM_AS_HUMAN_AFTER_LANAYRU_TWILIGHT = 0x5520,
|
||||
TALKED_WITH_CAT_AFTER_MIDNAS_DESPERATE_HOUR = 0x5601,
|
||||
LISTENED_TO_IZA_SPIRIT_DURING_TWILIGHT_WHILE_DOMAIN_IS_STILL_FROZEN = 0x5604,
|
||||
CAUGHT_A_REEKFISH = 0x5608,
|
||||
TALKED_TO_THE_WEST_CT_DOG = 0x5710,
|
||||
TALKED_WITH_BLACKWHITE_CAT_AFTER_SAVING_JOVANI = 0x5740,
|
||||
TALKED_TO_SHOE_SHINER_IN_CENTRAL_CASTLE_TOWN = 0x5801,
|
||||
TALKED_TO_RENADO_AFTER_RESTORING_ILIAS_MEMORY = 0x5804,
|
||||
TALKED_TO_SOUTH_STARING_MAN_IN_EAST_CASTLE_TOWN = 0x5810,
|
||||
TALKED_TO_NORTH_STARING_MAN_IN_EAST_CASTLE_TOWN = 0x5820,
|
||||
TALKED_TO_FRUIT_SHOP_SELLER_IN_SOUTH_CASTLE_TOWN = 0x5840,
|
||||
TALKED_TO_THE_CT_SHOE_SHINER = 0x5901,
|
||||
IZA_2_MINIGAME_DONE = 0x5908,
|
||||
UNK_5920 = 0x5920,
|
||||
ENCOUNTER_POSTMAN_FOR_THE_FIRST_TIME = 0x5940,
|
||||
TRIED_TO_ENTER_CENTRAL_CASTLE_TOWN_SHOP_WITH_DIRTY_SHOES = 0x5980,
|
||||
AGREED_TO_DO_CAT_MINIGAME = 0x5B02,
|
||||
TALKED_TO_HIDDEN_VILLAGE_CUCCO = 0x5B04,
|
||||
CAT_MINIGAME_DONE = 0x5B08,
|
||||
TALKED_TO_OWL_ORDON_WOLF_NIGHT = 0x5B10,
|
||||
GENEROUS_WITH_TRILL_1 = 0x5C01,
|
||||
TALKED_TO_SERA_ORDON_DAY_3 = 0x5C02,
|
||||
CHEAP_WITH_TRILL_TEXT_AFTER_LEAVING = 0x5C04,
|
||||
STOLE_FROM_TRILL_OR_TALKED_WITH_HIM_AS_WOLF = 0x5C08,
|
||||
UNK_5C10 = 0x5C10,
|
||||
TALKED_TO_IZA_SPIRIT_AFTER_MELTING_ZORAS_DOMAIN_TWILIGHT = 0x5C20,
|
||||
SCOOPED_COROS_NASTY_SOUP = 0x5C80,
|
||||
CAN_NOW_WARP_METEOR = 0x5D01,
|
||||
GENEROUS_WITH_TRILL_2 = 0x5D02,
|
||||
CHEAP_WITH_TRILL_TEXT_AFTER_PAYING = 0x5D04,
|
||||
MIDNA_TEXT_AFTER_FROZEN_ZORAS_DOMAIN_TWILIGHT_INTRO_CS = 0x5D10,
|
||||
MIDNA_TEXT_AFTER_TWILIGHT_KAGOROK_FLIGHT = 0x5D20,
|
||||
MIDNA_TEXT_AFTER_LANDING_IN_LAKE_HYLIA_DURING_LANAYRU_TWILIGHT = 0x5D40,
|
||||
ILIA_TEXT_AFTER_HORSE_CALL_CS = 0x5E04,
|
||||
MIDNA_TEXT_AFTER_FOREST_TEMPLE_DONE = 0x5E10,
|
||||
UNK_5E20 = 0x5E20,
|
||||
FORCED_MIDNA_TEXT_AFTER_TOUCHING_FOG_IN_PALACE_OF_TWILIGHT = 0x5E40,
|
||||
FORCED_MIDNA_TEXT_AFTER_LANDING_ON_THE_FLIGHT_BY_FOUL_PLATFORM = 0x5E80,
|
||||
GOT_AN_APPLE_FROM_FRUIT_STAND_IN_SOUTH_CASTLE_TOWN = 0x5F02,
|
||||
TALKED_TO_ZORA_BY_WATERFALL_IN_ZORAS_DOMAIN = 0x5F04,
|
||||
FYER_REACTS_TO_SPECIAL_REPAIRS = 0x5F08,
|
||||
WATCHED_FIRST_CANNON_CS_IN_BASEMENT = 0x5F10,
|
||||
SHAD_LEAVES_SO_YOU_CAN_WARP = 0x5F20,
|
||||
ANCIENT_SKYBOOK_FROM_IMPAZ = 0x5F80,
|
||||
TALKED_TO_FYER_AFTER_LANAYRU_TWILIGHT = 0x6001,
|
||||
ASKED_FYER_FOR_SPECIAL_REPAIRS_BEFORE_WARPING_THE_CANNON = 0x6002,
|
||||
SHAD_COMES_BACK_AFTER_ALL_LETTERS_WERE_GOTTEN = 0x6004,
|
||||
LAKE_HYLIA_SKY_LETTER = 0x6008,
|
||||
BRIDGE_OF_ELDIN_SKY_LETTER = 0x6010,
|
||||
GORGE_SKY_LETTER = 0x6020,
|
||||
DESERT_SKY_LETTER = 0x6040,
|
||||
FARON_SKY_LETTER = 0x6080,
|
||||
BOUGHT_HYLIAN_SHIELD_AT_MALO_MART = 0x6102,
|
||||
MIDNA_TEXT_AFTER_YOU_ENTERED_ELDIN_TWILIGHT = 0x6104,
|
||||
TRILL_WILL_TRY_TO_KILL_YOU = 0x6110,
|
||||
GOT_REEKFISH_SCENT = 0x6120,
|
||||
REMOVE_MIDNA_FROM_Z = 0x6140,
|
||||
TALKED_TO_LAZY_GORON = 0x6180,
|
||||
AMPITHEATER_SKYLETTER = 0x6204,
|
||||
STARTED_STAR_1 = 0x6208,
|
||||
GOT_POE_SCENT = 0x6210,
|
||||
GIRLS_IN_CASTLE_TOWN_START_CHASING_LINK = 0x6220,
|
||||
TALKED_TO_COLIN_ORDON_DAY_1 = 0x6280,
|
||||
HENA_BEAT_ROLLGOAL_8_8 = 0x6302
|
||||
};
|
||||
@@ -0,0 +1,82 @@
|
||||
#include "stages.h"
|
||||
|
||||
const char allStages[78][8] = {
|
||||
"D_MN01", // 0
|
||||
"D_MN01A", // 1
|
||||
"D_MN01B", // 2
|
||||
"D_MN04", // 3
|
||||
"D_MN04A", // 4
|
||||
"D_MN04B", // 5
|
||||
"D_MN05", // 6
|
||||
"D_MN05A", // 7
|
||||
"D_MN05B", // 8
|
||||
"D_MN06", // 9
|
||||
"D_MN06A", // 10
|
||||
"D_MN06B", // 11
|
||||
"D_MN07", // 12
|
||||
"D_MN07A", // 13
|
||||
"D_MN07B", // 14
|
||||
"D_MN08", // 15
|
||||
"D_MN08A", // 16
|
||||
"D_MN08B", // 17
|
||||
"D_MN08C", // 18
|
||||
"D_MN08D", // 19
|
||||
"D_MN09", // 20
|
||||
"D_MN09A", // 21
|
||||
"D_MN09B", // 22
|
||||
"D_MN09C", // 23
|
||||
"D_MN10", // 24
|
||||
"D_MN10A", // 25
|
||||
"D_MN10B", // 26
|
||||
"D_MN11", // 27
|
||||
"D_MN11A", // 28
|
||||
"D_MN11B", // 29
|
||||
"D_SB00", // 30
|
||||
"D_SB01", // 31
|
||||
"D_SB02", // 32
|
||||
"D_SB03", // 33
|
||||
"D_SB04", // 34
|
||||
"D_SB05", // 35
|
||||
"D_SB06", // 36
|
||||
"D_SB07", // 37
|
||||
"D_SB08", // 38
|
||||
"D_SB09", // 39
|
||||
"D_SB10", // 40
|
||||
"F_SP00", // 41
|
||||
"F_SP102", // 42
|
||||
"F_SP103", // 43
|
||||
"F_SP104", // 44
|
||||
"F_SP108", // 45
|
||||
"F_SP109", // 46
|
||||
"F_SP110", // 47
|
||||
"F_SP111", // 48
|
||||
"F_SP112", // 49
|
||||
"F_SP113", // 50
|
||||
"F_SP114", // 51
|
||||
"F_SP115", // 52
|
||||
"F_SP116", // 53
|
||||
"F_SP117", // 54
|
||||
"F_SP118", // 55
|
||||
"F_SP121", // 56
|
||||
"F_SP122", // 57
|
||||
"F_SP123", // 58
|
||||
"F_SP124", // 59
|
||||
"F_SP125", // 60
|
||||
"F_SP126", // 61
|
||||
"F_SP127", // 62
|
||||
"F_SP128", // 63
|
||||
"F_SP200", // 64
|
||||
"R_SP01", // 65
|
||||
"R_SP107", // 66
|
||||
"R_SP108", // 67
|
||||
"R_SP109", // 68
|
||||
"R_SP110", // 69
|
||||
"R_SP116", // 70
|
||||
"R_SP127", // 71
|
||||
"R_SP128", // 72
|
||||
"R_SP160", // 73
|
||||
"R_SP161", // 74
|
||||
"R_SP209", // 75
|
||||
"R_SP300", // 76
|
||||
"R_SP301" // 77
|
||||
};
|
||||
@@ -0,0 +1,85 @@
|
||||
#pragma once
|
||||
|
||||
enum StageIDs
|
||||
{
|
||||
Lakebed_Temple = 0x0,
|
||||
Morpheel = 0x1,
|
||||
Deku_Toad,
|
||||
Goron_Mines,
|
||||
Fyrus,
|
||||
Dangoro,
|
||||
Forest_Temple,
|
||||
Diababa,
|
||||
Ook,
|
||||
Temple_of_Time,
|
||||
Armogohma,
|
||||
Darknut,
|
||||
City_in_the_Sky,
|
||||
Argorok,
|
||||
Aeralfos,
|
||||
Palace_of_Twilight,
|
||||
Zant_Main_Room,
|
||||
Phantom_Zant_1,
|
||||
Phantom_Zant_2,
|
||||
Zant_Fight,
|
||||
Hyrule_Castle,
|
||||
Ganondorf_Castle,
|
||||
Ganondorf_Field,
|
||||
Ganondorf_Defeated,
|
||||
Arbiters_Grounds,
|
||||
Stallord,
|
||||
Death_Sword,
|
||||
Snowpeak_Ruins,
|
||||
Blizzeta,
|
||||
Darkhammer,
|
||||
Lanayru_Ice_Puzzle_Cave,
|
||||
Cave_of_Ordeals,
|
||||
Eldin_Long_Cave,
|
||||
Lake_Hylia_Long_Cave,
|
||||
Eldin_Goron_Stockcave,
|
||||
Grotto_1,
|
||||
Grotto_2,
|
||||
Grotto_3,
|
||||
Grotto_4,
|
||||
Grotto_5,
|
||||
Faron_Woods_Cave,
|
||||
Ordon_Ranch,
|
||||
Title_Screen,
|
||||
Ordon_Village,
|
||||
Ordon_Spring,
|
||||
Faron_Woods,
|
||||
Kakariko_Village,
|
||||
Death_Mountain,
|
||||
Kakariko_Graveyard,
|
||||
Zoras_River,
|
||||
Zoras_Domain,
|
||||
Snowpeak,
|
||||
Lake_Hylia,
|
||||
Castle_Town,
|
||||
Sacred_Grove,
|
||||
Bulblin_Camp,
|
||||
Hyrule_Field,
|
||||
Outside_Castle_Town,
|
||||
Bulblin_2,
|
||||
Gerudo_Desert,
|
||||
Mirror_Chamber,
|
||||
Upper_Zoras_River,
|
||||
Fishing_Pond,
|
||||
Hidden_Village,
|
||||
Hidden_Skill,
|
||||
Ordon_Village_Interiors,
|
||||
Hyrule_Castle_Sewers,
|
||||
Faron_Woods_Interiors,
|
||||
Kakariko_Village_Interiors,
|
||||
Death_Mountain_Interiors,
|
||||
Castle_Town_Interiors,
|
||||
Fishing_Pond_Interiors,
|
||||
Hidden_Village_Interiors,
|
||||
Castle_Town_Shops,
|
||||
Star_Game,
|
||||
Kakariko_Graveyard_Interiors,
|
||||
Light_Arrows_Cutscene,
|
||||
Hyrule_Castle_Cutscenes
|
||||
};
|
||||
|
||||
extern const char allStages[78][8];
|
||||
@@ -1,4 +1,5 @@
|
||||
#include "tools.h"
|
||||
#include "stages.h"
|
||||
#include "d/d_com_inf_game.h"
|
||||
#include "d/actor/d_a_alink.h"
|
||||
#include "d/d_item.h"
|
||||
@@ -91,4 +92,18 @@ int initCreatePlayerItem(u32 item, u32 flag, const cXyz* pos, int roomNo, const
|
||||
{
|
||||
u32 params = 0xFF0000 | ((flag & 0xFF) << 0x8) | (item & 0xFF);
|
||||
return fopAcM_create(539, params, pos, roomNo, angle, scale, -1);
|
||||
}
|
||||
|
||||
int getStageID(const char* stage)
|
||||
{
|
||||
int loopCount = sizeof(allStages) / sizeof(allStages[0]);
|
||||
for (int i = 0; i < loopCount; i++)
|
||||
{
|
||||
if (daAlink_c::checkStageName(allStages[i]))
|
||||
{
|
||||
return i;
|
||||
}
|
||||
}
|
||||
// Didn't find the current stage for some reason
|
||||
return -1;
|
||||
}
|
||||
@@ -7,3 +7,4 @@ void checkTransformFromWolf();
|
||||
u8 setNextWarashibeItem();
|
||||
void offWarashibeItem(u8 item);
|
||||
int initCreatePlayerItem(u32 item, u32 flag, const cXyz* pos, int roomNo, const csXyz* angle, const cXyz* scale);
|
||||
int getStageID(const char* stage);
|
||||
|
||||
Reference in New Issue
Block a user