MCPcopy Create free account
hub / github.com/NetHack/NetHack / optfn_sortvanquished

Function optfn_sortvanquished

src/options.c:3957–4010  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3955}
3956
3957staticfn int
3958optfn_sortvanquished(
3959 int optidx, int req, boolean negated,
3960 char *opts, char *op)
3961{
3962 extern const char *const vanqorders[][3]; /* insight.c */
3963 static const char vanqmodes[] = "tdaACcnz";
3964 const char *optname = allopt[optidx].name;
3965
3966 if (req == do_init) {
3967 flags.vanq_sortmode = VANQ_MLVL_MNDX; /* 0 => 't' */
3968 return optn_ok;
3969 }
3970 if (req == do_set) {
3971 op = string_for_env_opt(allopt[optidx].name, opts, FALSE);
3972 if (negated) {
3973 flags.vanq_sortmode = VANQ_MLVL_MNDX; /* 0 => 't' */
3974 } else if (op != empty_optstr) {
3975 const char *p;
3976 int vndx = 0;
3977
3978 if ((p = strchr(vanqmodes, *op)) != 0) {
3979 vndx = (int) (p - vanqmodes);
3980 } else if (strchr("01234567", *op)) {
3981 vndx = *op - '0';
3982 } else {
3983 config_error_add("Unknown %s parameter '%s'", optname, op);
3984 return optn_silenterr;
3985 }
3986 flags.vanq_sortmode = (uchar) vndx;
3987 } else
3988 return optn_err;
3989 return optn_ok;
3990 }
3991 if (req == get_val || req == get_cnf_val) {
3992 Strcpy(opts, vanqorders[flags.vanq_sortmode][0]);
3993 if (req == get_val)
3994 Sprintf(eos(opts), ": %s", vanqorders[flags.vanq_sortmode][1]);
3995 return optn_ok;
3996 }
3997 if (req == do_handler) {
3998 uchar prev_sortmode = flags.vanq_sortmode;
3999
4000 /* return handler_sortvanquished(); */
4001 (void) set_vanq_order(TRUE); /* insight.c */
4002 pline("'%s' %s \"%s: %s\".", optname,
4003 (flags.vanq_sortmode == prev_sortmode)
4004 ? "not changed, still"
4005 : "changed to",
4006 vanqorders[flags.vanq_sortmode][0],
4007 vanqorders[flags.vanq_sortmode][1]);
4008 }
4009 return optn_ok;
4010}
4011
4012staticfn int
4013optfn_statushilites(

Callers

nothing calls this directly

Calls 5

string_for_env_optFunction · 0.85
config_error_addFunction · 0.85
eosFunction · 0.85
set_vanq_orderFunction · 0.85
plineFunction · 0.70

Tested by

no test coverage detected