| 1096 | } |
| 1097 | |
| 1098 | void MainInterface::renderMessages() { |
| 1099 | if (m_messages.empty()) |
| 1100 | return; |
| 1101 | |
| 1102 | Vec2F totalOffset = {}; |
| 1103 | auto imgMetadata = Root::singleton().imageMetadataDatabase(); |
| 1104 | unsigned bottomOffset = Root::singleton().configuration()->getPath("inventory.bottomActionBar").optBool().value(false) ? 32 : 0; |
| 1105 | for (auto& message : m_messages) { |
| 1106 | Vec2F hiddenOffset = Vec2F(m_config->messageHiddenOffset); |
| 1107 | Vec2F activeOffset = Vec2F(m_config->messageActiveOffset); |
| 1108 | if (bottomOffset) { |
| 1109 | activeOffset[1] += bottomOffset; |
| 1110 | bottomOffset = 0; |
| 1111 | } |
| 1112 | Vec2F messageOffset = lerp(message->springState, Vec2F(), activeOffset - hiddenOffset); |
| 1113 | totalOffset += messageOffset; |
| 1114 | messageOffset = totalOffset + hiddenOffset; |
| 1115 | |
| 1116 | Vec2F backgroundCenterPos = Vec2F(windowWidth() * 0.5f + messageOffset[0] * interfaceScale(), messageOffset[1] * interfaceScale()); |
| 1117 | |
| 1118 | Vec2F backgroundTextCenterPos = backgroundCenterPos + Vec2F(m_config->messageTextContainerOffset * interfaceScale()); |
| 1119 | Vec2F messageTextOffset = backgroundTextCenterPos + Vec2F(m_config->messageTextOffset * interfaceScale()); |
| 1120 | |
| 1121 | if (message->cooldown > m_config->messageHideTime) |
| 1122 | message->springState = (message->springState * m_config->messageWindowSpring + 1.0f) / (m_config->messageWindowSpring + 1.0f); |
| 1123 | else |
| 1124 | message->springState = (message->springState * m_config->messageWindowSpring) / (m_config->messageWindowSpring + 1.0f); |
| 1125 | |
| 1126 | m_guiContext->drawQuad(m_config->messageTextContainer, |
| 1127 | RectF::withCenter(backgroundTextCenterPos, Vec2F(imgMetadata->imageSize(m_config->messageTextContainer) * interfaceScale()))); |
| 1128 | |
| 1129 | m_guiContext->setTextStyle(m_config->textStyle); |
| 1130 | m_guiContext->renderText(message->message, {messageTextOffset, HorizontalAnchor::HMidAnchor, VerticalAnchor::VMidAnchor}); |
| 1131 | } |
| 1132 | } |
| 1133 | |
| 1134 | void MainInterface::renderMonsterHealthBar() { |
| 1135 | auto assets = Root::singleton().assets(); |
nothing calls this directly
no test coverage detected