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

Improves the Block Pushing Speed Enhancement #2396

Merged

Conversation

leggettc18
Copy link
Contributor

@leggettc18 leggettc18 commented Jan 25, 2023

Previously this enhancement only decreased the delay between pushes in any noticeable way because the top speed of the blocks was still clamped to authentic values. The enhancement now increases the top speed of the blocks according to the slider's value.

Build Artifacts

Previously this enhancement only decreased the delay between pushes in any noticeable way because the top speed of the blocks was clamped. The enhancement now increases the top speed of the blocks according to the slider's value.
Copy link
Contributor

@briaguya-ai briaguya-ai left a comment

Choose a reason for hiding this comment

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

Thank you so much for looking into this and fixing it! I know it's been an issue for far longer than it feels like it should have been.

I left a comment in there about the values being changed and how they relate to blocks not reaching the end of their paths. If you could let me know if that comment aligns with what you've figured out when looking into this that'd be great!

this->stateFlags |= PUSHBLOCK_PUSH;
this->pushSpeed = CLAMP_MAX(this->pushSpeed, 2.0f);
this->pushSpeed = CLAMP_MAX(this->pushSpeed, 2.0f + (CVarGetInteger("gFasterBlockPush", 0) * 0.5));
Copy link
Contributor

Choose a reason for hiding this comment

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

the "not being pushed all the way" fix #1363 changed this line from

this->pushSpeed = CLAMP_MAX(this->pushSpeed, 3.0f);

to

this->pushSpeed = CLAMP_MAX(this->pushSpeed, 2.0f);

with this logic it seems it's still possible to have that value be 3.0

if i'm understanding correctly, this means the issue with not reaching the end was actually a problem with the earlier line, which was changed from

this->pushSpeed = this->pushSpeed + (CVar_GetS32("gFasterBlockPush", 0) * 0.3) + 0.5f;

to

this->pushSpeed = this->pushSpeed + ((CVar_GetS32("gFasterBlockPush", 0) / 2) * 0.5) + 0.5f;

Copy link
Contributor

Choose a reason for hiding this comment

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

Every time I've tried this I end up still having this issue as well, so I'm also interested if this fixes it.

Also should this not also be applied to the other block types? eg:
develop...garrettjoecox:OOT:faster-block-pushing

Copy link
Contributor Author

Choose a reason for hiding this comment

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

The fire temple block still worked with every block speed I tried. If I recall correctly the other pushable things work OK with the current enhancement, but I can check those today. Having the slider on +2 would put the top speed at 3.0, I feel like I tried that but I'll double check.

Copy link
Contributor

Choose a reason for hiding this comment

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

All the blocks currently “work” but all of them are far slower than they should be for the highest setting IMO

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Can confirm with Block speed at +2 that one block still gets to the end of its track.

Copy link
Contributor

Choose a reason for hiding this comment

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

so it must have been the * 0.3 that was messing things up... (probably? i'm still not quite sure)

anyways, yes, we should update the speed of the rest of the things to use the same logic as this does (def want fast small blocks for the spirit temple sun block room)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I've updated all the ones that are actually blocks. The other places are the shadow temple statue, the mirror statues in spirit temple, and the forest temple basement. I think the first one I had should have covered the spirit temple blocks, I'm fairly certain those are obj_oshihiki.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Ugh nevermind, there's also a jya_block just for those blocks in child spirit temple... EDIT: actually those might be something else, I'm not seeing any logic for pushing those anywhere in their code.

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

waiting to merge until a bit more testing of all the different block types happens

@leggettc18
Copy link
Contributor Author

All of the push blocks that I am aware of have been fixed at this point. It should be good to merge.

@leggettc18 leggettc18 removed do not merge Not ready or not valid changes labels Jan 26, 2023
@briaguya-ai briaguya-ai merged commit 5690135 into HarbourMasters:develop Jan 26, 2023
@leggettc18 leggettc18 deleted the actually-faster-block-push branch January 26, 2023 05:59
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

3 participants