diff --git a/content/VIDEO/particles.png b/content/VIDEO/particles.png new file mode 100644 index 0000000..a3c401c Binary files /dev/null and b/content/VIDEO/particles.png differ diff --git a/engine/MUNGA_L4/L4PARTICLES.cpp b/engine/MUNGA_L4/L4PARTICLES.cpp index 3cdd4fc..4421e48 100644 --- a/engine/MUNGA_L4/L4PARTICLES.cpp +++ b/engine/MUNGA_L4/L4PARTICLES.cpp @@ -320,10 +320,11 @@ void ParticleEngine::CreateDeviceObjects(LPDIRECT3DDEVICE9 device) << std::endl << std::flush; } - // NB: VIDEO\particles.png has never shipped (verified 2026-07-29: absent - // from the tree, the RES, and all of git history), so this load has - // failed on every machine since the engine was written and particles - // draw untextured. The failure is expected + logged once; rendering + // NB: VIDEO\particles.png SHIPS as of 2026-07-29 (recovered by cyd, + // issue #79 -- 128x128 RGBA). Before that it had never shipped (absent + // from the tree, the RES, and all of git history), so this load failed + // on every machine since the engine was written and particles drew + // untextured -- which is therefore what the 1995 pods displayed. The failure is expected + logged once; rendering // proceeds without the texture (SetTexture(0, NULL) = the shipped look). hr = D3DXCreateTextureFromFile(mDevice, L"VIDEO\\particles.png", &mParticleTexture); if (FAILED(hr)) @@ -556,10 +557,10 @@ void ParticleEngine::RenderParticles(const D3DXMATRIX *view_matrix, Scalar timeS ExecuteParticles(view_matrix, timeSlice); // (#35: the buffer is legitimately NULL while the device is lost. The - // TEXTURE is deliberately NOT part of this gate: VIDEO\particles.png has - // never existed -- not in the tree, the RES, or git history -- so - // mParticleTexture has been NULL on every machine since the engine was - // written, and SetTexture(0, NULL) drawing untextured quads IS the + // TEXTURE is deliberately NOT part of this gate: VIDEO\particles.png was + // recovered only in 2026 (issue #79) -- before that mParticleTexture was + // NULL on every machine since the engine was written, and + // SetTexture(0, NULL) drawing untextured quads WAS the // shipped look. Gating on it would silently disable all billboard // particles everywhere.) if (!mDevice || mVertBuffer == NULL || mTotalParticleCount <= 0)