aboutsummaryrefslogtreecommitdiffstats
path: root/code/botlib/be_aas_optimize.c
diff options
context:
space:
mode:
authorzakk <zakk@edf5b092-35ff-0310-97b2-ce42778d08ea>2005-08-26 17:39:27 +0000
committerzakk <zakk@edf5b092-35ff-0310-97b2-ce42778d08ea>2005-08-26 17:39:27 +0000
commit6bf20c78f5b69d40bcc4931df93d29198435ab67 (patch)
treee3eda937a05d7db42de725b7013bd0344b987f34 /code/botlib/be_aas_optimize.c
parent872d4d7f55af706737ffb361bb76ad13e7496770 (diff)
downloadioquake3-aero-6bf20c78f5b69d40bcc4931df93d29198435ab67.tar.gz
ioquake3-aero-6bf20c78f5b69d40bcc4931df93d29198435ab67.zip
newlines fixed
git-svn-id: svn://svn.icculus.org/quake3/trunk@6 edf5b092-35ff-0310-97b2-ce42778d08ea
Diffstat (limited to 'code/botlib/be_aas_optimize.c')
-rwxr-xr-xcode/botlib/be_aas_optimize.c624
1 files changed, 312 insertions, 312 deletions
diff --git a/code/botlib/be_aas_optimize.c b/code/botlib/be_aas_optimize.c
index f420fd1..605dc4d 100755
--- a/code/botlib/be_aas_optimize.c
+++ b/code/botlib/be_aas_optimize.c
@@ -1,312 +1,312 @@
-/*
-===========================================================================
-Copyright (C) 1999-2005 Id Software, Inc.
-
-This file is part of Quake III Arena source code.
-
-Quake III Arena source code is free software; you can redistribute it
-and/or modify it under the terms of the GNU General Public License as
-published by the Free Software Foundation; either version 2 of the License,
-or (at your option) any later version.
-
-Quake III Arena source code is distributed in the hope that it will be
-useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with Foobar; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-===========================================================================
-*/
-
-/*****************************************************************************
- * name: be_aas_optimize.c
- *
- * desc: decreases the .aas file size after the reachabilities have
- * been calculated, just dumps all the faces, edges and vertexes
- *
- * $Archive: /MissionPack/code/botlib/be_aas_optimize.c $
- *
- *****************************************************************************/
-
-#include "../game/q_shared.h"
-#include "l_libvar.h"
-#include "l_memory.h"
-#include "l_script.h"
-#include "l_precomp.h"
-#include "l_struct.h"
-#include "aasfile.h"
-#include "../game/botlib.h"
-#include "../game/be_aas.h"
-#include "be_aas_funcs.h"
-#include "be_interface.h"
-#include "be_aas_def.h"
-
-typedef struct optimized_s
-{
- //vertexes
- int numvertexes;
- aas_vertex_t *vertexes;
- //edges
- int numedges;
- aas_edge_t *edges;
- //edge index
- int edgeindexsize;
- aas_edgeindex_t *edgeindex;
- //faces
- int numfaces;
- aas_face_t *faces;
- //face index
- int faceindexsize;
- aas_faceindex_t *faceindex;
- //convex areas
- int numareas;
- aas_area_t *areas;
- //
- int *vertexoptimizeindex;
- int *edgeoptimizeindex;
- int *faceoptimizeindex;
-} optimized_t;
-
-//===========================================================================
-//
-// Parameter: -
-// Returns: -
-// Changes Globals: -
-//===========================================================================
-int AAS_KeepEdge(aas_edge_t *edge)
-{
- return 1;
-} //end of the function AAS_KeepFace
-//===========================================================================
-//
-// Parameter: -
-// Returns: -
-// Changes Globals: -
-//===========================================================================
-int AAS_OptimizeEdge(optimized_t *optimized, int edgenum)
-{
- int i, optedgenum;
- aas_edge_t *edge, *optedge;
-
- edge = &aasworld.edges[abs(edgenum)];
- if (!AAS_KeepEdge(edge)) return 0;
-
- optedgenum = optimized->edgeoptimizeindex[abs(edgenum)];
- if (optedgenum)
- {
- //keep the edge reversed sign
- if (edgenum > 0) return optedgenum;
- else return -optedgenum;
- } //end if
-
- optedge = &optimized->edges[optimized->numedges];
-
- for (i = 0; i < 2; i++)
- {
- if (optimized->vertexoptimizeindex[edge->v[i]])
- {
- optedge->v[i] = optimized->vertexoptimizeindex[edge->v[i]];
- } //end if
- else
- {
- VectorCopy(aasworld.vertexes[edge->v[i]], optimized->vertexes[optimized->numvertexes]);
- optedge->v[i] = optimized->numvertexes;
- optimized->vertexoptimizeindex[edge->v[i]] = optimized->numvertexes;
- optimized->numvertexes++;
- } //end else
- } //end for
- optimized->edgeoptimizeindex[abs(edgenum)] = optimized->numedges;
- optedgenum = optimized->numedges;
- optimized->numedges++;
- //keep the edge reversed sign
- if (edgenum > 0) return optedgenum;
- else return -optedgenum;
-} //end of the function AAS_OptimizeEdge
-//===========================================================================
-//
-// Parameter: -
-// Returns: -
-// Changes Globals: -
-//===========================================================================
-int AAS_KeepFace(aas_face_t *face)
-{
- if (!(face->faceflags & FACE_LADDER)) return 0;
- else return 1;
-} //end of the function AAS_KeepFace
-//===========================================================================
-//
-// Parameter: -
-// Returns: -
-// Changes Globals: -
-//===========================================================================
-int AAS_OptimizeFace(optimized_t *optimized, int facenum)
-{
- int i, edgenum, optedgenum, optfacenum;
- aas_face_t *face, *optface;
-
- face = &aasworld.faces[abs(facenum)];
- if (!AAS_KeepFace(face)) return 0;
-
- optfacenum = optimized->faceoptimizeindex[abs(facenum)];
- if (optfacenum)
- {
- //keep the face side sign
- if (facenum > 0) return optfacenum;
- else return -optfacenum;
- } //end if
-
- optface = &optimized->faces[optimized->numfaces];
- Com_Memcpy(optface, face, sizeof(aas_face_t));
-
- optface->numedges = 0;
- optface->firstedge = optimized->edgeindexsize;
- for (i = 0; i < face->numedges; i++)
- {
- edgenum = aasworld.edgeindex[face->firstedge + i];
- optedgenum = AAS_OptimizeEdge(optimized, edgenum);
- if (optedgenum)
- {
- optimized->edgeindex[optface->firstedge + optface->numedges] = optedgenum;
- optface->numedges++;
- optimized->edgeindexsize++;
- } //end if
- } //end for
- optimized->faceoptimizeindex[abs(facenum)] = optimized->numfaces;
- optfacenum = optimized->numfaces;
- optimized->numfaces++;
- //keep the face side sign
- if (facenum > 0) return optfacenum;
- else return -optfacenum;
-} //end of the function AAS_OptimizeFace
-//===========================================================================
-//
-// Parameter: -
-// Returns: -
-// Changes Globals: -
-//===========================================================================
-void AAS_OptimizeArea(optimized_t *optimized, int areanum)
-{
- int i, facenum, optfacenum;
- aas_area_t *area, *optarea;
-
- area = &aasworld.areas[areanum];
- optarea = &optimized->areas[areanum];
- Com_Memcpy(optarea, area, sizeof(aas_area_t));
-
- optarea->numfaces = 0;
- optarea->firstface = optimized->faceindexsize;
- for (i = 0; i < area->numfaces; i++)
- {
- facenum = aasworld.faceindex[area->firstface + i];
- optfacenum = AAS_OptimizeFace(optimized, facenum);
- if (optfacenum)
- {
- optimized->faceindex[optarea->firstface + optarea->numfaces] = optfacenum;
- optarea->numfaces++;
- optimized->faceindexsize++;
- } //end if
- } //end for
-} //end of the function AAS_OptimizeArea
-//===========================================================================
-//
-// Parameter: -
-// Returns: -
-// Changes Globals: -
-//===========================================================================
-void AAS_OptimizeAlloc(optimized_t *optimized)
-{
- optimized->vertexes = (aas_vertex_t *) GetClearedMemory(aasworld.numvertexes * sizeof(aas_vertex_t));
- optimized->numvertexes = 0;
- optimized->edges = (aas_edge_t *) GetClearedMemory(aasworld.numedges * sizeof(aas_edge_t));
- optimized->numedges = 1; //edge zero is a dummy
- optimized->edgeindex = (aas_edgeindex_t *) GetClearedMemory(aasworld.edgeindexsize * sizeof(aas_edgeindex_t));
- optimized->edgeindexsize = 0;
- optimized->faces = (aas_face_t *) GetClearedMemory(aasworld.numfaces * sizeof(aas_face_t));
- optimized->numfaces = 1; //face zero is a dummy
- optimized->faceindex = (aas_faceindex_t *) GetClearedMemory(aasworld.faceindexsize * sizeof(aas_faceindex_t));
- optimized->faceindexsize = 0;
- optimized->areas = (aas_area_t *) GetClearedMemory(aasworld.numareas * sizeof(aas_area_t));
- optimized->numareas = aasworld.numareas;
- //
- optimized->vertexoptimizeindex = (int *) GetClearedMemory(aasworld.numvertexes * sizeof(int));
- optimized->edgeoptimizeindex = (int *) GetClearedMemory(aasworld.numedges * sizeof(int));
- optimized->faceoptimizeindex = (int *) GetClearedMemory(aasworld.numfaces * sizeof(int));
-} //end of the function AAS_OptimizeAlloc
-//===========================================================================
-//
-// Parameter: -
-// Returns: -
-// Changes Globals: -
-//===========================================================================
-void AAS_OptimizeStore(optimized_t *optimized)
-{
- //store the optimized vertexes
- if (aasworld.vertexes) FreeMemory(aasworld.vertexes);
- aasworld.vertexes = optimized->vertexes;
- aasworld.numvertexes = optimized->numvertexes;
- //store the optimized edges
- if (aasworld.edges) FreeMemory(aasworld.edges);
- aasworld.edges = optimized->edges;
- aasworld.numedges = optimized->numedges;
- //store the optimized edge index
- if (aasworld.edgeindex) FreeMemory(aasworld.edgeindex);
- aasworld.edgeindex = optimized->edgeindex;
- aasworld.edgeindexsize = optimized->edgeindexsize;
- //store the optimized faces
- if (aasworld.faces) FreeMemory(aasworld.faces);
- aasworld.faces = optimized->faces;
- aasworld.numfaces = optimized->numfaces;
- //store the optimized face index
- if (aasworld.faceindex) FreeMemory(aasworld.faceindex);
- aasworld.faceindex = optimized->faceindex;
- aasworld.faceindexsize = optimized->faceindexsize;
- //store the optimized areas
- if (aasworld.areas) FreeMemory(aasworld.areas);
- aasworld.areas = optimized->areas;
- aasworld.numareas = optimized->numareas;
- //free optimize indexes
- FreeMemory(optimized->vertexoptimizeindex);
- FreeMemory(optimized->edgeoptimizeindex);
- FreeMemory(optimized->faceoptimizeindex);
-} //end of the function AAS_OptimizeStore
-//===========================================================================
-//
-// Parameter: -
-// Returns: -
-// Changes Globals: -
-//===========================================================================
-void AAS_Optimize(void)
-{
- int i, sign;
- optimized_t optimized;
-
- AAS_OptimizeAlloc(&optimized);
- for (i = 1; i < aasworld.numareas; i++)
- {
- AAS_OptimizeArea(&optimized, i);
- } //end for
- //reset the reachability face pointers
- for (i = 0; i < aasworld.reachabilitysize; i++)
- {
- //NOTE: for TRAVEL_ELEVATOR the facenum is the model number of
- // the elevator
- if ((aasworld.reachability[i].traveltype & TRAVELTYPE_MASK) == TRAVEL_ELEVATOR) continue;
- //NOTE: for TRAVEL_JUMPPAD the facenum is the Z velocity and the edgenum is the hor velocity
- if ((aasworld.reachability[i].traveltype & TRAVELTYPE_MASK) == TRAVEL_JUMPPAD) continue;
- //NOTE: for TRAVEL_FUNCBOB the facenum and edgenum contain other coded information
- if ((aasworld.reachability[i].traveltype & TRAVELTYPE_MASK) == TRAVEL_FUNCBOB) continue;
- //
- sign = aasworld.reachability[i].facenum;
- aasworld.reachability[i].facenum = optimized.faceoptimizeindex[abs(aasworld.reachability[i].facenum)];
- if (sign < 0) aasworld.reachability[i].facenum = -aasworld.reachability[i].facenum;
- sign = aasworld.reachability[i].edgenum;
- aasworld.reachability[i].edgenum = optimized.edgeoptimizeindex[abs(aasworld.reachability[i].edgenum)];
- if (sign < 0) aasworld.reachability[i].edgenum = -aasworld.reachability[i].edgenum;
- } //end for
- //store the optimized AAS data into aasworld
- AAS_OptimizeStore(&optimized);
- //print some nice stuff :)
- botimport.Print(PRT_MESSAGE, "AAS data optimized.\n");
-} //end of the function AAS_Optimize
+/*
+===========================================================================
+Copyright (C) 1999-2005 Id Software, Inc.
+
+This file is part of Quake III Arena source code.
+
+Quake III Arena source code is free software; you can redistribute it
+and/or modify it under the terms of the GNU General Public License as
+published by the Free Software Foundation; either version 2 of the License,
+or (at your option) any later version.
+
+Quake III Arena source code is distributed in the hope that it will be
+useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Foobar; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+===========================================================================
+*/
+
+/*****************************************************************************
+ * name: be_aas_optimize.c
+ *
+ * desc: decreases the .aas file size after the reachabilities have
+ * been calculated, just dumps all the faces, edges and vertexes
+ *
+ * $Archive: /MissionPack/code/botlib/be_aas_optimize.c $
+ *
+ *****************************************************************************/
+
+#include "../game/q_shared.h"
+#include "l_libvar.h"
+#include "l_memory.h"
+#include "l_script.h"
+#include "l_precomp.h"
+#include "l_struct.h"
+#include "aasfile.h"
+#include "../game/botlib.h"
+#include "../game/be_aas.h"
+#include "be_aas_funcs.h"
+#include "be_interface.h"
+#include "be_aas_def.h"
+
+typedef struct optimized_s
+{
+ //vertexes
+ int numvertexes;
+ aas_vertex_t *vertexes;
+ //edges
+ int numedges;
+ aas_edge_t *edges;
+ //edge index
+ int edgeindexsize;
+ aas_edgeindex_t *edgeindex;
+ //faces
+ int numfaces;
+ aas_face_t *faces;
+ //face index
+ int faceindexsize;
+ aas_faceindex_t *faceindex;
+ //convex areas
+ int numareas;
+ aas_area_t *areas;
+ //
+ int *vertexoptimizeindex;
+ int *edgeoptimizeindex;
+ int *faceoptimizeindex;
+} optimized_t;
+
+//===========================================================================
+//
+// Parameter: -
+// Returns: -
+// Changes Globals: -
+//===========================================================================
+int AAS_KeepEdge(aas_edge_t *edge)
+{
+ return 1;
+} //end of the function AAS_KeepFace
+//===========================================================================
+//
+// Parameter: -
+// Returns: -
+// Changes Globals: -
+//===========================================================================
+int AAS_OptimizeEdge(optimized_t *optimized, int edgenum)
+{
+ int i, optedgenum;
+ aas_edge_t *edge, *optedge;
+
+ edge = &aasworld.edges[abs(edgenum)];
+ if (!AAS_KeepEdge(edge)) return 0;
+
+ optedgenum = optimized->edgeoptimizeindex[abs(edgenum)];
+ if (optedgenum)
+ {
+ //keep the edge reversed sign
+ if (edgenum > 0) return optedgenum;
+ else return -optedgenum;
+ } //end if
+
+ optedge = &optimized->edges[optimized->numedges];
+
+ for (i = 0; i < 2; i++)
+ {
+ if (optimized->vertexoptimizeindex[edge->v[i]])
+ {
+ optedge->v[i] = optimized->vertexoptimizeindex[edge->v[i]];
+ } //end if
+ else
+ {
+ VectorCopy(aasworld.vertexes[edge->v[i]], optimized->vertexes[optimized->numvertexes]);
+ optedge->v[i] = optimized->numvertexes;
+ optimized->vertexoptimizeindex[edge->v[i]] = optimized->numvertexes;
+ optimized->numvertexes++;
+ } //end else
+ } //end for
+ optimized->edgeoptimizeindex[abs(edgenum)] = optimized->numedges;
+ optedgenum = optimized->numedges;
+ optimized->numedges++;
+ //keep the edge reversed sign
+ if (edgenum > 0) return optedgenum;
+ else return -optedgenum;
+} //end of the function AAS_OptimizeEdge
+//===========================================================================
+//
+// Parameter: -
+// Returns: -
+// Changes Globals: -
+//===========================================================================
+int AAS_KeepFace(aas_face_t *face)
+{
+ if (!(face->faceflags & FACE_LADDER)) return 0;
+ else return 1;
+} //end of the function AAS_KeepFace
+//===========================================================================
+//
+// Parameter: -
+// Returns: -
+// Changes Globals: -
+//===========================================================================
+int AAS_OptimizeFace(optimized_t *optimized, int facenum)
+{
+ int i, edgenum, optedgenum, optfacenum;
+ aas_face_t *face, *optface;
+
+ face = &aasworld.faces[abs(facenum)];
+ if (!AAS_KeepFace(face)) return 0;
+
+ optfacenum = optimized->faceoptimizeindex[abs(facenum)];
+ if (optfacenum)
+ {
+ //keep the face side sign
+ if (facenum > 0) return optfacenum;
+ else return -optfacenum;
+ } //end if
+
+ optface = &optimized->faces[optimized->numfaces];
+ Com_Memcpy(optface, face, sizeof(aas_face_t));
+
+ optface->numedges = 0;
+ optface->firstedge = optimized->edgeindexsize;
+ for (i = 0; i < face->numedges; i++)
+ {
+ edgenum = aasworld.edgeindex[face->firstedge + i];
+ optedgenum = AAS_OptimizeEdge(optimized, edgenum);
+ if (optedgenum)
+ {
+ optimized->edgeindex[optface->firstedge + optface->numedges] = optedgenum;
+ optface->numedges++;
+ optimized->edgeindexsize++;
+ } //end if
+ } //end for
+ optimized->faceoptimizeindex[abs(facenum)] = optimized->numfaces;
+ optfacenum = optimized->numfaces;
+ optimized->numfaces++;
+ //keep the face side sign
+ if (facenum > 0) return optfacenum;
+ else return -optfacenum;
+} //end of the function AAS_OptimizeFace
+//===========================================================================
+//
+// Parameter: -
+// Returns: -
+// Changes Globals: -
+//===========================================================================
+void AAS_OptimizeArea(optimized_t *optimized, int areanum)
+{
+ int i, facenum, optfacenum;
+ aas_area_t *area, *optarea;
+
+ area = &aasworld.areas[areanum];
+ optarea = &optimized->areas[areanum];
+ Com_Memcpy(optarea, area, sizeof(aas_area_t));
+
+ optarea->numfaces = 0;
+ optarea->firstface = optimized->faceindexsize;
+ for (i = 0; i < area->numfaces; i++)
+ {
+ facenum = aasworld.faceindex[area->firstface + i];
+ optfacenum = AAS_OptimizeFace(optimized, facenum);
+ if (optfacenum)
+ {
+ optimized->faceindex[optarea->firstface + optarea->numfaces] = optfacenum;
+ optarea->numfaces++;
+ optimized->faceindexsize++;
+ } //end if
+ } //end for
+} //end of the function AAS_OptimizeArea
+//===========================================================================
+//
+// Parameter: -
+// Returns: -
+// Changes Globals: -
+//===========================================================================
+void AAS_OptimizeAlloc(optimized_t *optimized)
+{
+ optimized->vertexes = (aas_vertex_t *) GetClearedMemory(aasworld.numvertexes * sizeof(aas_vertex_t));
+ optimized->numvertexes = 0;
+ optimized->edges = (aas_edge_t *) GetClearedMemory(aasworld.numedges * sizeof(aas_edge_t));
+ optimized->numedges = 1; //edge zero is a dummy
+ optimized->edgeindex = (aas_edgeindex_t *) GetClearedMemory(aasworld.edgeindexsize * sizeof(aas_edgeindex_t));
+ optimized->edgeindexsize = 0;
+ optimized->faces = (aas_face_t *) GetClearedMemory(aasworld.numfaces * sizeof(aas_face_t));
+ optimized->numfaces = 1; //face zero is a dummy
+ optimized->faceindex = (aas_faceindex_t *) GetClearedMemory(aasworld.faceindexsize * sizeof(aas_faceindex_t));
+ optimized->faceindexsize = 0;
+ optimized->areas = (aas_area_t *) GetClearedMemory(aasworld.numareas * sizeof(aas_area_t));
+ optimized->numareas = aasworld.numareas;
+ //
+ optimized->vertexoptimizeindex = (int *) GetClearedMemory(aasworld.numvertexes * sizeof(int));
+ optimized->edgeoptimizeindex = (int *) GetClearedMemory(aasworld.numedges * sizeof(int));
+ optimized->faceoptimizeindex = (int *) GetClearedMemory(aasworld.numfaces * sizeof(int));
+} //end of the function AAS_OptimizeAlloc
+//===========================================================================
+//
+// Parameter: -
+// Returns: -
+// Changes Globals: -
+//===========================================================================
+void AAS_OptimizeStore(optimized_t *optimized)
+{
+ //store the optimized vertexes
+ if (aasworld.vertexes) FreeMemory(aasworld.vertexes);
+ aasworld.vertexes = optimized->vertexes;
+ aasworld.numvertexes = optimized->numvertexes;
+ //store the optimized edges
+ if (aasworld.edges) FreeMemory(aasworld.edges);
+ aasworld.edges = optimized->edges;
+ aasworld.numedges = optimized->numedges;
+ //store the optimized edge index
+ if (aasworld.edgeindex) FreeMemory(aasworld.edgeindex);
+ aasworld.edgeindex = optimized->edgeindex;
+ aasworld.edgeindexsize = optimized->edgeindexsize;
+ //store the optimized faces
+ if (aasworld.faces) FreeMemory(aasworld.faces);
+ aasworld.faces = optimized->faces;
+ aasworld.numfaces = optimized->numfaces;
+ //store the optimized face index
+ if (aasworld.faceindex) FreeMemory(aasworld.faceindex);
+ aasworld.faceindex = optimized->faceindex;
+ aasworld.faceindexsize = optimized->faceindexsize;
+ //store the optimized areas
+ if (aasworld.areas) FreeMemory(aasworld.areas);
+ aasworld.areas = optimized->areas;
+ aasworld.numareas = optimized->numareas;
+ //free optimize indexes
+ FreeMemory(optimized->vertexoptimizeindex);
+ FreeMemory(optimized->edgeoptimizeindex);
+ FreeMemory(optimized->faceoptimizeindex);
+} //end of the function AAS_OptimizeStore
+//===========================================================================
+//
+// Parameter: -
+// Returns: -
+// Changes Globals: -
+//===========================================================================
+void AAS_Optimize(void)
+{
+ int i, sign;
+ optimized_t optimized;
+
+ AAS_OptimizeAlloc(&optimized);
+ for (i = 1; i < aasworld.numareas; i++)
+ {
+ AAS_OptimizeArea(&optimized, i);
+ } //end for
+ //reset the reachability face pointers
+ for (i = 0; i < aasworld.reachabilitysize; i++)
+ {
+ //NOTE: for TRAVEL_ELEVATOR the facenum is the model number of
+ // the elevator
+ if ((aasworld.reachability[i].traveltype & TRAVELTYPE_MASK) == TRAVEL_ELEVATOR) continue;
+ //NOTE: for TRAVEL_JUMPPAD the facenum is the Z velocity and the edgenum is the hor velocity
+ if ((aasworld.reachability[i].traveltype & TRAVELTYPE_MASK) == TRAVEL_JUMPPAD) continue;
+ //NOTE: for TRAVEL_FUNCBOB the facenum and edgenum contain other coded information
+ if ((aasworld.reachability[i].traveltype & TRAVELTYPE_MASK) == TRAVEL_FUNCBOB) continue;
+ //
+ sign = aasworld.reachability[i].facenum;
+ aasworld.reachability[i].facenum = optimized.faceoptimizeindex[abs(aasworld.reachability[i].facenum)];
+ if (sign < 0) aasworld.reachability[i].facenum = -aasworld.reachability[i].facenum;
+ sign = aasworld.reachability[i].edgenum;
+ aasworld.reachability[i].edgenum = optimized.edgeoptimizeindex[abs(aasworld.reachability[i].edgenum)];
+ if (sign < 0) aasworld.reachability[i].edgenum = -aasworld.reachability[i].edgenum;
+ } //end for
+ //store the optimized AAS data into aasworld
+ AAS_OptimizeStore(&optimized);
+ //print some nice stuff :)
+ botimport.Print(PRT_MESSAGE, "AAS data optimized.\n");
+} //end of the function AAS_Optimize