bool GAMECONTROLLER::can_spawn(PLAYER *player, vec2 *out_pos) { SPAWNEVAL eval; // spectators can't spawn if(player->team == -1) return false; if(player->arest) { evaluate_spawn_type(&eval, 1); evaluate_spawn_type(&eval, 2); } else { evaluate_spawn_type(&eval, 0); } *out_pos = eval.pos; return eval.got; }
bool GAMECONTROLLER::can_spawn(PLAYER *player, vec2 *out_pos) { SPAWNEVAL eval; // spectators can't spawn if(player->team == -1) return false; if(is_teamplay()) { eval.friendly_team = player->team; // try first try own team spawn, then normal spawn and then enemy evaluate_spawn_type(&eval, 1+(player->team&1)); if(!eval.got) { evaluate_spawn_type(&eval, 0); if(!eval.got) evaluate_spawn_type(&eval, 1+((player->team+1)&1)); } } else { evaluate_spawn_type(&eval, 0); evaluate_spawn_type(&eval, 1); evaluate_spawn_type(&eval, 2); } *out_pos = eval.pos; return eval.got; }