diff --git a/src/client/render/gl/passes/name-pass/index.ts b/src/client/render/gl/passes/name-pass/index.ts index 10598307c8..b9fd51c006 100644 --- a/src/client/render/gl/passes/name-pass/index.ts +++ b/src/client/render/gl/passes/name-pass/index.ts @@ -546,8 +546,8 @@ export class NamePass { this.maxPlayers, ambient, ); - this.iconProgram.draw(cameraMatrix, this.settings, this.vao); this.statusIconProgram.draw(cameraMatrix, this.settings, this.vao); + this.iconProgram.draw(cameraMatrix, this.settings, this.vao); if (this.settings.passEnabled.nameDebug) { this.debugProgram.draw(cameraMatrix, this.settings, this.vao); diff --git a/src/client/render/gl/render-settings.json b/src/client/render/gl/render-settings.json index 14d9a72255..9786f09fb1 100644 --- a/src/client/render/gl/render-settings.json +++ b/src/client/render/gl/render-settings.json @@ -161,7 +161,7 @@ "outlineUsePlayerColor": false, "fillUsePlayerColor": true, "emojiRowOffset": 1.4, - "statusRowOffset": 2.5 + "statusRowOffset": 1.4 }, "fx": { "shockwaveRingWidth": 0.04, diff --git a/src/client/render/gl/shaders/name/status-icon.vert.glsl b/src/client/render/gl/shaders/name/status-icon.vert.glsl index dd5c6af27e..561751ba47 100644 --- a/src/client/render/gl/shaders/name/status-icon.vert.glsl +++ b/src/client/render/gl/shaders/name/status-icon.vert.glsl @@ -85,10 +85,11 @@ void main() { // Read player data vec4 pd0 = texelFetch(uPlayerData, ivec2(0, playerIdx), 0); // srcX, srcY, srcScale, startTime vec4 pd1 = texelFetch(uPlayerData, ivec2(1, playerIdx), 0); // tgtX, tgtY, tgtScale, alive + vec4 pd4 = texelFetch(uPlayerData, ivec2(4, playerIdx), 0); // flagIdx, emojiIdx, [free], [free] vec4 pd7 = texelFetch(uPlayerData, ivec2(7, playerIdx), 0); // nukeTargetsMe, traitorRemainingTicks, allianceFraction, [free] - // Early out: dead player - if (pd1.w <= 0.0) { + // Early out: dead player OR emoji is active + if (pd1.w <= 0.0 || pd4.y >= 0.0) { gl_Position = vec4(0.0); vUV = vec2(0.0); vLocalUV = vec2(0.0);