Пример #1
0
void AWeapon::EndPowerup ()
{
	if (SisterWeapon != NULL && WeaponFlags&WIF_POWERED_UP)
	{
		if (GetReadyState() != SisterWeapon->GetReadyState())
		{
			if (Owner->player->PendingWeapon == NULL ||
				Owner->player->PendingWeapon == WP_NOCHANGE)
				Owner->player->PendingWeapon = SisterWeapon;
		}
		else
		{
			DPSprite *psp = Owner->player->FindPSprite(PSP_WEAPON);
			if (psp != nullptr && psp->GetCaller() == Owner->player->ReadyWeapon)
			{
				// If the weapon changes but the state does not, we have to manually change the PSprite's caller here.
				psp->SetCaller(SisterWeapon);
				Owner->player->ReadyWeapon = SisterWeapon;
			}
			else
			{
				// Something went wrong. Initiate a regular weapon change.
				Owner->player->PendingWeapon = SisterWeapon;
			}
		}
	}
}
Пример #2
0
void AWeapon::EndPowerup ()
{
	if (SisterWeapon != NULL && WeaponFlags&WIF_POWERED_UP)
	{
		if (GetReadyState() != SisterWeapon->GetReadyState())
		{
			if (Owner->player->PendingWeapon == NULL ||
				Owner->player->PendingWeapon == WP_NOCHANGE)
				Owner->player->PendingWeapon = SisterWeapon;
		}
		else
		{
			Owner->player->ReadyWeapon = SisterWeapon;
		}
	}
}