Changeset 291 for trunk/LocalPlayer
- Timestamp:
- Mar 2, 2021, 10:16:54 PM (4 years ago)
- File:
-
- 1 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;
Note:
See TracChangeset
for help on using the changeset viewer.