Ich habe ein Problem mit einem Vector innerhalb einer Struct.

hier ist mein Code:

Quote:
// spieler.h
#define index skill1

typedef struct
{
VECTOR* sp_ziel;


} SP_DATEN;

ENTITY* eSpieler[3];
SP_DATEN sp_daten[3];


in der SP_DATEN wird eine Position gespeichert, zu der die Spieler-Entity laufen soll.

Quote:
//game.c
eSpieler[0] = ent_create("cbabe.mdl",vector(0,0,0), pl_spieler);
sp_daten[0].sp_ziel = vector(300,100,-5);


spieler[0] wird erstellt und ziel[0] wird gesetzt.

in der Spieler-function ist dann folgendes:

Quote:
//spieler.c
void pl_spieler()
{
pl_spieler_init();

while(1)
{

pl_laufeZumZiel(my.index);

if(pl_zielErreicht(my.index) == 1)
{

pl_sucheZiel(my.index);
}

wait(1);
}
}

und die Function pl_laufeZumZiel:

Quote:
void pl_laufeZumZiel(var ind)
{
while (sp_daten[ind].sp_ziel == NULL) { wait(1); }

vec_set(vecTemp, sp_daten[ind].sp_ziel);

deb_print("sp_daten[0].sp_ziel"); //Debugging aus dem "RUDI"-Workshop
deb_print(vecTemp.x);
deb_print(vecTemp.y);

vec_sub(vecTemp,my.x);
vec_to_angle(my.pan,vecTemp);
my.tilt = 0;

c_move(my,vector(5*time_step,0,0),nullvector,GLIDE | IGNORE_PASSABLE);

}

Und nun das Problem:
erst dreht sich die Entity ganz brav in die Ziel-Richtung, läuft...
aber nach genau 64 Frames wird sp_daten[ind].sp_ziel verändert. Y wird auf 0 gesetzt, X auf ein Wert zwischen 0 und 0.300
Quote:
acklog.txt
frm(1) = Ball erstellt!
frm(1) = Spieler erstellt!
frm(2) = sp_daten[0].sp_ziel
frm(2) = 300
frm(2) = 100
...
frm(64) = sp_daten[0].sp_ziel
frm(64) = 300
frm(64) = 100
frm(65) = sp_daten[0].sp_ziel // :-((
frm(65) = 0.156
frm(65) = 0
Wenn ich die c_move... auskommentiere, bleiben die Werte laut deb_print in Ordnung.

Wo mache ich Was falsch?