* category filter is now saved/restored if it's last used
* category filter can be used in composite custom filters
* category filter now provides UI rather than relying on options menu
* less confusing when no categories found
* also de-duplicated code for drawing category list
(nw) please test this everyone and let me know if there are reproducible
crashes or things that don't work right - I'm trying to make the
internal UI more consistent and stable
text, allow home/end to jump to beginning/end of filter list,
consolidate logic
(nw) A number of vestigial constants have been removed. Some hacky
input types that were just used as a trick to pass information between
menu functions are gone. MACHINE_NO_STANDALONE is a relic from when
drivers were used as arbitrary ROM containers, and in a world of
first-class devices this is no longer necessary.
There are a couple of issues here:
* Firstly, the determining factor for whether I64 or ll is needed as the
size qualifier doesn't depend entirely on whether you're using MSVC or
not, it depends on the the C runtime library. The msys64 C runtime
apes the Microsoft runtime and requires I64 as well, so a lot of files
where LLFORMAT had been copy/pasted wouldn't work right if you
depeneded on it anyway.
* Secondly, one of the major benefits of util::string_format,
util::stream_format and logerror in their current forms is that you
don't need size specifiers for integers at all (unless you're using
them to truncate a value, but in that case you're better off casting
the argument for clarity). If you do use them, logerror and friends
will accept both Microsoft- and SUS-style independently of the C
runtime.
So please everyone, don't go gratuitously throwing these around, and if
you must use them (e.g. for osd_printf_* functions), make sure your
conditionals are actually correct. Also, conisder using
util::string_format to do the formatting into a temporary string and
just feeding that to the output function so you can avoid the mess.
* Localisable filter names
* Uniform interface for most filters without far less special-casing
* Stacking year/manufacturer/etc. does OR rather than useless AND
* Prevent stacking contradictory filters (e.g. parents and clones)
* Fix alignment of filter list
* Removed most of the lambdas added the other day
* There's no longer an implicit "not BIOS" filter
* Can't add (un)available to custom machine filter (will address)