| 593 | } |
| 594 | |
| 595 | static void |
| 596 | racetoggleCallback(Widget w, XtPointer client, XtPointer call) |
| 597 | { |
| 598 | Arg args[2]; |
| 599 | int j, valid; |
| 600 | int c = 0; |
| 601 | int ra = xtp2i(XawToggleGetCurrent(plsel_race_radios[0])) - 1; |
| 602 | int ro = xtp2i(XawToggleGetCurrent(plsel_role_radios[0])) - 1; |
| 603 | |
| 604 | nhUse(w); |
| 605 | nhUse(client); |
| 606 | nhUse(call); |
| 607 | |
| 608 | plsel_set_play_button(ra < 0 || ro < 0); |
| 609 | |
| 610 | if (ra < 0 || ro < 0) |
| 611 | return; |
| 612 | |
| 613 | valid = -1; |
| 614 | |
| 615 | for (j = 0; roles[j].name.m; j++) { |
| 616 | boolean v = validrace(j, ra); |
| 617 | |
| 618 | if (j == ro) |
| 619 | c = j; |
| 620 | XtSetArg(args[0], nhStr(XtNsensitive), v); |
| 621 | XtSetValues(plsel_role_radios[j], args, ONE); |
| 622 | if (valid < 0 && v) |
| 623 | valid = j; |
| 624 | } |
| 625 | if (!validrace(c, ra)) |
| 626 | c = valid; |
| 627 | |
| 628 | j = c + 1; |
| 629 | XawToggleSetCurrent(plsel_role_radios[0], i2xtp(j)); |
| 630 | |
| 631 | X11_player_selection_setupOthers(); |
| 632 | } |
| 633 | |
| 634 | static void |
| 635 | roletoggleCallback(Widget w, XtPointer client, XtPointer call) |
nothing calls this directly
no test coverage detected