| 3542 | } |
| 3543 | |
| 3544 | staticfn int |
| 3545 | optfn_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 | |
| 3588 | staticfn int |
| 3589 | optfn_role( |
nothing calls this directly
no test coverage detected