本文整理汇总了C++中CShipClass::GetHullSection方法的典型用法代码示例。如果您正苦于以下问题:C++ CShipClass::GetHullSection方法的具体用法?C++ CShipClass::GetHullSection怎么用?C++ CShipClass::GetHullSection使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CShipClass
的用法示例。
在下文中一共展示了CShipClass::GetHullSection方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: SetRegionsFromArmor
void CGSelectorArea::SetRegionsFromArmor (CSpaceObject *pSource)
// SetRegionsFromArmor
//
// Generates regions showing armor and shields for the given ship.
{
int i;
ASSERT(pSource);
if (pSource == NULL)
return;
CShip *pShip = pSource->AsShip();
if (pShip == NULL)
return;
CShipClass *pClass = pShip->GetClass();
// Compute some metrics.
//
// We place the shield generator in the center and the armor segments in a
// circle around it.
const RECT &rcRect = GetRect();
int cxArea = RectWidth(rcRect);
int cyArea = RectHeight(rcRect);
const int iRadius = WIDE_COLUMN_SPACING;
// Now add all the armor segments
for (i = 0; i < pShip->GetArmorSectionCount(); i++)
{
SEntry *pEntry = m_Regions.Insert();
CInstalledArmor *pArmor = pShip->GetArmorSection(i);
pEntry->iType = typeInstalledItem;
pEntry->pItemCtx = new CItemCtx(pShip, pArmor);
// Position the armor segment in a circle (add 90 degrees because the
// ship image points up).
const CShipArmorSegmentDesc &Section = pClass->GetHullSection(i);
int iCenterAngle = 90 + Section.GetCenterAngle();
int xCenter;
int yCenter;
IntPolarToVector(iCenterAngle, iRadius, &xCenter, &yCenter);
pEntry->rcRect.left = xCenter - (ITEM_ENTRY_WIDTH / 2);
pEntry->rcRect.top = -yCenter - (ITEM_ENTRY_HEIGHT / 2);
pEntry->rcRect.right = pEntry->rcRect.left + ITEM_ENTRY_WIDTH;
pEntry->rcRect.bottom = pEntry->rcRect.top + ITEM_ENTRY_HEIGHT;
}
// Add the shield generator last
SEntry *pEntry = m_Regions.Insert();
CInstalledDevice *pShields = pShip->GetNamedDevice(devShields);
if (pShields)
{
pEntry->iType = typeInstalledItem;
pEntry->pItemCtx = new CItemCtx(pShip, pShields);
}
else
{
pEntry->iType = typeEmptySlot;
pEntry->iSlotType = devShields;
}
pEntry->rcRect.left = -ITEM_ENTRY_WIDTH / 2;
pEntry->rcRect.top = -ITEM_ENTRY_HEIGHT / 2;
pEntry->rcRect.right = pEntry->rcRect.left + ITEM_ENTRY_WIDTH;
pEntry->rcRect.bottom = pEntry->rcRect.top + ITEM_ENTRY_HEIGHT;
}