Code:
// el.dll (entity list .dll example)
// theory | example only....not tested
//...hate...hate...hate
//...bigger than I & a dragon's eye
//...grr...HATE
//include "el.wdl";
include <el.wdl>;

entity* e1;
/************************************
	initf
		initialize for 50 entity lists
		(sel lists here)
*************************************/
starter initf() {
	if (!elrNew(50)) {	// 50 lists
		error("elrNew failed");
	}
}
/************************************
	efSelPaint
		sel paint selected entities in _grp (sel group)
*************************************/
function efSelPaint(_grp) {
	elNextReset(_grp);
	e1 = elNext(_grp);
	while(e1 != NULL) {
		// draw sel bracket for entity e1
		e1 = elNext(_grp);
	}
}
/************************************
	efSelAdd
		add _e (entity) to _grp (sel group)
*************************************/
function efSelAdd(_grp, _e) {
	if (_e == 0) { return(0); }
	e1 = _e;
	/*e1 = ptr_for_handle(_e);
	if (e1 == NULL) { return(0); }
	*/
	return(elAdd(_grp, e1););
}
/************************************
	efSelRemove
		remove _e (entity) from _grp (sel group)
*************************************/
function efSelRemove(_grp, _e) {
	if (_e == 0) { return(0); }
	e1 = _e;
	/*e1 = ptr_for_handle(_e);
	if (e1 == NULL) { return(0); }
	*/
	return(elRemove(_grp, e1));
}

/*
	if (efSelRemove(grpRunners, eClicked)) {
		efSelPaint(grpRunners);
	}
*/