Archipelago icon indicating copy to clipboard operation
Archipelago copied to clipboard

FFMQ: Efficiency Improvement and Use New Options Methods

Open Alchav opened this issue 1 year ago • 2 comments

What is this fixing or adding?

  • Converts rooms.yaml and entrances.yaml to python data so no yaml loading and converting takes place during runtime while the apworld is initialized. This saves a good few seconds of loading time.
  • Updates FFMQ to use new options methods
  • Removes some print statements that were left in by mistake.
  • Fixes a bug where one option was being checked twice and two others not checked at all, for determining if a map shuffle API call was necessary.
  • Entrance hints will now show locations at Mac's Ship (why did I go out of my way to exclude it? It is a mystery)

How was this tested?

Generating several times with various options.

Alchav avatar Jan 26 '24 17:01 Alchav

  • Output.py line 102 uses self.multiworld.sky_coin_mode[self.player]

    • stage_generate_early could (should?) access options through the world variable

    • Regions.py line 70 uses self.multiworld.brown_boxes[self.player]

    • Regions.py line 213 uses multiworld.enemies_density[player]

Otherwise, does what it says on the tin.

World load on my machine goes from

* ~0.75s to ~0.075s on Python 3.8

* ~0.55s to ~0.08s on Python 3.11

Fixed

Alchav avatar Mar 15 '24 17:03 Alchav

Can you change settings_template in Output.py to use Utils.parse_yaml? (see below)

Done

Alchav avatar Jun 23 '24 16:06 Alchav

This should be reverted, as it currently breaks SNI connection on FFMQ. The reason is the one line change in client.py

TreZc0 avatar Jul 24 '24 19:07 TreZc0

@Alchav can just make another PR, no?

Exempt-Medic avatar Jul 24 '24 19:07 Exempt-Medic