/* set player name */
SetDlgItemText(hWnd, IDC_PLSEL_NAME, NH_A2W(plname, wbuf, sizeof(wbuf)));
+ /* check flags for consistency */
+ if( flags.initrole>=0 ) {
+ if (flags.initrace>=0 && !validrace(flags.initrole, flags.initrace)) {
+ flags.initrace = ROLE_NONE;
+ }
+
+ if (flags.initgend>=0 && !validgend(flags.initrole, flags.initrace, flags.initgend)) {
+ flags.initgend = ROLE_NONE;
+ }
+
+ if (flags.initalign>=0 && !validalign(flags.initrole, flags.initrace, flags.initalign)) {
+ flags.initalign = ROLE_NONE;
+ }
+ }
+
+ /* populate select boxes */
plselAdjustLists(hWnd, -1);
/* intialize roles list */
/* get current selections */
ind = SendMessage(control_role, CB_GETCURSEL, 0, 0);
- initrole = (ind==LB_ERR)? ROLE_NONE : SendMessage(control_role, CB_GETITEMDATA, ind, 0);
+ initrole = (ind==LB_ERR)? flags.initrole : SendMessage(control_role, CB_GETITEMDATA, ind, 0);
ind = SendMessage(control_race, CB_GETCURSEL, 0, 0);
- initrace = (ind==LB_ERR)? ROLE_NONE : SendMessage(control_race, CB_GETITEMDATA, ind, 0);
+ initrace = (ind==LB_ERR)? flags.initrace : SendMessage(control_race, CB_GETITEMDATA, ind, 0);
ind = SendMessage(control_gender, CB_GETCURSEL, 0, 0);
- initgend = (ind==LB_ERR)? ROLE_NONE : SendMessage(control_gender, CB_GETITEMDATA, ind, 0);
+ initgend = (ind==LB_ERR)? flags.initgend : SendMessage(control_gender, CB_GETITEMDATA, ind, 0);
ind = SendMessage(control_align, CB_GETCURSEL, 0, 0);
- initalign = (ind==LB_ERR)? ROLE_NONE : SendMessage(control_align, CB_GETITEMDATA, ind, 0);
+ initalign = (ind==LB_ERR)? flags.initalign : SendMessage(control_align, CB_GETITEMDATA, ind, 0);
/* intialize roles list */
if( changed_sel==-1 ) {
SendMessage(control_gender, CB_SETITEMDATA, (WPARAM)ind, (LPARAM)i );
if( i==initgend ) {
SendMessage(control_gender, CB_SETCURSEL, (WPARAM)ind, (LPARAM)0 );
+ valid_opt = 1;
}
}