particles.png recovered (#79, found by cyd) -- particle texture ships at last

content/VIDEO/particles.png (128x128 RGBA): the texture L4PARTICLES has tried
to load since the engine was written.  Boot-verified: [particles] device
objects created (max=8192, texture=loaded).  Every particle effect now draws
textured -- the authored look; the arcade pods displayed untextured quads
because the file never shipped.  Comments updated to match.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Joe DiPrima
2026-07-29 20:53:07 -05:00
co-authored by Claude Fable 5
parent cfa52a28d8
commit 1ac425860e
2 changed files with 9 additions and 8 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

+9 -8
View File
@@ -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)