Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ADD: Time Saver --> Time Travel with the Song of Time #2575

Merged
merged 23 commits into from
Apr 2, 2023

Conversation

PurpleHato
Copy link
Contributor

@PurpleHato PurpleHato commented Mar 2, 2023

This time saver can be a cool feature for Rando players! Imagine the Blue Potato (Ocarina of Time) being actually usefull and allowing the player to change Link's Age by playing the Song of Time.

(Thanks @aMannus and @dcvz for the help!)

SoTBluePotato.mp4

Build Artifacts

Co-Authored-By: aMannus <4244591+aMannus@users.noreply.github.com>
Co-Authored-By: David Chavez <david@dcvz.io>
@ChristianSilvermoon
Copy link

Without a yes/no prompt, it becomes very easy for your blue potato to send you to a different time when you actually intended to move a Time Block, but didn't realize you weren't in range.

@PurpleHato
Copy link
Contributor Author

Without a yes/no prompt, it becomes very easy for your blue potato to send you to a different time when you actually intended to move a Time Block, but didn't realize you weren't in range.

There's a 300 units check between you and the block, which should be larger than their initial trigger zone, don't be shy of them :D

Copy link
Contributor

@aMannus aMannus left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking good! Couple of small comments from me.

I also feel like we could have a raw GI action for the age switching and unify that with the cheat doing the same, but that doesn't have to neccesarily happen in this PR imo.

Comment on lines 9 to 16
#include "functions.h"
#include "variables.h"
extern SaveContext gSaveContext;
extern PlayState* gPlayState;
extern void Play_PerformSave(PlayState* play);
extern s32 Health_ChangeBy(PlayState* play, s16 healthChange);
extern void Rupees_ChangeBy(s16 rupeeChange);
extern void Inventory_ChangeEquipment(s16 equipment, u16 value);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you're already including the functions.h header here, you shouldn't need the seperate extern functions anymore.

Comment on lines 404 to 410
UIWidgets::Tooltip("Allows Link to freely change age by playing the Song of Time.\n"
"Time Blocks can still be used properly.\n\n"
"Requirements:\n"
"- Obtained the Ocarina of Time\n"
"- Obtained the Song of Time\n"
"- Obtained the Master Sword\n"
"- Not within range of Time Block");
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm assuming some of the other checks got introduced later, but this also doesn't go through when you're next to an ocarina or scarecrow spot right? Might be good to mention that in the tooltip as well.

@SoraHjort
Copy link

Ran into three issues with the current build of the enhancement. Made sure I was on the latest version by downloading the current build today to double check these issues.

  1. Frog Game - Playing song of time for one of the frog rewards will time warp before you can get the reward while enhancement is on.
    https://youtu.be/UfFP7jH_nhY

  2. Ladders - After climbing up some ladders and immediately playing the song of time, it'll cause you to clip through the world.
    https://youtu.be/GBt4c9O78dM

  3. Dungeons - the Song of Time warp should place you at the start of a dungeon instead of your current location due to how areas load.
    https://youtu.be/diLMXfZZUEY

Videos contain demonstrations of each issue. Though I suspect the third one is already known. But since it wasn't reported in here it, it serves both as a "incase you didn't know" and to let others know the issue exists currently.

@briaguya-ai briaguya-ai added the do not merge Not ready or not valid changes label Apr 2, 2023
@briaguya-ai
Copy link
Contributor

added the "do not merge" label, i'll remove it once the issues mentioned here #2575 (comment) are addressed

@PurpleHato
Copy link
Contributor Author

added the "do not merge" label, i'll remove it once the issues mentioned here #2575 (comment) are addressed

These are most likely due to the fact that I didn't updated the branch to latest because the AgeChange cheat was broken when it was changed to an hook which has been resolved for a while but I didn't had the time to touch code for a while

I'll resolve the merge conflict here, and once it's compiled, I'll give it a try

@briaguya-ai briaguya-ai removed the do not merge Not ready or not valid changes label Apr 2, 2023
@briaguya-ai briaguya-ai merged commit 77cc91d into HarbourMasters:develop Apr 2, 2023
@PurpleHato PurpleHato deleted the TimeSaverTimeTravel branch April 6, 2023 20:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants