1
This commit is contained in:
parent
aee2a8a5b4
commit
11ec0e68ca
@ -2363,68 +2363,34 @@ void Human::OnDie()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
std::set<Human*> sent_over_humans;
|
{
|
||||||
if (!leave_) {
|
std::set<Human*> over_humans;
|
||||||
if (!HasNoDownedTeammate()) {
|
if (!leave_) {
|
||||||
if (team_members) {
|
if (!HasNoDownedTeammate()) {
|
||||||
for (auto& member : *team_members) {
|
if (team_members) {
|
||||||
if (sent_over_humans.find(member) != sent_over_humans.end()) {
|
for (auto& member : *team_members) {
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (member == this) {
|
|
||||||
member->SendGameOver();
|
|
||||||
sent_over_humans.insert(member);
|
|
||||||
} else {
|
|
||||||
if (member->real_dead) {
|
if (member->real_dead) {
|
||||||
member->SendGameOver();
|
over_humans.insert(member);
|
||||||
sent_over_humans.insert(member);
|
|
||||||
} else if (member->downed) {
|
|
||||||
#if 0
|
|
||||||
a8::XParams* timer_param = room->xtimer.MutableParams(member->downed_timer);
|
|
||||||
member->stats.killer_id = timer_param->param1;
|
|
||||||
member->stats.killer_name = timer_param->param2.GetString();
|
|
||||||
member->stats.weapon_id = timer_param->param2;
|
|
||||||
member->dead = true;
|
|
||||||
member->real_dead = true;
|
|
||||||
member->health = 0.0f;
|
|
||||||
member->dead_frameno = room->frame_no;
|
|
||||||
member->room->OnHumanDie(this);
|
|
||||||
member->SyncAroundPlayers(__FILE__, __LINE__, __func__);
|
|
||||||
member->SendGameOver();
|
|
||||||
if (member->downed_timer) {
|
|
||||||
room->xtimer.DeleteTimer(member->downed_timer);
|
|
||||||
}
|
|
||||||
member->downed_timer = nullptr;
|
|
||||||
sent_over_humans.insert(member);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
over_humans.insert(this);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
SendGameOver();
|
over_humans.insert(this);
|
||||||
sent_over_humans.insert(this);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
SendGameOver();
|
|
||||||
sent_over_humans.insert(this);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (room->GetAliveTeamNum() == 1) {
|
|
||||||
std::set<Human*>* alive_team = room->GetAliveTeam();
|
|
||||||
if (team_members != alive_team) {
|
|
||||||
if (sent_over_humans.find(this) == sent_over_humans.end()) {
|
|
||||||
SendGameOver();
|
|
||||||
sent_over_humans.insert(this);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (alive_team) {
|
if (room->GetAliveTeamNum() == 1) {
|
||||||
for (Human* member : *alive_team) {
|
std::set<Human*>* alive_team = room->GetAliveTeam();
|
||||||
if (sent_over_humans.find(member) == sent_over_humans.end()) {
|
if (alive_team) {
|
||||||
member->SendGameOver();
|
for (Human* member : *alive_team) {
|
||||||
sent_over_humans.insert(member);
|
over_humans.insert(member);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
for (Human* hum : over_humans) {
|
||||||
|
hum->SendGameOver();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
DeadDrop();
|
DeadDrop();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user