Files
nethack/include
nhmall 68fdc3bbcb February 2020 options.c overhaul
combine boolean and compound options into a single allopt[] array for
processing in options.c.

move the definitions of the options into new include/optlist.h file which
uses a set of macros to define them appropriately.

during compile of options.c each option described in include/optlist.h:
   1. automatically results in a function prototype for an optfn called
      optfn_xxxx (xxxx is the option name).
   2. automatically results in an opt_xxxx enum value for referencing
      its index throughout options.c (xxxx is the option name).
   3. is used to initialize an element of the allopt[] array at index
      opt_xxxx (xxxx is the option name) based on the settings in the
      NHOPTB, NHOPTC, NHOPTP macros. Those macros only live during the
      compilation of include/optlist.h.

each optfn_xxxx() function can be called with a req id of: do_init, do_set,
get_val or do_handler.

req do_init is called from options_init, and if initialization or memory
allocation or other initialization for that particular option is needed,
it can be done in response to the init req.

req do_set is called from parseoptions() for each option it encounters
and the optfn_xxxx() function is expected to react and set the option
based on the string values that parseoptions() passes to it.

req get_val expects each optfn_xxxx() function to write the current
option value into the buffer it is passed.

req do_handler is called during doset() operations in response to player
selections most likely from the 'O' option-setting menu, but only if the
option is identified as having do_handler support in the allopts[]
'has_handler' boolean flag. Not every optfn_xxxx() does.

function special_handling() is eliminated. It's code has been redistributed
to individual handler functions for the option or purpose that they serve.

moved reglyph_darkroom() function from options.c to display.c
2020-02-26 00:24:37 -05:00
..
2018-11-11 10:29:52 -05:00
2019-11-27 09:53:40 -08:00
2019-11-06 18:43:20 +02:00
2015-05-25 09:21:31 +09:00
2015-05-25 09:21:31 +09:00
2015-05-25 09:21:15 +09:00
2020-02-26 00:24:37 -05:00
2015-10-17 13:15:46 +03:00
2019-04-19 12:42:35 -07:00
2020-01-29 09:56:43 -05:00
2020-02-12 14:35:37 -08:00
2018-04-25 15:00:13 -04:00
2020-02-26 00:24:37 -05:00
2015-05-25 09:21:31 +09:00
2019-05-12 14:51:26 -04:00
2020-02-01 18:31:39 +02:00
2018-04-25 15:00:13 -04:00
2020-02-26 00:24:37 -05:00
2020-02-13 15:38:59 -08:00
2020-01-29 10:29:37 -05:00
2018-12-15 19:31:42 -05:00
2015-05-25 09:21:15 +09:00
2020-02-26 00:24:37 -05:00
2020-02-26 00:24:37 -05:00
2019-03-06 11:37:52 -08:00
2019-01-28 10:02:08 +01:00
2018-04-25 16:54:50 -04:00
2015-05-25 09:21:15 +09:00
2018-04-25 15:00:13 -04:00
2018-04-25 15:00:13 -04:00
2015-10-17 13:15:46 +03:00
2019-05-11 11:10:00 +03:00
2018-04-25 16:54:50 -04:00
2019-11-27 01:27:11 -05:00
2018-04-25 15:00:13 -04:00
2019-06-18 21:50:51 -04:00
2015-05-25 09:21:31 +09:00
2020-02-18 13:33:00 -08:00
2019-01-13 17:19:39 -08:00
2015-05-25 09:21:31 +09:00
2020-02-13 21:24:24 -05:00
2020-01-26 02:58:18 -08:00
2020-01-12 22:02:36 -08:00
2020-02-26 00:24:37 -05:00
2020-02-12 14:35:37 -08:00
2019-11-02 22:53:46 -04:00
2018-10-21 08:45:55 -04:00
2019-10-08 13:26:39 -07:00
2015-05-25 09:21:31 +09:00
2015-05-25 09:21:31 +09:00
2015-10-17 18:47:31 +03:00
2019-01-11 17:18:48 -08:00
2020-02-25 19:24:58 +02:00
2019-12-18 07:38:59 -05:00
2019-11-29 17:40:58 -05:00
2018-04-25 15:00:13 -04:00
2018-04-25 16:54:50 -04:00
2019-07-27 16:12:24 -07:00
2018-04-25 15:00:13 -04:00
2019-04-15 13:48:27 -07:00
2019-01-12 01:09:17 -05:00
2019-07-14 23:36:56 -07:00
2019-06-08 09:38:27 -04:00
2015-05-25 09:21:31 +09:00
2020-02-25 16:18:58 -08:00
2015-05-25 09:21:31 +09:00
2015-05-25 09:21:31 +09:00
2015-05-25 09:21:31 +09:00
2020-02-12 14:35:37 -08:00