4jcraft/Minecraft.World/Util/CombatEntry.cpp
MatthewBeshay dfb0e3b03e refactor: replace NULL with nullptr across C++ codebase
Excludes vendored C libs (zlib, Miles, DirectXMath, boost, Iggy).
2026-03-30 16:25:52 +11:00

52 lines
1.6 KiB
C++

#include "../Platform/stdafx.h"
#include "../Headers/net.minecraft.world.damagesource.h"
#include "../Headers/net.minecraft.world.entity.h"
#include "CombatEntry.h"
#include <limits>
CombatEntry::CombatEntry(DamageSource* source, int time, float health,
float damage, CombatTracker::eLOCATION location,
float fallDistance) {
this->source = nullptr;
if (source != nullptr) {
// 4J: this might actually be a derived damage source so use copy func
this->source = source->copy();
}
this->time = time;
this->damage = damage;
this->health = health;
this->location = location;
this->fallDistance = fallDistance;
}
CombatEntry::~CombatEntry() { delete source; }
DamageSource* CombatEntry::getSource() { return source; }
int CombatEntry::getTime() { return time; }
float CombatEntry::getDamage() { return damage; }
float CombatEntry::getHealthBeforeDamage() { return health; }
float CombatEntry::getHealthAfterDamage() { return health - damage; }
bool CombatEntry::isCombatRelated() {
return source->getEntity() &&
source->getEntity()->instanceof(eTYPE_LIVINGENTITY);
}
CombatTracker::eLOCATION CombatEntry::getLocation() { return location; }
std::wstring CombatEntry::getAttackerName() {
return getSource()->getEntity() == nullptr
? L""
: getSource()->getEntity()->getNetworkName();
}
float CombatEntry::getFallDistance() {
if (source == DamageSource::outOfWorld)
return std::numeric_limits<float>::max();
return fallDistance;
}