Clean up death messages
This commit is contained in:
parent
ba266db007
commit
19dd4b1d79
|
@ -11,63 +11,53 @@ static const char *monster_names[] = {"Zombie", "Creeper", "Skeleton", "Spider",
|
||||||
static std::string get_death_message(Player *player, Entity *cause, bool was_shot = false) {
|
static std::string get_death_message(Player *player, Entity *cause, bool was_shot = false) {
|
||||||
// Prepare Death Message
|
// Prepare Death Message
|
||||||
std::string message = player->username;
|
std::string message = player->username;
|
||||||
|
|
||||||
// The cause
|
|
||||||
if (cause) {
|
if (cause) {
|
||||||
// Entity cause
|
// Entity cause
|
||||||
int type_id = cause->vtable->getEntityTypeId(cause);
|
int type_id = cause->vtable->getEntityTypeId(cause);
|
||||||
int aux = cause->vtable->getAuxData(cause);
|
int aux = cause->vtable->getAuxData(cause);
|
||||||
if (cause->vtable->isPlayer(cause)) {
|
bool is_player = cause->vtable->isPlayer(cause);
|
||||||
// Another player
|
if (cause->vtable->getCreatureBaseType(cause) != 0 || is_player) {
|
||||||
|
// Killed by a creature
|
||||||
if (was_shot) {
|
if (was_shot) {
|
||||||
message += " was shot by ";
|
message += " was shot by ";
|
||||||
} else {
|
} else {
|
||||||
message += " was killed by ";
|
message += " was killed by ";
|
||||||
}
|
}
|
||||||
message += ((Player *) cause)->username;
|
if (is_player) {
|
||||||
} else if (cause->vtable->getCreatureBaseType(cause) == 1) {
|
// Killed by a player
|
||||||
// Killed by a monster
|
message += ((Player *) cause)->username;
|
||||||
if (was_shot) {
|
} else if (32 <= type_id && type_id <= 36) {
|
||||||
message += " was shot by a ";
|
// Normal monster
|
||||||
} else {
|
message += "a ";
|
||||||
message += " was killed by a ";
|
|
||||||
}
|
|
||||||
if (32 <= type_id && type_id <= 36) {
|
|
||||||
message += monster_names[type_id - 32];
|
message += monster_names[type_id - 32];
|
||||||
} else {
|
} else {
|
||||||
// Unknown monster
|
// Unknown creature
|
||||||
message += "Mysterious Beast";
|
message += "a Mysterious Beast";
|
||||||
}
|
}
|
||||||
|
return message;
|
||||||
} else if (aux) {
|
} else if (aux) {
|
||||||
// Throwable with owner
|
// Killed by a throwable with owner
|
||||||
Level *level = player->level;
|
Level *level = player->level;
|
||||||
Entity *shooter = Level_getEntity(level, aux);
|
Entity *shooter = Level_getEntity(level, aux);
|
||||||
return get_death_message(player, shooter, true);
|
return get_death_message(player, shooter, true);
|
||||||
} else if (80 <= type_id || type_id <= 82) {
|
|
||||||
// Throwable without owner
|
|
||||||
message += " was shot under mysterious circumstances";
|
|
||||||
} else if (type_id == 65) {
|
} else if (type_id == 65) {
|
||||||
// TNT
|
// Blown up by TNT
|
||||||
message += " was blown apart";
|
return message + " was blown apart";
|
||||||
} else if (cause->vtable->isHangingEntity(cause)) {
|
} else if (cause->vtable->isHangingEntity(cause)) {
|
||||||
// Painting?
|
// Painting?
|
||||||
message += " admired too much art";
|
return message + " admired too much art";
|
||||||
} else {
|
|
||||||
if (was_shot) {
|
|
||||||
message += " was shot under mysterious circumstances";
|
|
||||||
} else {
|
|
||||||
message += " was killed under mysterious circumstances";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (was_shot) {
|
||||||
|
// Throwable with invalid owner
|
||||||
|
return message + " was shot under mysterious circumstances";
|
||||||
|
} else if (cause) {
|
||||||
|
// Unknown entity
|
||||||
|
return message + " was killed";
|
||||||
} else {
|
} else {
|
||||||
// Non-entity cause
|
// Anything else
|
||||||
if (was_shot) {
|
return message + " has died";
|
||||||
// Throwable with invalid owner
|
|
||||||
message += " was shot under mysterious circumstances";
|
|
||||||
} else {
|
|
||||||
// Anything else
|
|
||||||
message += " has died";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Return
|
// Return
|
||||||
|
|
Loading…
Reference in New Issue