Skip to content
Open
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
243221e
EZTR stuff
Delcatty16 Mar 24, 2026
90c9602
Merge branch 'RecompRando:python-glue' into python-glue
Delcatty16 Mar 24, 2026
eeefe3b
Merge remote-tracking branch 'upstream/python-glue' into python-glue
Delcatty16 Mar 29, 2026
14ecdab
Merge pull request #1 from RecompRando/python-glue
Delcatty16 Mar 30, 2026
850d4e4
Merge pull request #2 from RecompRando/python-glue
Delcatty16 Apr 29, 2026
a73ae1f
whatever this is
Delcatty16 Apr 29, 2026
5a44d4f
Merge branch 'python-glue' of https://github.com/Delcatty16/MMRecompR…
Delcatty16 Apr 29, 2026
810a919
attempting to use the correct text boxes
Delcatty16 May 5, 2026
f5e027c
fix issues with items using EZTR text
ThatHypedPerson May 6, 2026
111f5a3
adjust formatting for eztr_text.c
ThatHypedPerson May 6, 2026
104890c
actually label rando item GIs for stray fairies/songs
ThatHypedPerson May 6, 2026
5852534
git is mad because of these extra spaces
ThatHypedPerson May 14, 2026
eb97c2d
update fork to match upstream
ThatHypedPerson May 14, 2026
1ec39a4
Merge remote-tracking branch 'upstream/python-glue' into python-glue
Delcatty16 May 14, 2026
490a71e
merge with upstream again
ThatHypedPerson May 15, 2026
22b33ab
Merge branch 'python-glue' of https://github.com/Delcatty16/MMRecompR…
Delcatty16 May 15, 2026
63ed91c
a bunch of stuff I don't remember, but the changelog might have some …
Delcatty16 May 28, 2026
90bffec
Tingle shop works correctly. Though long item names will make it look…
Delcatty16 May 28, 2026
f3c8eab
move shop text to EZTR + misc shop cleanup
ThatHypedPerson May 29, 2026
6bb1dd0
Rewiting of the Tingle text. Code has noticeably less Tingle than bef…
Delcatty16 May 30, 2026
d2ad8e6
Merge branch 'RecompRando:python-glue' into python-glue
Delcatty16 May 30, 2026
144bb82
Sanitized all item and player names, added Scrub text, Milk Bar text,…
Delcatty16 Jun 2, 2026
0bfefbb
merge with upstream
ThatHypedPerson Jun 2, 2026
ed86dae
remove item_text.c
ThatHypedPerson Jun 3, 2026
2803cb5
fix kotake blue potion + adjust lottery text + cleanup
ThatHypedPerson Jun 3, 2026
5233469
Merge remote-tracking branch 'upstream/python-glue' into python-glue
ThatHypedPerson Jun 3, 2026
1915b56
Added bank hint and cleaned up lottery hints more
Delcatty16 Jun 3, 2026
7c9b1d0
merge with upstream
ThatHypedPerson Jun 5, 2026
071111e
got bored, cleaned/formatted the whole file
ThatHypedPerson Jun 5, 2026
588aee2
add bomb shop goron + other misc changes
ThatHypedPerson Jun 7, 2026
f167af8
Scrubs saying what they sell, even when they won't sell to that form.
Delcatty16 Jun 7, 2026
49eb92d
Separated the songs into their own texts to give them colours not tie…
Delcatty16 Jun 7, 2026
070ef5a
oops
ThatHypedPerson Jun 8, 2026
b3ca134
oops 2
ThatHypedPerson Jun 8, 2026
bfa9646
Merge remote-tracking branch 'upstream/python-glue' into python-glue
Delcatty16 Jun 13, 2026
a6b7b89
added a bunch of junk hints to the list of junk hints
Delcatty16 Jun 17, 2026
6ee4a4e
Merge remote-tracking branch 'upstream/python-glue' into python-glue
Delcatty16 Jun 17, 2026
5549dab
Merge branch 'RecompRando:python-glue' into python-glue
Delcatty16 Jul 1, 2026
1b2466c
Fix for Stone Tower Map and Compass being empty
Delcatty16 Jul 1, 2026
93aa1f0
Updated two junk hints
Delcatty16 Jul 1, 2026
15943a7
Merge branch 'python-glue' into python-glue
ThatHypedPerson Jul 2, 2026
1ebcf31
Merge pull request #3 from RecompRando/python-glue
Delcatty16 Jul 2, 2026
54e8b33
Epona's song fix
Delcatty16 Jul 2, 2026
de3e882
Merge branch 'RecompRando:python-glue' into python-glue
Delcatty16 Jul 5, 2026
b264bf6
fix for milk bar text
Delcatty16 Jul 5, 2026
e2d36d1
Merge pull request #4 from RecompRando/python-glue
Delcatty16 Jul 25, 2026
c7849f4
Merge pull request #5 from RecompRando/python-glue
Delcatty16 Aug 2, 2026
22f3242
text boxes for child and deity wallets
Delcatty16 Aug 2, 2026
3481417
Merge branch 'python-glue' of https://github.com/Delcatty16/MMRecompR…
Delcatty16 Aug 2, 2026
877a5c1
Guru Guru and Gorman Milk Purchase hints
Delcatty16 Aug 2, 2026
382b218
Actually did the Gorman Milk Purchase text
Delcatty16 Aug 2, 2026
84816a8
Kotake free item text
Delcatty16 Aug 4, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
259 changes: 256 additions & 3 deletions src/eztr_text.c
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,8 @@ EZTR_DEFINE_CUSTOM_MSG_HANDLE(Rando_GI_Bombchu_Bag);
EZTR_DEFINE_CUSTOM_MSG_HANDLE(Rando_GI_Magic);
EZTR_DEFINE_CUSTOM_MSG_HANDLE(Rando_GI_SpinAttack);
EZTR_DEFINE_CUSTOM_MSG_HANDLE(Rando_GI_DoubleDefense);
EZTR_DEFINE_CUSTOM_MSG_HANDLE(Rando_GI_ChildWallet);
EZTR_DEFINE_CUSTOM_MSG_HANDLE(Rando_GI_DeityWallet);
EZTR_DEFINE_CUSTOM_MSG_HANDLE(Rando_GI_Time); // Songs
EZTR_DEFINE_CUSTOM_MSG_HANDLE(Rando_GI_Healing);
EZTR_DEFINE_CUSTOM_MSG_HANDLE(Rando_GI_Epona);
Expand Down Expand Up @@ -821,7 +823,7 @@ EZTR_MSG_CALLBACK(randoMilkBar) {
EZTR_MsgSContent_Snprintf(
formatted_item_name1,
128,
EZTR_CC_COLOR_GREEN "Regular Milk:" EZTR_CC_END
EZTR_CC_COLOR_GREEN "Regular Milk" EZTR_CC_END
);
}

Expand All @@ -837,7 +839,7 @@ EZTR_MSG_CALLBACK(randoMilkBar) {
EZTR_MsgSContent_Snprintf(
formatted_item_name2,
128,
EZTR_CC_COLOR_GREEN "Chateau:" EZTR_CC_END
EZTR_CC_COLOR_GREEN "Chateau" EZTR_CC_END
);
}

Expand Down Expand Up @@ -1221,6 +1223,175 @@ EZTR_MSG_CALLBACK(randoLotterySignHint) {
recomp_free(player_name);
}

EZTR_MSG_CALLBACK(randoGuruGuruHint1) {
u32 guruGuruItem = 0x00008C;
char* item_name;

rando_get_location_item_name(guruGuruItem, &item_name);
sanitizeRandoText(item_name);

EZTR_MsgSContent_Sprintf(
buf->data.content,
EZTR_CC_SFX "|69|59That's why I...That's why I..." EZTR_CC_NEWLINE
"That's why I stole it..." EZTR_CC_NEWLINE
"%c%s" EZTR_CC_COLOR_DEFAULT "." EZTR_CC_NEWLINE
"I stole it." EZTR_CC_EVENT EZTR_CC_END,
getAPLocationItemColor(guruGuruItem),
item_name
);

recomp_free(item_name);
}

EZTR_MSG_CALLBACK(randoGuruGuruHint2) {
u32 guruGuruItem = 0x00008C;
char* player_name;

rando_get_location_item_player(guruGuruItem, &player_name);
sanitizeRandoText(player_name);


char formatted_player_name[128];
if (!rando_get_location_has_local_item(guruGuruItem)) {
EZTR_MsgSContent_Snprintf(
formatted_player_name,
128,
EZTR_CC_COLOR_GREEN "%s" EZTR_CC_COLOR_DEFAULT "'s" EZTR_CC_END,
player_name
);
} else {
EZTR_MsgSContent_Snprintf(
formatted_player_name,
128,
EZTR_CC_COLOR_RED "yours" EZTR_CC_COLOR_DEFAULT ""EZTR_CC_END
);
}

EZTR_MsgSContent_Sprintf(
buf->data.content,
"I wanted it because it was" EZTR_CC_NEWLINE
"%m..." EZTR_CC_EVENT EZTR_CC_END,
formatted_player_name
);

recomp_free(player_name);
}

EZTR_MSG_CALLBACK(randoGormanMilkPurchaseHint) {
u32 gormanMilkItem = 0x006792;
char* item_name;
char* player_name;

rando_get_location_item_name(gormanMilkItem, &item_name);
rando_get_location_item_player(gormanMilkItem, &player_name);
sanitizeRandoText(item_name);
sanitizeRandoText(player_name);

char formatted_player_name[128];
if (!rando_get_location_has_local_item(gormanMilkItem) && (!rando_location_is_checked(gormanMilkItem))) {
EZTR_MsgSContent_Snprintf(
formatted_player_name,
128,
EZTR_CC_COLOR_GREEN "%s" EZTR_CC_COLOR_DEFAULT "'s" EZTR_CC_END,
player_name
);
} else {
EZTR_MsgSContent_Snprintf(
formatted_player_name,
128,
EZTR_CC_END
);
}
char formatted_item_name[128];
EZTR_MsgSContent_Snprintf(
formatted_item_name,
128,
"%c%s" EZTR_CC_COLOR_DEFAULT "" EZTR_CC_END,
getAPLocationItemColor(gormanMilkItem),
item_name
);

if (rando_get_slotdata_u32("shopsanity") && (!rando_location_is_checked(gormanMilkItem))) {
EZTR_MsgSContent_Sprintf(
buf->data.content,
"" EZTR_CC_COLOR_PINK "50 Rupees" EZTR_CC_COLOR_DEFAULT " for %m" EZTR_CC_NEWLINE
"%m." EZTR_CC_NEWLINE
EZTR_CC_COLOR_GREEN "" EZTR_CC_TWO_CHOICE "I'll buy it" EZTR_CC_NEWLINE "No thanks" EZTR_CC_END "",
formatted_player_name,
formatted_item_name
);
} else {
EZTR_MsgSContent_Sprintf(
buf->data.content,
"" EZTR_CC_COLOR_PINK "50 Rupees" EZTR_CC_COLOR_DEFAULT " will do ya for one" EZTR_CC_NEWLINE
"drink!" EZTR_CC_NEWLINE
"" EZTR_CC_COLOR_GREEN "" EZTR_CC_TWO_CHOICE "I'll buy it" EZTR_CC_NEWLINE
"No thanks" EZTR_CC_END "",
NULL
);
}
recomp_free(player_name);
recomp_free(item_name);
}

EZTR_MSG_CALLBACK(randoWitchFreeItemHint) {
u32 witchFreeItem = GI_POTION_BLUE;
char* item_name;
char* player_name;

rando_get_location_item_name(witchFreeItem, &item_name);
rando_get_location_item_player(witchFreeItem, &player_name);
sanitizeRandoText(item_name);
sanitizeRandoText(player_name);

char formatted_player_name[128];
if (!rando_get_location_has_local_item(witchFreeItem) && (!rando_location_is_checked(witchFreeItem))) {
EZTR_MsgSContent_Snprintf(
formatted_player_name,
128,
"" EZTR_CC_COLOR_GREEN "%s" EZTR_CC_COLOR_DEFAULT "" EZTR_CC_END,
player_name
);
} else {
EZTR_MsgSContent_Snprintf(
formatted_player_name,
128,
"a" EZTR_CC_END
);
}
char formatted_item_name[128];
EZTR_MsgSContent_Snprintf(
formatted_item_name,
128,
"%c%s" EZTR_CC_COLOR_DEFAULT "" EZTR_CC_END,
getAPLocationItemColor(witchFreeItem),
item_name
);

if (!rando_location_is_checked(witchFreeItem)) {
EZTR_MsgSContent_Sprintf(
buf->data.content,
"What's that? You want %m" EZTR_CC_NEWLINE
"%m, do you?" EZTR_CC_COLOR_DEFAULT EZTR_CC_NEWLINE EZTR_CC_CARRIAGE_RETURN EZTR_CC_BOX_BREAK2
"Well, you gave me a mushroom, so" EZTR_CC_NEWLINE
"I'll give you one for free." EZTR_CC_EVENT EZTR_CC_END "",
formatted_player_name,
formatted_item_name
);
} else {
EZTR_MsgSContent_Sprintf(
buf->data.content,
"What's that? You want a " EZTR_CC_COLOR_BLUE "Blue" EZTR_CC_COLOR_DEFAULT " will do ya for one" EZTR_CC_NEWLINE
"Potion," EZTR_CC_COLOR_DEFAULT " do you?" EZTR_CC_NEWLINE EZTR_CC_CARRIAGE_RETURN EZTR_CC_BOX_BREAK2
"Well, you gave me a mushroom, so" EZTR_CC_NEWLINE
"I'll give you one for free." EZTR_CC_EVENT EZTR_CC_END "",
NULL
);
}
recomp_free(player_name);
recomp_free(item_name);
}

EZTR_MSG_CALLBACK(randoLotteryNPCHint) {
u32 lotteryItem = LOCATION_LOTTERY_SHOP;
char* item_name;
Expand Down Expand Up @@ -2556,6 +2727,45 @@ EZTR_ON_INIT void init_text() {
"\xBF",
randoPictograph
);

EZTR_Basic_ReplaceText(
0x2933, // First text box of Guru Guru Bremen Mask check.
EZTR_STANDARD_TEXT_BOX_II,
0,
EZTR_ICON_NO_ICON,
EZTR_NO_VALUE,
EZTR_NO_VALUE,
EZTR_NO_VALUE,
false,
"\xBF",
randoGuruGuruHint1
);

EZTR_Basic_ReplaceText(
0x2934, // Second text box of Guru Guru Bremen Mask check.
EZTR_STANDARD_TEXT_BOX_II,
0,
EZTR_ICON_NO_ICON,
EZTR_NO_VALUE,
EZTR_NO_VALUE,
EZTR_NO_VALUE,
false,
"\xBF",
randoGuruGuruHint2
);

EZTR_Basic_ReplaceText(
0x3466, // Gorman Racetrack Milk Purchase
EZTR_STANDARD_TEXT_BOX_II,
1,
EZTR_ICON_NO_ICON,
EZTR_NO_VALUE,
50,
EZTR_NO_VALUE,
true,
"\xBF",
randoGormanMilkPurchaseHint
);

EZTR_Basic_ReplaceText(
0x2B0B,
Expand Down Expand Up @@ -2583,6 +2793,19 @@ EZTR_ON_INIT void init_text() {
"\xBF",
randoShop
);
EZTR_Basic_ReplaceText(
0x0881, // Kotake Blue Potion free
EZTR_STANDARD_TEXT_BOX_II,
0,
EZTR_ICON_NO_ICON,
EZTR_NO_VALUE,
EZTR_NO_VALUE,
EZTR_NO_VALUE,
false,
"\xBF",
randoWitchFreeItemHint
);


// Tingle Text
// North Clock Town Tingle
Expand Down Expand Up @@ -2882,6 +3105,34 @@ EZTR_ON_INIT void init_text() {
"Enemies now do half as much" EZTR_CC_NEWLINE "damage as before!" EZTR_CC_END,
NULL
);

EZTR_Basic_AddCustomText(
EZTR_HNAME(Rando_GI_ChildWallet),
EZTR_TRANSLUSCENT_BLUE_TEXT_BOX,
0,
EZTR_ICON_GREEN_RUPEE,
EZTR_NO_VALUE,
EZTR_NO_VALUE,
EZTR_NO_VALUE,
false,
"You found the " EZTR_CC_COLOR_RED "Child Wallet" EZTR_CC_COLOR_DEFAULT "!" EZTR_CC_NEWLINE
"You can now hold " EZTR_CC_COLOR_RED "99 Rupees" EZTR_CC_COLOR_DEFAULT "!" EZTR_CC_END,
NULL
);

EZTR_Basic_AddCustomText(
EZTR_HNAME(Rando_GI_DeityWallet),
EZTR_TRANSLUSCENT_BLUE_TEXT_BOX,
0,
EZTR_ICON_GIANTS_WALLET,
EZTR_NO_VALUE,
EZTR_NO_VALUE,
EZTR_NO_VALUE,
false,
"You found the " EZTR_CC_COLOR_RED "Deity Wallet" EZTR_CC_COLOR_DEFAULT "!" EZTR_CC_NEWLINE
"You can now hold " EZTR_CC_COLOR_RED "999 Rupees" EZTR_CC_COLOR_DEFAULT "!" EZTR_CC_END,
NULL
);

EZTR_Basic_AddCustomText(
EZTR_HNAME(Rando_GI_Souls),
Expand Down Expand Up @@ -3355,7 +3606,7 @@ EZTR_ON_INIT void init_text() {
EZTR_NO_VALUE,
EZTR_NO_VALUE,
false,
"You learned the " EZTR_CC_COLOR_ORANGE "Epona's Song" EZTR_CC_COLOR_DEFAULT "!" EZTR_CC_END,
"You learned " EZTR_CC_COLOR_ORANGE "Epona's Song" EZTR_CC_COLOR_DEFAULT "!" EZTR_CC_END,
NULL
);

Expand Down Expand Up @@ -3474,6 +3725,8 @@ EZTR_ON_INIT void init_text() {
sGetItemTable_ap[GI_MAGIC_UPGRADE - 1].textId = EZTR_GET_CUSTOM_MSG_ID(EZTR_HNAME(Rando_GI_Magic));
sGetItemTable_ap[GI_SPIN_ATTACK - 1].textId = EZTR_GET_CUSTOM_MSG_ID(EZTR_HNAME(Rando_GI_SpinAttack));
sGetItemTable_ap[GI_DEFENSE_DOUBLE - 1].textId = EZTR_GET_CUSTOM_MSG_ID(EZTR_HNAME(Rando_GI_DoubleDefense));
// sGetItemTable_ap[GI_CHILD_WALLET - 1].textId = EZTR_GET_CUSTOM_MSG_ID(EZTR_HNAME(Rando_GI_ChildWallet)); // Wallets
// sGetItemTable_ap[GI_DEITY_WALLET - 1].textId = EZTR_GET_CUSTOM_MSG_ID(EZTR_HNAME(Rando_GI_DeityWallet));
sGetItemTable_ap[GI_AP_PROG - 1].textId = EZTR_GET_CUSTOM_MSG_ID(EZTR_HNAME(Rando_Send_Item)); // AP Non-local items
sGetItemTable_ap[GI_AP_FILLER - 1].textId = EZTR_GET_CUSTOM_MSG_ID(EZTR_HNAME(Rando_Send_Item));
sGetItemTable_ap[GI_AP_USEFUL - 1].textId = EZTR_GET_CUSTOM_MSG_ID(EZTR_HNAME(Rando_Send_Item));
Expand Down