fabiangreffrath / crispy-doom

Crispy Doom is a limit-removing enhanced-resolution Doom source port based on Chocolate Doom.
https://fabiangreffrath.github.io/crispy-homepage
GNU General Public License v2.0
807 stars 132 forks source link

Broken Map Marker System #1158

Closed snekyo closed 9 months ago

snekyo commented 9 months ago

Background

Bug description

Observed behavior: After binding keys for marking spots on the map, they simply don't get placed. The keys I use for this are number pad 1 for placing a marker, and number pad 3 for removing markers.

Expected behavior: I'd expect these bindings to place and remove markers.

P.S. Anybody know how to add labels, assignees, and any of those other side values?

JNechaevsky commented 9 months ago

It's not exactly a bug. Setup executable shows mostly common binds for all four games, but Heretic and Hexen simply doesn't have mark drawing functions, neither vanilla games nor Crispy.

Implementation for both games is not that hard, and the result will be looks likes this (screenshot). Drawing functions is fairly simple, marks could use small numbers from status bar (PU_STATIC!), and crosshair is absolutely necessary addition - player will see where to exactly the mark will be placed. Saving marks into save games without breaking compatibility with existing save games is not very easy, so I would like to ask @fabiangreffrath's recommendation regarding how to proceed.

P.S. There are no text labels or something like that existing for automap, in vanilla-friendly ports for sure. 🙂

snekyo commented 9 months ago

Alright, thanks.

P.S. There are no text labels or something like that existing for automap, in vanilla-friendly ports for sure. 🙂

One thing though: I'm not talking about the port here, I'm talking about the issues system here on GitHub.

fabiangreffrath commented 9 months ago

Saving marks into save games without breaking compatibility with existing save games is not very easy, so I would like to ask @fabiangreffrath's recommendation regarding how to proceed.

We will have to do it with p_extsaveg.c.