dd_bool P_TogglePower(player_t *player, powertype_t powerType) { DENG_ASSERT(player != 0); DENG_ASSERT(powerType >= PT_FIRST && powerType < NUM_POWER_TYPES); if(!player->powers[powerType]) { return P_GivePower(player, powerType); } else { return P_TakePower(player, powerType); } }
boolean Cht_PowerUpFunc(player_t *plyr, int i) { plyr->update |= PSF_POWERS; if(!plyr->powers[i]) { return P_GivePower(plyr, i); } else if(i == PT_STRENGTH || i == PT_FLIGHT) { return !(P_TakePower(plyr, i)); } else { plyr->powers[i] = 1; return true; } }