예제 #1
0
파일: hud.cpp 프로젝트: Supermanu/xoreos
void HUD::updateTargetObject() {
	if (_targetObject) {
		Door *door = ObjectContainer::toDoor(_targetObject);
		if (door && !door->isUsable())
			_targetObject = nullptr;
	}

	if (!_targetObject) {
		_targetCircle->hide();
		hideTargetInformation();
		return;
	}

	_targetCircle->setHovered(_hoveredObject == _targetObject);

	float sX, sY;
	bool onScreen = _targetCircle->moveTo(_targetObject, sX, sY);
	if (onScreen) {
		_targetCircle->show();
		updateTargetInformation(_targetObject, sX, sY);
		showTargetInformation(_targetObject);
	} else {
		_targetCircle->hide();
		hideTargetInformation();
	}
}
예제 #2
0
파일: hud.cpp 프로젝트: Supermanu/xoreos
void HUD::updateHoveredObject() {
	if (_hoveredObject) {
		Door *door = ObjectContainer::toDoor(_hoveredObject);
		if (door && !door->isUsable())
			_hoveredObject = nullptr;
	}

	if (!_hoveredObject || (_hoveredObject == _targetObject)) {
		_hoveredCircle->hide();
		return;
	}

	float _, __;
	bool onScreen = _hoveredCircle->moveTo(_hoveredObject, _, __);

	if (onScreen)
		_hoveredCircle->show();
	else
		_hoveredCircle->hide();
}