Freeciv-3.1
|
#include "support.h"
#include "fc_types.h"
#include "featured_text.h"
#include "map.h"
#include "colors_g.h"
#include "tilespec.h"
Go to the source code of this file.
Data Structures | |
struct | view |
Macros | |
#define | BORDER_WIDTH 2 |
#define | GOTO_WIDTH 2 |
#define | gui_rect_iterate(GRI_x0, GRI_y0, GRI_width, GRI_height, _t, _e, _c, _zoom) |
#define | gui_rect_iterate_end |
#define | gui_rect_iterate_coord(GRI_x0, GRI_y0, GRI_width, GRI_height, _t, _e, _c, _x, _y, _zoom) |
#define | gui_rect_iterate_coord_end } gui_rect_iterate_end |
Enumerations | |
enum | topo_comp_lvl { TOPO_COMPATIBLE = 0 , TOPO_INCOMP_SOFT = 1 , TOPO_INCOMP_HARD = 2 } |
Functions | |
void | mapdeco_init (void) |
void | mapdeco_free (void) |
void | mapdeco_set_highlight (const struct tile *ptile, bool highlight) |
bool | mapdeco_is_highlight_set (const struct tile *ptile) |
void | mapdeco_clear_highlights (void) |
void | mapdeco_set_crosshair (const struct tile *ptile, bool crosshair) |
bool | mapdeco_is_crosshair_set (const struct tile *ptile) |
void | mapdeco_clear_crosshairs (void) |
void | mapdeco_set_gotoroute (const struct unit *punit) |
void | mapdeco_add_gotoline (const struct tile *ptile, enum direction8 dir) |
void | mapdeco_remove_gotoline (const struct tile *ptile, enum direction8 dir) |
bool | mapdeco_is_gotoline_set (const struct tile *ptile, enum direction8 dir) |
void | mapdeco_clear_gotoroutes (void) |
struct tile * | client_infratile (void) |
void | client_infratile_set (struct tile *ptile) |
void | refresh_tile_mapcanvas (struct tile *ptile, bool full_refresh, bool write_to_screen) |
void | refresh_unit_mapcanvas (struct unit *punit, struct tile *ptile, bool full_refresh, bool write_to_screen) |
void | refresh_city_mapcanvas (struct city *pcity, struct tile *ptile, bool full_refresh, bool write_to_screen) |
void | unqueue_mapview_updates (bool write_to_screen) |
void | map_to_gui_vector (const struct tileset *t, float zoom, float *gui_dx, float *gui_dy, int map_dx, int map_dy) |
bool | tile_to_canvas_pos (float *canvas_x, float *canvas_y, float zoom, const struct tile *ptile) fc__attribute((nonnull(1 |
bool struct tile * | canvas_pos_to_tile (float canvas_x, float canvas_y, float zoom) |
struct tile * | canvas_pos_to_nearest_tile (float canvas_x, float canvas_y, float zoom) |
void | get_mapview_scroll_window (float *xmin, float *ymin, float *xmax, float *ymax, int *xsize, int *ysize) |
void | get_mapview_scroll_step (int *xstep, int *ystep) |
void | get_mapview_scroll_pos (int *scroll_x, int *scroll_y) |
void | set_mapview_scroll_pos (int scroll_x, int scroll_y, float zoom) |
void | set_mapview_origin (float gui_x0, float gui_y0, float zoom) |
struct tile * | get_center_tile_mapcanvas (void) |
void | center_tile_mapcanvas (const struct tile *ptile) fc__attribute((nonnull(1))) |
bool | tile_visible_mapcanvas (struct tile *ptile) |
bool | tile_visible_and_not_on_border_mapcanvas (struct tile *ptile) |
void | put_unit (const struct unit *punit, struct canvas *pcanvas, float zoom, int canvas_x, int canvas_y) |
void | put_unittype (const struct unit_type *putype, struct canvas *pcanvas, float zoom, int canvas_x, int canvas_y) |
void | put_city (struct city *pcity, struct canvas *pcanvas, float zoom, int canvas_x, int canvas_y) |
void | put_terrain (struct tile *ptile, struct canvas *pcanvas, float zoom, int canvas_x, int canvas_y) |
void | put_unit_city_overlays (struct unit *punit, struct canvas *pcanvas, int canvas_x, int canvas_y, int *upkeep_cost, int happy_cost) |
void | toggle_city_color (struct city *pcity) |
void | toggle_unit_color (struct unit *punit) |
void | put_nuke_mushroom_pixmaps (struct tile *ptile) |
void | put_one_element (struct canvas *pcanvas, float zoom, enum mapview_layer layer, const struct tile *ptile, const struct tile_edge *pedge, const struct tile_corner *pcorner, const struct unit *punit, const struct city *pcity, int canvas_x, int canvas_y, const struct city *citymode, const struct unit_type *putype) |
void | put_drawn_sprites (struct canvas *pcanvas, float zoom, int canvas_x, int canvas_y, int count, struct drawn_sprite *pdrawn, bool fog) |
void | update_map_canvas (int canvas_x, int canvas_y, int width, int height) |
void | update_map_canvas_visible (void) |
void | update_city_description (struct city *pcity) |
void | update_tile_label (struct tile *ptile) |
void | show_city_descriptions (int canvas_base_x, int canvas_base_y, int width_base, int height_base) |
void | show_tile_labels (int canvas_base_x, int canvas_base_y, int width_base, int height_base) |
bool | show_unit_orders (struct unit *punit) |
void | draw_segment (struct tile *ptile, enum direction8 dir) fc__attribute((nonnull(1))) |
void | decrease_unit_hp_smooth (struct unit *punit0, int hp0, struct unit *punit1, int hp1) |
void | move_unit_map_canvas (struct unit *punit, struct tile *ptile, int dx, int dy) |
struct city * | find_city_or_settler_near_tile (const struct tile *ptile, struct unit **punit) |
struct city * | find_city_near_tile (const struct tile *ptile) |
void | get_city_mapview_production (struct city *pcity, char *buf, size_t buf_len) |
void | get_city_mapview_name_and_growth (struct city *pcity, char *name_buffer, size_t name_buffer_len, char *growth_buffer, size_t growth_buffer_len, enum color_std *growth_color, enum color_std *production_color) |
void | get_city_mapview_trade_routes (struct city *pcity, char *trade_routes_buffer, size_t trade_routes_buffer_len, enum color_std *trade_routes_color) |
bool | map_canvas_resized (int width, int height) |
void | init_mapcanvas_and_overview (void) |
void | free_mapcanvas_and_overview (void) |
void | get_spaceship_dimensions (int *width, int *height) |
void | put_spaceship (struct canvas *pcanvas, int canvas_x, int canvas_y, const struct player *pplayer) |
void | link_marks_init (void) |
void | link_marks_free (void) |
void | link_marks_draw_all (void) |
void | link_marks_clear_all (void) |
void | link_marks_decrease_turn_counters (void) |
void | link_mark_add_new (enum text_link_type type, int id) |
void | link_mark_restore (enum text_link_type type, int id) |
enum topo_comp_lvl | tileset_map_topo_compatible (int topology_id, struct tileset *tset, int *tset_topo) |
const char * | describe_topology (int topo) |
void | animations_init (void) |
void | animations_free (void) |
void | set_frame_by_frame_animation (void) |
void | update_animation (void) |
Variables | |
struct view | mapview |
bool | can_slide |
#define BORDER_WIDTH 2 |
Definition at line 71 of file mapview_common.h.
#define GOTO_WIDTH 2 |
Definition at line 72 of file mapview_common.h.
#define gui_rect_iterate | ( | GRI_x0, | |
GRI_y0, | |||
GRI_width, | |||
GRI_height, | |||
_t, | |||
_e, | |||
_c, | |||
_zoom | |||
) |
Definition at line 97 of file mapview_common.h.
#define gui_rect_iterate_coord | ( | GRI_x0, | |
GRI_y0, | |||
GRI_width, | |||
GRI_height, | |||
_t, | |||
_e, | |||
_c, | |||
_x, | |||
_y, | |||
_zoom | |||
) |
Definition at line 230 of file mapview_common.h.
#define gui_rect_iterate_coord_end } gui_rect_iterate_end |
Definition at line 239 of file mapview_common.h.
#define gui_rect_iterate_end |
Definition at line 225 of file mapview_common.h.
enum topo_comp_lvl |
Enumerator | |
---|---|
TOPO_COMPATIBLE | |
TOPO_INCOMP_SOFT | |
TOPO_INCOMP_HARD |
Definition at line 363 of file mapview_common.h.
void animations_free | ( | void | ) |
Clean up animations system
Definition at line 186 of file mapview_common.c.
Referenced by client_game_free().
void animations_init | ( | void | ) |
Initialize animations system
Definition at line 178 of file mapview_common.c.
Referenced by client_game_init().
struct tile * canvas_pos_to_nearest_tile | ( | float | canvas_x, |
float | canvas_y, | ||
float | zoom | ||
) |
Finds the tile corresponding to pixel coordinates. Returns that tile, or the one nearest is the position is off the map. Will never return NULL.
Definition at line 768 of file mapview_common.c.
Referenced by anchor_selection_rectangle(), get_center_tile_mapcanvas(), recenter_button_pressed(), and update_selection_rectangle().
Finds the tile corresponding to pixel coordinates. Returns that tile, or NULL if the position is off the map.
Definition at line 751 of file mapview_common.c.
Referenced by action_button_pressed(), adjust_workers_button_pressed(), butt_down_mapcanvas(), button_down_on_map(), button_up_on_map(), define_tiles_within_rectangle(), editor_end_selection_rectangle(), editor_mouse_button_press(), editor_mouse_move(), key_city_overlay(), leave_mapcanvas(), left_butt_down_mapcanvas(), main_finger_down_handler(), main_mouse_button_down_handler(), main_mouse_motion_handler(), maybe_activate_keyboardless_goto(), middle_butt_down_mapcanvas(), mouse_scroll_mapcanvas(), mouse_scroll_mapcanvas(), map_view::mouseMoveEvent(), move_mapcanvas(), move_mapcanvas(), popup_find_dialog(), popupinfo_positioning_callback(), release_goto_button(), right_butt_down_mapcanvas(), map_view::shortcut_pressed(), update_line(), and wakeup_button_pressed().
void center_tile_mapcanvas | ( | const struct tile * | ptile | ) |
Centers the mapview around ptile.
Definition at line 1222 of file mapview_common.c.
Referenced by act_sel_location_callback(), activate_and_exit_units_orders_city_dlg_callback(), chatwdg::anchor_clicked(), auto_center_on_focus_unit(), butt_down_overviewcanvas(), city_widget::center(), center_iterate(), center_next_enemy_city(), center_next_player_capital(), center_next_player_city(), center_on_something(), city_widget::city_view(), goto_dialog::close_dlg(), cycle_enemy_units(), do_move_unit(), event_after(), event_after(), exit_find_city_dlg_callback(), find_city_callback(), find_destroy_callback(), find_selection_callback(), goto_cmd_callback(), goto_selection_callback(), notify_goto::goto_tile(), handle_unit_combat_info(), goto_dialog::item_selected(), key_center_capital(), meswin_goto(), meswin_popup_city(), minimap_window_callback(), hud_unit_combat::mousePressEvent(), minimap_view::mousePressEvent(), city_dialog::next_city(), notify_goto_dialog_goto_callback(), notify_goto_response(), popup_iterate(), city_dialog::prev_city(), recenter_button_pressed(), request_center_focus_unit(), right_butt_down_overviewcanvas(), select_unit_image_callback(), select_unit_pic_callback(), switch_city_callback(), themespec_reread(), tilespec_reread(), unit_center_callback(), unit_center_callback(), unit_focus_advance(), units_orders_city_dlg_callback(), units_report_command_callback(), usdlg_cmd_center(), and usdlg_tile().
struct tile * client_infratile | ( | void | ) |
Return currently selected infratile, if any
Definition at line 4090 of file mapview_common.c.
Referenced by fill_sprite_array().
void client_infratile_set | ( | struct tile * | ptile | ) |
Select specific infratile
Definition at line 4098 of file mapview_common.c.
Referenced by infra_placement_set_tile(), and infra_response_callback().
This function is called to decrease a unit's HP smoothly in battle when combat_animation is turned on.
Definition at line 2546 of file mapview_common.c.
Referenced by handle_unit_combat_info().
const char * describe_topology | ( | int | topo | ) |
Return string describing topology id.
Definition at line 4064 of file mapview_common.c.
Referenced by handle_map_info(), and tilespec_reread().
void draw_segment | ( | struct tile * | src_tile, |
enum direction8 | dir | ||
) |
Draw a goto line at the given location and direction. The line goes from the source tile to the adjacent tile in the given direction.
Definition at line 2508 of file mapview_common.c.
Referenced by show_unit_orders(), and update_map_canvas().
Find the nearest/best city that owns the tile.
Definition at line 2895 of file mapview_common.c.
Referenced by adjust_workers_button_pressed().
Find the "best" city/settlers to associate with the selected tile. a. If a visible city is working the tile, return that city. b. If another player's city is working the tile, return NULL. c. If any selected cities are within range, return the closest one. d. If any cities are within range, return the closest one. e. If any active (with color) settler could work it if they founded a city, choose the closest one (only if punit != NULL). f. If any settler could work it if they founded a city, choose the closest one (only if punit != NULL). g. If nobody can work it, return NULL.
Definition at line 2804 of file mapview_common.c.
Referenced by fill_city_overlays_sprite_array(), find_city_near_tile(), and key_city_overlay().
void free_mapcanvas_and_overview | ( | void | ) |
Frees resources allocated for mapview and overview
Definition at line 3693 of file mapview_common.c.
Referenced by fc_client::fc_main(), ui_main(), and ui_main().
struct tile * get_center_tile_mapcanvas | ( | void | ) |
Finds the current center tile of the mapcanvas.
Definition at line 1212 of file mapview_common.c.
Referenced by anchor_selection_rectangle(), create_goto_dialog(), find_a_focus_unit_tile_to_center_on(), find_best_focus_candidate(), goto_dialog::init(), popup_find_dialog(), property_page_create_objects(), themespec_reread(), tilespec_reread(), units_report_command_callback(), update_selection_rectangle(), and usdlg_tile().
void get_city_mapview_name_and_growth | ( | struct city * | pcity, |
char * | name_buffer, | ||
size_t | name_buffer_len, | ||
char * | growth_buffer, | ||
size_t | growth_buffer_len, | ||
enum color_std * | growth_color, | ||
enum color_std * | production_color | ||
) |
Fill the two buffers which information about the city which is shown below it. It does not take draw_city_names/draw_city_growth into account.
Definition at line 3187 of file mapview_common.c.
Referenced by show_full_citybar(), and show_small_citybar().
void get_city_mapview_production | ( | struct city * | pcity, |
char * | buffer, | ||
size_t | buffer_len | ||
) |
Find the mapview city production text for the given city, and place it into the buffer.
Definition at line 2924 of file mapview_common.c.
Referenced by show_full_citybar(), and show_small_citybar().
void get_city_mapview_trade_routes | ( | struct city * | pcity, |
char * | trade_routes_buffer, | ||
size_t | trade_routes_buffer_len, | ||
enum color_std * | pcolor | ||
) |
Find the mapview city trade routes text for the given city, and place it into the buffer. Sets 'pcolor' to the preferred color the text should be drawn in if it is non-NULL.
Definition at line 2950 of file mapview_common.c.
Referenced by show_full_citybar(), and show_small_citybar().
void get_mapview_scroll_pos | ( | int * | scroll_x, |
int * | scroll_y | ||
) |
Find the current scroll position (origin) of the mapview.
Definition at line 1191 of file mapview_common.c.
Referenced by mouse_scroll_mapcanvas(), mouse_scroll_mapcanvas(), scrollbar_jump_callback(), tile_visible_and_not_on_border_mapcanvas(), and update_map_canvas_scrollbars().
void get_mapview_scroll_step | ( | int * | xstep, |
int * | ystep | ||
) |
Find the scroll step for the mapview. This is the amount to scroll (in scroll coordinates) on each "step". See also get_mapview_scroll_window.
Definition at line 1177 of file mapview_common.c.
Referenced by mouse_scroll_mapcanvas(), mouse_scroll_mapcanvas(), and update_map_canvas_scrollbars_size().
void get_mapview_scroll_window | ( | float * | xmin, |
float * | ymin, | ||
float * | xmax, | ||
float * | ymax, | ||
int * | xsize, | ||
int * | ysize | ||
) |
Return the scroll dimensions of the clipping window for the mapview window..
Imagine the entire map in scroll coordinates. It is a rectangle. Now imagine the mapview "window" sliding around through this rectangle. How far can it slide? In most cases it has to be able to slide past the ends of the map rectangle so that it's capable of reaching the whole area.
This function gives constraints on how far the window is allowed to slide. xmin and ymin are the minimum values for the window origin. xsize and ysize give the scroll dimensions of the mapview window. xmax and ymax give the maximum values that the bottom/left ends of the window may reach. The constraints, therefore, are that:
get_mapview_scroll_pos(&scroll_x, &scroll_y); xmin <= scroll_x < xmax - xsize ymin <= scroll_y < ymax - ysize
This function should be used anywhere and everywhere that scrolling is constrained.
Note that scroll coordinates, not map coordinates, are used. Currently these correspond to native coordinates.
Definition at line 1093 of file mapview_common.c.
Referenced by calc_mapview_origin(), tile_visible_and_not_on_border_mapcanvas(), and update_map_canvas_scrollbars_size().
void get_spaceship_dimensions | ( | int * | width, |
int * | height | ||
) |
Return the desired width of the spaceship canvas.
Definition at line 3702 of file mapview_common.c.
Referenced by create_spaceship_dialog(), and ss_report::ss_report().
void init_mapcanvas_and_overview | ( | void | ) |
Sets up data for the mapview and overview.
Definition at line 3684 of file mapview_common.c.
Referenced by activate_gui(), fc_client::init(), ui_main(), and ui_main().
void link_mark_add_new | ( | enum text_link_type | type, |
int | id | ||
) |
Add a visible link for 2 turns.
Definition at line 3976 of file mapview_common.c.
Referenced by handle_event().
void link_mark_restore | ( | enum text_link_type | type, |
int | id | ||
) |
Add a visible link for 1 turn.
Definition at line 3998 of file mapview_common.c.
Referenced by chatwdg::anchor_clicked(), event_after(), and event_after().
void link_marks_clear_all | ( | void | ) |
Clear all visible links.
Definition at line 3953 of file mapview_common.c.
Referenced by chatwdg::rm_links(), and setup_widgets().
void link_marks_decrease_turn_counters | ( | void | ) |
Clear all visible links.
Definition at line 3962 of file mapview_common.c.
Referenced by handle_new_year().
void link_marks_draw_all | ( | void | ) |
Draw all link marks.
Definition at line 3943 of file mapview_common.c.
Referenced by update_map_canvas().
void link_marks_free | ( | void | ) |
Free the link marks.
Definition at line 3930 of file mapview_common.c.
Referenced by client_game_free(), client_game_reset(), and link_marks_init().
void link_marks_init | ( | void | ) |
Initialize the link marks.
Definition at line 3918 of file mapview_common.c.
Referenced by client_game_init(), and client_game_reset().
bool map_canvas_resized | ( | int | width, |
int | height | ||
) |
Called if the map in the GUI is resized.
Returns TRUE iff the canvas was redrawn.
Definition at line 3593 of file mapview_common.c.
Referenced by init_mapcanvas_and_overview(), map_canvas_configure(), map_canvas_size_refresh(), overview_size_changed(), real_resize_window_callback(), fc_game_tab_widget::resizeEvent(), mr_menu::save_image(), zoom_1_0(), and zoom_set().
void map_to_gui_vector | ( | const struct tileset * | t, |
float | zoom, | ||
float * | gui_dx, | ||
float * | gui_dy, | ||
int | map_dx, | ||
int | map_dy | ||
) |
Translate from a cartesian system to the GUI system. This function works on vectors, meaning it can be passed a (dx,dy) pair and will return the change in GUI coordinates corresponding to this vector. It is thus more general than map_to_gui_pos.
Note that a gui_to_map_vector function is not possible, since the resulting map vector may differ based on the origin of the gui vector.
Definition at line 553 of file mapview_common.c.
Referenced by city_to_canvas_pos(), draw_calculated_trade_routes(), draw_segment(), generate_citydlg_dimensions(), map_to_gui_pos(), and move_unit_map_canvas().
void mapdeco_add_gotoline | ( | const struct tile * | ptile, |
enum direction8 | dir | ||
) |
Add a goto line from the given tile 'ptile' in the direction 'dir'. If there was no previously drawn line there, a mapview update is queued for the source and destination tiles.
Definition at line 3445 of file mapview_common.c.
Referenced by goto_path_redraw(), and mapdeco_set_gotoroute().
void mapdeco_clear_crosshairs | ( | void | ) |
Clears all previous set tile crosshair decorations. Marks the affected tiles as needing a mapview update.
Definition at line 3427 of file mapview_common.c.
Referenced by fc_client::popdown_tile_info(), and popupinfo_popdown_callback().
void mapdeco_clear_gotoroutes | ( | void | ) |
Clear all goto line map decorations and queues mapview updates for the affected tiles.
Definition at line 3571 of file mapview_common.c.
Referenced by fc_client::popdown_tile_info(), and popupinfo_popdown_callback().
void mapdeco_clear_highlights | ( | void | ) |
Clears all highlighting. Marks the previously highlighted tiles as needing a mapview update.
Definition at line 3376 of file mapview_common.c.
Referenced by cancel_tile_hiliting().
void mapdeco_free | ( | void | ) |
Free all memory used for map decorations.
Definition at line 3321 of file mapview_common.c.
Referenced by mapdeco_init().
void mapdeco_init | ( | void | ) |
Called when we receive map dimensions. It initialized the mapview decorations.
Definition at line 3307 of file mapview_common.c.
Referenced by handle_map_info().
Returns TRUE if there is a "crosshair" decoration set at the given tile.
Definition at line 3415 of file mapview_common.c.
Referenced by fill_sprite_array().
Returns TRUE if a goto line should be drawn from the given tile in the given direction.
Definition at line 3550 of file mapview_common.c.
Referenced by update_map_canvas().
Return TRUE if the given tile is highlighted.
Definition at line 3364 of file mapview_common.c.
Referenced by fill_grid_sprite_array(), find_city_or_settler_near_tile(), is_city_hilited(), and toggle_tile_hilite().
void mapdeco_remove_gotoline | ( | const struct tile * | ptile, |
enum direction8 | dir | ||
) |
Removes a goto line from the given tile 'ptile' going in the direction 'dir'. If this was the last line there, a mapview update is queued to erase the drawn line.
Definition at line 3479 of file mapview_common.c.
Referenced by goto_path_redraw(), and goto_path_undraw().
Marks the given tile as having a "crosshair" map decoration.
Definition at line 3392 of file mapview_common.c.
Referenced by popit(), popit(), popit(), and fc_client::popup_tile_info().
void mapdeco_set_gotoroute | ( | const struct unit * | punit | ) |
Set the map decorations for the given unit's goto route. A goto route consists of one or more goto lines, with each line being from the center of one tile to the center of another tile.
Definition at line 3515 of file mapview_common.c.
Referenced by popit(), popit(), popit(), and fc_client::popup_tile_info().
Set the given tile's map decoration as either highlighted or not, depending on the value of 'highlight'.
Definition at line 3341 of file mapview_common.c.
Referenced by define_tiles_within_rectangle(), and toggle_tile_hilite().
Animates punit's "smooth" move from (x0, y0) to (x0 + dx, y0 + dy). Note: Works only for adjacent-tile moves.
Definition at line 2684 of file mapview_common.c.
Referenced by do_move_unit().
void put_city | ( | struct city * | pcity, |
struct canvas * | pcanvas, | ||
float | zoom, | ||
int | canvas_x, | ||
int | canvas_y | ||
) |
Draw the given city onto the canvas store at the given location. The area of drawing is tileset_full_tile_height(tileset) x tileset_full_tile_width(tileset).
Definition at line 1403 of file mapview_common.c.
void put_drawn_sprites | ( | struct canvas * | pcanvas, |
float | zoom, | ||
int | canvas_x, | ||
int | canvas_y, | ||
int | count, | ||
struct drawn_sprite * | pdrawn, | ||
bool | fog | ||
) |
Draw an array of drawn sprites onto the canvas.
Definition at line 1313 of file mapview_common.c.
Referenced by create_extra_pixbuf(), create_terrain_pixbuf(), put_one_element(), set_help_tile_from_extra(), set_help_tile_from_terrain(), help_widget::set_topic_extra(), and terrain_canvas().
void put_nuke_mushroom_pixmaps | ( | struct tile * | ptile | ) |
Animate the nuke explosion at map(x, y).
Definition at line 1510 of file mapview_common.c.
Referenced by handle_nuke_tile_info().
void put_one_element | ( | struct canvas * | pcanvas, |
float | zoom, | ||
enum mapview_layer | layer, | ||
const struct tile * | ptile, | ||
const struct tile_edge * | pedge, | ||
const struct tile_corner * | pcorner, | ||
const struct unit * | punit, | ||
const struct city * | pcity, | ||
int | canvas_x, | ||
int | canvas_y, | ||
const struct city * | citymode, | ||
const struct unit_type * | putype | ||
) |
Draw one layer of a tile, edge, corner, unit, and/or city onto the canvas at the given position.
Definition at line 1349 of file mapview_common.c.
Referenced by city_dialog_redraw_map(), create_pixbuf_from_layers(), put_city(), put_one_tile(), put_terrain(), put_unit(), put_unittype(), and update_map_canvas().
void put_spaceship | ( | struct canvas * | pcanvas, |
int | canvas_x, | ||
int | canvas_y, | ||
const struct player * | pplayer | ||
) |
Draw the spaceship onto the canvas.
Definition at line 3715 of file mapview_common.c.
Referenced by spaceship_image_canvas_draw(), spaceship_image_canvas_expose(), and ss_report::update_report().
void put_terrain | ( | struct tile * | ptile, |
struct canvas * | pcanvas, | ||
float | zoom, | ||
int | canvas_x, | ||
int | canvas_y | ||
) |
Draw the given tile terrain onto the canvas store at the given location. The area of drawing is tileset_full_tile_height(tileset) x tileset_full_tile_width(tileset) (even though most tiles are not this tall).
Definition at line 1420 of file mapview_common.c.
Referenced by get_terrain_surface(), and hud_units::update_actions().
void put_unit | ( | const struct unit * | punit, |
struct canvas * | pcanvas, | ||
float | zoom, | ||
int | canvas_x, | ||
int | canvas_y | ||
) |
Draw the given unit onto the canvas store at the given location. The area of drawing is tileset_unit_height(tileset) x tileset_unit_width(tileset).
Definition at line 1374 of file mapview_common.c.
Referenced by battle_animation(), units_select::create_pixmap(), create_unit_surface(), hud_unit_combat::init_images(), move_unit_map_canvas(), movement_animation(), choice_dialog::next_unit(), choice_dialog::prev_unit(), put_unit_image(), put_unit_image_city_overlays(), put_unit_picture(), put_unit_picture_city_overlays(), redraw_unit_info_label(), choice_dialog::set_layout(), unit_item::unit_item(), hud_units::update_actions(), and usdlg_get_unit_image().
void put_unit_city_overlays | ( | struct unit * | punit, |
struct canvas * | pcanvas, | ||
int | canvas_x, | ||
int | canvas_y, | ||
int * | upkeep_cost, | ||
int | happy_cost | ||
) |
Draw food, gold, and shield upkeep values on the unit.
The proper way to do this is probably something like what Civ II does (one sprite drawn N times on top of itself), but we just use separate sprites (limiting the number of combinations).
Definition at line 1438 of file mapview_common.c.
Referenced by put_unit_image_city_overlays(), put_unit_picture_city_overlays(), and unit_item::unit_item().
void put_unittype | ( | const struct unit_type * | putype, |
struct canvas * | pcanvas, | ||
float | zoom, | ||
int | canvas_x, | ||
int | canvas_y | ||
) |
Draw the given unit onto the canvas store at the given location. The area of drawing is tileset_unit_height(tileset) x tileset_unit_width(tileset).
Definition at line 1388 of file mapview_common.c.
Referenced by hud_unit_combat::init_images(), help_widget::set_topic_unit(), and usdlg_tab_append_utype().
void refresh_city_mapcanvas | ( | struct city * | pcity, |
struct tile * | ptile, | ||
bool | full_refresh, | ||
bool | write_to_screen | ||
) |
Refreshes a single city on the map canvas.
If full_refresh is given then the citymap area and the city text will also be refreshed. Otherwise only the base city sprite is refreshed.
Definition at line 531 of file mapview_common.c.
Referenced by city_packet_common(), client_remove_city(), handle_unit_packet_common(), and toggle_city_color().
Refreshes a single tile on the map canvas.
Definition at line 494 of file mapview_common.c.
Referenced by client_infratile_set(), editor_end_selection_rectangle(), goto_add_waypoint(), handle_edit_startpos(), handle_edit_startpos_full(), handle_tile_info(), link_mark_add_new(), link_mark_restore(), mapdeco_add_gotoline(), mapdeco_clear_crosshairs(), mapdeco_clear_gotoroutes(), mapdeco_clear_highlights(), mapdeco_remove_gotoline(), mapdeco_set_crosshair(), and mapdeco_set_highlight().
void refresh_unit_mapcanvas | ( | struct unit * | punit, |
struct tile * | ptile, | ||
bool | full_refresh, | ||
bool | write_to_screen | ||
) |
Refreshes a single unit on the map canvas.
Definition at line 510 of file mapview_common.c.
Referenced by blink_active_unit(), client_remove_unit(), current_focus_append(), current_focus_remove(), decrease_unit_hp_smooth(), do_move_unit(), handle_unit_combat_info(), handle_unit_packet_common(), key_unit_assign_battlegroup(), toggle_unit_color(), and unit_focus_set().
void set_frame_by_frame_animation | ( | void | ) |
Set frame by frame animation mode on.
Definition at line 4082 of file mapview_common.c.
Referenced by ui_init().
void set_mapview_origin | ( | float | gui_x0, |
float | gui_y0, | ||
float | zoom | ||
) |
Change the mapview origin, clip it, and update everything.
Definition at line 992 of file mapview_common.c.
Referenced by center_tile_mapcanvas(), scroll_mapview(), and set_mapview_scroll_pos().
void set_mapview_scroll_pos | ( | int | scroll_x, |
int | scroll_y, | ||
float | zoom | ||
) |
Set the scroll position (origin) of the mapview, and update the GUI.
Definition at line 1200 of file mapview_common.c.
Referenced by mouse_scroll_mapcanvas(), mouse_scroll_mapcanvas(), and scrollbar_jump_callback().
void show_city_descriptions | ( | int | canvas_base_x, |
int | canvas_base_y, | ||
int | width_base, | ||
int | height_base | ||
) |
Show descriptions for all cities visible on the map canvas.
Definition at line 2345 of file mapview_common.c.
Referenced by update_city_descriptions(), and update_map_canvas().
void show_tile_labels | ( | int | canvas_base_x, |
int | canvas_base_y, | ||
int | width_base, | ||
int | height_base | ||
) |
Show labels for all tiles visible on the map canvas.
Definition at line 2419 of file mapview_common.c.
Referenced by update_map_canvas().
Draw the goto route for the unit. Return TRUE if anything is drawn.
This duplicates drawing code that is run during the hover state.
Definition at line 2464 of file mapview_common.c.
bool tile_to_canvas_pos | ( | float * | canvas_x, |
float * | canvas_y, | ||
float | zoom, | ||
const struct tile * | ptile | ||
) |
Return TRUE iff the given map position has a tile visible within the interior of the map canvas. This information is used to determine when we need to recenter the map canvas.
The logic of this function is simple: if a tile is within 1.5 tiles of a border of the canvas and that border is not aligned with the edge of the map, then the tile is on the "border" of the map canvas.
This function is only correct for the current topology.
Definition at line 1267 of file mapview_common.c.
Referenced by auto_center_on_focus_unit(), do_move_unit(), and unit_focus_advance().
Return TRUE iff the given map position has a tile visible on the map canvas.
Definition at line 1249 of file mapview_common.c.
Referenced by handle_unit_combat_info(), link_mark_add_new(), link_mark_restore(), and move_unit_map_canvas().
enum topo_comp_lvl tileset_map_topo_compatible | ( | int | topology_id, |
struct tileset * | tset, | ||
int * | tset_topo | ||
) |
Are the topology and tileset compatible?
Definition at line 4018 of file mapview_common.c.
Referenced by handle_map_info(), handle_set_topology(), and tilespec_reread().
void toggle_city_color | ( | struct city * | pcity | ) |
Toggle the city color. This cycles through the possible colors for the citymap as shown on the mapview. These colors are listed in the city_colors array; above.
Definition at line 1476 of file mapview_common.c.
Referenced by key_city_overlay().
void toggle_unit_color | ( | struct unit * | punit | ) |
Toggle the unit color. This cycles through the possible colors for the citymap as shown on the mapview. These colors are listed in the city_colors array; above.
Definition at line 1494 of file mapview_common.c.
Referenced by key_city_overlay().
void unqueue_mapview_updates | ( | bool | write_to_screen | ) |
See comment for queue_mapview_update().
Definition at line 3068 of file mapview_common.c.
Referenced by decrease_unit_hp_smooth(), map_canvas_draw(), map_canvas_draw(), map_canvas_resized(), move_unit_map_canvas(), put_nuke_mushroom_pixmaps(), queue_callback(), refresh_city_mapcanvas(), refresh_tile_mapcanvas(), refresh_unit_mapcanvas(), and set_mapview_origin().
void update_animation | ( | void | ) |
Progress current animation
Definition at line 428 of file mapview_common.c.
Referenced by animation_idle_cb(), and map_canvas_draw().
void update_city_description | ( | struct city * | pcity | ) |
Update the city description for the given city.
Definition at line 1863 of file mapview_common.c.
Referenced by do_move_unit(), handle_city_info(), handle_city_short_info(), handle_trade_route_info(), handle_unit_packet_common(), and show_city_descriptions().
void update_map_canvas | ( | int | canvas_x, |
int | canvas_y, | ||
int | width, | ||
int | height | ||
) |
Update (refresh) the map canvas starting at the given tile (in map coordinates) and with the given dimensions (also in map coordinates).
In non-iso view, this is easy. In iso view, we have to use the Painter's Algorithm to draw the tiles in back first. When we draw a tile, we tell the GUI which part of the tile to draw - which is necessary unless we have an extra buffering step.
After refreshing the backing store tile-by-tile, we write the store out to the display if write_to_screen is specified.
x, y, width, and height are in map coordinates; they need not be normalized or even real.
Definition at line 1719 of file mapview_common.c.
Referenced by base_set_mapview_origin(), editor_end_selection_rectangle(), explosion_animation(), movement_animation(), unqueue_mapview_updates(), and update_animation().
void update_map_canvas_visible | ( | void | ) |
Update (only) the visible part of the map
Definition at line 1843 of file mapview_common.c.
Referenced by editor_start_selection_rectangle(), handle_city_info(), handle_player_info(), handle_start_phase(), handle_trade_route_info(), link_marks_clear_all(), map_canvas_resized(), nuke_animation(), put_nuke_mushroom_pixmaps(), request_toggle_bases(), request_toggle_cities(), request_toggle_city_buycost(), request_toggle_city_full_bar(), request_toggle_city_growth(), request_toggle_city_names(), request_toggle_city_outlines(), request_toggle_city_output(), request_toggle_city_productions(), request_toggle_city_trade_routes(), request_toggle_coastline(), request_toggle_focus_unit(), request_toggle_fog_of_war(), request_toggle_huts(), request_toggle_irrigation(), request_toggle_map_borders(), request_toggle_map_grid(), request_toggle_map_native(), request_toggle_mines(), request_toggle_pollution(), request_toggle_resources(), request_toggle_roads_rails(), request_toggle_terrain(), request_toggle_unit_shields(), request_toggle_unit_solid_bg(), request_toggle_unit_stack_size(), request_toggle_units(), set_client_state(), themespec_reread(), tilespec_reread(), update_city_descriptions(), and map_view::update_font().
void update_tile_label | ( | struct tile * | ptile | ) |
Update the label for the given tile
Definition at line 1871 of file mapview_common.c.
Referenced by show_tile_labels().
|
extern |
Definition at line 75 of file mapview_common.c.
Referenced by center_on_something(), center_tile_mapcanvas(), find_destroy_callback(), find_selection_callback(), set_client_state(), set_mapview_origin(), set_mapview_scroll_pos(), switch_city_callback(), themespec_reread(), and tilespec_reread().
|
extern |
Definition at line 74 of file mapview_common.c.
Referenced by base_canvas_to_map_pos(), base_set_mapview_origin(), battle_animation(), calc_mapview_origin(), can_do_cached_drawing(), center_tile_mapcanvas(), center_tile_overviewcanvas(), create_line_at_mouse_pos(), decrease_unit_hp_smooth(), draw_segment(), draw_selection_rectangle(), draw_trade_route_line(), minimap_view::draw_viewport(), editor_end_selection_rectangle(), explosion_animation(), flush_mapcanvas(), free_mapcanvas_and_overview(), get_center_tile_mapcanvas(), get_mapview_scroll_pos(), get_mapview_scroll_window(), gui_flush(), leave_mapcanvas(), link_mark_draw(), map_canvas_draw(), map_canvas_draw(), map_canvas_resized(), mapdeco_init(), minimap_view::mouseMoveEvent(), move_unit_map_canvas(), hud_battle_log::moveEvent(), movement_animation(), nuke_animation(), overview_size_changed(), map_view::paint(), popupinfo_positioning_callback(), put_nuke_mushroom_pixmaps(), redraw_overview(), fc_game_tab_widget::resizeEvent(), minimap_view::resizeEvent(), mr_menu::save_image(), minimap_view::scale_point(), scroll_mapview(), set_mapview_origin(), show_city_descriptions(), show_tile_labels(), tile_to_canvas_pos(), tile_visible_and_not_on_border_mapcanvas(), unqueue_mapview_updates(), unscale_point(), update_city_descriptions(), update_map_canvas(), zoom_1_0(), and zoom_set().