Freeciv-3.3
|
#include <stdio.h>
#include <string.h>
#include "astring.h"
#include "bitvector.h"
#include "fciconv.h"
#include "fcintl.h"
#include "log.h"
#include "mem.h"
#include "registry.h"
#include "string_vector.h"
#include "support.h"
#include "counters.h"
#include "effects.h"
#include "game.h"
#include "government.h"
#include "map.h"
#include "movement.h"
#include "multipliers.h"
#include "nation.h"
#include "reqtext.h"
#include "research.h"
#include "server_settings.h"
#include "specialist.h"
#include "tilespec.h"
#include "unit.h"
#include "version.h"
#include "client_main.h"
#include "climisc.h"
#include "gui_main_g.h"
#include "music.h"
#include "helpdata.h"
#include "speclist.h"
Go to the source code of this file.
Macros | |
#define | BULLET Q_("?bullet:*") |
#define | BULLET_SPACE Q_("?bullet:* ") |
#define | CATLSTR(_b, _s, _t, ...) cat_snprintf(_b, _s, _t, ## __VA_ARGS__) |
#define | SPECLIST_TAG help |
#define | SPECLIST_TYPE struct help_item |
#define | help_list_iterate(helplist, phelp) TYPED_LIST_ITERATE(struct help_item, helplist, phelp) |
#define | help_list_iterate_end LIST_ITERATE_END |
#define | PRINT_BREAK() |
Variables | |
static const char *const | help_type_names [] |
static const struct help_list_link * | help_nodes_iterator |
static struct help_list * | help_nodes |
static bool | help_nodes_init = FALSE |
Definition at line 63 of file helpdata.c.
Definition at line 65 of file helpdata.c.
#define CATLSTR | ( | _b, | |
_s, | |||
_t, | |||
... | |||
) | cat_snprintf(_b, _s, _t, ## __VA_ARGS__) |
Definition at line 68 of file helpdata.c.
Definition at line 81 of file helpdata.c.
#define help_list_iterate_end LIST_ITERATE_END |
Definition at line 83 of file helpdata.c.
#define PRINT_BREAK | ( | ) |
#define SPECLIST_TAG help |
Definition at line 77 of file helpdata.c.
Definition at line 78 of file helpdata.c.
pplayer may be NULL.
Definition at line 710 of file helpdata.c.
Referenced by client_main(), handle_game_info(), set_client_state(), and tilespec_reread().
Make sure help_nodes is initialised. Should call this just about everywhere which uses help_nodes, to be careful... or at least where called by external (non-static) functions.
Definition at line 114 of file helpdata.c.
Referenced by boot_help_texts(), free_help_texts(), get_help_item(), get_help_item_spec(), help_iter_next(), help_iter_start(), and num_help_items().
|
static |
Calculate any fixed food/prod/trade bonus that 'pextra' will always add to terrain type, independent of any other modifications. Does not consider percentage bonuses. Result written into 'bonus' which should hold 3 ints (F/P/T).
Definition at line 3680 of file helpdata.c.
Referenced by helptext_extra_for_terrain_str().
Free all allocations associated with help_nodes.
Definition at line 125 of file helpdata.c.
Referenced by boot_help_texts(), and client_game_free().
Return pointer to given help_item. Returns NULL for 1 past end. Returns NULL and prints error message for other out-of bounds.
Definition at line 1265 of file helpdata.c.
const struct help_item * get_help_item_spec | ( | const char * | name, |
enum help_page_type | htype, | ||
int * | pos | ||
) |
Find help item by name and type. Returns help item, and sets (*pos) to position in list. If no item, returns pointer to static internal item with some faked data, and sets (*pos) to -1.
Definition at line 1288 of file helpdata.c.
Referenced by popup_help_dialog_typed(), and select_help_item_string().
|
static |
For help_list_sort(); sort by topic via compare_strings() (sort topics with more leading spaces after those with fewer)
Definition at line 688 of file helpdata.c.
Referenced by boot_help_texts().
Returns next help item; after help_iter_start(), this is the first item. At end, returns NULL.
Definition at line 1350 of file helpdata.c.
Start iterating through help items; that is, reset iterator to start position. (Could iterate using get_help_item(), but that would be less efficient due to scanning to find pos.)
Definition at line 1340 of file helpdata.c.
Referenced by check_help_nodes_init().
enum help_page_type help_type_by_requirement | ( | const struct requirement * | req | ) |
Return help page that matches the requirement, or HELP_LAST if none does.
Definition at line 5200 of file helpdata.c.
Referenced by help_hyperlink_callback().
void helptext_advance | ( | char * | buf, |
size_t | bufsz, | ||
struct player * | pplayer, | ||
const char * | user_text, | ||
int | i | ||
) |
Append misc dynamic text for advance/technology.
pplayer may be NULL.
Definition at line 3294 of file helpdata.c.
Referenced by create_tech_info(), help_update_tech(), manual_techs(), research_diagram::mouseMoveEvent(), and help_widget::set_topic_tech().
char * helptext_building | ( | char * | buf, |
size_t | bufsz, | ||
struct player * | pplayer, | ||
const char * | user_text, | ||
const struct impr_type * | pimprove | ||
) |
Write dynamic text for buildings (including wonders). This includes the ruleset helptext as well as any automatically generated text.
pplayer may be NULL. user_text, if non-NULL, will be appended to the text.
Definition at line 1381 of file helpdata.c.
Referenced by get_tooltip(), get_tooltip_improvement(), help_update_improvement(), help_update_wonder(), manual_improvements(), research_diagram::mouseMoveEvent(), popup_impr_info(), and help_widget::set_topic_building().
void helptext_extra | ( | char * | buf, |
size_t | bufsz, | ||
struct player * | pplayer, | ||
const char * | user_text, | ||
struct extra_type * | pextra | ||
) |
Append misc dynamic text for extras. Assumes build time and conflicts are handled in the GUI front-end.
pplayer may be NULL.
Definition at line 3789 of file helpdata.c.
Referenced by help_update_extra(), manual_extras(), and help_widget::set_topic_extra().
const char * helptext_extra_for_terrain_str | ( | struct extra_type * | pextra, |
struct terrain * | pterrain, | ||
enum unit_activity | act | ||
) |
Return a brief description specific to the extra and terrain, when extra is built by cause 'act'. Returns number of turns to build, and selected bonuses. Returns a pointer to a static string, so caller should not free.
Definition at line 3755 of file helpdata.c.
Referenced by help_widget::add_extras_of_act_for_terrain(), and help_extras_of_act_for_terrain().
void helptext_goods | ( | char * | buf, |
size_t | bufsz, | ||
struct player * | pplayer, | ||
const char * | user_text, | ||
struct goods_type * | pgood | ||
) |
Append misc dynamic text for goods. Assumes effects are described in the help text.
pplayer may be NULL.
Definition at line 4254 of file helpdata.c.
Referenced by help_update_goods(), and help_widget::set_topic_goods().
void helptext_government | ( | char * | buf, |
size_t | bufsz, | ||
struct player * | pplayer, | ||
const char * | user_text, | ||
struct government * | gov | ||
) |
Append text for government.
pplayer may be NULL.
TODO: Generalize the effects code for use elsewhere. Add other requirements.
Definition at line 4335 of file helpdata.c.
Referenced by help_update_government(), manual_governments(), research_diagram::mouseMoveEvent(), and help_widget::set_topic_government().
void helptext_nation | ( | char * | buf, |
size_t | bufsz, | ||
struct nation_type * | pnation, | ||
const char * | user_text | ||
) |
Returns nation legend and characteristics
Definition at line 5034 of file helpdata.c.
Referenced by help_update_nation(), nation_button_callback(), races_dialog::nation_selected(), select_nation(), and help_widget::set_topic_nation().
const char * helptext_road_bonus_str | ( | const struct terrain * | pterrain, |
const struct road_type * | proad | ||
) |
Return a textual representation of the F/P/T bonus a road provides to a terrain if supplied, or the terrain-independent bonus if pterrain == NULL. e.g. "0/0/+1", "0/+50%/0", or for a complex road "+2/+1+50%/0". Returns a pointer to a static string, so caller should not free (or NULL if there is no effect at all).
Definition at line 3625 of file helpdata.c.
Referenced by help_update_extra(), and helptext_extra().
void helptext_specialist | ( | char * | buf, |
size_t | bufsz, | ||
struct player * | pplayer, | ||
const char * | user_text, | ||
struct specialist * | pspec | ||
) |
Append misc dynamic text for specialists. Assumes effects are described in the help text.
pplayer may be NULL.
Definition at line 4300 of file helpdata.c.
Referenced by help_update_specialist(), and help_widget::set_topic_specialist().
void helptext_terrain | ( | char * | buf, |
size_t | bufsz, | ||
struct player * | pplayer, | ||
const char * | user_text, | ||
struct terrain * | pterrain | ||
) |
Append text for terrain.
Definition at line 3515 of file helpdata.c.
Referenced by help_update_terrain(), and help_widget::set_topic_terrain().
char * helptext_unit | ( | char * | buf, |
size_t | bufsz, | ||
struct player * | pplayer, | ||
const char * | user_text, | ||
const struct unit_type * | utype, | ||
bool | class_help | ||
) |
Append misc dynamic text for units. Transport capacity, unit flags, fuel.
pplayer may be NULL.
Definition at line 1932 of file helpdata.c.
Referenced by get_tooltip(), get_tooltip_unit(), help_update_unit_type(), manual_units(), research_diagram::mouseMoveEvent(), popup_unit_info(), and help_widget::set_topic_unit().
Returns pointer to static string with eg: "1 shield, 1 unhappy"
Definition at line 4997 of file helpdata.c.
Referenced by get_tooltip_unit(), help_update_unit_type(), manual_units(), and help_widget::set_topic_unit().
void helptext_unitclass | ( | struct unit_class * | pclass, |
char * | buf, | ||
size_t | bufsz | ||
) |
Unit class part of the unit helptext
pclass | Class to add help text about |
buf | Buffer to append help text to |
bufsz | Size of the buffer |
Definition at line 1866 of file helpdata.c.
Referenced by helptext_unit(), and manual_uclasses().
|
static |
Generate text for what this requirement source allows. Something like
"Allows Communism (with University).\n" "Allows Mfg. Plant (with Factory).\n" "Allows Library (absent Fundamentalism).\n" "Prevents Harbor.\n"
This should be called to generate helptext for every possible source type. Note this doesn't handle effects but rather requirements to create/maintain things (currently only building/government reqs).
NB: This function overwrites any existing buffer contents by writing the generated text to the start of the given 'buf' pointer (i.e. it does NOT append like cat_snprintf).
Definition at line 571 of file helpdata.c.
Referenced by helptext_advance(), helptext_building(), helptext_extra(), helptext_government(), helptext_nation(), and helptext_terrain().
|
static |
Append text to 'buf' if the given requirements list 'subjreqs' contains 'psource', implying that ability to build the subject 'subjstr' is affected by 'psource'. 'strs' is an array of (possibly i18n-qualified) format strings covering the various cases where additional requirements apply.
Definition at line 485 of file helpdata.c.
Referenced by insert_allows().
Insert generated text for the helpdata "name". Returns TRUE if anything was added.
Definition at line 208 of file helpdata.c.
Referenced by boot_help_texts().
|
static |
Insert fixed-width table describing veteran system. If only one veteran level, inserts 'nolevels' if non-NULL. Otherwise, insert 'intro' then a table.
Definition at line 149 of file helpdata.c.
Referenced by helptext_unit(), and insert_generated_text().
Allocate and initialize new help item
Definition at line 672 of file helpdata.c.
Referenced by boot_help_texts().
Number of help items.
Definition at line 1254 of file helpdata.c.
|
static |
Returns whether we should show help for this nation.
Definition at line 139 of file helpdata.c.
Referenced by boot_help_texts(), helptext_advance(), helptext_building(), and helptext_unit().
Returns TRUE iff the specified unit type is able to perform an action that allows it to escape to the closest closest domestic city once done.
See diplomat_escape() for more.
Definition at line 1830 of file helpdata.c.
Referenced by helptext_unit().
Definition at line 86 of file helpdata.c.
Referenced by boot_help_texts(), free_help_texts(), get_help_item(), get_help_item_spec(), help_iter_start(), helpdata_done(), helpdata_init(), and num_help_items().
Definition at line 87 of file helpdata.c.
Referenced by check_help_nodes_init().
|
static |
Definition at line 85 of file helpdata.c.
Referenced by help_iter_next(), and help_iter_start().
Definition at line 71 of file helpdata.c.
Referenced by boot_help_texts().