Lines Matching refs:ptile

40 int tile_index(const struct tile *ptile)  in tile_index()  argument
42 return ptile->index; in tile_index()
50 struct player *tile_owner(const struct tile *ptile) in tile_owner() argument
52 return ptile->owner; in tile_owner()
60 struct tile *tile_claimer(const struct tile *ptile) in tile_claimer() argument
62 return ptile->claimer; in tile_claimer()
69 void tile_set_owner(struct tile *ptile, struct player *pplayer, in tile_set_owner() argument
73 ptile->owner = pplayer; in tile_set_owner()
74 ptile->claimer = claimer; in tile_set_owner()
81 struct city *tile_city(const struct tile *ptile) in tile_city() argument
83 struct city *pcity = ptile->worked; in tile_city()
85 if (NULL != pcity && is_city_center(pcity, ptile)) { in tile_city()
95 struct city *tile_worked(const struct tile *ptile) in tile_worked() argument
97 return ptile->worked; in tile_worked()
104 void tile_set_worked(struct tile *ptile, struct city *pcity) in tile_set_worked() argument
106 ptile->worked = pcity; in tile_set_worked()
113 struct terrain *tile_terrain(const struct tile *ptile) in tile_terrain() argument
115 return ptile->terrain; in tile_terrain()
122 void tile_set_terrain(struct tile *ptile, struct terrain *pterrain) in tile_set_terrain() argument
136 || tile_virtual_check(ptile) in tile_set_terrain()
138 || NULL == tile_city(ptile), in tile_set_terrain()
141 TILE_XY(ptile), terrain_rule_name(pterrain), in tile_set_terrain()
142 terrain_number(pterrain), city_name_get(tile_city(ptile)), in tile_set_terrain()
143 tile_city(ptile)->id); in tile_set_terrain()
145 ptile->terrain = pterrain; in tile_set_terrain()
147 && NULL != ptile->resource in tile_set_terrain()
148 && terrain_has_resource(pterrain, ptile->resource)) { in tile_set_terrain()
149 ptile->resource_valid = TRUE; in tile_set_terrain()
151 ptile->resource_valid = FALSE; in tile_set_terrain()
173 const bv_extras *tile_extras_safe(const struct tile *ptile) in tile_extras_safe() argument
175 if (!ptile) { in tile_extras_safe()
179 return &(ptile->extras); in tile_extras_safe()
186 void tile_add_base(struct tile *ptile, const struct base_type *pbase) in tile_add_base() argument
188 tile_add_extra(ptile, base_extra_get(pbase)); in tile_add_base()
194 void tile_remove_base(struct tile *ptile, const struct base_type *pbase) in tile_remove_base() argument
196 tile_remove_extra(ptile, base_extra_get(pbase)); in tile_remove_base()
202 bool tile_has_base_flag(const struct tile *ptile, enum base_flag_id flag) in tile_has_base_flag() argument
207 if (tile_has_extra(ptile, pextra) && base_has_flag(pbase, flag)) { in tile_has_base_flag()
218 bool tile_has_base_flag_for_unit(const struct tile *ptile, in tile_has_base_flag_for_unit() argument
225 if (tile_has_extra(ptile, pextra) in tile_has_base_flag_for_unit()
237 bool tile_has_claimable_base(const struct tile *ptile, in tile_has_claimable_base() argument
243 if (tile_has_extra(ptile, pextra) in tile_has_claimable_base()
256 int tile_extras_defense_bonus(const struct tile *ptile, in tile_extras_defense_bonus() argument
259 return tile_extras_class_defense_bonus(ptile, utype_class(punittype)); in tile_extras_defense_bonus()
265 int tile_extras_class_defense_bonus(const struct tile *ptile, in tile_extras_class_defense_bonus() argument
273 if (tile_has_extra(ptile, pextra) in tile_extras_class_defense_bonus()
280 if (tile_has_extra(ptile, pextra) in tile_extras_class_defense_bonus()
294 int tile_roads_output_incr(const struct tile *ptile, enum output_type_id o) in tile_roads_output_incr() argument
300 if (tile_has_extra(ptile, pextra)) { in tile_roads_output_incr()
308 return const_incr + incr * tile_terrain(ptile)->road_output_incr_pct[o] / 100; in tile_roads_output_incr()
314 int tile_roads_output_bonus(const struct tile *ptile, enum output_type_id o) in tile_roads_output_bonus() argument
319 if (tile_has_extra(ptile, pextra)) { in tile_roads_output_bonus()
332 bool tile_has_refuel_extra(const struct tile *ptile, in tile_has_refuel_extra() argument
336 if (tile_has_extra(ptile, pextra) in tile_has_refuel_extra()
349 bool tile_has_native_base(const struct tile *ptile, in tile_has_native_base() argument
353 if (tile_has_extra(ptile, pextra) in tile_has_native_base()
366 const struct resource *tile_resource(const struct tile *ptile) in tile_resource() argument
368 return ptile->resource; in tile_resource()
375 void tile_set_resource(struct tile *ptile, struct resource *presource) in tile_set_resource() argument
377 ptile->resource = presource; in tile_set_resource()
378 if (NULL != ptile->terrain in tile_set_resource()
380 && terrain_has_resource(ptile->terrain, presource)) { in tile_set_resource()
381 ptile->resource_valid = TRUE; in tile_set_resource()
383 ptile->resource_valid = FALSE; in tile_set_resource()
393 Continent_id tile_continent(const struct tile *ptile) in tile_continent() argument
395 return ptile->continent; in tile_continent()
402 void tile_set_continent(struct tile *ptile, Continent_id val) in tile_set_continent() argument
404 ptile->continent = val; in tile_set_continent()
412 enum known_type tile_get_known(const struct tile *ptile, in tile_get_known() argument
415 if (!dbv_isset(&pplayer->tile_known, tile_index(ptile))) { in tile_get_known()
417 } else if (!fc_funcs->player_tile_vision_get(ptile, pplayer, V_MAIN)) { in tile_get_known()
436 int tile_activity_time(enum unit_activity activity, const struct tile *ptile, in tile_activity_time() argument
439 struct terrain *pterrain = tile_terrain(ptile); in tile_activity_time()
465 static void tile_create_extra(struct tile *ptile, struct extra_type *pextra) in tile_create_extra() argument
469 fc_funcs->create_extra(ptile, pextra, NULL); in tile_create_extra()
471 tile_add_extra(ptile, pextra); in tile_create_extra()
478 static void tile_destroy_extra(struct tile *ptile, struct extra_type *pextra) in tile_destroy_extra() argument
482 fc_funcs->destroy_extra(ptile, pextra); in tile_destroy_extra()
484 tile_remove_extra(ptile, pextra); in tile_destroy_extra()
493 void tile_change_terrain(struct tile *ptile, struct terrain *pterrain) in tile_change_terrain() argument
495 tile_set_terrain(ptile, pterrain); in tile_change_terrain()
499 if (tile_has_extra(ptile, pextra) in tile_change_terrain()
500 && (!is_native_tile_to_extra(pextra, ptile) in tile_change_terrain()
502 tile_destroy_extra(ptile, pextra); in tile_change_terrain()
510 static bool add_recursive_extras(struct tile *ptile, struct extra_type *pextra, in add_recursive_extras() argument
520 if (!tile_has_extra(ptile, pdep)) { in add_recursive_extras()
521 add_recursive_extras(ptile, pdep, rec + 1); in add_recursive_extras()
526 if (!is_native_tile_to_extra(pextra, ptile)) { in add_recursive_extras()
530 tile_create_extra(ptile, pextra); in add_recursive_extras()
538 static bool rm_recursive_extras(struct tile *ptile, struct extra_type *pextra, in rm_recursive_extras() argument
547 if (tile_has_extra(ptile, pdepending)) { in rm_recursive_extras()
551 if (!rm_recursive_extras(ptile, pdepending, rec + 1)) { in rm_recursive_extras()
559 tile_destroy_extra(ptile, pextra); in rm_recursive_extras()
572 bool tile_extra_apply(struct tile *ptile, struct extra_type *tgt) in tile_extra_apply() argument
575 if (!add_recursive_extras(ptile, tgt, 0)) { in tile_extra_apply()
581 if (tile_has_extra(ptile, pextra) in tile_extra_apply()
583 tile_destroy_extra(ptile, pextra); in tile_extra_apply()
598 bool tile_extra_rm_apply(struct tile *ptile, struct extra_type *tgt) in tile_extra_rm_apply() argument
601 if (!rm_recursive_extras(ptile, tgt, 0)) { in tile_extra_rm_apply()
612 static void tile_irrigate(struct tile *ptile, struct extra_type *tgt) in tile_irrigate() argument
614 struct terrain *pterrain = tile_terrain(ptile); in tile_irrigate()
623 tile_extra_apply(ptile, tgt); in tile_irrigate()
626 tile_change_terrain(ptile, pterrain->irrigation_result); in tile_irrigate()
634 static void tile_mine(struct tile *ptile, struct extra_type *tgt) in tile_mine() argument
636 struct terrain *pterrain = tile_terrain(ptile); in tile_mine()
645 tile_extra_apply(ptile, tgt); in tile_mine()
648 tile_change_terrain(ptile, pterrain->mining_result); in tile_mine()
656 static void tile_transform(struct tile *ptile) in tile_transform() argument
658 struct terrain *pterrain = tile_terrain(ptile); in tile_transform()
661 tile_change_terrain(ptile, pterrain->transform_result); in tile_transform()
670 bool tile_apply_activity(struct tile *ptile, Activity_type_id act, in tile_apply_activity() argument
677 tile_mine(ptile, tgt); in tile_apply_activity()
681 tile_irrigate(ptile, tgt); in tile_apply_activity()
685 tile_transform(ptile); in tile_apply_activity()
726 const struct tile *ptile, in tile_info_pollution() argument
730 if (tile_has_visible_extra(ptile, pextra)) { in tile_info_pollution()
760 const char *tile_get_info_text(const struct tile *ptile, in tile_get_info_text() argument
768 sz_strlcpy(s, terrain_name_translation(tile_terrain(ptile))); in tile_get_info_text()
776 && tile_has_visible_extra(ptile, pextra)) { in tile_get_info_text()
791 if (tile_resource_is_valid(ptile)) { in tile_get_info_text()
799 resource_name_translation(ptile->resource)); in tile_get_info_text()
810 pollution = tile_info_pollution(s, bufsz, ptile, pextra, pollution, in tile_get_info_text()
825 bool tile_has_base(const struct tile *ptile, const struct base_type *pbase) in tile_has_base() argument
827 return tile_has_extra(ptile, base_extra_get(pbase)); in tile_has_base()
833 bool tile_has_road(const struct tile *ptile, const struct road_type *proad) in tile_has_road() argument
835 return tile_has_extra(ptile, road_extra_get(proad)); in tile_has_road()
841 bool tile_has_river(const struct tile *ptile) in tile_has_river() argument
845 if (tile_has_extra(ptile, priver) in tile_has_river()
857 void tile_add_road(struct tile *ptile, const struct road_type *proad) in tile_add_road() argument
860 tile_add_extra(ptile, road_extra_get(proad)); in tile_add_road()
867 void tile_remove_road(struct tile *ptile, const struct road_type *proad) in tile_remove_road() argument
870 tile_remove_extra(ptile, road_extra_get(proad)); in tile_remove_road()
877 bool tile_has_road_flag(const struct tile *ptile, enum road_flag_id flag) in tile_has_road_flag() argument
880 if (tile_has_extra(ptile, pextra)) { in tile_has_road_flag()
895 bool tile_has_extra_flag(const struct tile *ptile, enum extra_flag_id flag) in tile_has_extra_flag() argument
898 if (tile_has_extra(ptile, pextra) in tile_has_extra_flag()
910 bool tile_has_conflicting_extra(const struct tile *ptile, in tile_has_conflicting_extra() argument
915 && tile_has_extra(ptile, pconfl)) { in tile_has_conflicting_extra()
926 bool tile_has_visible_extra(const struct tile *ptile, const struct extra_type *pextra) in tile_has_visible_extra() argument
930 if (!BV_ISSET(ptile->extras, extra_index(pextra))) { in tile_has_visible_extra()
938 && BV_ISSET(ptile->extras, topi)) { in tile_has_visible_extra()
950 bool tile_has_cause_extra(const struct tile *ptile, enum extra_cause cause) in tile_has_cause_extra() argument
953 if (tile_has_extra(ptile, pextra)) { in tile_has_cause_extra()
964 void tile_add_extra(struct tile *ptile, const struct extra_type *pextra) in tile_add_extra() argument
967 BV_SET(ptile->extras, extra_index(pextra)); in tile_add_extra()
974 void tile_remove_extra(struct tile *ptile, const struct extra_type *pextra) in tile_remove_extra() argument
977 BV_CLR(ptile->extras, extra_index(pextra)); in tile_remove_extra()
987 struct tile *tile_virtual_new(const struct tile *ptile) in tile_virtual_new() argument
1007 if (ptile) { in tile_virtual_new()
1010 vtile->index = tile_index(ptile); in tile_virtual_new()
1014 if (BV_ISSET(ptile->extras, extra_number(pextra))) { in tile_virtual_new()
1019 vtile->resource_valid = ptile->resource_valid; in tile_virtual_new()
1021 vtile->resource = ptile->resource; in tile_virtual_new()
1022 vtile->terrain = ptile->terrain; in tile_virtual_new()
1023 vtile->worked = ptile->worked; in tile_virtual_new()
1024 vtile->owner = ptile->owner; in tile_virtual_new()
1025 vtile->extras_owner = ptile->extras_owner; in tile_virtual_new()
1026 vtile->claimer = ptile->claimer; in tile_virtual_new()
1090 void *tile_hash_key(const struct tile *ptile) in tile_hash_key() argument
1094 key = FC_INT_TO_PTR(ptile->index); in tile_hash_key()
1102 bool tile_set_label(struct tile *ptile, const char *label) in tile_set_label() argument
1111 if (ptile->label != NULL) { in tile_set_label()
1114 } else if (strcmp(ptile->label, label)) { in tile_set_label()
1117 FC_FREE(ptile->label); in tile_set_label()
1118 ptile->label = NULL; in tile_set_label()
1127 ptile->label = fc_strdup(label); in tile_set_label()