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

Function X11_player_selection_setupOthers

win/X11/winmisc.c:549–593  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

547}
548
549static void
550X11_player_selection_setupOthers(void)
551{
552 Arg args[2];
553 int ra = xtp2i(XawToggleGetCurrent(plsel_race_radios[0])) - 1;
554 int ro = xtp2i(XawToggleGetCurrent(plsel_role_radios[0])) - 1;
555 int valid = -1, c = 0, j;
556 int gchecked = xtp2i(XawToggleGetCurrent(plsel_gend_radios[0])) - 1;
557 int achecked = xtp2i(XawToggleGetCurrent(plsel_align_radios[0])) - 1;
558
559 if (ro < 0 || ra < 0)
560 return;
561
562 for (j = 0; j < ROLE_GENDERS; j++) {
563 boolean v = validgend(ro, ra, j);
564
565 if (j == gchecked)
566 c = j;
567 XtSetArg(args[0], nhStr(XtNsensitive), v);
568 XtSetValues(plsel_gend_radios[j], args, ONE);
569 if (valid < 0 && v)
570 valid = j;
571 }
572 if (!validgend(ro, ra, c))
573 c = valid;
574
575 XawToggleSetCurrent(plsel_gend_radios[0], i2xtp(c + 1));
576
577 valid = -1;
578
579 for (j = 0; j < ROLE_ALIGNS; j++) {
580 boolean v = validalign(ro, ra, j);
581
582 if (j == achecked)
583 c = j;
584 XtSetArg(args[0], nhStr(XtNsensitive), v);
585 XtSetValues(plsel_align_radios[j], args, ONE);
586 if (valid < 0 && v)
587 valid = j;
588 }
589 if (!validalign(ro, ra, c))
590 c = valid;
591
592 XawToggleSetCurrent(plsel_align_radios[0], i2xtp(c + 1));
593}
594
595static void
596racetoggleCallback(Widget w, XtPointer client, XtPointer call)

Callers 3

plsel_set_sensitivitiesFunction · 0.85
racetoggleCallbackFunction · 0.85
roletoggleCallbackFunction · 0.85

Calls 4

xtp2iFunction · 0.85
validgendFunction · 0.85
i2xtpFunction · 0.85
validalignFunction · 0.85

Tested by

no test coverage detected