This is an old revision of the document!
ACSUtils provide a function to detect which engine (source port) it's running on:
int IdentifySourcePort()
Returns one of the following:
PORT_ZDOOMPORT_GZDOOMPORT_ZANDRONUMThe following functions are provided for easier use:
bool IsGZDoom() – returns true if the mod is running on an engine with GZDoom features (this includes GZDoom and Zandronum).bool IsZandronum() – returns true if the mod is running on Zandronum.
You can also display the name of the port the mod is running in using str GetPortName():
print(s:"This mod is running in ", s:GetPortName());
ACSUtils also provides a function to check if Software or OpenGL renderer is used:
bool IsOpenGL()
It can only be used clientside. It has several features over checking vid_renderer:
vid_renderer is 1, because ZDoom doesn't have an OpenGL renderer. This can happen if a GZDoom config is used in ZDoom.gl_nogl into account, which can disable the OpenGL renderer even if vid_renderer is 1.
First, GetPlayerAccountName(0) is called. In Zandronum it returns a string (possibly empty string). In other ports it returns 0, because it's an unknown function.
Second, existence of DynamicLight actor is checked by spawning and instantly destroying it. This actor is not present in ZDoom. If it spawns successfully, the port is GZDoom.
If both checks fail, the port is ZDoom.