ACSUtils Wiki

An ACS library for ZDoom-based ports

User Tools

Site Tools


source_port_identification

This is an old revision of the document!


Source port identification

Introduction

You can identify what engine your mod is running in using ACSUtils. This may be useful to avoid using features if they're not present in the engine your mod is running in.

Don't use these functions to check for renderer. Use IsOpenGL!

Functions

How it works

First, GetPlayerAccountName is called. It's a Zandronum-exclusive function. It always returns a string (usually an empty string) if it's implemented, while unimplemented ACS functions return 0. Thus, if the function returned something other than zero, it is supported by the engine, and the port is assumed to be Zandronum.

If the port is not Zandronum, an attempt to spawn an actor of type DynamicLight is performed. This actor is only present in GZDoom-based engines, but not in ZDoom. If the actor spawns successfully, it's immediately removed and the port is assumed to be GZDoom.

If both these checks fail, the port is assumed to be ZDoom.

To avoid rerunning these checks every time you call one of the source port identification functions, they are only run the first time any of the functions is called and the result is stored into a map variable. Subsequent function calls simply read the map variable.

source_port_identification.1566774496.txt.gz ยท Last modified: 2019/08/26 02:08 by korshun