#include "Enemies.h" #include "WorldManager.h" #define EnemySpeed 0.001 void TestAI(void * Enemy, AIEvent Event, float interval) { #pragma unused (Event) VEnemy * e; VWorld * w; Vector Angle; e = (VEnemy *) Enemy; w = (VWorld *) e->Data; SubtractVector(&w->Camera.Position, &e->Object.Position, &Angle); NormalizeVector(&Angle); Angle.x *= 0.001 / interval; Angle.y *= 0.001 / interval; Angle.z *= 0.001 / interval; AddVector(&e->Object.Front, &Angle, &e->Object.Front); NormalizeVector(&e->Object.Front); CrossProduct(&e->Object.Front, &e->Object.Right, &e->Object.Up); CrossProduct(&e->Object.Up, &e->Object.Front, &e->Object.Right); NormalizeVector(&e->Object.Right); NormalizeVector(&e->Object.Up); Angle = e->Object.Front; NormalizeVector(&Angle); Angle.x *= 0.0001 / interval; Angle.y *= 0.0001 / interval; Angle.z *= 0.0001 / interval; AddVector(&e->Object.Position, &Angle, &e->Object.Position); } void InitEnemy(VEnemy * e, EnemyAIModule aiMod, void * Data) { e->Callback = aiMod; e->Data = Data; InitObject(&e->Object); BuildEnemyModel(&e->Object.Model); e->Object.Position.z = -10; e->Object.Position.x = -2; e->Object.Position.y = -2; e->next = NULL; } void CleanUpEnemy(VEnemy * e) { CleanUpObject(&e->Object); } void DrawEnemy(VEnemy * e) { DrawObject(&e->Object); } void EnemyEvent(VEnemy * e, float interval) { if (e->Callback != NULL) e->Callback(e, blah, interval); }