30 #include "engines/icb/common/px_common.h" 31 #include "engines/icb/common/px_linkeddatafile.h" 32 #include "engines/icb/prim_route_builder.h" 33 #include "engines/icb/common/px_floor_map.h" 34 #include "engines/icb/object_structs.h" 35 #include "engines/icb/barriers.h" 46 uint32 Locate_floor_rect(PXreal x, PXreal z, PXreal y,
_floor **rct);
47 uint32 Return_floor_rect(PXreal x, PXreal z, PXreal y, uint32 rubber);
48 bool8 Point_on_rubber_floor(PXreal x, PXreal z, PXreal y, uint32 rubber, uint32 rect_num);
50 void Set_floor_rect_flag(
_logic *log);
51 uint32 Return_non_rubber_floor_no(
_logic *log, uint32 cur_rubber_floor);
54 void Pick_floor_route(uint32 start, uint32 dest);
55 void Find_shortest_floor_route(uint32 start, uint32 dest, uint32 x, uint32 z);
56 void Recurse_to_shortest(uint32 adjoining_floor, uint32 level, uint32 dest);
57 uint32 Calculate_floor_route_length(uint32 total_floors);
59 PXreal Fetch_height(uint32 height);
60 int32 Fetch_total_heights();
61 uint32 Fetch_total_floors();
63 PXreal Gravitise_y(PXreal y);
65 PXreal Floor_safe_gravitise_y(PXreal fY);
67 void Align_with_floor(
_mega *mega);
68 PXreal Return_true_y(PXreal y);
69 bool8 On_a_floor(
_mega *mega);
72 _floor *Fetch_named_floor(
const char *name);
73 _floor *Fetch_floor_number(uint32 num);
74 PXreal Fetch_floors_volume_height(uint32 num);
75 uint32 Fetch_floor_number_by_name(
const char *name);
76 uint32 Fetch_number_of_floors()
const {
return total_floors; }
78 int32 Project_point_down_through_floors(int32 nX, int32 nY, int32 nZ);
86 PXreal heights[MAX_heights];
88 PXreal floor_y_volume[MAX_floors];
91 inline PXreal _floor_world::Fetch_floors_volume_height(uint32 num) {
return floor_y_volume[num]; }
93 inline PXreal _floor_world::Fetch_height(uint32 height) {
94 if (height >= total_heights) {
95 Fatal_error(
"can't get %d height of %d", height, total_heights);
98 return (heights[height]);
101 inline int32 _floor_world::Fetch_total_heights() {
return (total_heights); }
103 inline uint32 _floor_world::Fetch_total_floors() {
return (total_floors); }
105 inline _floor *_floor_world::Fetch_named_floor(
const char *name) {
107 return ((
_floor *)LinkedDataObject::Fetch_item_by_name(floors, name));
110 inline _floor *_floor_world::Fetch_floor_number(uint32 num) {
112 return ((
_floor *)LinkedDataObject::Fetch_item_by_number(floors, num));
Definition: object_structs.h:391
Definition: px_linkeddatafile.h:53
Definition: px_floor_map.h:70
Definition: object_structs.h:211