00001
00002 #ifndef EDITAI_H
00003 #define EDITAI_H
00004
00005 #include "geom.h"
00006 #include "car.h"
00007 #include "ainode.h"
00008 #include "model.h"
00009
00010
00011
00012 enum {
00013 EDIT_AINODE_AXIS_XY,
00014 EDIT_AINODE_AXIS_XZ,
00015 EDIT_AINODE_AXIS_ZY,
00016 EDIT_AINODE_AXIS_X,
00017 EDIT_AINODE_AXIS_Y,
00018 EDIT_AINODE_AXIS_Z,
00019 };
00020
00021 typedef struct {
00022 char Priority, StartNode, pad[2];
00023 float RacingLine, FinishDist, fpad[2];
00024 long RacingLineSpeed, CentreSpeed;
00025 long Prev[MAX_AINODE_LINKS];
00026 long Next[MAX_AINODE_LINKS];
00027 ONE_AINODE Node[2];
00028 } FILE_AINODE;
00029
00030
00031
00032 extern void InitEditAiNodes(void);
00033 extern void KillEditAiNodes(void);
00034 extern void LoadEditAiNodes(char *file);
00035 extern void CalcEditAiNodeDistances(void);
00036 extern void CalcOneNodeDistance(AINODE *node, long flag);
00037 extern void SaveEditAiNodes(char *file);
00038 extern void LoadEditAiNodeModels(void);
00039 extern void FreeEditAiNodeModels(void);
00040 extern AINODE *AllocEditAiNode(void);
00041 extern void FreeEditAiNode(AINODE *node);
00042 extern void EditAiNodes(void);
00043 extern void DrawAiNodes(void);
00044 extern void DisplayAiNodeInfo(AINODE *node);
00045 extern void GetEditNodePos(VEC *campos, float xpos, float ypos, VEC *nodepos);
00046
00047
00048
00049 extern AINODE *CurrentEditAiNode;
00050 extern AINODE *LastEditAiNode;
00051 extern long EditAiNodeNum;
00052 extern AINODE *EditAiNode;
00053 extern MODEL EditAiNodeModel[2];
00054
00055 #endif