Skip to content

Draft: Allow for any texture to be used as a sky

Radicalicious requested to merge sonic_edge/SRB2:the-sky-may-be into next

This merge allows any texture to be used as a sky by use of a new level header parameter, Sky, which you can simply pass a lump name to. For example, Sky = SKY1, which accomplishes what SkyNum = 1 does, or Sky = GFZWALL, which does something that was previously rather inconvenient.

The format of P_SetupLevelSky in Lua has also changed. It can now take either an integer (which is converted to SKYxx ingame) or a direct string giving the name of the texture, as seen here: P_SetupLevelSky(1), P_SetupLevelSky("SKY1").

These change aim to solve the issues of A) ridiculous sky numbers having to be memorized (looking at RVZ1 in particular with its SKY159 nonsense), and B) skies being rather easy to overwrite on accident unless you know every single sky number. Backwards compatibility with SkyNum and 'Change Sky' linedef executors is kept, so no existing stages will break.

Test executable: srb2win-skies.exe

srb20221

srb20222

srb20223

To-do:

  • m_cheat.c (skynum console command, currently dummied out)
  • p_saveg.c (..multiplayer sky synchronizing? I have absolutely zero knowledge on this, so I'd rather someone with more experience explain this to me.)
  • p_spec.c (linedef executor effect, which I haven't got working yet)
  • General code review from the more experienced coders. Any programmer could tell that I'm a total amateur, so I've probably made some pretty bad mistakes.
Edited by Radicalicious

Merge request reports