void checkpoint_use(gentity_t *ent, gentity_t *other, gentity_t *activator) { int holderteam; int time; // Nico, silent GCC (void)other; if (!activator->client) { return; } if (ent->count < 0) { checkpoint_touch(ent, activator, NULL); } holderteam = activator->client->sess.sessionTeam; if (ent->count == holderteam) { return; } if (ent->count2 == level.time) { if (holderteam == TEAM_AXIS) { time = ent->health / 2; time++; trap_SendServerCommand(activator - g_entities, va("cp \"Flag will be held in %i seconds!\n\"", time)); } else { time = (10 - ent->health) / 2; time++; trap_SendServerCommand(activator - g_entities, va("cp \"Flag will be held in %i seconds!\n\"", time)); } return; } if (holderteam == TEAM_AXIS) { ent->health--; if (ent->health < 0) { checkpoint_touch(ent, activator, NULL); return; } time = ent->health / 2; time++; trap_SendServerCommand(activator - g_entities, va("cp \"Flag will be held in %i seconds!\n\"", time)); } else { ent->health++; if (ent->health > 10) { checkpoint_touch(ent, activator, NULL); return; } time = (10 - ent->health) / 2; time++; trap_SendServerCommand(activator - g_entities, va("cp \"Flag will be held in %i seconds!\n\"", time)); } ent->count2 = level.time; ent->think = checkpoint_use_think; ent->nextthink = level.time + 2000; }
void checkpoint_use( gentity_t *ent, gentity_t *other, gentity_t *activator ) { checkpoint_touch( ent, activator, NULL ); }
/** * @brief checkpoint_use * @param[in,out] ent * @param[out] other * @param[in] activator */ void checkpoint_use(gentity_t *ent, gentity_t *other, gentity_t *activator) { int holderteam; int time; if (!activator->client) { return; } if (ent->count < 0) { checkpoint_touch(ent, activator, NULL); } holderteam = activator->client->sess.sessionTeam; if (ent->count == holderteam) { return; } if (ent->count2 == level.time) { if (holderteam == TEAM_AXIS) { time = ent->health / 2; time++; trap_SendServerCommand(activator - g_entities, va("cp \"Flag will be held in %i seconds!\"", time)); } else { time = (10 - ent->health) / 2; time++; trap_SendServerCommand(activator - g_entities, va("cp \"Flag will be held in %i seconds!\"", time)); } return; } if (holderteam == TEAM_AXIS) { ent->health--; if (ent->health < 0) { checkpoint_touch(ent, activator, NULL); return; } time = ent->health / 2; time++; trap_SendServerCommand(activator - g_entities, va("cp \"Flag will be held in %i seconds!\"", time)); } else { ent->health++; if (ent->health > 10) { checkpoint_touch(ent, activator, NULL); return; } time = (10 - ent->health) / 2; time++; trap_SendServerCommand(activator - g_entities, va("cp \"Flag will be held in %i seconds!\"", time)); } ent->count2 = level.time; ent->think = checkpoint_use_think; ent->nextthink = level.time + 2000; // reset player disguise on touching flag other->client->ps.powerups[PW_OPS_DISGUISED] = 0; other->client->disguiseClientNum = -1; }