126
135
switch (manuals) {
127
136
case MANUAL_SETTINGS:
128
137
fprintf(doc, _("<h1>Freeciv %s server options</h1>\n\n"), VERSION_STRING);
129
for (i = 0; settings[i].name; i++) {
130
struct settings_s *op = &settings[i];
131
static struct astring abuf = ASTRING_INIT;
132
const char *help = _(op->extra_help);
138
settings_iterate(pset) {
139
const char *help = _(setting_extra_help(pset));
134
astr_minsize(&abuf, strlen(help) + 10);
135
strcpy(abuf.str, help);
136
wordwrap_string(abuf.str, 76);
137
141
fprintf(doc, SEPARATOR);
138
fprintf(doc, "%s%s - %s%s\n\n", SECTION_BEGIN, op->name,
139
_(op->short_help), SECTION_END);
140
if (strlen(op->extra_help) > 0) {
141
fprintf(doc, "<pre>%s</pre>\n\n", abuf.str);
142
fprintf(doc, "%s%s - %s%s\n\n", SECTION_BEGIN, setting_name(pset),
143
_(setting_short_help(pset)), SECTION_END);
144
if (strlen(setting_extra_help(pset)) > 0) {
145
fprintf(doc, "<pre>%s</pre>\n\n", help);
143
147
fprintf(doc, "<p class=\"misc\">");
144
fprintf(doc, _("Level: %s.<br>"), _(sset_level_names[op->slevel]));
145
fprintf(doc, _("Category: %s.<br>"),
146
_(sset_category_names[op->scategory]));
147
if (op->to_client == SSET_SERVER_ONLY) {
148
fprintf(doc, _("Level: %s.<br>"), _(setting_level_name(pset)));
149
fprintf(doc, _("Category: %s.<br>"), _(setting_category_name(pset)));
151
if (!setting_is_changeable(pset, &my_conn, NULL)) {
148
152
fprintf(doc, _("Can only be used in server console. "));
150
if (setting_is_changeable(i)) {
151
fprintf(doc, _("Can be changed during a game. "));
153
fprintf(doc, _("Can <b>not</b> be changed during a game. "));
155
154
fprintf(doc, "</p>\n\n");
155
switch (setting_type(pset)) {
158
fprintf(doc, _("<p class=\"bounds\">Minimum: 0, Default: %d, "
159
"Maximum: 1</p>\n\n"),
160
op->bool_default_value ? 1 : 0);
161
if (*(op->bool_value) != op->bool_default_value) {
157
fprintf(doc, "<p class=\"bounds\">%s 0, %s %d, %s 1</p>\n\n",
158
_("Minimum:"), _("Default:"),
159
setting_bool_def(pset) ? 1 : 0, _("Maximum:"));
160
if (setting_bool_get(pset) != setting_bool_def(pset)) {
162
161
fprintf(doc, _("<p class=\"changed\">Value set to %d</p>\n\n"),
162
setting_bool_get(pset) ? 1 : 0);
167
fprintf(doc, _("<p class=\"bounds\">Minimum: %d, Default: %d, "
168
"Maximum: %d</p>\n\n"),
169
op->int_min_value, op->int_default_value,
171
if (*(op->int_value) != op->int_default_value) {
166
fprintf(doc, "<p class=\"bounds\">%s %d, %s %d, %s %d</p>\n\n",
167
_("Minimum:"), setting_int_min(pset),
168
_("Default:"), setting_int_def(pset),
169
_("Maximum:"), setting_int_max(pset));
170
if (setting_int_get(pset) != setting_int_def(pset)) {
172
171
fprintf(doc, _("<p class=\"changed\">Value set to %d</p>\n\n"),
172
setting_int_get(pset));
176
175
case SSET_STRING:
177
fprintf(doc, _("<p class=\"bounds\">Default: \"%s\"</p>\n\n"),
178
op->string_default_value);
179
if (strcmp(op->string_value, op->string_default_value) != 0) {
176
fprintf(doc, "<p class=\"bounds\">%s \"%s\"</p>\n\n",
177
_("Default:"), setting_str_def(pset));
178
if (strcmp(setting_str_get(pset), setting_str_def(pset)) != 0) {
180
179
fprintf(doc, _("<p class=\"changed\">Value set to %s</p>\n\n"),
180
setting_str_get(pset));
184
} settings_iterate_end;
188
187
case MANUAL_COMMANDS:
189
188
fprintf(doc, _("<h1>Freeciv %s server commands</h1>\n\n"),
191
190
for (i = 0; i < CMD_NUM; i++) {
192
const struct command *cmd = &commands[i];
191
const struct command *cmd = command_by_number(i);
194
193
fprintf(doc, SEPARATOR);
195
fprintf(doc, "%s%s - %s%s\n\n", SECTION_BEGIN, cmd->name,
196
_(cmd->short_help), SECTION_END);
194
fprintf(doc, "%s%s - %s%s\n\n", SECTION_BEGIN, command_name(cmd),
195
command_short_help(cmd), SECTION_END);
196
if (command_synopsis(cmd)) {
198
197
fprintf(doc, _("<table>\n<tr>\n<td valign=\"top\">"
199
198
"<pre>Synopsis:</pre></td>\n<td>"));
200
fprintf(doc, "<pre>%s</pre></td></tr></table>", _(cmd->synopsis));
199
fprintf(doc, "<pre>%s</pre></td></tr></table>", command_synopsis(cmd));
202
201
fprintf(doc, _("<p class=\"level\">Level: %s</p>\n\n"),
203
cmdlevel_name(cmd->level));
204
if (cmd->extra_help) {
205
static struct astring abuf = ASTRING_INIT;
206
const char *help = _(cmd->extra_help);
208
astr_minsize(&abuf, strlen(help)+1);
209
strcpy(abuf.str, help);
210
wordwrap_string(abuf.str, 76);
202
cmdlevel_name(command_level(cmd)));
203
if (command_extra_help(cmd)) {
211
204
fprintf(doc, _("<p>Description:</p>\n\n"));
212
fprintf(doc, "<pre>%s</pre>\n\n", abuf.str);
205
fprintf(doc, "<pre>%s</pre>\n\n", command_extra_help(cmd));
278
271
fprintf(doc, "<tr><td>+%d T</td><td align=\"right\">(%d)</td></tr>\n",
279
272
pterrain->road_trade_incr, pterrain->road_time);
280
fprintf(doc, "<tr><td>%s</td><td align=\"right\">(%d)</td></tr>\n</table></td>\n",
281
terrain_name_translation(pterrain->transform_result),
282
pterrain->transform_time);
284
fprintf(doc, "<td align=\"center\">%d / %d / %d / %d / %d</td></tr>\n\n",
285
pterrain->airbase_time, pterrain->fortress_time, pterrain->rail_time,
274
if (pterrain->transform_result) {
275
fprintf(doc, "<tr><td>%s</td><td align=\"right\">(%d)</td></tr>\n</table></td>\n",
276
terrain_name_translation(pterrain->transform_result),
277
pterrain->transform_time);
279
fprintf(doc, "<tr><td>-</td><td align=\"right\">(-)</td></tr>\n</table></td>\n");
282
fprintf(doc, "<td align=\"center\">%d / %d / %d</td></tr>\n\n",
286
284
pterrain->clean_pollution_time, pterrain->clean_fallout_time);
287
285
} terrain_type_iterate_end;
288
286
fprintf(doc, "</table>\n");
302
300
_("Name"), _("Cost"), _("Upkeep"),
303
301
_("Requirement"), _("Obsolete by"), _("More info"));
305
impr_type_iterate(id) {
306
struct impr_type *pimpr = improvement_by_number(id);
303
improvement_iterate(pimprove) {
309
if (is_great_wonder(id) == (manuals == MANUAL_BUILDINGS)) {
306
if (!valid_improvement(pimprove)
307
|| is_great_wonder(pimprove) == (manuals == MANUAL_BUILDINGS)) {
313
helptext_building(buf, sizeof(buf), id, NULL);
311
helptext_building(buf, sizeof(buf), NULL, NULL, pimprove);
315
313
fprintf(doc, "<tr><td>" IMAGE_BEGIN "%s" IMAGE_END "</td><td>%s</td>\n"
316
314
"<td align=\"center\"><b>%d</b><br/>%d</td>\n<td>",
318
improvement_name_translation(id),
315
pimprove->graphic_str,
316
improvement_name_translation(pimprove),
317
pimprove->build_cost,
322
requirement_vector_iterate(&pimpr->reqs, req) {
320
requirement_vector_iterate(&pimprove->reqs, req) {
324
322
fprintf(doc, "%s<br/>",
325
req->source.type != REQ_NONE
326
? get_req_source_text(&req->source, text, sizeof(text))
323
VUT_NONE != req->source.kind
324
? universal_name_translation(&req->source, text, sizeof(text))
328
326
} requirement_vector_iterate_end;
330
328
fprintf(doc, "<em>%s</em></td>\n",
331
tech_exists(pimpr->obsolete_by)
332
? advance_name_translation(pimpr->obsolete_by)
329
valid_advance(pimprove->obsolete_by)
330
? advance_name_translation(pimprove->obsolete_by)
334
332
fprintf(doc, "<td>%s</td>\n</tr>\n\n", buf);
335
} impr_type_iterate_end;
333
} improvement_iterate_end;
338
336
case MANUAL_COUNT: