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

Function plselInitDialog

win/win32/mhdlg.c:583–678  ·  view source on GitHub ↗

initialize player selector dialog */

Source from the content-addressed store, hash-verified

581
582/* initialize player selector dialog */
583void
584plselInitDialog(struct plsel_data * data)
585{
586 TCHAR wbuf[BUFSZ];
587 LVCOLUMN lvcol;
588 control_t *control;
589
590 SetWindowLongPtr(data->dialog, GWLP_USERDATA, (LONG_PTR) data);
591
592 for(int i = 0; i < psc_control_count; i++) {
593 data->controls[i].id = s_psc_id[i];
594 data->controls[i].hWnd = GetDlgItem(data->dialog, s_psc_id[i]);
595 }
596
597 control_t * role_list = &data->controls[psc_role_list];
598
599 ZeroMemory(&lvcol, sizeof(lvcol));
600 lvcol.mask = LVCF_WIDTH;
601 lvcol.cx = 1024;
602
603 /* build role list */
604 ListView_InsertColumn(role_list->hWnd, 0, &lvcol);
605 data->role_count = 0;
606 for (int i = 0; roles[i].name.m; i++) {
607 LVITEM lvitem;
608 ZeroMemory(&lvitem, sizeof(lvitem));
609
610 lvitem.mask = LVIF_STATE | LVIF_TEXT;
611 lvitem.iItem = i;
612 lvitem.iSubItem = 0;
613 lvitem.state = 0;
614 lvitem.stateMask = LVIS_FOCUSED;
615 if (flags.female && roles[i].name.f)
616 lvitem.pszText = NH_A2W(roles[i].name.f, wbuf, BUFSZ);
617 else
618 lvitem.pszText = NH_A2W(roles[i].name.m, wbuf, BUFSZ);
619 if (ListView_InsertItem(role_list->hWnd, &lvitem) == -1) {
620 panic("cannot insert menu item");
621 }
622 data->role_count++;
623 }
624
625 /* build race list */
626 control_t * race_list = &data->controls[psc_race_list];
627 ListView_InsertColumn(race_list->hWnd, 0, &lvcol);
628 data->race_count = 0;
629 for (int i = 0; races[i].noun; i++) {
630 LVITEM lvitem;
631 ZeroMemory(&lvitem, sizeof(lvitem));
632
633 lvitem.mask = LVIF_STATE | LVIF_TEXT;
634 lvitem.iItem = i;
635 lvitem.iSubItem = 0;
636 lvitem.state = 0;
637 lvitem.stateMask = LVIS_FOCUSED;
638 lvitem.pszText = NH_A2W(races[i].noun, wbuf, BUFSZ);
639 if (ListView_InsertItem(race_list->hWnd, &lvitem) == -1) {
640 panic("cannot insert menu item");

Callers 1

PlayerSelectorDlgProcFunction · 0.70

Calls 5

plselRandomizeFunction · 0.85
plselAdjustSelectionsFunction · 0.85
center_dialogFunction · 0.85
panicFunction · 0.50

Tested by

no test coverage detected