ent_nextlight (ENTITY*,var num);
Liefert in Reichweite der gegebenen Entity einen Pointer auf die nächste, Licht abgebende Entity zurück. Wenn ein Licht gefunden wurde, werden die Licht-Daten in den getroffenen Strukt kopiert. A7.82
Parameter:
ENTITY* - Entity-Pointer
num - Lichtnummer (1..7), 1 ist das nächstliegende und 7 das entfernteste Licht innerhalb der Reichweite.
Rückgabewerte:
Pointer auf die Licht abgebende Entity oder A7.82 level_ent für ein Level-platziertes, dynamisches Licht oder die Sonne, und NULL, wenn es kein weiteres Licht in Reichweite gibt.
Geschwindigkeit:
Fast
Modifiziert: A7.82
hit.x y z - wird auf die Lichtposition gesetzt.
hit.nx ny nz - wird auf die Lichtrichtung gesetzt.
hit.blue green red - wird auf die Lichtfarbe gesetzt.
hit.entity - wird auf die Licht-abgebende Entity oder, wenn es sich um ein im Level platziertes Licht handelt, auf NULL gesetzt.
hit.model - Pointer auf dasD3DLIGHT9-Strukt des Lichts.
Bemerkungen:
- Aufgrund des Beleuchtungsalgorithmus, der auf DirectX-Vertex basiert, können Lichter auch Objekte beeinflussen, die ein wenig ausserhalb der lightrange liegen.
Beispiel (lite-C):
function extinguish_closest_lights()
{
int i;
for (i=1; i<8; i++) {
ENTITY* light = ent_nextlight(my,i); // find light in range
if (light == NULL) break; // no more lights
if (light != level_ent) light.lightrange = 0; // extinguish it if it's not WED-placed
}
}
Siehe auch:
ent_next, ent_pvs, lightrange, vecLightPos,
view_to_light
► Aktuelle Version Online