|
@@ -314,12 +314,14 @@ static void ShowColourDropDownMenu(Windo
|
|
|
ShowDropDownMenu(w, _colour_dropdown, widget == 10 ? livery->colour1 : livery->colour2, widget, used_colours, 0);
|
|
|
}
|
|
|
|
|
|
static void SelectPlayerLiveryWndProc(Window *w, WindowEvent *e)
|
|
|
{
|
|
|
switch (e->event) {
|
|
|
case WE_CREATE: LowerWindowWidget(w, WP(w, livery_d).livery_class + 2); break;
|
|
|
|
|
|
case WE_PAINT: {
|
|
|
const Player *p = GetPlayer(w->window_number);
|
|
|
LiveryScheme scheme = LS_DEFAULT;
|
|
|
int y = 51;
|
|
|
|
|
|
/* Disable dropdown controls if no scheme is selected */
|
|
@@ -369,23 +371,24 @@ static void SelectPlayerLiveryWndProc(Wi
|
|
|
case 3:
|
|
|
case 4:
|
|
|
case 5:
|
|
|
case 6: {
|
|
|
LiveryScheme scheme;
|
|
|
|
|
|
RaiseWindowWidget(w, WP(w, livery_d).livery_class + 2);
|
|
|
WP(w, livery_d).livery_class = e->we.click.widget - 2;
|
|
|
WP(w, livery_d).sel = 0;
|
|
|
LowerWindowWidget(w, WP(w, livery_d).livery_class + 2);
|
|
|
|
|
|
/* Select the first item in the list */
|
|
|
for (scheme = LS_DEFAULT; scheme < LS_END; scheme++) {
|
|
|
if (livery_class[scheme] == WP(w, livery_d).livery_class) {
|
|
|
WP(w, livery_d).sel = 1 << scheme;
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
w->click_state = 1 << e->we.click.widget;
|
|
|
w->height = 49 + livery_height[WP(w, livery_d).livery_class] * 14;
|
|
|
w->widget[13].bottom = w->height - 1;
|
|
|
w->widget[13].data = livery_height[WP(w, livery_d).livery_class] << 8 | 1;
|
|
|
MarkWholeScreenDirty();
|
|
|
break;
|
|
|
}
|
|
@@ -466,15 +469,16 @@ static const WindowDesc _select_player_l
|
|
|
SelectPlayerLiveryWndProc
|
|
|
};
|
|
|
|
|
|
static void SelectPlayerFaceWndProc(Window *w, WindowEvent *e)
|
|
|
{
|
|
|
switch (e->event) {
|
|
|
case WE_CREATE: LowerWindowWidget(w, WP(w, facesel_d).gender + 5); break;
|
|
|
|
|
|
case WE_PAINT: {
|
|
|
Player *p;
|
|
|
w->click_state = (w->click_state & ~(1<<5|1<<6)) | ((1<<5) << WP(w,facesel_d).gender);
|
|
|
DrawWindowWidgets(w);
|
|
|
p = GetPlayer(w->window_number);
|
|
|
DrawPlayerFace(WP(w,facesel_d).face, p->player_color, 2, 16);
|
|
|
} break;
|
|
|
|
|
|
case WE_CLICK:
|
|
@@ -483,13 +487,15 @@ static void SelectPlayerFaceWndProc(Wind
|
|
|
case 4: /* ok click */
|
|
|
DoCommandP(0, 0, WP(w,facesel_d).face, NULL, CMD_SET_PLAYER_FACE);
|
|
|
DeleteWindow(w);
|
|
|
break;
|
|
|
case 5: /* male click */
|
|
|
case 6: /* female click */
|
|
|
WP(w,facesel_d).gender = e->we.click.widget - 5;
|
|
|
RaiseWindowWidget(w, WP(w, facesel_d).gender + 5);
|
|
|
WP(w, facesel_d).gender = e->we.click.widget - 5;
|
|
|
LowerWindowWidget(w, WP(w, facesel_d).gender + 5);
|
|
|
SetWindowDirty(w);
|
|
|
break;
|
|
|
case 7:
|
|
|
WP(w,facesel_d).face = (WP(w,facesel_d).gender << 31) + GB(InteractiveRandom(), 0, 31);
|
|
|
SetWindowDirty(w);
|
|
|
break;
|
|
@@ -718,13 +724,13 @@ static void PlayerCompanyWndProc(Window
|
|
|
case 4: {/* change color */
|
|
|
Window *wf = AllocateWindowDescFront(&_select_player_livery_desc, w->window_number);
|
|
|
if (wf != NULL) {
|
|
|
wf->caption_color = wf->window_number;
|
|
|
WP(wf,livery_d).livery_class = LC_OTHER;
|
|
|
WP(wf,livery_d).sel = 1;
|
|
|
wf->click_state = 1 << 2;
|
|
|
LowerWindowWidget(wf, 2);
|
|
|
}
|
|
|
} break;
|
|
|
|
|
|
case 5: {/* change president name */
|
|
|
const Player *p = GetPlayer(w->window_number);
|
|
|
WP(w, def_d).byte_1 = 0;
|