Skip to content
Robert Jordan edited this page Sep 11, 2021 · 2 revisions

Unorganized page of research/rewrite goals for LRR

LRR: Goals

  • MAJOR: Make all hotkeys re-bindable, and add more modifier checks.
  • MAJOR: Switch Draw API to Blt-ing white pixels, and avoid constant locking/unlocking. (medium/heavy rework. At minimum, fix this for rect drawing, and straight line drawing)
  • MAJOR: Reimplement FPS and Memory monitor.
  • CHANGE: Make Disable dependencies (F11) toggle-able. (known location of fix, but may cause problems for "HitOnceStay")
  • ADD: Create separate Custom.cfg for configuration options and settings that load before Mode Selection.
  • ADD: extra.cfg that's appended to Lego.cfg on load. (NOTE: This can't "extend" array type lookups, without replacing the whole array.)
  • ADD: Make changeable default auto-game speed option. (IIRC involves game flag)
  • ADD: Implement disabled "OnlyBuildOnPaths" option. (See: SelectPlace module)
  • CHANGE: Unlock FP controls in top-down view. ✓ 
  • CHANGE: Override priority of specific files to prefer loose Data over WAD entry. (hacky rework)
  • ADD: Debug hotkeys for resource manipulation, Oxygen up, upgrade manipulation, etc.
  • ADD: Debug hotkeys for super Rock Raiders. (Level-up all minifigures to max and equip with appropriate tools)
  • ADD: Preprocessor/cmdline option to disable CD checks (this will need to go a bit further to deal with mci music playback)
  • ADD: Hotkey to toggle ClearPanels config setting. (It's known that LRR can handle changes to this on the fly, but there may be some minor temporary side effects)
  • ADD: Ability to toggle debug-hotkeys on/off at runtime.
  • CHANGE: Ability to unlock camera free movement (disabled min/max tilt and dist). (This already exists in-game, but the debug key affecting it only disables free moment)
  • CHANGE: Make intro videos/splashes always skippable (simple known fix, two functions)
  • FLUFF: Assign program small icon to LegoRR title bar.
  • CHANGE: Enable dispatching of window messages in FrontEnd loops and in loading. (to allow close button to function)
  • FIX: Make sure all options menu settings reflect their current state (i.e. Music ON. IIRC, mainly handled by one function)
  • FIX: Pointer animations play way too fast. (This updates every tick, which is ignorant of FPS)
  • FIX: Change window cursor handling to appear when outside client area/inside title bar. (Working fix already in LRRMonitor)
  • FIX: SFX groups ignoring the first item. (simple known fix, single function)
  • FIX: SFX sample properties not null-terminating '#' volume modifier buffer. (single function)
  • FIX: Advisor animations failing to respect the '!' reduce setting prefix. (simple known fix, single function)
  • FIX: Custom name buffer for LegoObject should be at least 12 bytes in allocation size. (simple known fix, single function. NOTE: currently this doesn't break because the implementation-defined behavior of malloc rounds up to units of 16 bytes, for small sizes)
  • FIX: Known memory leaks in one loading function with CFG\_CopyString (even if it is a one-time call)
  • FIX: Don't use CFG\_CopyString in CFG\_ReadBool, const string value can safely be passed to bool parsing function.
  • FIX: Input\_Initialise references mainGlobs.hWnd before assignment.
  • FIX: Ensure extra 1 extra byte in size for null terminator when loading file during Config\_Load (currently a cfg-like file must end with whitespace/newlines/or comments)