Pribluda Future Development
This is a list of things I'm working on; or am thinking of working on; or people have suggested I work on; or might be nice to have in a vague, if i had an inifinte amount of time, sort of way, to improve pribluda.
Something being on this list is no guarantee that it will ever be implemented, and not being on the list does not necesarily mean that it won't be implemented. This is an aide memoire and nothing more...
Bug Fixes
- prevent display of qually data at very start of race
- prevent cars on the same lap, but not yet having crossed the line showing as lapped on player/surround boards. TRICKY
- ini setting for playerboard toggle key has no effect
- display corruption under wine/linux - probably overflow or uninitialised var somewhere
- crash on startup under win98 (and 95?)
- colour coding of sector times is wrong when using 0.97 layout
- hardcoded defaults do not match ini defaults
- Online, disconnected cars still show on surroundboard
- Crashing/Incorrect grip calculation on 64bit processors and/or 64bit OS with old style exes (67, 65)
- Some drivers incorrectly shown as retired in large field online races, on bandwidth limited servers
Feature Ideas
-
Tyre colour-code based on grip and temp
- doable
- 0xff0000 is too dark for many people use h:240/220 s:100 l:65/70
- graphical rather than text?
- seperate pressure display?
- added option to change base brightness
-
Add option to disable tyre display colour coding
-
Add option to disable use of bold text
-
Make default positioning resolution agnostic
-
Make tyre temps colour configurable, as 0xff0000 (full blue is too dark to read)
- requested by saiph + NP
- Implement temp range option to allow width of active colour band to be varied by user
- Start further up the blue scale? need to experiment with shades
- make starting colour fully user configurable?
-
Show laps remaining instead/as well as laps completed
- Pit Stop reminder for league races
- display icon/text during pit window
- warning when on last lap of window (if stop not completed?)
- display count down timer whilst stopped in pits
- config options for pit-window, stop length, num stops required
- need to calc when car is stopped in the pits - doable
- ideally need to know how long the race is to calc window
- ideally need to know player car and current track, then can read appropriate pit stop details from ini
- texturing
-
Auto load/save best sector/laptimes to ini
- need player car type detection
- need current track detection
- need mod detection
- need player detection - almost have this
- use GPLRA format ini
- auto submit to GPLRank? probably bad idea, due to inacuracies, clock smashes, etc. Would be cool though
- interface implications? more rows? session best and all time best?
-
Sector time logging
- rudimentary functionality straightforward
- needs the same as save/load bests to be done properly
-
Tyre Temp Logging
- same req as other logging in order to do it well
-
Dashboard display
- show: speed, rpm, gear, oil temp, water temp, fuel pressure/fuel amount(?),
- needs multiple fonts to be good
- need mod detection
- needs car detection for red line warning
- needs data for:
- speed
- gear
- rpm
- oil t
- water t
- fuel pressure
- fuel amount
-
Car damage display
- nice idea - no clue were to start for the data
- texturing
-
Surround board gaps shown as time
- gap/playerspeed easier than gap/oterspeed
- need playerspeed!
- Blindspot warning
- need x position of cars
- logic mostly done already for surround board
- how to display? coloured bars at relevant screen edge? boxes? arrows?
-
Live Timer
- user resetable or autostart each lap - config option?
- display as part of sector time display?
-
Seperate Settings for player/leader/surround boards
- Split ini Standings section into seperate leaderboard, playerboard & surroundboard sections
- defaultColour
- numDrivers
- showLeader/showPlayer
- lineheightCorrection
- borderSize
-
Option for stepped Tyre colour transitions
Backend Improvements
-
True rasteriser agnosticism, instead of specific support for D3D or OGL
- HARD, a lot of work for little visible gain
- theoretically compatible with all existing rasterisers
- Would future proof against any new rasterisers that may be being developed
- new hook code for gpl.exe - NP?
- use exiting gpl fonts? limiting
- function to build bitmaps from ttfs
- freetype?
- cater for propotional fonts? probably not, makes life more complicated
- font colour? seperate bitmap for each colour? hopefully not. masking?
- custom print using stampDraw - will need to track screen position
- void stampDraw(Buffer* screen_buffer, int x, int y, StampCollection* stamps, int stamp_index)
- stampcollection structure? how to build?
- int bitmapAlloc(Bitmap** output_bitmap, int format, int width, int height, bool need_palette)
bitmap formats:
- format 3 has 5 bits red, 6 bits green, 5 bits blue
- format 4 has 5 bits red, 5 bits green, 5 bits blue, 1 bit alpha
- format 5 has 4 bits red, 4 bits green, 4 bits blue, 4 bits alpha
- drawPixel to create/copy bitmap from file/res - ask NP for signature
- void bitmapDraw(ScreenBuffer*, int x, int y, Bitmap* bitmap)
-
Support for more than one font
- is almost required for usable Dashboard display
- easy under D3D, harder under OGL
- probably not worth doing until rasteriser agnosticism is done, though that makes it even harder
-
Split rendering from data extraction
- probably not worth the hassle of going down the twin dll route
- moving away from globals should definitely be done