diff --git a/src/p_acs.cpp b/src/p_acs.cpp index 4909a79d6..4cb34defa 100644 --- a/src/p_acs.cpp +++ b/src/p_acs.cpp @@ -4260,6 +4260,7 @@ enum EACSFunctions ACSF_CheckFlag, ACSF_SetLineActivation, ACSF_GetLineActivation, + ACSF_GetActorPowerupTics, // ZDaemon ACSF_GetTeamScore = 19620, // (int team) @@ -5325,6 +5326,27 @@ doplaysound: if (funcIndex == ACSF_PlayActorSound) } break; + case ACSF_GetActorPowerupTics: + if (argCount >= 2) + { + const PClass *powerupclass = PClass::FindClass(FBehavior::StaticLookupString(args[1])); + if (powerupclass == NULL || !RUNTIME_CLASS(APowerup)->IsAncestorOf(powerupclass)) + { + Printf("'%s' is not a type of Powerup.\n", FBehavior::StaticLookupString(args[1])); + return 0; + } + + AActor *actor = SingleActorFromTID(args[0], activator); + if (actor != NULL) + { + APowerup* powerup = (APowerup*)actor->FindInventory(powerupclass); + if (powerup != NULL) + return powerup->EffectTics; + } + return 0; + } + break; + default: break; }