/* virtual */ PixelPos COrder_Follow::Show(const CViewport &vp, const PixelPos &lastScreenPos) const { PixelPos targetPos; if (this->HasGoal()) { //Wyrmgus start if (this->GetGoal()->MapLayer != CurrentMapLayer) { return lastScreenPos; } //Wyrmgus end targetPos = vp.MapToScreenPixelPos(this->GetGoal()->GetMapPixelPosCenter()); } else { //Wyrmgus start if (this->MapLayer != CurrentMapLayer) { return lastScreenPos; } //Wyrmgus end targetPos = vp.TilePosToScreen_Center(this->goalPos); } //Wyrmgus start // Video.FillCircleClip(ColorGreen, lastScreenPos, 2); // Video.DrawLineClip(ColorGreen, lastScreenPos, targetPos); // Video.FillCircleClip(ColorGreen, targetPos, 3); if (Preference.ShowPathlines) { Video.FillCircleClip(ColorGreen, lastScreenPos, 2); Video.DrawLineClip(ColorGreen, lastScreenPos, targetPos); Video.FillCircleClip(ColorGreen, targetPos, 3); } //Wyrmgus end return targetPos; }
/* virtual */ PixelPos COrder_Move::Show(const CViewport &vp, const PixelPos &lastScreenPos) const { const PixelPos targetPos = vp.TilePosToScreen_Center(this->goalPos); Video.FillCircleClip(ColorGreen, lastScreenPos, 2); Video.DrawLineClip(ColorGreen, lastScreenPos, targetPos); Video.FillCircleClip(ColorGreen, targetPos, 3); return targetPos; }
/* virtual */ PixelPos COrder_Build::Show(const CViewport &vp, const PixelPos &lastScreenPos) const { PixelPos targetPos = vp.TilePosToScreen_Center(this->goalPos); targetPos.x += (this->GetUnitType().TileWidth - 1) * PixelTileSize.x / 2; targetPos.y += (this->GetUnitType().TileHeight - 1) * PixelTileSize.y / 2; const int w = this->GetUnitType().BoxWidth; const int h = this->GetUnitType().BoxHeight; DrawSelection(ColorGray, targetPos.x - w / 2, targetPos.y - h / 2, targetPos.x + w / 2, targetPos.y + h / 2); Video.FillCircleClip(ColorGreen, lastScreenPos, 2); Video.DrawLineClip(ColorGreen, lastScreenPos, targetPos); Video.FillCircleClip(ColorGreen, targetPos, 3); return targetPos; }
/* virtual */ PixelPos COrder_Board::Show(const CViewport &vp, const PixelPos &lastScreenPos) const { PixelPos targetPos; if (this->HasGoal()) { targetPos = vp.MapToScreenPixelPos(this->GetGoal()->GetMapPixelPosCenter()); } else { targetPos = vp.TilePosToScreen_Center(this->goalPos); } Video.FillCircleClip(ColorGreen, lastScreenPos, 2); Video.DrawLineClip(ColorGreen, lastScreenPos, targetPos); Video.FillCircleClip(ColorGreen, targetPos, 3); return targetPos; }
/* virtual */ PixelPos COrder_Attack::Show(const CViewport &vp, const PixelPos &lastScreenPos) const { PixelPos targetPos; if (this->HasGoal()) { targetPos = vp.MapToScreenPixelPos(this->GetGoal()->GetMapPixelPosCenter()); } else { targetPos = vp.TilePosToScreen_Center(this->goalPos); } Video.FillCircleClip(ColorRed, lastScreenPos, 2); Video.DrawLineClip(ColorRed, lastScreenPos, targetPos); Video.FillCircleClip(IsWeakTargetSelected() ? ColorBlue : ColorRed, targetPos, 3); return targetPos; }
/* virtual */ PixelPos COrder_Repair::Show(const CViewport &vp, const PixelPos &lastScreenPos) const { PixelPos targetPos; if (this->ReparableTarget != NULL) { targetPos = vp.MapToScreenPixelPos(this->ReparableTarget->GetMapPixelPosCenter()); } else { targetPos = vp.TilePosToScreen_Center(this->goalPos); } Video.FillCircleClip(ColorGreen, lastScreenPos, 2); Video.DrawLineClip(ColorGreen, lastScreenPos, targetPos); Video.FillCircleClip(ColorYellow, targetPos, 3); return targetPos; }