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

Using toggle fast travel doesn't record map memory at all #76350

Open
CoroNaut opened this issue Sep 11, 2024 · 5 comments
Open

Using toggle fast travel doesn't record map memory at all #76350

CoroNaut opened this issue Sep 11, 2024 · 5 comments
Labels
[C++] Changes (can be) made in C++. Previously named `Code` Code: Infrastructure / Style / Static Analysis Code internal infrastructure and style Help Wanted Not particularly urgent or easy (see Good First Issue for this), but help is appreciated with this! Map / Mapgen Overmap, Mapgen, Map extras, Map display (S2 - Confirmed) Bug that's been confirmed to exist

Comments

@CoroNaut
Copy link

CoroNaut commented Sep 11, 2024

Describe the bug

When using the toggle fast travel option, it doesn't record map memory for your character. So if you decide to fast travel into an area that you have no map memory for, it will path there, but won't record any tiles.

Attach save file

TESTINGTWO-trimmed.tar.gz

Steps to reproduce

  1. Load save
  2. Fast travel to any nearby forest tile using 'toggle fast travel'
  3. Notice no map memory is updated

Expected behavior

Map memory should be recorded as if 'toggle fast travel' were off.

Screenshots

Just for clarification, I used the fast travel mechanic to get into this forest in the top-left spot, then directly east. I then disabled 'toggle fast travel' so that map view didn't stay open while traveling, and traveled south. As such, you have map memory when the option is disabled.
image

Versions and configuration

  • OS: Windows
    • OS Version: 10.0.19045.4651 (22H2)
  • Game Version: cdda-experimental-2024-09-10-0339 c73e4c6 [64-bit]
  • Graphics Version: Tiles
  • Game Language: System language []
  • Mods loaded: [
    Dark Days Ahead [dda],
    Disable NPC Needs [no_npc_food],
    Portal Storms Ignore NPCs [personal_portal_storms],
    Slowdown Fungal Growth [no_fungal_growth]
    ]

Additional context

No response

@CoroNaut CoroNaut added the (S1 - Need confirmation) Report waiting on confirmation of reproducibility label Sep 11, 2024
@ShnitzelX2
Copy link
Contributor

So currently, it looks like map memory is only recorded during map drawing, and fast travel mode doesn't call those draw functions. I would expect map memory to be recorded according to what's visible to the in-game player on the map, independent of what's drawn. That would involve extracting a lot of code from the map draw functions.

It's good to identify this, at any rate. Thanks!

@kevingranade
Copy link
Member

Correct, for performance reasons it is deeply entwined with the draw code so if you don't run most of the draw code it's not going to be able to decide what yours to memorize. Plus if you run that much of the draw code, you're going to reverse most of the speed gains from not drawing as you go.

I could imagine doing something like adding some code to disable actually drawing always and running just enough code to get a map memory snapshot once every 12 tiles of travel or so.

@CoroNaut
Copy link
Author

Adding code to update every so often instead of every tile might be OK for moving around in the daytime. Inside a forest would however leave behind some janky map memory as you go. But definitely not at night. #37968 would become a bit more severe.

Otherwise, its a decent compromise to keep some performance but still update a little map memory for longer distances through not yet recorded areas.

@RenechCDDA
Copy link
Member

Based on the confirmed behavior and what's been said I'm going to go ahead and mark this confirmed so we at least remember it exists.

@RenechCDDA RenechCDDA added (S2 - Confirmed) Bug that's been confirmed to exist Map / Mapgen Overmap, Mapgen, Map extras, Map display [C++] Changes (can be) made in C++. Previously named `Code` Code: Infrastructure / Style / Static Analysis Code internal infrastructure and style Help Wanted Not particularly urgent or easy (see Good First Issue for this), but help is appreciated with this! and removed (S1 - Need confirmation) Report waiting on confirmation of reproducibility labels Sep 17, 2024
@sparr
Copy link
Member

sparr commented Oct 13, 2024

#77021 seems like a dupe of this, although it gives examples where every 12 tiles is too rare, and even every 4 tiles would leave gaps.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[C++] Changes (can be) made in C++. Previously named `Code` Code: Infrastructure / Style / Static Analysis Code internal infrastructure and style Help Wanted Not particularly urgent or easy (see Good First Issue for this), but help is appreciated with this! Map / Mapgen Overmap, Mapgen, Map extras, Map display (S2 - Confirmed) Bug that's been confirmed to exist
Projects
None yet
Development

No branches or pull requests

5 participants