27 #ifndef ICB_PRIM_ROUTE_BUILDER_H 28 #define ICB_PRIM_ROUTE_BUILDER_H 30 #include "engines/icb/common/px_rcutypes.h" 31 #include "engines/icb/common/px_route_barriers.h" 32 #include "engines/icb/route_manager.h" 36 #define MAX_barriers 255 // Changed from 256 to 300, 'cos M08 was tipping it. 38 #if MAX_barriers > 255 40 #error "MAX_barriers must be less than 256, because of e.g. uint8 temp_route[MAX_final_route];" 44 enum _route_stat { __PRIM_ROUTE_OK, __PRIM_ROUTE_FAIL };
49 void Reset_barrier_list();
52 _route_stat Calc_route(PXreal startx, PXreal startz, PXreal endx, PXreal endz);
58 _point final_route[MAX_final_route];
64 int32 Get_intersect(PXreal x0, PXreal y0, PXreal x1, PXreal y1, PXreal x2, PXreal y2, PXreal x3, PXreal y3);
68 bool8 LineIntersectsRect(
DXrect oRect, int32 nX1, int32 nY1, int32 nX2, int32 nY2)
const;
71 _point barrier_list[MAX_barriers];
76 uint8 hitsBits[MAX_barriers][(MAX_barriers + 7) / 8];
77 uint8 gohitsBits[MAX_barriers][(MAX_barriers + 7) / 8];
80 uint8 temp_route[MAX_final_route];
84 uint8 exclude[MAX_barriers];
85 uint8 temp_exclude[MAX_barriers];
87 #if defined(PRIM_BYTE_ARRAYS) && PRIM_BYTE_ARRAYS 88 uint8 hits[MAX_barriers][MAX_barriers];
89 uint8 gohits[MAX_barriers][MAX_barriers];
92 void Find_connects(uint32 point, PXreal cur_len, uint32 level);
94 PXfloat m_fabs(PXfloat val);
Definition: graphic_prims.h:47
Definition: prim_route_builder.h:46
Definition: route_manager.h:74
Definition: px_types.h:32
Definition: px_route_barriers.h:146