Skip to content
Malkierian edited this page Sep 12, 2023 · 14 revisions

Rando v2

Check Data conversion

  • merchantPrices, itemLocations unified into current CheckTrackerData structure, to be renamed to CheckData

Convert 3DS rando to utilize SoH data structures (gSaveContext)

  • options
  • inventory
  • check data
  • end goal being live-playthrough instance is plug and play with generation playthrough structures, for easy availability checking

What this might look like in practice

  RandomizerCheck rc = Randomizer_GetRandomizerCheckFromActor(this->actor.params, play->sceneId);

  if (rc.isShuffled()) {
    if (rc.isObtainable() && !rc.isObtained()) {
      this->actionFunc = En_CowIdle;
      rc.obtain();
    } else {
      this->actionFunc = En_CowReturnToIdle;
      this->actor.textId = 0x4011;
    }
  } else {
    this->actionFunc = En_CowCheckEmptyBottle;
  }

Name parity with Archipelago

This would mean renaming the check names internally, ala the rcSpoilerName "ToT Light Arrow Cutscene" in our code becoming "ToT Light Arrows Cutscene". We can keep the rcShortName value for all these changes whatever we decide we want, whether that's how they are now or matching the spoiler name.

Come up with a cleaner and more consistent way of branching from vanilla code

Extensible language support system

3DS Rando doesn't support German at the moment, and with PAL ROM support done, NTSC and the eventual Japanese translation will be next.

Clone this wiki locally