v2.2.5 — fix "start a new game" freeze (gl_trans_lighting / base1 glass)
Fix: "Start a new game" froze on G4/G5 (base1 "Outer Base")
The v2.2.4 DMG installed clean everywhere, but starting a new game froze on the
G4-mini and iMac G5 (pegged process, no crash log, ignored a normal quit) while the
G3 was fine. It looked like a fullscreen/driver wedge — it wasn't.
Root cause: our gl_trans_lighting feature (lightmap-modulate glass/grates,
ported from kmquake2) builds lightmaps for translucent surfaces at map load, calling
R_BuildLightMap — whose stock guard rejects SURF_TRANS33/66 as "non-lit"
and raises ERR_DROP. That drop longjmps to a console the engine then redraws
forever, presenting as a freeze. base1 ("Outer Base") has non-warp glass, so it hit
it immediately; base2's translucent surfaces are mostly water (caught by an earlier
guard), which masked the bug. kmquake2 relaxes that exact guard to
(SURF_SKY|SURF_WARP); we ported the feature but not the guard.
Fix: one line in r_light.c — (SURF_SKY|SURF_TRANS33|SURF_TRANS66|SURF_WARP)
→ (SURF_SKY|SURF_WARP), matching upstream kmquake2. Non-warp translucent surfaces
carry real lightmap data and are meant to be lit.
Validated fleet-wide via this DMG (installed from the mounted image, production
launch, in-game "Outer Base" confirmed): iMac G5 (ppc970/Leopard), G3 (ppc750/Panther),
Intel mini (Lion), quicksilver (ppc7400/Tiger), G4-mini (ppc7400/Tiger).
DMG contents verified byte-identical to source (md5 7e3c1a09fc34d7b5845aefaf4f5f6701).
🤖 Generated with Claude Code