00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef ADIKT_OBJCOLMN_H
00021 #define ADIKT_OBJCOLMN_H
00022
00023 struct LEVOPTIONS;
00024 struct COLUMN_REC;
00025
00026 #include "globals.h"
00027
00028 #define CUST_CLM_GEN_MAX_INDEX 41
00029
00030 struct DK_CUSTOM_CLM {
00031 unsigned short wib_val;
00032 struct COLUMN_REC *rec;
00033 };
00034
00035 typedef void (*cr_clm_func)(struct COLUMN_REC *clm_recs[9],
00036 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00037
00038 DLLIMPORT unsigned short column_wib_entry(struct COLUMN_REC *clm_rec,
00039 struct COLUMN_REC *clm_rec_n,struct COLUMN_REC *clm_rec_w,struct COLUMN_REC *clm_rec_nw);
00040 DLLIMPORT short column_wib_animate(unsigned int clm);
00041
00042 DLLIMPORT char *get_custom_column_fullname(unsigned short idx);
00043 DLLIMPORT short fill_custom_column_data(unsigned short idx,struct COLUMN_REC *clm_recs[9],
00044 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00045
00046 DLLIMPORT void create_columns_for_slab(struct COLUMN_REC *clm_recs[9],struct LEVOPTIONS *optns,
00047 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00048 DLLIMPORT unsigned char *surr_tng_find(unsigned char **surr_tng,unsigned char type_idx);
00049
00050 void create_columns_slb_unaffected_rock(struct COLUMN_REC *clm_recs[9],
00051 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00052 void create_columns_slb_rock(struct COLUMN_REC *clm_recs[9],
00053 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00054 void create_columns_slb_gold(struct COLUMN_REC *clm_recs[9],
00055 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00056 void create_columns_slb_fulldirt(struct COLUMN_REC *clm_recs[9],
00057 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00058 void create_columns_slb_earth(struct COLUMN_REC *clm_recs[9],
00059 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00060 void create_columns_slb_torchdirt(struct COLUMN_REC *clm_recs[9],
00061 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00062 void create_columns_slb_walldrape(struct COLUMN_REC *clm_recs[9],
00063 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00064 void create_columns_slb_walltorch(struct COLUMN_REC *clm_recs[9],
00065 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00066 void create_columns_slb_wallwtwins(struct COLUMN_REC *clm_recs[9],
00067 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00068 void create_columns_slb_wallwwoman(struct COLUMN_REC *clm_recs[9],
00069 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00070 void create_columns_slb_wallpairshr(struct COLUMN_REC *clm_recs[9],
00071 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00072 void create_columns_slb_path(struct COLUMN_REC *clm_recs[9],
00073 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00074 void create_columns_slb_claimed(struct COLUMN_REC *clm_recs[9],
00075 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00076 void create_columns_slb_lava(struct COLUMN_REC *clm_recs[9],
00077 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00078 void create_columns_slb_water(struct COLUMN_REC *clm_recs[9],
00079 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00080 void create_columns_slb_portal(struct COLUMN_REC *clm_recs[9],
00081 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00082 void create_columns_slb_treasure(struct COLUMN_REC *clm_recs[9],
00083 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00084 void create_columns_slb_library(struct COLUMN_REC *clm_recs[9],
00085 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00086 void create_columns_slb_prison(struct COLUMN_REC *clm_recs[9],
00087 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00088 void create_columns_slb_torture(struct COLUMN_REC *clm_recs[9],
00089 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00090 void create_columns_slb_training(struct COLUMN_REC *clm_recs[9],
00091 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00092 void create_columns_slb_dungheart(struct COLUMN_REC *clm_recs[9],
00093 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00094 void create_columns_slb_workshop(struct COLUMN_REC *clm_recs[9],
00095 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00096 void create_columns_slb_scavenger(struct COLUMN_REC *clm_recs[9],
00097 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00098 void create_columns_slb_temple(struct COLUMN_REC *clm_recs[9],
00099 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00100 void create_columns_slb_graveyard(struct COLUMN_REC *clm_recs[9],
00101 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00102 void create_columns_slb_hatchery(struct COLUMN_REC *clm_recs[9],
00103 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00104 void create_columns_slb_lair(struct COLUMN_REC *clm_recs[9],
00105 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00106 void create_columns_slb_barracks(struct COLUMN_REC *clm_recs[9],
00107 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00108 void create_columns_slb_doorwood(struct COLUMN_REC *clm_recs[9],
00109 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00110 void create_columns_slb_doorbrace(struct COLUMN_REC *clm_recs[9],
00111 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00112 void create_columns_slb_dooriron(struct COLUMN_REC *clm_recs[9],
00113 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00114 void create_columns_slb_doormagic(struct COLUMN_REC *clm_recs[9],
00115 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00116 void create_columns_slb_bridge(struct COLUMN_REC *clm_recs[9],
00117 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00118 void create_columns_slb_unaffected_gems(struct COLUMN_REC *clm_recs[9],
00119 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00120 void create_columns_slb_gems(struct COLUMN_REC *clm_recs[9],
00121 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00122 void create_columns_slb_guardpost(struct COLUMN_REC *clm_recs[9],
00123 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00124
00125 void modify_frail_columns(struct COLUMN_REC *clm_recs[9],
00126 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00127 short modify_liquid_surrounding(struct COLUMN_REC *clm_recs[9],unsigned char *surr_slb,
00128 short liq_level,unsigned short water_cube,unsigned short lava_cube);
00129 short modify_liquid_surrounding_advncd(struct COLUMN_REC *clm_recs[9],
00130 const unsigned char *surr_slb,const unsigned char *surr_own,
00131 const short liq_level,const unsigned short *water_cube,const unsigned short *lava_cube);
00132 unsigned short *get_room_corner_direction_indices(unsigned char *surr_slb,unsigned char *surr_own);
00133 unsigned short *get_room_edge_direction_indices(unsigned char *surr_slb,unsigned char *surr_own);
00134
00135 void create_columns_slb_wallbrick(struct COLUMN_REC *clm_recs[9], short *allow_relief,
00136 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00137 void fill_columns_slb_roomrelief(struct COLUMN_REC *clm_recs[9], short *allow_relief,
00138 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00139 short fill_side_columns_room_relief(struct COLUMN_REC *clm_reca,struct COLUMN_REC *clm_recb,
00140 struct COLUMN_REC *clm_recc,unsigned short room_slab,unsigned char owner, short corner, short edge);
00141
00142 void create_columns_slb_skulls_on_lava(struct COLUMN_REC *clm_recs[9],
00143 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00144 void create_columns_slb_skulls_on_path(struct COLUMN_REC *clm_recs[9],
00145 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00146 void create_columns_slb_skulls_on_claimed(struct COLUMN_REC *clm_recs[9],
00147 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00148 void create_columns_slb_wall_force_relief_splatbody(struct COLUMN_REC *clm_recs[9],
00149 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00150
00151 void create_columns_slb_room(cr_clm_func cr_floor,cr_clm_func cr_edge,
00152 cr_clm_func cr_corner,cr_clm_func cr_inside,cr_clm_func cr_nearinsd,
00153 struct COLUMN_REC *clm_recs[9], unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00154
00155 void create_columns_slb_portal_floor(struct COLUMN_REC *clm_recs[9],
00156 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00157 void create_columns_slb_portal_edge(struct COLUMN_REC *clm_recs[9],
00158 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00159 void create_columns_slb_portal_corner(struct COLUMN_REC *clm_recs[9],
00160 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00161 void create_columns_slb_portal_inside(struct COLUMN_REC *clm_recs[9],
00162 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00163 void create_columns_slb_treasure_floor(struct COLUMN_REC *clm_recs[9],
00164 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00165 void create_columns_slb_treasure_edge(struct COLUMN_REC *clm_recs[9],
00166 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00167 void create_columns_slb_treasure_corner(struct COLUMN_REC *clm_recs[9],
00168 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00169 void create_columns_slb_treasure_inside(struct COLUMN_REC *clm_recs[9],
00170 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00171 void create_columns_slb_library_floor(struct COLUMN_REC *clm_recs[9],
00172 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00173 void create_columns_slb_library_edge(struct COLUMN_REC *clm_recs[9],
00174 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00175 void create_columns_slb_library_corner(struct COLUMN_REC *clm_recs[9],
00176 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00177 void create_columns_slb_library_inside(struct COLUMN_REC *clm_recs[9],
00178 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00179 void create_columns_slb_prison_floor(struct COLUMN_REC *clm_recs[9],
00180 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00181 void create_columns_slb_prison_edge(struct COLUMN_REC *clm_recs[9],
00182 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00183 void create_columns_slb_prison_corner(struct COLUMN_REC *clm_recs[9],
00184 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00185 void create_columns_slb_prison_inside(struct COLUMN_REC *clm_recs[9],
00186 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00187 void create_columns_slb_torture_floor(struct COLUMN_REC *clm_recs[9],
00188 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00189 void create_columns_slb_torture_edge(struct COLUMN_REC *clm_recs[9],
00190 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00191 void create_columns_slb_torture_corner(struct COLUMN_REC *clm_recs[9],
00192 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00193 void create_columns_slb_torture_inside(struct COLUMN_REC *clm_recs[9],
00194 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00195 void create_columns_slb_training_floor(struct COLUMN_REC *clm_recs[9],
00196 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00197 void create_columns_slb_training_edge(struct COLUMN_REC *clm_recs[9],
00198 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00199 void create_columns_slb_training_corner(struct COLUMN_REC *clm_recs[9],
00200 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00201 void create_columns_slb_training_inside(struct COLUMN_REC *clm_recs[9],
00202 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00203 void create_columns_slb_dungheart_floor(struct COLUMN_REC *clm_recs[9],
00204 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00205 void create_columns_slb_dungheart_edge(struct COLUMN_REC *clm_recs[9],
00206 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00207 void create_columns_slb_dungheart_corner(struct COLUMN_REC *clm_recs[9],
00208 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00209 void create_columns_slb_dungheart_inside(struct COLUMN_REC *clm_recs[9],
00210 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00211 void create_columns_slb_dungheart_nearinsd(struct COLUMN_REC *clm_recs[9],
00212 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00213 void create_columns_slb_workshop_floor(struct COLUMN_REC *clm_recs[9],
00214 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00215 void create_columns_slb_workshop_edge(struct COLUMN_REC *clm_recs[9],
00216 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00217 void create_columns_slb_workshop_corner(struct COLUMN_REC *clm_recs[9],
00218 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00219 void create_columns_slb_workshop_inside(struct COLUMN_REC *clm_recs[9],
00220 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00221 void create_columns_slb_scavenger_floor(struct COLUMN_REC *clm_recs[9],
00222 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00223 void create_columns_slb_scavenger_edge(struct COLUMN_REC *clm_recs[9],
00224 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00225 void create_columns_slb_scavenger_corner(struct COLUMN_REC *clm_recs[9],
00226 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00227 void create_columns_slb_scavenger_inside(struct COLUMN_REC *clm_recs[9],
00228 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00229 void create_columns_slb_temple_floor(struct COLUMN_REC *clm_recs[9],
00230 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00231 void create_columns_slb_temple_edge(struct COLUMN_REC *clm_recs[9],
00232 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00233 void create_columns_slb_temple_corner(struct COLUMN_REC *clm_recs[9],
00234 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00235 void create_columns_slb_temple_inside(struct COLUMN_REC *clm_recs[9],
00236 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00237 void create_columns_slb_graveyard_floor(struct COLUMN_REC *clm_recs[9],
00238 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00239 void create_columns_slb_graveyard_edge(struct COLUMN_REC *clm_recs[9],
00240 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00241 void create_columns_slb_graveyard_corner(struct COLUMN_REC *clm_recs[9],
00242 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00243 void create_columns_slb_graveyard_inside(struct COLUMN_REC *clm_recs[9],
00244 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00245 void create_columns_slb_hatchery_floor(struct COLUMN_REC *clm_recs[9],
00246 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00247 void create_columns_slb_hatchery_edge(struct COLUMN_REC *clm_recs[9],
00248 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00249 void create_columns_slb_hatchery_corner(struct COLUMN_REC *clm_recs[9],
00250 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00251 void create_columns_slb_hatchery_inside(struct COLUMN_REC *clm_recs[9],
00252 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00253 void create_columns_slb_lair_floor(struct COLUMN_REC *clm_recs[9],
00254 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00255 void create_columns_slb_lair_edge(struct COLUMN_REC *clm_recs[9],
00256 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00257 void create_columns_slb_lair_corner(struct COLUMN_REC *clm_recs[9],
00258 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00259 void create_columns_slb_lair_inside(struct COLUMN_REC *clm_recs[9],
00260 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00261 void create_columns_slb_barracks_floor(struct COLUMN_REC *clm_recs[9],
00262 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00263 void create_columns_slb_barracks_edge(struct COLUMN_REC *clm_recs[9],
00264 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00265 void create_columns_slb_barracks_corner(struct COLUMN_REC *clm_recs[9],
00266 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00267 void create_columns_slb_barracks_inside(struct COLUMN_REC *clm_recs[9],
00268 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00269
00270 void create_columns_slb_door_floor(struct COLUMN_REC *clm_recs[9],
00271 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00272
00273
00274 void create_columns_slb_thingems_path(struct COLUMN_REC *clm_recs[9],
00275 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00276 void create_columns_slb_rock_gndlev(struct COLUMN_REC *clm_recs[9],
00277 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00278 void create_columns_slb_rockcaped_pathcave(struct COLUMN_REC *clm_recs[9],
00279 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00280 void create_columns_slb_rockcaped_claimcave(struct COLUMN_REC *clm_recs[9],
00281 unsigned char *surr_slb,unsigned char *surr_own, unsigned char **surr_tng);
00282
00283 short surrnd_not_enemy(unsigned char *surr_own, short direction);
00284
00285 #endif // ADIKT_OBJCOLMN_H