mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-04-17 01:23:51 +00:00
Add idle yawn emote and hearth home tooltip
This commit is contained in:
parent
189f4a0a58
commit
f6eaa2cf70
7 changed files with 40 additions and 3 deletions
|
|
@ -407,6 +407,13 @@ void Application::update(float deltaTime) {
|
|||
if (lastTaxiFlight_ && !onTaxi) {
|
||||
renderer->getCameraController()->clearMovementInputs();
|
||||
}
|
||||
bool idleOrbit = renderer->getCameraController()->isIdleOrbit();
|
||||
if (idleOrbit && !idleYawned_ && renderer) {
|
||||
renderer->playEmote("yawn");
|
||||
idleYawned_ = true;
|
||||
} else if (!idleOrbit) {
|
||||
idleYawned_ = false;
|
||||
}
|
||||
}
|
||||
if (renderer) {
|
||||
renderer->setTaxiFlight(onTaxi);
|
||||
|
|
|
|||
|
|
@ -582,9 +582,12 @@ void GameHandler::handlePacket(network::Packet& packet) {
|
|||
if (BindPointUpdateParser::parse(packet, data)) {
|
||||
LOG_INFO("Bindpoint updated: mapId=", data.mapId,
|
||||
" pos=(", data.x, ", ", data.y, ", ", data.z, ")");
|
||||
glm::vec3 canonical = core::coords::serverToCanonical(
|
||||
glm::vec3(data.x, data.y, data.z));
|
||||
hasHomeBind_ = true;
|
||||
homeBindMapId_ = data.mapId;
|
||||
homeBindPos_ = canonical;
|
||||
if (bindPointCallback_) {
|
||||
glm::vec3 canonical = core::coords::serverToCanonical(
|
||||
glm::vec3(data.x, data.y, data.z));
|
||||
bindPointCallback_(data.mapId, canonical.x, canonical.y, canonical.z);
|
||||
}
|
||||
addSystemChatMessage("Your home has been set.");
|
||||
|
|
|
|||
|
|
@ -531,6 +531,10 @@ void CameraController::update(float deltaTime) {
|
|||
if (m2Renderer) {
|
||||
m2H = m2Renderer->getFloorHeight(x, y, targetPos.z);
|
||||
}
|
||||
bool firstPerson = (!thirdPerson) || (currentDistance < 0.6f);
|
||||
if (firstPerson) {
|
||||
wmoH.reset();
|
||||
}
|
||||
auto base = selectReachableFloor(terrainH, wmoH, targetPos.z, stepUpBudget);
|
||||
bool fromM2 = false;
|
||||
if (m2H && *m2H <= targetPos.z + stepUpBudget && (!base || *m2H > *base)) {
|
||||
|
|
@ -607,6 +611,7 @@ void CameraController::update(float deltaTime) {
|
|||
// Skip entirely while swimming — the swim floor clamp handles vertical bounds.
|
||||
if (!swimming) {
|
||||
float stepUpBudget = grounded ? 1.6f : 1.2f;
|
||||
bool firstPerson = (!thirdPerson) || (currentDistance < 0.6f);
|
||||
|
||||
// 1. Center-only sample for terrain/WMO floor selection.
|
||||
// Using only the center prevents tunnel entrances from snapping
|
||||
|
|
@ -619,7 +624,7 @@ void CameraController::update(float deltaTime) {
|
|||
terrainH = terrainManager->getHeightAt(targetPos.x, targetPos.y);
|
||||
}
|
||||
float wmoProbeZ = std::max(targetPos.z, lastGroundZ) + stepUpBudget + 0.5f;
|
||||
if (wmoRenderer) {
|
||||
if (wmoRenderer && !firstPerson) {
|
||||
wmoH = wmoRenderer->getFloorHeight(targetPos.x, targetPos.y, wmoProbeZ);
|
||||
}
|
||||
groundH = selectReachableFloor(terrainH, wmoH, targetPos.z, stepUpBudget);
|
||||
|
|
|
|||
|
|
@ -1159,6 +1159,17 @@ void InventoryScreen::renderItemTooltip(const game::ItemDef& item) {
|
|||
ImVec4 qColor = getQualityColor(item.quality);
|
||||
ImGui::TextColored(qColor, "%s", item.name.c_str());
|
||||
|
||||
if (item.itemId == 6948 && gameHandler_) {
|
||||
uint32_t mapId = 0;
|
||||
glm::vec3 pos;
|
||||
if (gameHandler_->getHomeBind(mapId, pos)) {
|
||||
ImGui::TextColored(ImVec4(0.8f, 0.9f, 1.0f, 1.0f),
|
||||
"Home: map %u (%.1f, %.1f, %.1f)", mapId, pos.x, pos.y, pos.z);
|
||||
} else {
|
||||
ImGui::TextColored(ImVec4(0.7f, 0.7f, 0.7f, 1.0f), "Home: not set");
|
||||
}
|
||||
}
|
||||
|
||||
// Slot type
|
||||
if (item.inventoryType > 0) {
|
||||
const char* slotName = "";
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue