DEFINE_ACTION_FUNCTION(AActor, A_Srcr2Decide) { static const int chance[] = { 192, 120, 120, 120, 64, 64, 32, 16, 0 }; unsigned int chanceindex = self->health / ((self->SpawnHealth()/8 == 0) ? 1 : self->SpawnHealth()/8); if (chanceindex >= countof(chance)) { chanceindex = countof(chance) - 1; } if (pr_s2d() < chance[chanceindex]) { P_DSparilTeleport (self); } }
void A_Srcr2Decide (AActor *actor) { static const int chance[] = { 192, 120, 120, 120, 64, 64, 32, 16, 0 }; unsigned int chanceindex = actor->health / (actor->GetDefault()->health/8); if (chanceindex >= countof(chance)) { chanceindex = countof(chance) - 1; } if (pr_s2d() < chance[chanceindex]) { P_DSparilTeleport (actor); } }