| 632 | } |
| 633 | |
| 634 | static void |
| 635 | roletoggleCallback(Widget w, XtPointer client, XtPointer call) |
| 636 | { |
| 637 | Arg args[2]; |
| 638 | int j, valid; |
| 639 | int c = 0; |
| 640 | int ra = xtp2i(XawToggleGetCurrent(plsel_race_radios[0])) - 1; |
| 641 | int ro = xtp2i(XawToggleGetCurrent(plsel_role_radios[0])) - 1; |
| 642 | |
| 643 | nhUse(w); |
| 644 | nhUse(client); |
| 645 | nhUse(call); |
| 646 | |
| 647 | plsel_set_play_button(ra < 0 || ro < 0); |
| 648 | |
| 649 | if (ra < 0 || ro < 0) |
| 650 | return; |
| 651 | |
| 652 | valid = -1; |
| 653 | |
| 654 | for (j = 0; races[j].noun; j++) { |
| 655 | boolean v = validrace(ro, j); |
| 656 | |
| 657 | if (j == ra) |
| 658 | c = j; |
| 659 | XtSetArg(args[0], nhStr(XtNsensitive), v); |
| 660 | XtSetValues(plsel_race_radios[j], args, ONE); |
| 661 | if (valid < 0 && v) |
| 662 | valid = j; |
| 663 | } |
| 664 | if (!validrace(ro, c)) |
| 665 | c = valid; |
| 666 | |
| 667 | j = c + 1; |
| 668 | XawToggleSetCurrent(plsel_race_radios[0], i2xtp(j)); |
| 669 | |
| 670 | X11_player_selection_setupOthers(); |
| 671 | } |
| 672 | |
| 673 | static void |
| 674 | gendertoggleCallback(Widget w, XtPointer client, XtPointer call) |
nothing calls this directly
no test coverage detected