- Timestamp:
- Mar 2, 2021, 10:16:54 PM (4 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LocalPlayer/Term.pas
r290 r291 6438 6438 MapValid := false; 6439 6439 PaintAllMaps; 6440 end 6440 end; 6441 6441 end; 6442 6442 … … 6460 6460 mStay.ShortCut := BStay.ShortCut; 6461 6461 mNoOrders.ShortCut := BNoOrders.ShortCut; 6462 mCancel.ShortCut := BCancel.ShortCut; 6463 mPillage.ShortCut := BPillage.ShortCut; 6462 6464 mTechTree.ShortCut := BTechTree.ShortCut; 6463 6465 mWait.ShortCut := BWait.ShortCut; 6464 6466 mJump.ShortCut := BJump.ShortCut;; 6467 mDebugMap.ShortCut := BDebugMap.ShortCut; 6468 mLocCodes.ShortCut := BLocCodes.ShortCut; 6469 mNames.ShortCut := BNames.ShortCut; 6470 mRun.ShortCut := BRun.ShortCut; 6471 mAirBase.ShortCut := BAirBase.ShortCut; 6472 mCity.ShortCut := BBuildCity.ShortCut; 6473 mEnhance.ShortCut := BEnhance.ShortCut; 6474 mGoOn.ShortCut := BGoOn.ShortCut; 6475 mHome.ShortCut := BHome.ShortCut; 6476 mFarm.ShortCut := BFarmClearIrrigation.ShortCut; 6477 mClear.ShortCut := BFarmClearIrrigation.ShortCut; 6478 mIrrigation.ShortCut := BFarmClearIrrigation.ShortCut; 6479 mLoad.ShortCut := BLoad.ShortCut; 6480 mAfforest.ShortCut := BAfforestMine.ShortCut; 6481 mMine.ShortCut := BAfforestMine.ShortCut; 6482 mCanal.ShortCut := BCanal.ShortCut; 6483 MTrans.ShortCut := BTrans.ShortCut; 6484 mPollution.ShortCut := BPollution.ShortCut; 6485 mRR.ShortCut := BRailRoad.ShortCut; 6486 mRoad.ShortCut := BRailRoad.ShortCut; 6487 mUnload.ShortCut := BUnload.ShortCut; 6488 mRecover.ShortCut := BRecover.ShortCut; 6489 mUtilize.ShortCut := BUtilize.ShortCut; 6465 6490 end; 6466 6491 … … 6475 6500 end; 6476 6501 6502 procedure SetViewpointMe(p: Integer); 6503 begin 6504 if p = me then SetViewpoint(p) 6505 else SetViewpoint(p); 6506 end; 6507 6508 procedure DoMoveUnit(X, Y: Integer); 6509 begin 6510 DestinationMarkON := False; 6511 PaintDestination; 6512 MyUn[UnFocus].Status := MyUn[UnFocus].Status and 6513 ($FFFF - usStay - usRecover - usGoto - usEnhance) or usWaiting; 6514 MoveUnit(X, Y, muAutoNext); 6515 end; 6516 6477 6517 var 6478 dx, dy: integer; 6479 time0, time1: TDateTime; 6518 Time0, Time1: TDateTime; 6480 6519 ShortCut: TShortCut; 6481 6520 begin 6482 6521 ShortCut := KeyToShortCut(Key, Shift); 6483 6522 6484 if GameMode = cMovie then 6485 begin 6486 case Key of 6487 VK_F4: MenuClick_Check(StatPopup, mScienceStat); 6488 VK_F6: MenuClick_Check(StatPopup, mDiagram); 6489 VK_F7: MenuClick_Check(StatPopup, mWonders); 6490 VK_F8: MenuClick_Check(StatPopup, mShips); 6491 end; 6492 exit; 6493 end; 6494 6495 if not idle then exit; 6523 if GameMode = cMovie then begin 6524 if BScienceStat.Test(ShortCut) then MenuClick_Check(StatPopup, mScienceStat) 6525 else if BDiagram.Test(ShortCut) then MenuClick_Check(StatPopup, mDiagram) 6526 else if BWonders.Test(ShortCut) then MenuClick_Check(StatPopup, mWonders) 6527 else if BShips.Test(ShortCut) then MenuClick_Check(StatPopup, mShips); 6528 Exit; 6529 end; 6530 6531 if not Idle then Exit; 6496 6532 6497 6533 if ClientMode = cEditMap then begin 6498 if ShortCut = BResign.ShortCutthen MenuClick(mResign)6499 else if ShortCut = BRandomMap.ShortCutthen MenuClick(mRandomMap)6500 else if ShortCut = BHelp.ShortCutthen MenuClick(mHelp);6534 if BResign.Test(ShortCut) then MenuClick(mResign) 6535 else if BRandomMap.Test(ShortCut) then MenuClick(mRandomMap) 6536 else if BHelp.Test(ShortCut) then MenuClick(mHelp); 6501 6537 (*if Shift = [ssCtrl] then 6502 6538 case char(Key) of … … 6516 6552 end; 6517 6553 *) 6518 6519 6554 Exit; 6520 6555 end; 6521 6556 6522 if ShortCut = BEndTurn.ShortCut then EndTurn 6523 else if ShortCut = BHelp.ShortCut then MenuClick(mHelp) 6524 else if ShortCut = BUnitStat.ShortCut then MenuClick_Check(StatPopup, mUnitStat) 6525 else if ShortCut = BCityStat.ShortCut then MenuClick_Check(StatPopup, mCityStat) 6526 else if ShortCut = BScienceStat.ShortCut then MenuClick_Check(StatPopup, mScienceStat) 6527 else if ShortCut = BEUnitStat.ShortCut then MenuClick_Check(StatPopup, mEUnitStat) 6528 else if ShortCut = BDiagram.ShortCut then MenuClick_Check(StatPopup, mDiagram) 6529 else if ShortCut = BWonders.ShortCut then MenuClick_Check(StatPopup, mWonders) 6530 else if ShortCut = BShips.ShortCut then MenuClick_Check(StatPopup, mShips) 6531 else if ShortCut = BNations.ShortCut then MenuClick_Check(StatPopup, mNations) 6532 else if ShortCut = BEmpire.ShortCut then MenuClick_Check(StatPopup, mEmpire); 6533 6534 if Shift = [ssAlt] then begin 6535 case char(Key) of 6536 '0': SetDebugMap(-1); 6537 '1'..'9': SetDebugMap(ord(Key) - 48); 6557 if BEndTurn.Test(ShortCut) then EndTurn 6558 else if BHelp.Test(ShortCut) then MenuClick(mHelp) 6559 else if BUnitStat.Test(ShortCut) then MenuClick_Check(StatPopup, mUnitStat) 6560 else if BCityStat.Test(ShortCut) then MenuClick_Check(StatPopup, mCityStat) 6561 else if BScienceStat.Test(ShortCut) then MenuClick_Check(StatPopup, mScienceStat) 6562 else if BEUnitStat.Test(ShortCut) then MenuClick_Check(StatPopup, mEUnitStat) 6563 else if BDiagram.Test(ShortCut) then MenuClick_Check(StatPopup, mDiagram) 6564 else if BWonders.Test(ShortCut) then MenuClick_Check(StatPopup, mWonders) 6565 else if BShips.Test(ShortCut) then MenuClick_Check(StatPopup, mShips) 6566 else if BNations.Test(ShortCut) then MenuClick_Check(StatPopup, mNations) 6567 else if BEmpire.Test(ShortCut) then MenuClick_Check(StatPopup, mEmpire) 6568 6569 else if BSetDebugMap0.Test(ShortCut) then SetDebugMap(-1) 6570 else if BSetDebugMap1.Test(ShortCut) then SetDebugMap(1) 6571 else if BSetDebugMap2.Test(ShortCut) then SetDebugMap(2) 6572 else if BSetDebugMap3.Test(ShortCut) then SetDebugMap(3) 6573 else if BSetDebugMap4.Test(ShortCut) then SetDebugMap(4) 6574 else if BSetDebugMap5.Test(ShortCut) then SetDebugMap(5) 6575 else if BSetDebugMap6.Test(ShortCut) then SetDebugMap(6) 6576 else if BSetDebugMap7.Test(ShortCut) then SetDebugMap(7) 6577 else if BSetDebugMap8.Test(ShortCut) then SetDebugMap(8) 6578 else if BSetDebugMap9.Test(ShortCut) then SetDebugMap(9) 6579 6580 else if BJump.Test(ShortCut) then MenuClick(mJump) 6581 else if BDebugMap.Test(ShortCut) then mShowClick(mDebugMap) 6582 else if BLocCodes.Test(ShortCut) then mShowClick(mLocCodes) 6583 else if BLogDlg.Test(ShortCut) then begin 6584 if LogDlg.Visible then LogDlg.Close 6585 else LogDlg.Show; 6586 end 6587 else if BNames.Test(ShortCut) then mNamesClick(mNames) 6588 else if BResign.Test(ShortCut) then MenuClick_Check(GamePopup, mResign) 6589 else if BRun.Test(ShortCut) then MenuClick(mRun) 6590 else if BTestMapRepaint.Test(ShortCut) then begin // test map repaint time 6591 Time0 := NowPrecise; 6592 MapValid := False; 6593 MainOffscreenPaint; 6594 Time1 := NowPrecise; 6595 SimpleMessage(Format('Map repaint time: %.3f ms', 6596 [(Time1 - Time0) / OneMillisecond])); 6597 end 6598 else if BSetViewpoint0.Test(ShortCut) then SetViewpointMe(0) 6599 else if BSetViewpoint1.Test(ShortCut) then SetViewpointMe(1) 6600 else if BSetViewpoint2.Test(ShortCut) then SetViewpointMe(2) 6601 else if BSetViewpoint3.Test(ShortCut) then SetViewpointMe(3) 6602 else if BSetViewpoint4.Test(ShortCut) then SetViewpointMe(4) 6603 else if BSetViewpoint5.Test(ShortCut) then SetViewpointMe(5) 6604 else if BSetViewpoint6.Test(ShortCut) then SetViewpointMe(6) 6605 else if BSetViewpoint7.Test(ShortCut) then SetViewpointMe(7) 6606 else if BSetViewpoint8.Test(ShortCut) then SetViewpointMe(8) 6607 else if BSetViewpoint9.Test(ShortCut) then SetViewpointMe(9) 6608 6609 else if BMapBtn0.Test(ShortCut) then MapBtnClick(MapBtn0) 6610 else if BMapBtn1.Test(ShortCut) then MapBtnClick(MapBtn1) 6611 else if BMapBtn4.Test(ShortCut) then MapBtnClick(MapBtn4) 6612 else if BMapBtn5.Test(ShortCut) then MapBtnClick(MapBtn5) 6613 else if BMapBtn6.Test(ShortCut) then MapBtnClick(MapBtn6) 6614 else if BTechTree.Test(ShortCut) then MenuClick(mTechTree) 6615 else if BWait.Test(ShortCut) then MenuClick(mWait); 6616 6617 if UnFocus >= 0 then begin 6618 if BDisbandUnit.Test(ShortCut) then MenuClick(mDisband) 6619 else if BFortify.Test(ShortCut) then MenuClick_Check(TerrainPopup, mFort) 6620 else if BCenterUnit.Test(ShortCut) then MenuClick(mCentre) 6621 else if BStay.Test(ShortCut) then MenuClick(mStay) 6622 else if BNoOrders.Test(ShortCut) then MenuClick(mNoOrders) 6623 else if BCancel.Test(ShortCut) then MenuClick_Check(UnitPopup, mCancel) 6624 else if BPillage.Test(ShortCut) then MenuClick_Check(UnitPopup, mPillage) 6625 else if BSelectTransport.Test(ShortCut) then MenuClick_Check(UnitPopup, mSelectTransport) 6626 else if BAirBase.Test(ShortCut) then MenuClick_Check(TerrainPopup, mAirBase) 6627 else if BBuildCity.Test(ShortCut) then MenuClick_Check(UnitPopup, mCity) 6628 else if BEnhance.Test(ShortCut) then begin 6629 InitPopup(TerrainPopup); 6630 if mEnhance.Visible and mEnhance.Enabled then MenuClick(mEnhance) 6631 else MenuClick(mEnhanceDef) 6538 6632 end 6539 end else if Shift = [ssCtrl] then begin 6540 if ShortCut = BJump.ShortCut then MenuClick(mJump); 6541 case char(Key) of 6542 'K': mShowClick(mDebugMap); 6543 'L': mShowClick(mLocCodes); 6544 'M': if LogDlg.Visible then LogDlg.Close 6545 else LogDlg.Show; 6546 'N': mNamesClick(mNames); 6547 'Q': MenuClick_Check(GamePopup, mResign); 6548 'R': MenuClick(mRun); 6549 '0'..'9': begin 6550 if ord(Key) - 48 = me then SetViewpoint(0) 6551 else SetViewpoint(ord(Key) - 48); 6552 end; 6553 ' ': begin // test map repaint time 6554 time0 := NowPrecise; 6555 MapValid := false; 6556 MainOffscreenPaint; 6557 time1 := NowPrecise; 6558 SimpleMessage(Format('Map repaint time: %.3f ms', 6559 [(time1 - time0) / OneMillisecond])); 6560 end; 6633 else if BGoOn.Test(ShortCut) then MenuClick_Check(UnitPopup, mGoOn) 6634 else if BHome.Test(ShortCut) then MenuClick_Check(UnitPopup, mHome) 6635 else if BFarmClearIrrigation.Test(ShortCut) then begin 6636 if JobTest(UnFocus, jFarm, [eTreaty]) then 6637 MenuClick(mFarm) 6638 else if JobTest(UnFocus, jClear, [eTreaty]) then 6639 MenuClick(mClear) 6640 else MenuClick_Check(TerrainPopup, mIrrigation); 6561 6641 end 6562 end else if Shift = [] then begin 6563 case char(Key) of 6564 '1': MapBtnClick(MapBtn0); 6565 '2': MapBtnClick(MapBtn1); 6566 '3': MapBtnClick(MapBtn4); 6567 '4': MapBtnClick(MapBtn5); 6568 '5': MapBtnClick(MapBtn6); 6569 end; 6570 if ShortCut = BTechTree.ShortCut then MenuClick(mTechTree) 6571 else if ShortCut = BWait.ShortCut then MenuClick(mWait); 6572 end; 6573 6574 if UnFocus >= 0 then begin 6575 if ShortCut = BDisbandUnit.ShortCut then MenuClick(mDisband) 6576 else if ShortCut = BFortify.ShortCut then MenuClick_Check(TerrainPopup, mFort) 6577 else if ShortCut = BCenterUnit.ShortCut then MenuClick(mCentre) 6578 else if ShortCut = BStay.ShortCut then MenuClick(mStay) 6579 else if ShortCut = BNoOrders.ShortCut then MenuClick(mNoOrders); 6580 6581 if Shift = [ssCtrl] then begin 6582 case char(Key) of 6583 'C': MenuClick_Check(UnitPopup, mCancel); 6584 'P': MenuClick_Check(UnitPopup, mPillage); 6585 'T': MenuClick_Check(UnitPopup, mSelectTransport); 6586 end; 6587 end else if Shift = [] then begin 6588 case char(Key) of 6589 'A': MenuClick_Check(TerrainPopup, mAirBase); 6590 'B': MenuClick_Check(UnitPopup, mCity); 6591 'E': begin 6592 InitPopup(TerrainPopup); 6593 if mEnhance.Visible and mEnhance.Enabled then 6594 MenuClick(mEnhance) 6595 else MenuClick(mEnhanceDef) 6596 end; 6597 'G': MenuClick_Check(UnitPopup, mGoOn); 6598 'H': MenuClick_Check(UnitPopup, mHome); 6599 'I': if JobTest(UnFocus, jFarm, [eTreaty]) then 6600 MenuClick(mFarm) 6601 else if JobTest(UnFocus, jClear, [eTreaty]) then 6602 MenuClick(mClear) 6603 else MenuClick_Check(TerrainPopup, mIrrigation); 6604 'L': MenuClick_Check(UnitPopup, mLoad); 6605 'M': if JobTest(UnFocus, jAfforest, [eTreaty]) then 6606 MenuClick(mAfforest) 6607 else MenuClick_Check(TerrainPopup, mMine); 6608 'N': MenuClick_Check(TerrainPopup, mCanal); 6609 'O': MenuClick_Check(TerrainPopup, MTrans); 6610 'P': MenuClick_Check(TerrainPopup, mPollution); 6611 'R': if JobTest(UnFocus, jRR, [eTreaty]) then 6612 MenuClick(mRR) 6613 else MenuClick_Check(TerrainPopup, mRoad); 6614 'U': MenuClick_Check(UnitPopup, mUnload); 6615 'V': MenuClick_Check(UnitPopup, mRecover); 6616 'Z': MenuClick_Check(UnitPopup, mUtilize); 6617 #33 .. #40, #97 .. #100, #102 .. #105: 6618 begin { arrow keys } 6619 DestinationMarkON := false; 6620 PaintDestination; 6621 MyUn[UnFocus].Status := MyUn[UnFocus].Status and 6622 ($FFFF - usStay - usRecover - usGoto - usEnhance) or usWaiting; 6623 case Key of 6624 VK_NUMPAD1, VK_END: 6625 begin 6626 dx := -1; 6627 dy := 1 6628 end; 6629 VK_NUMPAD2, VK_DOWN: 6630 begin 6631 dx := 0; 6632 dy := 2 6633 end; 6634 VK_NUMPAD3, VK_NEXT: 6635 begin 6636 dx := 1; 6637 dy := 1 6638 end; 6639 VK_NUMPAD4, VK_LEFT: 6640 begin 6641 dx := -2; 6642 dy := 0 6643 end; 6644 VK_NUMPAD6, VK_RIGHT: 6645 begin 6646 dx := 2; 6647 dy := 0 6648 end; 6649 VK_NUMPAD7, VK_HOME: 6650 begin 6651 dx := -1; 6652 dy := -1 6653 end; 6654 VK_NUMPAD8, VK_UP: 6655 begin 6656 dx := 0; 6657 dy := -2 6658 end; 6659 VK_NUMPAD9, VK_PRIOR: 6660 begin 6661 dx := 1; 6662 dy := -1 6663 end; 6664 end; 6665 MoveUnit(dx, dy, muAutoNext) 6666 end; 6667 end; 6668 end; 6642 else if BLoad.Test(ShortCut) then MenuClick_Check(UnitPopup, mLoad) 6643 else if BAfforestMine.Test(ShortCut) then begin 6644 if JobTest(UnFocus, jAfforest, [eTreaty]) then MenuClick(mAfforest) 6645 else MenuClick_Check(TerrainPopup, mMine); 6646 end 6647 else if BCanal.Test(ShortCut) then MenuClick_Check(TerrainPopup, mCanal) 6648 else if BTrans.Test(ShortCut) then MenuClick_Check(TerrainPopup, MTrans) 6649 else if BPollution.Test(ShortCut) then MenuClick_Check(TerrainPopup, mPollution) 6650 else if BRailRoad.Test(ShortCut) then begin 6651 if JobTest(UnFocus, jRR, [eTreaty]) then MenuClick(mRR) 6652 else MenuClick_Check(TerrainPopup, mRoad); 6653 end 6654 else if BUnload.Test(ShortCut) then MenuClick_Check(UnitPopup, mUnload) 6655 else if BRecover.Test(ShortCut) then MenuClick_Check(UnitPopup, mRecover) 6656 else if BUtilize.Test(ShortCut) then MenuClick_Check(UnitPopup, mUtilize) 6657 else if BMoveLeftDown.Test(ShortCut) then DoMoveUnit(-1, 1) 6658 else if BMoveDown.Test(ShortCut) then DoMoveUnit(0, 2) 6659 else if BMoveRightDown.Test(ShortCut) then DoMoveUnit(1, 1) 6660 else if BMoveLeft.Test(ShortCut) then DoMoveUnit(-2, 0) 6661 else if BMoveRight.Test(ShortCut) then DoMoveUnit(2, 0) 6662 else if BMoveLeftUp.Test(ShortCut) then DoMoveUnit(-1, -1) 6663 else if BMoveUp.Test(ShortCut) then DoMoveUnit(0, -2) 6664 else if BMoveRightUp.Test(ShortCut) then DoMoveUnit(1, -1); 6669 6665 end; 6670 6666 end; -
trunk/UKeyBindings.pas
r290 r291 9 9 10 10 type 11 12 { TKeyBinding } 13 11 14 TKeyBinding = class 12 15 ShortName: string; 13 16 FullName: string; 14 17 ShortCut: TShortCut; 18 ShortCut2: TShortCut; 19 function Test(AShortCut: TShortCut): Boolean; 15 20 end; 16 21 … … 18 23 19 24 TKeyBindings = class(TFPGObjectList<TKeyBinding>) 20 function AddItem(const ShortName, FullName: string; ShortCut: TShortCut ): TKeyBinding; overload;21 function AddItem(const ShortName, FullName: string; ShortCutText: string ): TKeyBinding; overload;25 function AddItem(const ShortName, FullName: string; ShortCut: TShortCut; ShortCut2: TShortCut = 0): TKeyBinding; overload; 26 function AddItem(const ShortName, FullName: string; ShortCutText: string; ShortCutText2: string = ''): TKeyBinding; overload; 22 27 function Search(ShortName: string): TKeyBinding; 23 28 procedure LoadFromFile(FileName: string); … … 45 50 BStay: TKeyBinding; 46 51 BNoOrders: TKeyBinding; 52 BCancel: TKeyBinding; 53 BPillage: TKeyBinding; 54 BSelectTransport: TKeyBinding; 47 55 BTechTree: TKeyBinding; 48 56 BWait: TKeyBinding; 49 57 BJump: TKeyBinding; 58 BMapBtn0: TKeyBinding; 59 BMapBtn1: TKeyBinding; 60 BMapBtn4: TKeyBinding; 61 BMapBtn5: TKeyBinding; 62 BMapBtn6: TKeyBinding; 63 BSetDebugMap0: TKeyBinding; 64 BSetDebugMap1: TKeyBinding; 65 BSetDebugMap2: TKeyBinding; 66 BSetDebugMap3: TKeyBinding; 67 BSetDebugMap4: TKeyBinding; 68 BSetDebugMap5: TKeyBinding; 69 BSetDebugMap6: TKeyBinding; 70 BSetDebugMap7: TKeyBinding; 71 BSetDebugMap8: TKeyBinding; 72 BSetDebugMap9: TKeyBinding; 73 BDebugMap: TKeyBinding; 74 BLocCodes: TKeyBinding; 75 BLogDlg: TKeyBinding; 76 BNames: TKeyBinding; 77 BRun: TKeyBinding; 78 BTestMapRepaint: TKeyBinding; 79 BSetViewpoint0: TKeyBinding; 80 BSetViewpoint1: TKeyBinding; 81 BSetViewpoint2: TKeyBinding; 82 BSetViewpoint3: TKeyBinding; 83 BSetViewpoint4: TKeyBinding; 84 BSetViewpoint5: TKeyBinding; 85 BSetViewpoint6: TKeyBinding; 86 BSetViewpoint7: TKeyBinding; 87 BSetViewpoint8: TKeyBinding; 88 BSetViewpoint9: TKeyBinding; 89 BAirBase: TKeyBinding; 90 BBuildCity: TKeyBinding; 91 BEnhance: TKeyBinding; 92 BGoOn: TKeyBinding; 93 BHome: TKeyBinding; 94 BFarmClearIrrigation: TKeyBinding; 95 BLoad: TKeyBinding; 96 BAfforestMine: TKeyBinding; 97 BCanal: TKeyBinding; 98 BTrans: TKeyBinding; 99 BPollution: TKeyBinding; 100 BRailRoad: TKeyBinding; 101 BUnload: TKeyBinding; 102 BRecover: TKeyBinding; 103 BUtilize: TKeyBinding; 104 BMoveLeftDown: TKeyBinding; 105 BMoveDown: TKeyBinding; 106 BMoveRightDown: TKeyBinding; 107 BMoveRight: TKeyBinding; 108 BMoveRightUp: TKeyBinding; 109 BMoveUp: TKeyBinding; 110 BMoveLeftUp: TKeyBinding; 111 BMoveLeft: TKeyBinding; 50 112 51 113 52 114 implementation 53 115 116 { TKeyBinding } 117 118 function TKeyBinding.Test(AShortCut: TShortCut): Boolean; 119 begin 120 Result := (AShortCut = ShortCut) or (AShortCut = ShortCut2); 121 end; 122 54 123 { TKeyBindings } 55 124 56 function TKeyBindings.AddItem(const ShortName, FullName: string; ShortCut: TShortCut 57 ): TKeyBinding;125 function TKeyBindings.AddItem(const ShortName, FullName: string; ShortCut: TShortCut; 126 ShortCut2: TShortCut = 0): TKeyBinding; 58 127 begin 59 128 Result := TKeyBinding.Create; … … 61 130 Result.FullName := FullName; 62 131 Result.ShortCut := ShortCut; 132 Result.ShortCut2 := ShortCut2; 63 133 Add(Result); 64 134 end; 65 135 66 136 function TKeyBindings.AddItem(const ShortName, FullName: string; 67 ShortCutText: string): TKeyBinding; 68 begin 69 Result := AddItem(ShortName, FullName, TextToShortCut(ShortCutText)); 137 ShortCutText: string; ShortCutText2: string = ''): TKeyBinding; 138 begin 139 Result := AddItem(ShortName, FullName, TextToShortCut(ShortCutText), 140 TextToShortCut(ShortCutText2)); 70 141 end; 71 142 … … 141 212 BStay := AddItem('Stay', 'Stay', 'S'); 142 213 BNoOrders := AddItem('NoOrders', 'No orders', 'Space'); 214 BCancel := AddItem('Cancel', 'Cancel', 'Ctrl+C'); 215 BPillage := AddItem('Pillage', 'Pillage', 'Ctrl+P'); 216 BSelectTransport := AddItem('SelectTransport', 'Select transport', 'Ctrl+T'); 143 217 BTechTree := AddItem('TechTree', 'Tech tree', 'T'); 144 218 BWait := AddItem('Wait', 'Wait', 'W'); 145 219 BJump := AddItem('Jump', 'Jump 20 turns', 'Ctrl+J'); 220 BMapBtn0 := AddItem('MapButton1', 'Map button 1', '1'); 221 BMapBtn1 := AddItem('MapButton2', 'Map button 2', '2'); 222 BMapBtn4 := AddItem('MapButton3', 'Map button 3', '3'); 223 BMapBtn5 := AddItem('MapButton4', 'Map button 4', '4'); 224 BMapBtn6 := AddItem('MapButton5', 'Map button 5', '5'); 225 BSetDebugMap0 := AddItem('SetDebugMap0', 'Set debug map 0', '0'); 226 BSetDebugMap1 := AddItem('SetDebugMap1', 'Set debug map 1', '1'); 227 BSetDebugMap2 := AddItem('SetDebugMap2', 'Set debug map 2', '2'); 228 BSetDebugMap3 := AddItem('SetDebugMap3', 'Set debug map 3', '3'); 229 BSetDebugMap4 := AddItem('SetDebugMap4', 'Set debug map 4', '4'); 230 BSetDebugMap5 := AddItem('SetDebugMap5', 'Set debug map 5', '5'); 231 BSetDebugMap6 := AddItem('SetDebugMap6', 'Set debug map 6', '6'); 232 BSetDebugMap7 := AddItem('SetDebugMap7', 'Set debug map 7', '7'); 233 BSetDebugMap8 := AddItem('SetDebugMap8', 'Set debug map 8', '8'); 234 BSetDebugMap9 := AddItem('SetDebugMap9', 'Set debug map 9', '9'); 235 BDebugMap := AddItem('DebugMap', 'Debug map', 'Ctrl+K'); 236 BLocCodes := AddItem('LocCodes', 'Location codes', 'Ctrl+L'); 237 BLogDlg := AddItem('LogDlg', 'Log dialog', 'Ctrl+M'); 238 BNames := AddItem('ShowNames', 'Show names', 'Ctrl+N'); 239 BRun := AddItem('Run', 'Run', 'Ctrl+R'); 240 BTestMapRepaint := AddItem('TestMapRepaint', 'Test map reapaint', 'Ctrl+Space'); 241 BSetViewpoint0 := AddItem('SetViewpoint0', 'Set viewpoint 0', 'Ctrl+0'); 242 BSetViewpoint1 := AddItem('SetViewpoint1', 'Set viewpoint 1', 'Ctrl+1'); 243 BSetViewpoint2 := AddItem('SetViewpoint2', 'Set viewpoint 2', 'Ctrl+2'); 244 BSetViewpoint3 := AddItem('SetViewpoint3', 'Set viewpoint 3', 'Ctrl+3'); 245 BSetViewpoint4 := AddItem('SetViewpoint4', 'Set viewpoint', 'Ctrl+4'); 246 BSetViewpoint5 := AddItem('SetViewpoint0', 'Set viewpoint', 'Ctrl+5'); 247 BSetViewpoint6 := AddItem('SetViewpoint1', 'Set viewpoint', 'Ctrl+6'); 248 BSetViewpoint7 := AddItem('SetViewpoint2', 'Set viewpoint', 'Ctrl+7'); 249 BSetViewpoint8 := AddItem('SetViewpoint3', 'Set viewpoint', 'Ctrl+8'); 250 BSetViewpoint9 := AddItem('SetViewpoint4', 'Set viewpoint', 'Ctrl+9'); 251 BAirBase := AddItem('AirBase', 'Air base', 'A'); 252 BBuildCity := AddItem('BuildCity', 'Build city', 'B'); 253 BEnhance := AddItem('Enhance', 'Enhance', 'E'); 254 BGoOn := AddItem('GoOn', 'Go on', 'G'); 255 BHome := AddItem('Home', 'Home', 'H'); 256 BFarmClearIrrigation := AddItem('FarmClearIrrigation', 'Farm/Clear/Irrigation', 'I'); 257 BLoad := AddItem('Load', 'Load', 'L'); 258 BAfforestMine := AddItem('AfforestMine', 'Afforest/Mine', 'M'); 259 BCanal := AddItem('Canal', 'Canal', 'N'); 260 BTrans := AddItem('Trans', 'Trans', 'O'); 261 BPollution := AddItem('Pollution', 'Pollution', 'P'); 262 BRailRoad := AddItem('RailRoad', 'Rails/Road', 'R'); 263 BUnload := AddItem('Unload', 'Unload', 'U'); 264 BRecover := AddItem('Recover', 'Recover', 'V'); 265 BUtilize := AddItem('Utilize', 'Utilize', 'Z'); 266 BMoveLeftDown := AddItem('MoveLeftDown', 'Move unit left-down', 'Num1', 'End'); 267 BMoveDown := AddItem('MoveDown', 'Move unit down', 'Num2', 'Down'); 268 BMoveRightDown := AddItem('MoveRightDown', 'Move unit right-down', 'Num3', 'PgDn'); 269 BMoveRight := AddItem('MoveRight', 'Move unit right', 'Num6', 'Right'); 270 BMoveRightUp := AddItem('MoveRightUp', 'Move unit right-up', 'Num9', 'PgUp'); 271 BMoveUp := AddItem('MoveUp', 'Move unit up', 'Num8', 'Up'); 272 BMoveLeftUp := AddItem('MoveLeftUp', 'Move unit left-up', 'Num7', 'Home'); 273 BMoveLeft := AddItem('MoveLeft', 'Move unit left', 'Num4', 'Left'); 146 274 end; 147 275
Note:
See TracChangeset
for help on using the changeset viewer.