bool APowerupGiver::Use (bool pickup) { if (PowerupType == NULL) return true; // item is useless if (Owner == nullptr) return true; APowerup *power = static_cast<APowerup *> (Spawn (PowerupType)); if (EffectTics != 0) { power->EffectTics = EffectTics; } if (BlendColor != 0) { if (BlendColor != MakeSpecialColormap(65535)) power->BlendColor = BlendColor; else power->BlendColor = 0; } if (Mode != NAME_None) { power->Mode = Mode; } if (Strength != 0) { power->Strength = Strength; } power->ItemFlags |= ItemFlags & (IF_ALWAYSPICKUP|IF_ADDITIVETIME|IF_NOTELEPORTFREEZE); if (power->CallTryPickup (Owner)) { return true; } power->GoAwayAndDie (); return false; }
bool APowerupGiver::Use (bool pickup) { if (PowerupType == NULL) return true; // item is useless APowerup *power = static_cast<APowerup *> (Spawn (PowerupType, 0, 0, 0, NO_REPLACE)); if (EffectTics != 0) { power->EffectTics = EffectTics; } if (BlendColor != 0) { power->BlendColor = BlendColor; } if (Mode != NAME_None) { power->Mode = Mode; } if (Strength != 0) { power->Strength = Strength; } power->ItemFlags |= ItemFlags & (IF_ALWAYSPICKUP|IF_ADDITIVETIME); if (power->CallTryPickup (Owner)) { return true; } power->GoAwayAndDie (); return false; }