|
Estructura sprite
Esta es la última estructura en Eduke que definió y programó Ken Silverman. Con ella tienes acceso a todas las variables del sprite, que es exactamente el elemento mas modificado en el lenguaje CON.
Su definicion en C es la siguiente:
|
typedef struct
{
long x, y, z;
short cstat, picnum;
signed char shade;
char pal, clipdist, detail;
unsigned char xrepeat, yrepeat;
signed char xoffset, yoffset;
short sectnum, statnum;
short ang, owner, xvel, yvel, zvel;
short lotag, hitag, extra;
} sectortype;
|
Sus comandos son:
|
getactor[ < VARIABLE1 > ].miembro < VARIABLE2 >
setactor[ < VARIABLE1 > ].miembro < VARIABLE2 >
|
Finalmente describimos las variables:
|
Variable
|
Uso
|
|
x
|
Coordenada " x " del sprite
|
|
y
|
Coordenada " y " del sprite
|
|
z
|
Coordenada " z " del sprite
|
|
cstat
|
Propiedades del sprite. Modificadas por el comando " cstat " (En Duke Nukem 1.3 o superior)
|
|
picnum
|
Es la textura del sprite
|
|
shade
|
Es la sombra del sprite
|
|
pal
|
Es la paleta (color) del sprite
|
|
clipdist
|
Es la distancia de choque del actor (para colisiones)
|
|
detail
|
Definida por Matt: " un-used bytes used to pad the next member variable out to an even alignment "
|
|
xrepeat
|
Es el tamaño " x " del actor
|
|
yrepeat
|
Es el tamaño " y " del actor
|
|
xoffset
|
Orientacion " x " de la textura del actor
|
|
yoffset
|
Orientacion " y " de la textura del actor
|
|
sectnum
|
Es número de sector donde se encuentra el actor
|
|
statnum
|
Lista interna donde esta el actor (activo, inactivo...)
|
|
ang
|
Angulo del sprite.
|
|
owner
|
Esta variable es usada en sprites para saber quien dispara algo
|
|
xvel
|
Velocidad x del actor (componente x del vector velocidad)
|
|
yvel
|
Velocidad y del actor (componente y del vector velocidad)
|
|
zvel
|
Velocidad z del actor (componente z del vector velocidad)
|
|
lotag
|
Es la variable lotag del actor
|
|
hitag
|
Es la variable hitag del actor
|
|
extra
|
Esta variable no se refiere a nada concreto, pero Ken Silverman la creo para el programador le diera algun uso si es necesario
|
También mediante los comandos getactor/setactor se puede acceder a otra estructura: hittype usada para proyectiles entre otras cosas. Sus miembros son:
|
Variable
|
Uso
|
|
htcgg
|
Controla cuando obtiene nuevo dato globalz. Lo deja con un valor de 6 despues de que los datos son calculados y cuenta hacia trás despues de ello. Inicialmente 0.
|
|
htpicnum
|
Es el numero de grafico. Sirve cuando compara con 'ifwasweapon' y 'ifspawnedby'
|
|
htang
|
Angulo que es usado en algunas ocasiones en vez del angulo del sprite
|
|
htextra
|
Tiene distintos usos, dependiendo del estado del sprite. Parece estar relacionado con la cantidad de daño producido al sprite. -1 si no se produce daño.
|
|
htowner
|
Configura el owner del sprite. Usado para saber quien hace daño.
|
|
htmovflag
|
Movimientos grabados al intentar mover el sprite. ifnotmoving lo comprueba por (hittype[g_i].movflag&49152) > 16384 );
|
|
httempang
|
Sus aplicaciones son variadas dependiendo del caso. Configura la antigua paleta cuando se usa el comando 'spritepal'
|
|
htactorstayput
|
Si es -1 significa que el sprite no esta puesto. En el caso de que se mayor o igual a 0, entonces sera la ID del sector (numero de sector) donde se encuentra. Configurado para el actor actual cuando llamas al comando 'addkills'
|
|
htdispicnum
|
Si es -4 entonces no se mostraran sombras en actores.
|
|
httimetosleep
|
Si es mayor que 1 se producira una cuenta abajo. Cuando llega a 1 el sprite cambia a statlist 2. Ver mas abajo las statlist. Configurado internamente por mucha cosas. Configurado directamente por 'sleeptime'
|
|
htfloorz
|
Configurado cuando htcgg es menor o igual a 0. Información actual de los sectores
|
|
htceilingz
|
Configurado cuando htcgg es menor o igual a 0. Información actual de los sectores
|
|
htlastvx
|
Donde conocian el ultimo blanco del jugador para estar. Utilizado en la busqueda del jugador
|
|
htlastvy
|
Donde conocian el ultimo blanco del jugador para estar. Utilizado en la busqueda del jugador
|
|
htbposx
|
bob' position
|
|
htbposy
|
bob' position
|
|
htbposz
|
bob' position
|
|
htg_t
|
Este miembro es un poco especial, va seguido de dos variables, la primera es una especie de ID y la segunda es el resultado:
Los valores posibles y su uso son:
0 = Angulo de movimiento usado para calcular la vuelta hacia el jugador, etc... Configurado directamente por el comando count, y comprobado por ifcount
1 = Se refiere al movimiento deseado. Modificado directamente por el comando move
2 = Es el contador de accion (comando action). Es usado por ifactioncount
3 = Temporal usada durante el proceso de la acion
4 = La acion actual que se esta realizando. Se modifica directamente desde los comandos move y action. Si es mayor que 0, entonces la accion es contada y realizada. El lotag es incrementado por TICSPERFRAME
5 = Es la ID de la ai (inteligencia artificial) que se esta llevando a cabo (comando ai)
|
|