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

Function optfn_roguesymset

src/options.c:3544–3586  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3542}
3543
3544staticfn int
3545optfn_roguesymset(
3546 int optidx, int req, boolean negated UNUSED,
3547 char *opts, char *op)
3548{
3549 if (req == do_init) {
3550 return optn_ok;
3551 }
3552 if (req == do_set) {
3553 if (op != empty_optstr) {
3554 if (gs.symset[ROGUESET].name)
3555 free((genericptr_t) gs.symset[ROGUESET].name),
3556 gs.symset[ROGUESET].name = 0;
3557 gs.symset[ROGUESET].name = dupstr(op);
3558 if (!read_sym_file(ROGUESET)) {
3559 clear_symsetentry(ROGUESET, TRUE);
3560 config_error_add(
3561 "Unable to load symbol set \"%s\" from \"%s\"", op,
3562 SYMBOLS);
3563 return optn_err;
3564 } else {
3565 if (!go.opt_initial && Is_rogue_level(&u.uz))
3566 assign_graphics(ROGUESET);
3567 go.opt_need_redraw = go.opt_need_glyph_reset = TRUE;
3568 go.opt_symset_changed = TRUE;
3569 }
3570 } else
3571 return optn_err;
3572 return optn_ok;
3573 }
3574 if (req == get_val || req == get_cnf_val) {
3575 Sprintf(opts, "%s",
3576 gs.symset[ROGUESET].name ? gs.symset[ROGUESET].name
3577 : "default");
3578 if (gc.currentgraphics == ROGUESET && gs.symset[ROGUESET].name)
3579 Strcat(opts, ", active");
3580 return optn_ok;
3581 }
3582 if (req == do_handler) {
3583 return handler_symset(optidx);
3584 }
3585 return optn_ok;
3586}
3587
3588staticfn int
3589optfn_role(

Callers

nothing calls this directly

Calls 6

dupstrFunction · 0.85
read_sym_fileFunction · 0.85
clear_symsetentryFunction · 0.85
config_error_addFunction · 0.85
assign_graphicsFunction · 0.85
handler_symsetFunction · 0.85

Tested by

no test coverage detected