414 SetVScrollCount(w, count); |
414 SetVScrollCount(w, count); |
415 |
415 |
416 DrawWindowWidgets(w); |
416 DrawWindowWidgets(w); |
417 |
417 |
418 y = 15; |
418 y = 15; |
419 sel = WP(w,buildtrain_d).sel_index; |
419 sel = WP(w,buildvehicle_d).sel_index; |
420 pos = w->vscroll.pos; |
420 pos = w->vscroll.pos; |
421 selected_id = INVALID_ENGINE; |
421 selected_id = INVALID_ENGINE; |
422 for (e = ROAD_ENGINES_INDEX; e < ROAD_ENGINES_INDEX + NUM_ROAD_ENGINES; e++) { |
422 for (e = ROAD_ENGINES_INDEX; e < ROAD_ENGINES_INDEX + NUM_ROAD_ENGINES; e++) { |
423 if (!HASBIT(GetEngine(e)->player_avail, _local_player)) continue; |
423 if (!HASBIT(GetEngine(e)->player_avail, _local_player)) continue; |
424 if (sel == 0) selected_id = e; |
424 if (sel == 0) selected_id = e; |
460 case WE_CLICK: |
460 case WE_CLICK: |
461 switch (e->we.click.widget) { |
461 switch (e->we.click.widget) { |
462 case 2: { /* listbox */ |
462 case 2: { /* listbox */ |
463 uint i = (e->we.click.pt.y - 14) / 14; |
463 uint i = (e->we.click.pt.y - 14) / 14; |
464 if (i < w->vscroll.cap) { |
464 if (i < w->vscroll.cap) { |
465 WP(w,buildtrain_d).sel_index = i + w->vscroll.pos; |
465 WP(w,buildvehicle_d).sel_index = i + w->vscroll.pos; |
466 SetWindowDirty(w); |
466 SetWindowDirty(w); |
467 } |
467 } |
468 } break; |
468 } break; |
469 |
469 |
470 case 5: { /* build */ |
470 case 5: { /* build */ |
471 EngineID sel_eng = WP(w,buildtrain_d).sel_engine; |
471 EngineID sel_eng = WP(w,buildvehicle_d).sel_engine; |
472 if (sel_eng != INVALID_ENGINE) |
472 if (sel_eng != INVALID_ENGINE) |
473 DoCommandP(w->window_number, sel_eng, 0, CcBuildRoadVeh, CMD_BUILD_ROAD_VEH | CMD_MSG(STR_9009_CAN_T_BUILD_ROAD_VEHICLE)); |
473 DoCommandP(w->window_number, sel_eng, 0, CcBuildRoadVeh, CMD_BUILD_ROAD_VEH | CMD_MSG(STR_9009_CAN_T_BUILD_ROAD_VEHICLE)); |
474 } break; |
474 } break; |
475 |
475 |
476 case 6: { /* rename */ |
476 case 6: { /* rename */ |
477 EngineID sel_eng = WP(w,buildtrain_d).sel_engine; |
477 EngineID sel_eng = WP(w,buildvehicle_d).sel_engine; |
478 if (sel_eng != INVALID_ENGINE) { |
478 if (sel_eng != INVALID_ENGINE) { |
479 WP(w,buildtrain_d).rename_engine = sel_eng; |
479 WP(w,buildvehicle_d).rename_engine = sel_eng; |
480 ShowQueryString(GetCustomEngineName(sel_eng), |
480 ShowQueryString(GetCustomEngineName(sel_eng), |
481 STR_9036_RENAME_ROAD_VEHICLE_TYPE, 31, 160, w->window_class, w->window_number, CS_ALPHANUMERAL); |
481 STR_9036_RENAME_ROAD_VEHICLE_TYPE, 31, 160, w->window_class, w->window_number, CS_ALPHANUMERAL); |
482 } |
482 } |
483 } break; |
483 } break; |
484 } |
484 } |
485 break; |
485 break; |
486 |
486 |
487 case WE_ON_EDIT_TEXT: |
487 case WE_ON_EDIT_TEXT: |
488 if (e->we.edittext.str[0] != '\0') { |
488 if (e->we.edittext.str[0] != '\0') { |
489 _cmd_text = e->we.edittext.str; |
489 _cmd_text = e->we.edittext.str; |
490 DoCommandP(0, WP(w, buildtrain_d).rename_engine, 0, NULL, |
490 DoCommandP(0, WP(w, buildvehicle_d).rename_engine, 0, NULL, |
491 CMD_RENAME_ENGINE | CMD_MSG(STR_9037_CAN_T_RENAME_ROAD_VEHICLE)); |
491 CMD_RENAME_ENGINE | CMD_MSG(STR_9037_CAN_T_RENAME_ROAD_VEHICLE)); |
492 } |
492 } |
493 break; |
493 break; |
494 |
494 |
495 case WE_RESIZE: { |
495 case WE_RESIZE: { |