initialize player selector dialog */
| 581 | |
| 582 | /* initialize player selector dialog */ |
| 583 | void |
| 584 | plselInitDialog(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"); |
no test coverage detected