Skip to content

Commit

Permalink
First Pass
Browse files Browse the repository at this point in the history
  • Loading branch information
PurpleHato committed Oct 7, 2023
1 parent bb23fbc commit ae49731
Showing 1 changed file with 139 additions and 15 deletions.
154 changes: 139 additions & 15 deletions soh/soh/Enhancements/randomizer/randomizer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5866,7 +5866,124 @@ CustomMessage Randomizer::GetGoronMessage(u16 index) {
void Randomizer::CreateCustomMessages() {
// RANDTODO: Translate into french and german and replace GIMESSAGE_UNTRANSLATED
// with GIMESSAGE(getItemID, itemID, english, german, french).
const std::array<GetItemMessage, 56> getItemMessages = {{
const std::array<GetItemMessage, 84> getItemMessages = {{

GIMESSAGE(RG_PROGRESSIVE_BOMB_BAG, ITEM_BOMB_BAG_20,
"You found a %rBomb Bag%w!&If you see something&suspicious, bomb it!",
"You found a %rBomb Bag%w!&If you see something&suspicious, bomb it!",
"Vous obtenez un %rSac de &Bombes%w!"),
GIMESSAGE(RG_PROGRESSIVE_BOW, ITEM_BOW,
"You found the %rFairy Bow%w!",
"You found the %rFairy Bow%w!",
"Vous obtenez l'%rArc des Fées%w!"),
GIMESSAGE(RG_FIRE_ARROWS, ITEM_ARROW_FIRE,
"You got the %rFire Arrow%w!&If you hit your target,&it will catch fire.",
"You got the %rFire Arrow%w!&If you hit your target,&it will catch fire.",
"Vous obtenez la %rFlèche de&Feu!%w! Tirez et embrasez&votre cible!"),
GIMESSAGE(RG_ICE_ARROWS, ITEM_ARROW_ICE,
"You got the %bIce Arrow%w!&If you hit your target,&it will freeze.",
"You got the %bIce Arrow%w!&If you hit your target,&it will freeze.",
"Vous obtenez la %bFlèche de&Glace!%w! Tirez et gelez&votre cible!"),
GIMESSAGE(RG_LIGHT_ARROWS, ITEM_ARROW_LIGHT,
"You got the %cLight Arrow%w!&The light of justice will&smite evil!",
"You got the %cLight Arrow%w!&The light of justice will&smite evil!",
"Vous obtenez la %cFlèche de&Lumière!%w! La clarté de la&Justice dissipera le Malin!"),
GIMESSAGE(RG_DINS_FIRE, ITEM_DINS_FIRE,
"You got %rDin's Fire%w!&Its fireball engulfs everything!",
"You got %rDin's Fire%w!&Its fireball engulfs everything!",
"Vous obtenez le %rFeu de Din%w!&Invoquez une puissante aura de&feu destructrice!"),
GIMESSAGE(RG_FARORES_WIND, ITEM_FARORES_WIND,
"You got %gFarore's Wind%w!&This is warp magic you can use!",
"You got %gFarore's Wind%w!&This is warp magic you can use!",
"Vous obtenez le %gVent de&Farore%w! Ce sortilège vous&permettra de vous téléporter."),
GIMESSAGE(RG_NAYRUS_LOVE, ITEM_NAYRUS_LOVE,
"You got %bNayru's Love%w!&Cast this to create a powerful&protective barrier.",
"You got %bNayru's Love%w!&Cast this to create a powerful&protective barrier.",
"Vous obtenez l%bAmour de&Nayru%w! Ce sortilège vous&permettra d'invoquer&une barrière protectrice."),
GIMESSAGE(RG_PROGRESSIVE_SLINGSHOT, ITEM_SLINGSHOT,
"You found the %rFairy Slingshot%w!",
"You found the %rFairy Slingshot%w!",
"Vous obtenez %rLance-Pierre&des Fées!%w!"),
GIMESSAGE(RG_PROGRESSIVE_OCARINA, ITEM_OCARINA_FAIRY,
"You received the %rFairy Ocarina%w!&This is a memento from Saria.",
"You received the %rFairy Ocarina%w!&This is a memento from Saria.",
"Vous obtenez l'%rOcarina des&Fées%w! C'est un cadeau de Saria."),
GIMESSAGE(RG_PROGRESSIVE_OCARINA, ITEM_OCARINA_TIME,
"You found the %rOcarina of Time%w!&It glows with a mystical light...",
"You found the %rOcarina of Time%w!&It glows with a mystical light...",
"Vous obtenez l'%rOcarina du&Temps%w! Il rayonne d'une lumière&mystique..."),
GIMESSAGE(RG_PROGRESSIVE_BOMBCHUS, ITEM_BOMBCHU,
"fff",
"fff",
"fff"),
GIMESSAGE(RG_PROGRESSIVE_HOOKSHOT, ITEM_HOOKSHOT,
"You found the %rHookshot%w!&It's a spring-loaded chain that&you can cast out to hook things.",
"You found the %rHookshot%w!&It's a spring-loaded chain that&you can cast out to hook things.",
"Vous obtenez le %rGrappin%w!&Cette chaîne montée sur&ressort peut s'accrocher à&certaines choses."),
GIMESSAGE(RG_BOOMERANG, ITEM_BOOMERANG,
"You found the %rBoomerang%w!",
"You found the %rBoomerang%w!",
"Vous obtenez le %rBoomreang%w!"),
GIMESSAGE(RG_LENS_OF_TRUTH, ITEM_LENS,
"You found the %rLens of Truth%w!&Mysterious things are hidden&everywhere!",
"You found the %rLens of Truth%w!&Mysterious things are hidden&everywhere!",
"Vous obtenez le %rMonocle de&Vérité!%w Certains éléments sont&dissimulés un peu partout!"),
GIMESSAGE(RG_MEGATON_HAMMER, ITEM_HAMMER,
"You found the %rMegaton Hammer%w!&It's so heavy, you need to&use two hands to swing it!",
"You found the %rMegaton Hammer%w!&It's so heavy, you need to&use two hands to swing it!",
"Vous obtenez la %rMasse des&Titans%w! Utilise le pour&écraser quelque chose!"),


// TODO: TRADE ITEM HERE



GIMESSAGE(RG_PROGRESSIVE_STRENGTH, ITEM_BRACELET,
"You got the %rGoron's Bracelet%w!&Now you can pull up Bomb&Flowers.",
"You got the %rGoron's Bracelet%w!&Now you can pull up Bomb&Flowers.",
"Vous obtenez le %rBracelet&Goron%w! Vous pouvez désormais&soulever les Choux-Péteurs."),
GIMESSAGE(RG_PROGRESSIVE_STRENGTH, ITEM_GAUNTLETS_SILVER,
"You found the %bSilver Gauntlets%w!&You feel the power to lift&big things with it!",
"You found the %bSilver Gauntlets%w!&You feel the power to lift&big things with it!",
"Vous trouvez les %bGantelets&d'argent%w! En les portant vous&pouvez soulever d'énormes&objets avec!" ),
GIMESSAGE(RG_PROGRESSIVE_STRENGTH, ITEM_GAUNTLETS_GOLD,
"You found the %bGolden Gauntlets%w!&You can feel even more power&coursing through your arms!",
"You found the %bGolden Gauntlets%w!&You can feel even more power&coursing through your arms!",
"Vous trouvez les %bGantelets&d'or%w! Une puissance démesurée&vous envahit!"),
GIMESSAGE(RG_PROGRESSIVE_SCALE, ITEM_SCALE_SILVER,
"You got the %bSilver Scale%w!&You can dive deeper than you&could before.",
"You got the %bSilver Scale%w!&You can dive deeper than you&could before.",
"Vous recevez l'%bEcaille&d'argent%w! Vous pouvez&désormais&plonger plus&profondément. "),
GIMESSAGE(RG_PROGRESSIVE_SCALE, ITEM_SCALE_GOLDEN,
"You got the %bGolden Scale%w!&Now you can dive much&deeper than you could before!",
"You got the %bGolden Scale%w!&Now you can dive much&deeper than you could before!",
"Vous recevez l'%bEcaille d'or%w!&Vous pouvez désormais plonger&encore plus profondément!"),
GIMESSAGE(RG_KOKIRI_SWORD, ITEM_SWORD_KOKIRI,
"You got the %gKokiri Sword%w!&This is a hidden treasure of&the Kokiri.",
"You got the %gKokiri Sword%w!&This is a hidden treasure of&the Kokiri.",
"Vous trouvez l'%gEpée Kokiri%w!&Cette lame est le trésor&secret de la tribu Kokiri."),
GIMESSAGE(RG_BIGGORON_SWORD, ITEM_SWORD_BGS,
"You got the %rBiggoron's Sword%w!&This blade was forged by a &master smith and won't break!",
"You got the %rBiggoron's Sword%w!&This blade was forged by a &master smith and won't break!",
"You got the %rBiggoron's Sword%w!&This blade was forged by a &master smith and won't break!"),
GIMESSAGE(RG_DEKU_SHIELD, ITEM_SHIELD_DEKU,
"You got a %cDeku Shield%w!",
"You got a %cDeku Shield%w!",
"Vous obtenez un %cBouclier&Mojo!"),
GIMESSAGE(RG_HYLIAN_SHIELD, ITEM_SHIELD_HYLIAN,
"You got a %cHylian Shield%w!",
"You got a %cHylian Shield%w!",
"Vous obtenez un %cBouclier&Hylien%w!"),
GIMESSAGE(RG_MIRROR_SHIELD, ITEM_SHIELD_MIRROR,
"You found the %cMirror Shield%w!&The shield's polished surface can&reflect light or energy.",
"You found the %cMirror Shield%w!&The shield's polished surface can&reflect light or energy.",
"Vous trouvez le %cBouclier&Miroir%w! Ce bouclier peut&réfléchir lumière et énergie."),
GIMESSAGE(RG_HOVER_BOOTS, ITEM_BOOTS_HOVER,
"You got the %rHover Boots%w!&With these mysterious boots&you can hover above the ground.",
"You got the %rHover Boots%w!&With these mysterious boots&you can hover above the ground.",
"You got the %rHover Boots%w!&With these mysterious boots&you can hover above the ground."),
//GIMESSAGE_NO_GERMAN(, , "", "", ""),

GIMESSAGE(RG_GREG_RUPEE, ITEM_MASK_GORON,
"You found %gGreg%w!",
"%gGreg%w! Du hast ihn wirklich gefunden!",
Expand Down Expand Up @@ -6121,17 +6238,6 @@ class ExtendedVanillaTableInvalidItemIdException: public std::exception {
void InitRandoItemTable() {
// These entries have ItemIDs from vanilla, but not GetItemIDs or entries in the old sGetItemTable
static GetItemEntry extendedVanillaGetItemTable[] = {
GET_ITEM(ITEM_MEDALLION_LIGHT, OBJECT_GI_MEDAL, GID_MEDALLION_LIGHT, 0x40, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE, RG_LIGHT_MEDALLION),
GET_ITEM(ITEM_MEDALLION_FOREST, OBJECT_GI_MEDAL, GID_MEDALLION_FOREST, 0x3E, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE, RG_FOREST_MEDALLION),
GET_ITEM(ITEM_MEDALLION_FIRE, OBJECT_GI_MEDAL, GID_MEDALLION_FIRE, 0x3C, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE, RG_FIRE_MEDALLION),
GET_ITEM(ITEM_MEDALLION_WATER, OBJECT_GI_MEDAL, GID_MEDALLION_WATER, 0x3D, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE, RG_WATER_MEDALLION),
GET_ITEM(ITEM_MEDALLION_SHADOW, OBJECT_GI_MEDAL, GID_MEDALLION_SHADOW, 0x41, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE, RG_SHADOW_MEDALLION),
GET_ITEM(ITEM_MEDALLION_SPIRIT, OBJECT_GI_MEDAL, GID_MEDALLION_SPIRIT, 0x3F, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE, RG_SPIRIT_MEDALLION),

GET_ITEM(ITEM_KOKIRI_EMERALD, OBJECT_GI_JEWEL, GID_KOKIRI_EMERALD, 0x80, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE, RG_KOKIRI_EMERALD),
GET_ITEM(ITEM_GORON_RUBY, OBJECT_GI_JEWEL, GID_GORON_RUBY, 0x81, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE, RG_GORON_RUBY),
GET_ITEM(ITEM_ZORA_SAPPHIRE, OBJECT_GI_JEWEL, GID_ZORA_SAPPHIRE, 0x82, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE, RG_ZORA_SAPPHIRE),

GET_ITEM(ITEM_SONG_LULLABY, OBJECT_GI_MELODY, GID_SONG_ZELDA, 0xD4, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE, RG_ZELDAS_LULLABY),
GET_ITEM(ITEM_SONG_SUN, OBJECT_GI_MELODY, GID_SONG_SUN, 0xD3, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE, RG_SUNS_SONG),
GET_ITEM(ITEM_SONG_EPONA, OBJECT_GI_MELODY, GID_SONG_EPONA, 0xD2, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE, RG_EPONAS_SONG),
Expand All @@ -6151,9 +6257,27 @@ void InitRandoItemTable() {
// RandomizerGet enum values for both.
static GetItemEntry randoGetItemTable[] = {
GET_ITEM(RG_ICE_TRAP, OBJECT_GI_RUPY, GID_RUPEE_GOLD, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER, RG_ICE_TRAP),
GET_ITEM(RG_MAGIC_SINGLE, OBJECT_GI_MAGICPOT, GID_MAGIC_SMALL, 0xE4, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER, RG_MAGIC_SINGLE),
GET_ITEM(RG_MAGIC_DOUBLE, OBJECT_GI_MAGICPOT, GID_MAGIC_LARGE, 0xE8, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER, RG_MAGIC_DOUBLE),
GET_ITEM(RG_DOUBLE_DEFENSE, OBJECT_GI_HEARTS, GID_HEART_CONTAINER, 0xE9, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER, RG_DOUBLE_DEFENSE),

GET_ITEM(ITEM_BOW, OBJECT_GI_BOW, GID_BOW, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER, RG_PROGRESSIVE_BOW),
GET_ITEM(ITEM_ARROW_FIRE, OBJECT_GI_M_ARROW, GID_ARROW_FIRE, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER, RG_FIRE_ARROWS),
GET_ITEM(ITEM_ARROW_ICE, OBJECT_GI_M_ARROW, GID_ARROW_ICE, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER, RG_ICE_ARROWS),
GET_ITEM(ITEM_ARROW_LIGHT, OBJECT_GI_M_ARROW, GID_ARROW_LIGHT, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER, RG_LIGHT_ARROWS),
GET_ITEM(ITEM_SLINGSHOT, OBJECT_GI_PACHINKO, GID_SLINGSHOT, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER, RG_PROGRESSIVE_SLINGSHOT),
GET_ITEM(ITEM_BOOMERANG, OBJECT_GI_BOOMERANG,GID_BOOMERANG, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER, RG_BOOMERANG),
GET_ITEM(ITEM_OCARINA_FAIRY, OBJECT_GI_OCARINA_0,GID_OCARINA_FAIRY, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER, RG_PROGRESSIVE_OCARINA),
GET_ITEM(ITEM_OCARINA_TIME, OBJECT_GI_OCARINA, GID_OCARINA_TIME, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER, RG_PROGRESSIVE_OCARINA),
GET_ITEM(ITEM_HAMMER, OBJECT_GI_HAMMER, GID_HAMMER, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER, RG_MEGATON_HAMMER),
GET_ITEM(ITEM_HOOKSHOT, OBJECT_GI_HOOKSHOT, GID_HOOKSHOT, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER, RG_PROGRESSIVE_HOOKSHOT),
GET_ITEM(ITEM_LONGSHOT, OBJECT_GI_HOOKSHOT, GID_LONGSHOT, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER, RG_PROGRESSIVE_HOOKSHOT),
GET_ITEM(ITEM_LENS, OBJECT_GI_GLASSES, GID_LENS, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER, RG_LENS_OF_TRUTH),
GET_ITEM(ITEM_DINS_FIRE, OBJECT_GI_GODDESS, GID_DINS_FIRE, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER, RG_DINS_FIRE),
GET_ITEM(ITEM_FARORES_WIND, OBJECT_GI_GODDESS, GID_FARORES_WIND, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER, RG_FARORES_WIND),
GET_ITEM(ITEM_NAYRUS_LOVE, OBJECT_GI_GODDESS, GID_NAYRUS_LOVE, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER, RG_NAYRUS_LOVE),

GET_ITEM(RG_MAGIC_SINGLE, OBJECT_GI_MAGICPOT, GID_MAGIC_SMALL, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER, RG_MAGIC_SINGLE),
GET_ITEM(RG_MAGIC_DOUBLE, OBJECT_GI_MAGICPOT, GID_MAGIC_LARGE, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER, RG_MAGIC_DOUBLE),
GET_ITEM(RG_DOUBLE_DEFENSE, OBJECT_GI_HEARTS, GID_HEART_CONTAINER, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER, RG_DOUBLE_DEFENSE),

GET_ITEM(RG_GREG_RUPEE, OBJECT_GI_RUPY, GID_RUPEE_GREEN, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER, RG_GREG_RUPEE),
GET_ITEM(RG_BOTTLE_WITH_RED_POTION, OBJECT_GI_LIQUID, GID_POTION_RED, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER, RG_BOTTLE_WITH_RED_POTION),
GET_ITEM(RG_BOTTLE_WITH_GREEN_POTION, OBJECT_GI_LIQUID, GID_POTION_GREEN, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER, RG_BOTTLE_WITH_GREEN_POTION),
Expand Down

0 comments on commit ae49731

Please sign in to comment.