Skip to content

Add Luigi Mash Event#348

Open
AmppSSBM wants to merge 1 commit into
AlexanderHarrison:masterfrom
AmppSSBM:luigi-mash
Open

Add Luigi Mash Event#348
AmppSSBM wants to merge 1 commit into
AlexanderHarrison:masterfrom
AmppSSBM:luigi-mash

Conversation

@AmppSSBM

@AmppSSBM AmppSSBM commented Jul 16, 2026

Copy link
Copy Markdown

Luigi Mash event! This was very fun to make, and I intend on doing more.

The event uses an action bar to show when B was pressed. Stats are provided on the right, with Height Gain being saved to memory card. Some of the pause options are there for easier mash practice, such as infinite jumps and infinite down-b charge.

Notes:

  • Tested on console and small crt. Text is readable.
  • mash.c started off as just a copied fc.c, but stripped down. Any similarities between the two is because of this.
  • Right hud is purely Text. It is a compromise to melee's hud found in wavedash, lcancel, ledgedash, and vanilla training mode.
    • Pros: more text is possible, and large modification is easy and possible (mainly size, as default melee hud can be pretty hard to read on worse crt's).
    • Cons: less consistent to overall training mode look, and small modifications can be harder (as you might have to readjust sizes and positions manually).
  • Text was given proper borders. This is done similar to how Text borders work on the top-bar's key, but instead of 4 passes (which can look bad sometimes), it is 8 passes.
    • Meaning, for every Text, there are 8 additional black texts drawn before the final white text.
    • Border was added because, on Yoshis Story, white text can be harder to read.
    • The current implementation uses a for() loop whenever there is a section of code that updates text.
    • The function that does this, setTextWithBorder(), could be added to events.c, with the idea of adding it to other events, like egg and slalom score tracker.
  • High scores (Height Gain) are floats for displaying, but are converted to ints for memory card saving. And vise versa.
  • Saving must be done by exiting the event. (egg and slalom exit automatically, but mash doesn't).
  • Added Events_CheckIfEventWasPlayedYet() to melee.link and event.h.
    • Reason is, if nothing is saved, Events_GetSavedScore() returns 0. This is fine for egg and slalom, as that is already the lowest value. But for mash's Height Gain, negatives are allowed, and 0 could be a new high score. So, without Events_CheckIfEventWasPlayedYet(), there is no way to categorize the 0 as a real high score or a fake uninitialized high score.
  • In events.c, .callbackPriority was set to 20.
  • This event can be pretty easily extended to include Mario, Doc, and IC's mash recoveries, which is a goal of mine.

@cbartsch

Copy link
Copy Markdown

legend

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.

2 participants