本文整理汇总了C++中AInventory::PickupAnnouncerEntry方法的典型用法代码示例。如果您正苦于以下问题:C++ AInventory::PickupAnnouncerEntry方法的具体用法?C++ AInventory::PickupAnnouncerEntry怎么用?C++ AInventory::PickupAnnouncerEntry使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类AInventory
的用法示例。
在下文中一共展示了AInventory::PickupAnnouncerEntry方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GiveSpawner
void GiveSpawner (player_t *player, const PClass *type, int amount)
{
if (player->mo == NULL || player->health <= 0)
{
return;
}
AInventory *item = static_cast<AInventory *>
(Spawn (type, player->mo->x, player->mo->y, player->mo->z, NO_REPLACE));
if (item != NULL)
{
if (amount > 0)
{
if (type->IsDescendantOf (RUNTIME_CLASS(ABasicArmorPickup)))
{
if (static_cast<ABasicArmorPickup*>(item)->SaveAmount != 0)
{
static_cast<ABasicArmorPickup*>(item)->SaveAmount *= amount;
}
else
{
static_cast<ABasicArmorPickup*>(item)->SaveAmount *= amount;
}
}
else if (type->IsDescendantOf (RUNTIME_CLASS(ABasicArmorBonus)))
{
static_cast<ABasicArmorBonus*>(item)->SaveAmount *= amount;
// [BB]
static_cast<ABasicArmorBonus*>(item)->BonusCount *= amount;
}
else
{
item->Amount = MIN (amount, item->MaxAmount);
}
}
if(item->flags & MF_COUNTITEM) // Given items shouldn't count against the map's total,
{ // since they aren't added to the player's total.
level.total_items--;
item->flags &= ~MF_COUNTITEM;
}
if (!item->CallTryPickup (player->mo))
{
item->Destroy ();
}
else
{
// [BB] This construction is more or less a hack, but at least the give cheats are now working.
SERVER_GiveInventoryToPlayer( player, item );
// [BC] Play the announcer sound.
if ( players[consoleplayer].camera == players[consoleplayer].mo && cl_announcepickups )
ANNOUNCER_PlayEntry( cl_announcer, item->PickupAnnouncerEntry( ));
}
}
}