Freeciv-3.1
|
#include <string.h>
#include "bitvector.h"
#include "capability.h"
#include "fcintl.h"
#include "log.h"
#include "mem.h"
#include "rand.h"
#include "string_vector.h"
#include "support.h"
#include "achievements.h"
#include "actions.h"
#include "capstr.h"
#include "citizens.h"
#include "events.h"
#include "extras.h"
#include "game.h"
#include "government.h"
#include "idex.h"
#include "map.h"
#include "name_translation.h"
#include "movement.h"
#include "multipliers.h"
#include "nation.h"
#include "packets.h"
#include "player.h"
#include "research.h"
#include "rgbcolor.h"
#include "road.h"
#include "spaceship.h"
#include "specialist.h"
#include "style.h"
#include "traderoutes.h"
#include "unit.h"
#include "unitlist.h"
#include "worklist.h"
#include "chatline_g.h"
#include "citydlg_g.h"
#include "cityrep_g.h"
#include "connectdlg_g.h"
#include "dialogs_g.h"
#include "editgui_g.h"
#include "gui_main_g.h"
#include "inteldlg_g.h"
#include "mapctrl_g.h"
#include "mapview_g.h"
#include "menu_g.h"
#include "messagewin_g.h"
#include "pages_g.h"
#include "plrdlg_g.h"
#include "ratesdlg_g.h"
#include "repodlgs_g.h"
#include "spaceshipdlg_g.h"
#include "voteinfo_bar_g.h"
#include "wldlg_g.h"
#include "agents.h"
#include "attribute.h"
#include "audio.h"
#include "client_main.h"
#include "climap.h"
#include "climisc.h"
#include "connectdlg_common.h"
#include "control.h"
#include "editor.h"
#include "goto.h"
#include "helpdata.h"
#include "mapview_common.h"
#include "music.h"
#include "options.h"
#include "overview_common.h"
#include "tilespec.h"
#include "update_queue.h"
#include "voteinfo.h"
#include "script_client.h"
#include "packhand.h"
Go to the source code of this file.
Macros | |
#define | REQEST_BACKGROUND_REFRESH (1) |
#define | REQEST_BACKGROUND_FAST_AUTO_ATTACK (2) |
#define | VALIDATE(_count, _maximum, _string) |
#define | VALIDATE(_count, _maximum, _string) |
Variables | ||
struct { | ||
struct city_list * cities | ||
struct player * placeholder | ||
} | invisible | |
struct { | ||
int len | ||
enum event_type event | ||
char * caption | ||
char * headline | ||
char * lines | ||
int parts | ||
} | page_msg_report = { .parts = 0 } | |
const char | forced_tileset_name [] | |
static int | last_turn = 0 | |
const action_id | auto_attack_actions [] | |
const action_id | auto_attack_blockers [] | |
#define REQEST_BACKGROUND_FAST_AUTO_ATTACK (2) |
Definition at line 140 of file packhand.c.
#define REQEST_BACKGROUND_REFRESH (1) |
Definition at line 138 of file packhand.c.
#define VALIDATE | ( | _count, | |
_maximum, | |||
_string | |||
) |
#define VALIDATE | ( | _count, | |
_maximum, | |||
_string | |||
) |
|
static |
Request that the player makes a decision for the specified unit unless it may be an automatic decision. In that case check if one of the auto actions are enabled.
Definition at line 1758 of file packhand.c.
Referenced by handle_unit_packet_common().
|
static |
Do an auto action or request that the player makes a decision for the specified unit.
Definition at line 5176 of file packhand.c.
Referenced by handle_unit_actions().
Returns a possibly legal attack action iff it is the only interesting action that currently is legal.
Definition at line 5146 of file packhand.c.
Referenced by action_decision_maybe_auto().
|
static |
A helper function for handling city-info and city-short-info packets. Naturally, both require many of the same operations to be done on the data.
Definition at line 1094 of file packhand.c.
Referenced by handle_city_info(), and handle_city_short_info().
Received package about gaining an achievement.
Definition at line 3162 of file packhand.c.
Referenced by client_handle_packet().
void handle_begin_turn | ( | void | ) |
Called when begin-turn packet is received. Server has finished processing turn change.
Definition at line 1572 of file packhand.c.
Referenced by client_handle_packet().
void handle_calendar_info | ( | const struct packet_calendar_info * | pcalendar | ) |
Packet calendar_info handler.
Definition at line 2479 of file packhand.c.
Referenced by client_handle_packet().
void handle_chat_msg | ( | const struct packet_chat_msg * | packet | ) |
Handle a message packet. This includes all messages - both in-game messages and chats from other players.
Definition at line 1626 of file packhand.c.
Referenced by client_handle_packet().
void handle_city_info | ( | const struct packet_city_info * | packet | ) |
A city-info packet contains all information about a city. If we receive this packet then we know everything about the city internals.
Definition at line 689 of file packhand.c.
Referenced by client_handle_packet().
void handle_city_name_suggestion_info | ( | int | unit_id16, |
int | unit_id32, | ||
const char * | name | ||
) |
Handle reply to our city name request.
Definition at line 4980 of file packhand.c.
Referenced by client_handle_packet().
void handle_city_nationalities | ( | const struct packet_city_nationalities * | packet | ) |
Handle city nationalities packet.
Definition at line 1048 of file packhand.c.
Referenced by client_handle_packet().
void handle_city_rally_point | ( | const struct packet_city_rally_point * | packet | ) |
Handle city rally point packet.
Definition at line 1074 of file packhand.c.
void handle_city_remove | ( | int | city_id16, |
int | city_id32 | ||
) |
Handles a remove-city packet, used by the server to tell us any time a city is no longer there.
Definition at line 484 of file packhand.c.
Referenced by client_handle_packet().
void handle_city_sabotage_list | ( | const struct packet_city_sabotage_list * | packet | ) |
Handle list of potenttial buildings to sabotage.
Definition at line 5326 of file packhand.c.
Referenced by client_handle_packet().
void handle_city_short_info | ( | const struct packet_city_short_info * | packet | ) |
A city-short-info packet is sent to tell us about any cities we can't see the internals of. Most of the time this includes any cities owned by someone else.
Definition at line 1240 of file packhand.c.
Referenced by client_handle_packet().
void handle_conn_info | ( | const struct packet_conn_info * | pinfo | ) |
Remove, add, or update dummy connection struct representing some connection to the server, with info from packet_conn_info. Updates player and game connection lists. Calls players_dialog_update() in case info for that has changed.
Definition at line 3033 of file packhand.c.
Referenced by client_handle_packet().
void handle_conn_ping | ( | void | ) |
Reply to 'ping' packet with 'pong'
Definition at line 5524 of file packhand.c.
Referenced by client_handle_packet().
void handle_conn_ping_info | ( | int | connections, |
const int * | conn_id, | ||
const float * | ping_time | ||
) |
Handles a conn_ping_info packet from the server. This packet contains ping times for each connection.
Definition at line 3139 of file packhand.c.
Referenced by client_handle_packet().
void handle_connect_msg | ( | const char * | message | ) |
Handle a connect message packet. Server sends connect message to client immediately when client connects.
Definition at line 1660 of file packhand.c.
Referenced by client_handle_packet().
void handle_early_chat_msg | ( | const struct packet_early_chat_msg * | packet | ) |
Handle an early message packet. Thease have format like other chat messages but server sends them only about events related to establishing the connection and other setup in the early phase. They are a separate packet just so that client knows thse to be already relevant when it's only setting itself up - other chat messages might be just something sent to all clients, and we might want to still consider ourselves "not connected" (not receivers of those messages) until we are fully in the game.
Definition at line 1646 of file packhand.c.
Referenced by client_handle_packet().
void handle_edit_object_created | ( | int | tag, |
int | id | ||
) |
Handle a notification from the server that an object was successfully created. The 'tag' was previously sent to the server when the client requested the creation. The 'id' is the identifier of the newly created object.
Definition at line 5551 of file packhand.c.
Referenced by client_handle_packet().
void handle_edit_startpos | ( | const struct packet_edit_startpos * | packet | ) |
Handle start position creation/removal.
Definition at line 5559 of file packhand.c.
void handle_edit_startpos_full | ( | const struct packet_edit_startpos_full * | packet | ) |
Handle start position internal information.
Definition at line 5597 of file packhand.c.
void handle_end_phase | ( | void | ) |
Called by the network code when an end-phase packet is received. This signifies the end of our phase (it's not sent for other player's phases).
Definition at line 1502 of file packhand.c.
Referenced by client_handle_packet().
void handle_end_turn | ( | void | ) |
Called when end-turn packet is received. Server starts processing turn change.
Definition at line 1586 of file packhand.c.
Referenced by client_handle_packet().
void handle_endgame_player | ( | const struct packet_endgame_player * | packet | ) |
Pass endgame report about single player.
Definition at line 5406 of file packhand.c.
Referenced by client_handle_packet().
void handle_endgame_report | ( | const struct packet_endgame_report * | packet | ) |
Pass the header information about things be displayed in a gui-specific endgame dialog.
Definition at line 5397 of file packhand.c.
Referenced by client_handle_packet().
void handle_freeze_client | ( | void | ) |
We have received PACKET_FREEZE_CLIENT.
Definition at line 5503 of file packhand.c.
Referenced by client_handle_packet().
void handle_game_info | ( | const struct packet_game_info * | pinfo | ) |
Packet game_info handler.
Definition at line 2403 of file packhand.c.
Referenced by client_handle_packet().
void handle_investigate_finished | ( | int | unit_id16, |
int | unit_id32, | ||
int | city_id16, | ||
int | city_id32 | ||
) |
Receive an investigate_finished packet
Definition at line 2251 of file packhand.c.
Referenced by client_handle_packet().
void handle_investigate_started | ( | int | unit_id16, |
int | unit_id32, | ||
int | city_id16, | ||
int | city_id32 | ||
) |
Receive an investigate_started packet
Can't rely on generic packet_processing_started, as that works for the requesting connection only, and not for observers.
Definition at line 2219 of file packhand.c.
Referenced by client_handle_packet().
void handle_map_info | ( | int | xsize, |
int | ysize, | ||
int | topology_id | ||
) |
Receive information about the map size and topology from the server. We initialize some global variables at the same time.
Definition at line 2367 of file packhand.c.
Referenced by client_handle_packet().
Handle nation availability info. This can change during pregame so is separate from ruleset_nation.
Definition at line 4807 of file packhand.c.
Referenced by client_handle_packet().
void handle_new_year | ( | int | year, |
int | fragments, | ||
int | turn | ||
) |
Handle turn and year advancement.
Definition at line 1453 of file packhand.c.
Referenced by client_handle_packet().
void handle_nuke_tile_info | ( | int | tile | ) |
The tile (x,y) has been nuked!
Definition at line 573 of file packhand.c.
Referenced by client_handle_packet().
void handle_page_msg | ( | const char * | caption, |
const char * | headline, | ||
enum event_type | event, | ||
int | len, | ||
int | parts | ||
) |
Page_msg header handler.
Definition at line 1685 of file packhand.c.
Referenced by client_handle_packet().
void handle_page_msg_part | ( | const char * | lines | ) |
Page_msg part handler.
Definition at line 1716 of file packhand.c.
Referenced by client_handle_packet(), and handle_page_msg().
void handle_play_music | ( | const char * | tag | ) |
Play suitable music
Definition at line 5695 of file packhand.c.
Referenced by client_handle_packet().
void handle_player_attribute_chunk | ( | const struct packet_player_attribute_chunk * | packet | ) |
Packet player_attribute_chunk handler.
Definition at line 5422 of file packhand.c.
void handle_player_diplstate | ( | const struct packet_player_diplstate * | packet | ) |
Packet player_diplstate handler.
Definition at line 2929 of file packhand.c.
Referenced by client_handle_packet().
void handle_player_info | ( | const struct packet_player_info * | pinfo | ) |
Handle information about a player. If the packet refers to a player slot that is not currently used, then this function will set that slot to used and update the total player count.
Definition at line 2573 of file packhand.c.
Referenced by client_handle_packet().
void handle_player_remove | ( | int | playerno | ) |
Handle a notification that the player slot identified by 'playerno' has become unused. If the slot is already unused, then just ignore. Otherwise update the total player count and the GUI.
Definition at line 2528 of file packhand.c.
Referenced by client_handle_packet().
void handle_processing_finished | ( | void | ) |
Handle request to stop processing packet.
Definition at line 5459 of file packhand.c.
Referenced by client_handle_packet().
void handle_processing_started | ( | void | ) |
Handle request to start processing packet.
Definition at line 5441 of file packhand.c.
Referenced by client_handle_packet().
void handle_research_info | ( | const struct packet_research_info * | packet | ) |
Receive a research info packet.
Definition at line 2815 of file packhand.c.
Referenced by client_handle_packet().
void handle_ruleset_achievement | ( | const struct packet_ruleset_achievement * | p | ) |
Handle a packet about a particular achievement type.
Definition at line 4631 of file packhand.c.
Referenced by client_handle_packet().
void handle_ruleset_action | ( | const struct packet_ruleset_action * | p | ) |
Handle a packet about a particular action.
Definition at line 4519 of file packhand.c.
Referenced by client_handle_packet().
void handle_ruleset_action_auto | ( | const struct packet_ruleset_action_auto * | p | ) |
Handle a packet about a particular action auto performer rule.
Definition at line 4587 of file packhand.c.
Referenced by client_handle_packet().
void handle_ruleset_action_enabler | ( | const struct packet_ruleset_action_enabler * | p | ) |
Handle a packet about a particular action enabler.
Definition at line 4553 of file packhand.c.
Referenced by client_handle_packet().
void handle_ruleset_base | ( | const struct packet_ruleset_base * | p | ) |
Handle a packet about a particular base type.
Definition at line 4442 of file packhand.c.
Referenced by client_handle_packet().
void handle_ruleset_building | ( | const struct packet_ruleset_building * | p | ) |
Packet ruleset_building handler.
Definition at line 4049 of file packhand.c.
Referenced by client_handle_packet().
void handle_ruleset_city | ( | const struct packet_ruleset_city * | packet | ) |
Handle city style packet.
Definition at line 4860 of file packhand.c.
Referenced by client_handle_packet().
void handle_ruleset_clause | ( | const struct packet_ruleset_clause * | p | ) |
Handle a packet about a particular clause.
Definition at line 4837 of file packhand.c.
Referenced by client_handle_packet().
void handle_ruleset_control | ( | const struct packet_ruleset_control * | packet | ) |
Take arrival of ruleset control packet to indicate that current allocated governments should be free'd, and new memory allocated for new size. The same for nations.
Definition at line 3558 of file packhand.c.
Referenced by client_handle_packet().
void handle_ruleset_description_part | ( | const struct packet_ruleset_description_part * | packet | ) |
Next part of ruleset description.
Definition at line 3675 of file packhand.c.
Referenced by client_handle_packet().
void handle_ruleset_disaster | ( | const struct packet_ruleset_disaster * | p | ) |
Handle a packet about a particular disaster type.
Definition at line 4609 of file packhand.c.
Referenced by client_handle_packet().
void handle_ruleset_effect | ( | const struct packet_ruleset_effect * | packet | ) |
Add effect data to ruleset cache.
Definition at line 5540 of file packhand.c.
Referenced by client_handle_packet().
void handle_ruleset_extra | ( | const struct packet_ruleset_extra * | p | ) |
Handle a packet about a particular extra type.
Definition at line 4284 of file packhand.c.
Referenced by client_handle_packet().
void handle_ruleset_extra_flag | ( | const struct packet_ruleset_extra_flag * | p | ) |
Packet ruleset_extra_flag handler.
Definition at line 4416 of file packhand.c.
Referenced by client_handle_packet().
void handle_ruleset_game | ( | const struct packet_ruleset_game * | packet | ) |
Packet ruleset_game handler.
Definition at line 4909 of file packhand.c.
Referenced by client_handle_packet().
void handle_ruleset_goods | ( | const struct packet_ruleset_goods * | p | ) |
Handle a packet about a particular goods type.
Definition at line 4494 of file packhand.c.
Referenced by client_handle_packet().
void handle_ruleset_government | ( | const struct packet_ruleset_government * | p | ) |
Packet ruleset_government handler.
Definition at line 4126 of file packhand.c.
Referenced by client_handle_packet().
void handle_ruleset_government_ruler_title | ( | const struct packet_ruleset_government_ruler_title * | packet | ) |
Packet ruleset_government_ruler_title handler.
Definition at line 4152 of file packhand.c.
Referenced by client_handle_packet().
void handle_ruleset_multiplier | ( | const struct packet_ruleset_multiplier * | p | ) |
Packet ruleset_multiplier handler.
Definition at line 4098 of file packhand.c.
Referenced by client_handle_packet().
void handle_ruleset_music | ( | const struct packet_ruleset_music * | packet | ) |
Handle music style packet.
Definition at line 4886 of file packhand.c.
Referenced by client_handle_packet().
void handle_ruleset_nation | ( | const struct packet_ruleset_nation * | packet | ) |
Handle initial ruleset nation info.
Definition at line 4717 of file packhand.c.
Referenced by client_handle_packet().
void handle_ruleset_nation_groups | ( | const struct packet_ruleset_nation_groups * | packet | ) |
Handle the list of nation groups, sent as part of the ruleset.
Definition at line 4695 of file packhand.c.
Referenced by client_handle_packet().
void handle_ruleset_nation_sets | ( | const struct packet_ruleset_nation_sets * | packet | ) |
Handle the list of nation sets, sent as part of the ruleset.
Definition at line 4674 of file packhand.c.
Referenced by client_handle_packet().
void handle_ruleset_resource | ( | const struct packet_ruleset_resource * | p | ) |
Handle a packet about a particular terrain resource.
Definition at line 4265 of file packhand.c.
Referenced by client_handle_packet().
void handle_ruleset_road | ( | const struct packet_ruleset_road * | p | ) |
Handle a packet about a particular road type.
Definition at line 4463 of file packhand.c.
Referenced by client_handle_packet().
void handle_ruleset_specialist | ( | const struct packet_ruleset_specialist * | p | ) |
Handle info about a single specialist.
Definition at line 4954 of file packhand.c.
Referenced by client_handle_packet().
void handle_ruleset_style | ( | const struct packet_ruleset_style * | p | ) |
Handle a packet about a particular style.
Definition at line 4825 of file packhand.c.
Referenced by client_handle_packet().
void handle_ruleset_summary | ( | const struct packet_ruleset_summary * | packet | ) |
void handle_ruleset_tech | ( | const struct packet_ruleset_tech * | p | ) |
Packet ruleset_tech handler.
Definition at line 3946 of file packhand.c.
Referenced by client_handle_packet().
void handle_ruleset_tech_class | ( | const struct packet_ruleset_tech_class * | p | ) |
Packet ruleset_tech_class handler.
Definition at line 4011 of file packhand.c.
Referenced by client_handle_packet().
void handle_ruleset_tech_flag | ( | const struct packet_ruleset_tech_flag * | p | ) |
Packet ruleset_tech_flag handler.
Definition at line 4024 of file packhand.c.
Referenced by client_handle_packet().
void handle_ruleset_terrain | ( | const struct packet_ruleset_terrain * | p | ) |
Packet ruleset_terrain handler.
Definition at line 4167 of file packhand.c.
Referenced by client_handle_packet().
void handle_ruleset_terrain_control | ( | const struct packet_ruleset_terrain_control * | p | ) |
Handle the terrain control ruleset packet sent by the server.
Definition at line 4661 of file packhand.c.
Referenced by client_handle_packet().
void handle_ruleset_terrain_flag | ( | const struct packet_ruleset_terrain_flag * | p | ) |
Packet ruleset_terrain_flag handler.
Definition at line 4240 of file packhand.c.
Referenced by client_handle_packet().
void handle_ruleset_trade | ( | const struct packet_ruleset_trade * | p | ) |
Handle a packet about a particular trade route type.
Definition at line 4647 of file packhand.c.
Referenced by client_handle_packet().
void handle_ruleset_unit | ( | const struct packet_ruleset_unit * | p | ) |
Packet ruleset_unit handler.
Definition at line 3757 of file packhand.c.
Referenced by client_handle_packet().
void handle_ruleset_unit_bonus | ( | const struct packet_ruleset_unit_bonus * | p | ) |
Packet ruleset_unit_bonus handler.
Definition at line 3839 of file packhand.c.
Referenced by client_handle_packet().
void handle_ruleset_unit_class | ( | const struct packet_ruleset_unit_class * | p | ) |
Packet ruleset_unit_class handler.
Definition at line 3739 of file packhand.c.
Referenced by client_handle_packet().
void handle_ruleset_unit_class_flag | ( | const struct packet_ruleset_unit_class_flag * | p | ) |
Packet ruleset_unit_class_flag handler.
Definition at line 3884 of file packhand.c.
Referenced by client_handle_packet().
void handle_ruleset_unit_flag | ( | const struct packet_ruleset_unit_flag * | p | ) |
Packet ruleset_unit_flag handler.
Definition at line 3859 of file packhand.c.
Referenced by client_handle_packet().
void handle_rulesets_ready | ( | void | ) |
Received packet indicating that all rulesets have now been received.
Definition at line 3685 of file packhand.c.
Referenced by client_handle_packet().
void handle_scenario_description | ( | const char * | description | ) |
Received packet containing description of current scenario
Definition at line 3546 of file packhand.c.
Referenced by client_handle_packet().
void handle_scenario_info | ( | const struct packet_scenario_info * | packet | ) |
Received packet containing info about current scenario
Definition at line 3525 of file packhand.c.
Referenced by client_handle_packet().
void handle_server_info | ( | const char * | version_label, |
int | major_version, | ||
int | minor_version, | ||
int | patch_version, | ||
int | emerg_version | ||
) |
Handle server info packet. Server sends info packet as soon as it knows client to be compatible.
Definition at line 1669 of file packhand.c.
Referenced by client_handle_packet().
void handle_server_join_reply | ( | bool | you_can_join, |
const char * | message, | ||
const char * | capability, | ||
const char * | challenge_file, | ||
int | conn_id | ||
) |
After we send a join packet to the server we receive a reply. This function handles the reply.
Definition at line 416 of file packhand.c.
Referenced by client_handle_packet().
void handle_server_shutdown | ( | void | ) |
Handle server shutdown.
Definition at line 5532 of file packhand.c.
Referenced by client_handle_packet().
void handle_set_topology | ( | int | topology_id | ) |
Server requested topology change.
Definition at line 2345 of file packhand.c.
Referenced by client_handle_packet().
void handle_spaceship_info | ( | const struct packet_spaceship_info * | p | ) |
Packet spaceship_info handler.
Definition at line 3218 of file packhand.c.
Referenced by client_handle_packet().
void handle_start_phase | ( | int | phase | ) |
Called by the network code when an start-phase packet is received. This may be the start of our phase or someone else's phase.
Definition at line 1513 of file packhand.c.
Referenced by client_handle_packet().
void handle_team_name_info | ( | int | team_id, |
const char * | team_name | ||
) |
The name of team 'team_id'
Definition at line 581 of file packhand.c.
Referenced by client_handle_packet().
void handle_thaw_client | ( | void | ) |
We have received PACKET_THAW_CLIENT
Definition at line 5513 of file packhand.c.
Referenced by client_handle_packet().
void handle_tile_info | ( | const struct packet_tile_info * | packet | ) |
Packet tile_info handler.
Definition at line 3263 of file packhand.c.
Referenced by client_handle_packet().
void handle_timeout_info | ( | float | seconds_to_phasedone, |
float | last_turn_change_time | ||
) |
Sets the remaining turn time.
Definition at line 2487 of file packhand.c.
Referenced by client_handle_packet().
void handle_trade_route_info | ( | const struct packet_trade_route_info * | packet | ) |
A trade route-info packet contains information about one end of a trade route
Definition at line 1196 of file packhand.c.
Referenced by client_handle_packet().
void handle_unit_action_answer | ( | const struct packet_unit_action_answer * | packet | ) |
Handle the requested follow up question about an action
The action can be a valid action or the special value ACTION_NONE. ACTION_NONE indicates that performing the action is impossible.
Definition at line 5023 of file packhand.c.
Referenced by client_handle_packet().
void handle_unit_actions | ( | const struct packet_unit_actions * | packet | ) |
Handle reply to possible actions.
Note that a reply to a foreground request (a reply where request_kind is REQEST_PLAYER_INITIATED) must result in its clean up.
Definition at line 5244 of file packhand.c.
Referenced by client_handle_packet().
void handle_unit_combat_info | ( | const struct packet_unit_combat_info * | packet | ) |
A combat packet. The server tells us the attacker and defender as well as both of their hitpoints after the combat is over (in most combat, one unit always dies and their HP drops to zero). If make_winner_veteran is set then the surviving unit becomes veteran.
Definition at line 596 of file packhand.c.
Referenced by client_handle_packet().
void handle_unit_info | ( | const struct packet_unit_info * | packet | ) |
Called to do basic handling for a unit_info or short_unit_info packet.
Both owned and foreign units are handled; you may need to check unit owner, or if unit equals focus unit, depending on what you are doing.
Note: Normally the server informs client about a new "activity" here. For owned units, the new activity can be a result of:
Depending on what caused the change, different actions may be taken. Therefore, this function is a bit of a jungle, and it is advisable to read thoroughly before changing.
Definition at line 1796 of file packhand.c.
Referenced by handle_unit_info(), and handle_unit_short_info().
void handle_unit_remove | ( | int | unit_id16, |
int | unit_id32 | ||
) |
Handle a remove-unit packet, sent by the server to tell us any time a unit is no longer there.
Definition at line 513 of file packhand.c.
Referenced by client_handle_packet(), and handle_unit_packet_common().
void handle_unit_short_info | ( | const struct packet_unit_short_info * | packet | ) |
Receive a short_unit info packet.
Definition at line 2259 of file packhand.c.
Referenced by client_handle_packet().
void handle_unknown_research | ( | int | id | ) |
Received a packet indicating we don't know the research details any more.
Definition at line 2899 of file packhand.c.
Referenced by client_handle_packet().
void handle_vote_new | ( | const struct packet_vote_new * | packet | ) |
Create a new vote and add it to the queue. Refresh the GUI.
Definition at line 5659 of file packhand.c.
Referenced by client_handle_packet().
void handle_vote_remove | ( | int | vote_no | ) |
A vote no longer exists. Remove from queue and update gui.
Definition at line 5628 of file packhand.c.
Referenced by client_handle_packet().
void handle_vote_resolve | ( | int | vote_no, |
bool | passed | ||
) |
Update the vote's status and refresh the GUI.
Definition at line 5676 of file packhand.c.
Referenced by client_handle_packet().
void handle_vote_update | ( | int | vote_no, |
int | yes, | ||
int | no, | ||
int | abstain, | ||
int | num_voters | ||
) |
Find and update the corresponding vote and refresh the GUI.
Definition at line 5637 of file packhand.c.
Referenced by client_handle_packet().
void handle_web_city_info_addition | ( | int | id16, |
int | id32, | ||
int | granary_size, | ||
int | granary_turns | ||
) |
This is a packet that only the web-client needs. The regular client has no use for it. TODO: Do not generate code calling this in the C-client.
Definition at line 1040 of file packhand.c.
Referenced by client_handle_packet().
void handle_web_player_info_addition | ( | int | playerno, |
int | expected_income | ||
) |
This is a packet that only the web-client needs. The regular client has no use for it. TODO: Do not generate code calling this in the C-client.
Definition at line 2808 of file packhand.c.
Referenced by client_handle_packet().
void handle_web_ruleset_unit_addition | ( | int | id, |
bv_actions | utype_actions | ||
) |
This is a packet that only the web-client needs. The regular client has no use for it. TODO: Do not generate code calling this in the C-client.
Definition at line 3832 of file packhand.c.
Referenced by client_handle_packet().
void handle_worker_task | ( | const struct packet_worker_task * | packet | ) |
Handle worker task assigned to the city
Definition at line 1390 of file packhand.c.
void notify_about_incoming_packet | ( | struct connection * | pc, |
int | packet_type, | ||
int | size | ||
) |
Notify interested parties about incoming packet.
Definition at line 5479 of file packhand.c.
Referenced by make_connection().
void notify_about_outgoing_packet | ( | struct connection * | pc, |
int | packet_type, | ||
int | size, | ||
int | request_id | ||
) |
Notify interested parties about outgoing packet.
Definition at line 5489 of file packhand.c.
Referenced by make_connection().
void packhand_free | ( | void | ) |
Called below, and by client/client_main.c client_game_free()
Definition at line 215 of file packhand.c.
Referenced by client_game_free(), client_game_reset(), and packhand_init().
|
static |
Called only by handle_map_info() below.
Definition at line 236 of file packhand.c.
Referenced by handle_map_info().
void play_sound_for_event | ( | enum event_type | type | ) |
Plays sound associated with event
Definition at line 1613 of file packhand.c.
Referenced by handle_event(), and handle_page_msg_part().
void set_government_choice | ( | struct government * | government | ) |
Sets the target government. This will automatically start a revolution if the target government differs from the current one.
Definition at line 2504 of file packhand.c.
Referenced by government_dlg_callback(), revolution_response(), and revolution_response().
|
static |
Ideally the client should let the player choose which type of modules and components to build, and (possibly) where to extend structurals. The protocol now makes this possible, but the client is not yet that good (would require GUI improvements) so currently the client choices stuff automatically if there is anything unplaced.
This function makes a choice (sends spaceship_action) and returns 1 if we placed something, else 0.
Do things one at a time; the server will send us an updated spaceship_info packet, and we'll be back here to do anything which is left.
Definition at line 3199 of file packhand.c.
Referenced by handle_spaceship_info().
void start_revolution | ( | void | ) |
Begin a revolution by telling the server to start it. This also clears the current government choice.
Definition at line 2517 of file packhand.c.
Referenced by revolution_response(), and revolution_response().
|
static |
Unpack a traditional tech req from a standard requirement vector (that still is in the network serialized format rather than a proper requirement vector).
Returns the position in the requirement vector after unpacking. It will increase if a tech req was extracted.
Definition at line 3916 of file packhand.c.
Referenced by handle_ruleset_tech().
|
static |
Unpackage a short_unit_info packet. This extracts a limited amount of information about the unit, and is sent for units we shouldn't know everything about (like our enemies' units).
Information for the client must also be processed in handle_unit_packet_common()! Especially notice that unit structure filled here is just temporary one. Values must be copied to real unit in handle_unit_packet_common().
Definition at line 369 of file packhand.c.
Referenced by handle_unit_short_info().
|
static |
Unpackage the unit information into a newly allocated unit structure.
Information for the client must also be processed in handle_unit_packet_common()! Especially notice that unit structure filled here is just temporary one. Values must be copied to real unit in handle_unit_packet_common().
Definition at line 261 of file packhand.c.
Referenced by handle_unit_info().
|
static |
Updates a city's list of improvements from packet data. "have_impr" specifies whether the improvement should be added (TRUE) or removed (FALSE). Returns TRUE if the improvement has been actually added or removed.
Definition at line 667 of file packhand.c.
Referenced by handle_city_info(), handle_city_sabotage_list(), and handle_city_short_info().
const action_id auto_attack_actions[] |
Definition at line 143 of file packhand.c.
Referenced by action_decision_handle(), and auto_attack_act().
const action_id auto_attack_blockers[] |
Definition at line 158 of file packhand.c.
Referenced by auto_attack_act().
char* caption |
Definition at line 127 of file packhand.c.
Referenced by handle_page_msg().
struct city_list* cities |
Definition at line 117 of file packhand.c.
Referenced by adjust_improvement_wants_by_effects(), buy_production_in_selected_cities(), city_incite_cost(), city_model_fill(), city_waste(), collect_production_targets(), dai_war_desire(), debug_command(), city_widget::display_list_menu(), kill_something_with(), load_city_name_list(), player_base_citizen_happiness(), player_distance_to_player(), city_model::populate(), process_attacker_want(), text_happiness_cities(), unit_bribe_cost(), update_city_activities(), and update_source_label().
enum event_type event |
Definition at line 126 of file packhand.c.
Referenced by handle_page_msg().
|
extern |
Definition at line 136 of file client_main.c.
Referenced by client_main(), default_tileset_select(), and handle_set_topology().
char* headline |
Definition at line 128 of file packhand.c.
Referenced by handle_page_msg().
struct { ... } invisible |
Referenced by handle_city_info(), handle_city_short_info(), handle_tile_info(), packhand_free(), and packhand_init().
|
static |
Definition at line 135 of file packhand.c.
Referenced by handle_new_year().
int len |
Definition at line 125 of file packhand.c.
Referenced by activated_topic(), add_connection_data(), add_new_worklist_callback(), allowtake_callback(), astr_add_line(), base_fc_utf8_strlcpy_rep(), base_fc_utf8_strlcpy_trunc(), boot_help_texts(), capitalized_string(), cat_snprintf(), cat_utf8_snprintf_rep(), cat_utf8_snprintf_trunc(), chain2text(), check_include(), check_strlen(), citizens_callback(), citizens_callback(), client_handle_packet(), cma_get_parameter(), compat_load_020600(), connection_send_data(), convert_utf8_str_to_const_surface_width(), create_md5sum(), create_new_line_utf8strs(), create_races_dialog(), del_chain(), edit_field(), edit_worklist_callback(), effectivestrlenquote(), end_of_strn(), expand_dir(), extract_sequence_text(), fc_chomp(), fc_gethostname(), fc_strcspn(), fc_strrep(), fc_strrep_resize(), fc_utf8_strlcat_rep(), fc_utf8_strlcat_trunc(), fc_utf8_strlen(), fc_vsnprintf(), featured_text_apply_tag(), featured_text_to_plain_text(), fileinfolist(), fileinfolist_infix(), form_chat_name(), fz_fgets(), fz_fprintf(), fz_from_file(), generate_packets::get_choices(), generate_packets.Variant::get_cmp(), get_conv(), get_conv(), generate_packets.Variant::get_delta_receive_body(), generate_packets.Variant::get_delta_send_body(), generate_packets.Variant::get_hash(), get_infrastructure_text(), get_internal_string_length(), get_option_malloc(), generate_packets::get_packet_handlers_fill_capability(), generate_packets::get_packet_handlers_fill_initial(), generate_packets.Variant::get_receive(), generate_packets.Variant::get_send(), get_tokens(), handle_page_msg(), handle_ruleset_choices(), handle_ruleset_nation(), handle_ruleset_summary(), help_command_callback(), help_update_tech(), html_special_chars(), init_datum_string(), init_nls(), is_on_allowed_list(), is_valid_demography(), load_city_name_list(), load_ruleset_game(), loud_strlcpy(), luascript_report(), generate_packets::main(), mapimg_define_arg(), match_prefix_full(), md5_buffer(), message_dlg::message_dlg(), packet_check(), page_conn_etype(), generate_packets::parse_fields(), player_name_check(), popup_races_dialog(), popup_worklist_editor(), qtg_get_gui_specific_themes_directories(), receive_packet_page_msg_100(), redraw_edit(), refresh_worklist_count_label(), remove_clause_widget_from_list(), remove_packet_from_buffer(), remove_trailing_spaces(), save_script_lua(), script_server_load_file(), secfile_entry_by_path(), secfile_sections_by_name_prefix(), send_packet_data(), server_sniff_all_input(), setting_bitwise_to_str(), setting_match_prefix_base(), sg_load_player_city(), sg_load_player_unit(), sg_load_player_unit(), sg_save_player_cities(), sg_save_player_units(), startunits_callback(), generate_packets::strip_c_comment(), strvec_to_str(), text2chain(), text_tag_replace_text(), text_tag_start_sequence(), text_tag_stop_sequence(), tileset_read_toplevel(), update_clauses_list(), update_info_label(), and version_message().
char* lines |
Definition at line 129 of file packhand.c.
Referenced by client_handle_packet(), compat_load_020400(), chatwdg::default_size(), draw_trade_route_line(), handle_page_msg_part(), notify_dialog::notify_dialog(), notify_goto::notify_goto(), notify_goto_data_new(), page_conn(), page_conn_etype(), popup_notify_dialog(), popup_notify_goto_dialog(), receive_packet_page_msg_part_100(), set_new_order_widget_start_pos(), sg_load_map_known(), sg_load_map_known(), sg_save_map_known(), and trade_route_to_canvas_lines().
struct { ... } page_msg_report |
Referenced by handle_page_msg(), and handle_page_msg_part().
int parts |
Definition at line 130 of file packhand.c.
Referenced by client_handle_packet(), handle_page_msg(), receive_packet_page_msg_100(), sg_load_player_attributes(), sg_load_player_attributes(), and sg_save_player_attributes().
struct player* placeholder |
Definition at line 118 of file packhand.c.