fixin critical bugs, non critical bugs, sendmail implementation

This commit is contained in:
Paul 2026-03-28 11:35:10 +03:00
parent b2710258dc
commit 888a78d775
15 changed files with 116 additions and 119 deletions

View file

@ -226,10 +226,8 @@ bool CharacterRenderer::initialize(VkContext* ctx, VkDescriptorSetLayout perFram
// --- Load shaders ---
rendering::VkShaderModule charVert, charFrag;
charVert.loadFromFile(device, "assets/shaders/character.vert.spv");
charFrag.loadFromFile(device, "assets/shaders/character.frag.spv");
if (!charVert.isValid() || !charFrag.isValid()) {
if (!charVert.loadFromFile(device, "assets/shaders/character.vert.spv") ||
!charFrag.loadFromFile(device, "assets/shaders/character.frag.spv")) {
LOG_ERROR("Character: Missing required shaders, cannot initialize");
return false;
}
@ -3287,10 +3285,8 @@ void CharacterRenderer::recreatePipelines() {
// --- Load shaders ---
rendering::VkShaderModule charVert, charFrag;
charVert.loadFromFile(device, "assets/shaders/character.vert.spv");
charFrag.loadFromFile(device, "assets/shaders/character.frag.spv");
if (!charVert.isValid() || !charFrag.isValid()) {
if (!charVert.loadFromFile(device, "assets/shaders/character.vert.spv") ||
!charFrag.loadFromFile(device, "assets/shaders/character.frag.spv")) {
LOG_ERROR("CharacterRenderer::recreatePipelines: missing required shaders");
return;
}

View file

@ -273,9 +273,12 @@ void ChargeEffect::recreatePipelines() {
// ---- Rebuild ribbon trail pipeline (TRIANGLE_STRIP) ----
{
VkShaderModule vertModule;
vertModule.loadFromFile(device, "assets/shaders/charge_ribbon.vert.spv");
VkShaderModule fragModule;
fragModule.loadFromFile(device, "assets/shaders/charge_ribbon.frag.spv");
if (!vertModule.loadFromFile(device, "assets/shaders/charge_ribbon.vert.spv") ||
!fragModule.loadFromFile(device, "assets/shaders/charge_ribbon.frag.spv")) {
LOG_ERROR("ChargeEffect::recreatePipelines: failed to load ribbon shader modules");
return;
}
VkPipelineShaderStageCreateInfo vertStage = vertModule.stageInfo(VK_SHADER_STAGE_VERTEX_BIT);
VkPipelineShaderStageCreateInfo fragStage = fragModule.stageInfo(VK_SHADER_STAGE_FRAGMENT_BIT);
@ -323,9 +326,12 @@ void ChargeEffect::recreatePipelines() {
// ---- Rebuild dust puff pipeline (POINT_LIST) ----
{
VkShaderModule vertModule;
vertModule.loadFromFile(device, "assets/shaders/charge_dust.vert.spv");
VkShaderModule fragModule;
fragModule.loadFromFile(device, "assets/shaders/charge_dust.frag.spv");
if (!vertModule.loadFromFile(device, "assets/shaders/charge_dust.vert.spv") ||
!fragModule.loadFromFile(device, "assets/shaders/charge_dust.frag.spv")) {
LOG_ERROR("ChargeEffect::recreatePipelines: failed to load dust shader modules");
return;
}
VkPipelineShaderStageCreateInfo vertStage = vertModule.stageInfo(VK_SHADER_STAGE_VERTEX_BIT);
VkPipelineShaderStageCreateInfo fragStage = fragModule.stageInfo(VK_SHADER_STAGE_FRAGMENT_BIT);

View file

@ -158,9 +158,12 @@ void LensFlare::recreatePipelines() {
}
VkShaderModule vertModule;
vertModule.loadFromFile(device, "assets/shaders/lens_flare.vert.spv");
VkShaderModule fragModule;
fragModule.loadFromFile(device, "assets/shaders/lens_flare.frag.spv");
if (!vertModule.loadFromFile(device, "assets/shaders/lens_flare.vert.spv") ||
!fragModule.loadFromFile(device, "assets/shaders/lens_flare.frag.spv")) {
LOG_ERROR("LensFlare::recreatePipelines: failed to load shader modules");
return;
}
VkPipelineShaderStageCreateInfo vertStage = vertModule.stageInfo(VK_SHADER_STAGE_VERTEX_BIT);
VkPipelineShaderStageCreateInfo fragStage = fragModule.stageInfo(VK_SHADER_STAGE_FRAGMENT_BIT);

View file

@ -277,9 +277,12 @@ void Lightning::recreatePipelines() {
// ---- Rebuild bolt pipeline (LINE_STRIP) ----
{
VkShaderModule vertModule;
vertModule.loadFromFile(device, "assets/shaders/lightning_bolt.vert.spv");
VkShaderModule fragModule;
fragModule.loadFromFile(device, "assets/shaders/lightning_bolt.frag.spv");
if (!vertModule.loadFromFile(device, "assets/shaders/lightning_bolt.vert.spv") ||
!fragModule.loadFromFile(device, "assets/shaders/lightning_bolt.frag.spv")) {
LOG_ERROR("Lightning::recreatePipelines: failed to load bolt shader modules");
return;
}
VkPipelineShaderStageCreateInfo vertStage = vertModule.stageInfo(VK_SHADER_STAGE_VERTEX_BIT);
VkPipelineShaderStageCreateInfo fragStage = fragModule.stageInfo(VK_SHADER_STAGE_FRAGMENT_BIT);
@ -315,9 +318,12 @@ void Lightning::recreatePipelines() {
// ---- Rebuild flash pipeline (TRIANGLE_STRIP) ----
{
VkShaderModule vertModule;
vertModule.loadFromFile(device, "assets/shaders/lightning_flash.vert.spv");
VkShaderModule fragModule;
fragModule.loadFromFile(device, "assets/shaders/lightning_flash.frag.spv");
if (!vertModule.loadFromFile(device, "assets/shaders/lightning_flash.vert.spv") ||
!fragModule.loadFromFile(device, "assets/shaders/lightning_flash.frag.spv")) {
LOG_ERROR("Lightning::recreatePipelines: failed to load flash shader modules");
return;
}
VkPipelineShaderStageCreateInfo vertStage = vertModule.stageInfo(VK_SHADER_STAGE_VERTEX_BIT);
VkPipelineShaderStageCreateInfo fragStage = fragModule.stageInfo(VK_SHADER_STAGE_FRAGMENT_BIT);

View file

@ -157,9 +157,12 @@ void MountDust::recreatePipelines() {
}
VkShaderModule vertModule;
vertModule.loadFromFile(device, "assets/shaders/mount_dust.vert.spv");
VkShaderModule fragModule;
fragModule.loadFromFile(device, "assets/shaders/mount_dust.frag.spv");
if (!vertModule.loadFromFile(device, "assets/shaders/mount_dust.vert.spv") ||
!fragModule.loadFromFile(device, "assets/shaders/mount_dust.frag.spv")) {
LOG_ERROR("MountDust::recreatePipelines: failed to load shader modules");
return;
}
VkPipelineShaderStageCreateInfo vertStage = vertModule.stageInfo(VK_SHADER_STAGE_VERTEX_BIT);
VkPipelineShaderStageCreateInfo fragStage = fragModule.stageInfo(VK_SHADER_STAGE_FRAGMENT_BIT);

View file

@ -193,9 +193,12 @@ void QuestMarkerRenderer::recreatePipelines() {
}
VkShaderModule vertModule;
vertModule.loadFromFile(device, "assets/shaders/quest_marker.vert.spv");
VkShaderModule fragModule;
fragModule.loadFromFile(device, "assets/shaders/quest_marker.frag.spv");
if (!vertModule.loadFromFile(device, "assets/shaders/quest_marker.vert.spv") ||
!fragModule.loadFromFile(device, "assets/shaders/quest_marker.frag.spv")) {
LOG_ERROR("QuestMarkerRenderer::recreatePipelines: failed to load shader modules");
return;
}
VkPipelineShaderStageCreateInfo vertStage = vertModule.stageInfo(VK_SHADER_STAGE_VERTEX_BIT);
VkPipelineShaderStageCreateInfo fragStage = fragModule.stageInfo(VK_SHADER_STAGE_FRAGMENT_BIT);

View file

@ -3129,7 +3129,6 @@ bool WMORenderer::checkWallCollision(const glm::vec3& from, const glm::vec3& to,
glm::vec3 moveDir = to - from;
float moveDistSq = glm::dot(moveDir, moveDir);
if (moveDistSq < 1e-6f) return false;
float moveDist = std::sqrt(moveDistSq);
// Player collision parameters — WoW-style horizontal cylinder
// Tighter radius when inside for more responsive indoor collision