Skip to content

Commit

Permalink
Merge branch 'master' into feature/latrine
Browse files Browse the repository at this point in the history
  • Loading branch information
dvincent56 committed Apr 24, 2024
2 parents 9f3888d + a35dd15 commit 055a6f7
Show file tree
Hide file tree
Showing 135 changed files with 764 additions and 1,061 deletions.
Binary file removed res/assets/Graphics/Flags/flag_grey_a1.png
Binary file not shown.
Binary file removed res/assets/Graphics/Flags/flag_grey_a2.png
Binary file not shown.
Binary file removed res/assets/Graphics/Flags/flag_grey_a3.png
Binary file not shown.
Binary file removed res/assets/Graphics/Flags/flag_grey_a4.png
Binary file not shown.
Binary file removed res/assets/Graphics/Flags/flag_grey_a5.png
Binary file not shown.
Binary file removed res/assets/Graphics/Flags/flag_grey_a6.png
Binary file not shown.
Binary file removed res/assets/Graphics/Flags/flag_grey_a7.png
Binary file not shown.
Binary file removed res/assets/Graphics/Flags/flag_grey_a8.png
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file removed res/assets/Graphics/Flags/flag_market_mess_trade_a1.png
Binary file not shown.
Binary file removed res/assets/Graphics/Flags/flag_market_mess_trade_a2.png
Binary file not shown.
Binary file removed res/assets/Graphics/Flags/flag_market_mess_trade_a3.png
Binary file not shown.
Binary file removed res/assets/Graphics/Flags/flag_market_mess_trade_a4.png
Binary file not shown.
Binary file removed res/assets/Graphics/Flags/flag_market_mess_trade_a5.png
Binary file not shown.
Binary file removed res/assets/Graphics/Flags/flag_market_mess_trade_a6.png
Binary file not shown.
Binary file removed res/assets/Graphics/Flags/flag_market_mess_trade_a7.png
Binary file not shown.
Binary file removed res/assets/Graphics/Flags/flag_market_mess_trade_a8.png
Binary file not shown.
Binary file removed res/assets/Graphics/Flags/flag_market_sea_trade_a1.png
Binary file not shown.
Binary file removed res/assets/Graphics/Flags/flag_market_sea_trade_a2.png
Diff not rendered.
Binary file removed res/assets/Graphics/Flags/flag_market_sea_trade_a3.png
Diff not rendered.
Binary file removed res/assets/Graphics/Flags/flag_market_sea_trade_a4.png
Diff not rendered.
Binary file removed res/assets/Graphics/Flags/flag_market_sea_trade_a5.png
Diff not rendered.
Binary file removed res/assets/Graphics/Flags/flag_market_sea_trade_a6.png
Diff not rendered.
Binary file removed res/assets/Graphics/Flags/flag_market_sea_trade_a7.png
Diff not rendered.
Binary file removed res/assets/Graphics/Flags/flag_market_sea_trade_a8.png
Diff not rendered.
Binary file removed res/assets/Graphics/Flags/flag_mess_both_traders_a1.png
Diff not rendered.
Binary file removed res/assets/Graphics/Flags/flag_mess_both_traders_a2.png
Diff not rendered.
Binary file removed res/assets/Graphics/Flags/flag_mess_both_traders_a3.png
Diff not rendered.
Binary file removed res/assets/Graphics/Flags/flag_mess_both_traders_a4.png
Diff not rendered.
Binary file removed res/assets/Graphics/Flags/flag_mess_both_traders_a5.png
Diff not rendered.
Binary file removed res/assets/Graphics/Flags/flag_mess_both_traders_a6.png
Diff not rendered.
Binary file removed res/assets/Graphics/Flags/flag_mess_both_traders_a7.png
Diff not rendered.
Binary file removed res/assets/Graphics/Flags/flag_mess_both_traders_a8.png
Diff not rendered.
Binary file removed res/assets/Graphics/Flags/flag_mess_sea_trade_a1.png
Diff not rendered.
Binary file removed res/assets/Graphics/Flags/flag_mess_sea_trade_a2.png
Diff not rendered.
Binary file removed res/assets/Graphics/Flags/flag_mess_sea_trade_a3.png
Diff not rendered.
Binary file removed res/assets/Graphics/Flags/flag_mess_sea_trade_a4.png
Diff not rendered.
Binary file removed res/assets/Graphics/Flags/flag_mess_sea_trade_a5.png
Diff not rendered.
Binary file removed res/assets/Graphics/Flags/flag_mess_sea_trade_a6.png
Diff not rendered.
Binary file removed res/assets/Graphics/Flags/flag_mess_sea_trade_a7.png
Diff not rendered.
Binary file removed res/assets/Graphics/Flags/flag_mess_sea_trade_a8.png
Diff not rendered.
Binary file removed res/assets/Graphics/Flags/flag_mess_trade_a1.png
Diff not rendered.
Binary file removed res/assets/Graphics/Flags/flag_mess_trade_a2.png
Diff not rendered.
Binary file removed res/assets/Graphics/Flags/flag_mess_trade_a3.png
Diff not rendered.
Binary file removed res/assets/Graphics/Flags/flag_mess_trade_a4.png
Diff not rendered.
Binary file removed res/assets/Graphics/Flags/flag_mess_trade_a5.png
Diff not rendered.
Binary file removed res/assets/Graphics/Flags/flag_mess_trade_a6.png
Diff not rendered.
Binary file removed res/assets/Graphics/Flags/flag_mess_trade_a7.png
Diff not rendered.
Binary file removed res/assets/Graphics/Flags/flag_mess_trade_a8.png
Diff not rendered.
Binary file removed res/assets/Graphics/Flags/flag_sea_trade_a1.png
Diff not rendered.
Binary file removed res/assets/Graphics/Flags/flag_sea_trade_a2.png
Diff not rendered.
Binary file removed res/assets/Graphics/Flags/flag_sea_trade_a3.png
Diff not rendered.
Binary file removed res/assets/Graphics/Flags/flag_sea_trade_a4.png
Diff not rendered.
Binary file removed res/assets/Graphics/Flags/flag_sea_trade_a5.png
Diff not rendered.
Binary file removed res/assets/Graphics/Flags/flag_sea_trade_a6.png
Diff not rendered.
Binary file removed res/assets/Graphics/Flags/flag_sea_trade_a7.png
Diff not rendered.
Binary file removed res/assets/Graphics/Flags/flag_sea_trade_a8.png
Diff not rendered.
Binary file modified res/assets/Graphics/UI/Allowed_Walker_Checkmark.png
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
Binary file added res/assets/Graphics/UI/flag_icon_sea_a1_2_6_8.png
Binary file added res/assets/Graphics/UI/flag_icon_sea_a3.png
Binary file added res/assets/Graphics/UI/flag_icon_sea_a4.png
Binary file added res/assets/Graphics/UI/flag_icon_sea_a5.png
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
880 changes: 0 additions & 880 deletions res/assets/Graphics/flags.xml

This file was deleted.

446 changes: 444 additions & 2 deletions res/assets/Graphics/ui.xml

Large diffs are not rendered by default.

4 changes: 3 additions & 1 deletion src/building/barracks.c
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
#include "building/count.h"
#include "building/model.h"
#include "building/monument.h"
#include "building/storage.h"
#include "core/config.h"
#include "city/buildings.h"
#include "city/military.h"
Expand All @@ -20,7 +21,8 @@ static int is_valid_destination(building *b, int road_network_id)
{
return b->state == BUILDING_STATE_IN_USE && map_has_road_access(b->x, b->y, b->size, 0) &&
b->distance_from_entry > 0 && b->road_network_id == road_network_id &&
b->resources[RESOURCE_WEAPONS] < MAX_WEAPONS_BARRACKS;
b->resources[RESOURCE_WEAPONS] < MAX_WEAPONS_BARRACKS &&
building_storage_get_permission(BUILDING_STORAGE_PERMISSION_ARMOURY, b);
}

int building_get_barracks_for_weapon(int x, int y, int resource, int road_network_id, map_point *dst)
Expand Down
13 changes: 9 additions & 4 deletions src/building/construction_building.c
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ static void add_fort(int type, building *fort)
fort->subtype.fort_figure_type = FIGURE_FORT_MOUNTED;
} else if (type == BUILDING_FORT_AUXILIA_INFANTRY) {
fort->subtype.fort_figure_type = FIGURE_FORT_INFANTRY;
} else if (BUILDING_FORT_ARCHERS) {
} else if (type == BUILDING_FORT_ARCHERS) {
fort->subtype.fort_figure_type = FIGURE_FORT_ARCHER;
}

Expand Down Expand Up @@ -143,6 +143,13 @@ static void add_depot(building *b)
add_building(b);
}

static void add_granary(building *b)
{
b->storage_id = building_storage_create(b->id);
add_building(b);
map_tiles_update_area_roads(b->x, b->y, 5);
}

static void add_to_map(int type, building *b, int size, int orientation, int waterside_orientation_abs)
{
if (building_variant_has_variants(b->type)) {
Expand All @@ -168,9 +175,7 @@ static void add_to_map(int type, building *b, int size, int orientation, int wat
break;
// distribution
case BUILDING_GRANARY:
b->storage_id = building_storage_create(b->id);
add_building(b);
map_tiles_update_area_roads(b->x, b->y, 5);
add_granary(b);
break;
// Don't autodistribute wine for new Venus temples
case BUILDING_SMALL_TEMPLE_VENUS:
Expand Down
20 changes: 16 additions & 4 deletions src/building/distribution.c
Original file line number Diff line number Diff line change
Expand Up @@ -183,10 +183,22 @@ static int building_distribution_get_resource_storages(resource_storage_info inf

int permission;

if (type == BUILDING_MESS_HALL) {
permission = BUILDING_STORAGE_PERMISSION_QUARTERMASTER;
} else {
permission = BUILDING_STORAGE_PERMISSION_MARKET;
switch (type) {
case BUILDING_MESS_HALL:
permission = BUILDING_STORAGE_PERMISSION_QUARTERMASTER;
break;
case BUILDING_TAVERN:
permission = BUILDING_STORAGE_PERMISSION_BARKEEP;
break;
case BUILDING_CARAVANSERAI:
permission = BUILDING_STORAGE_PERMISSION_CARAVANSERAI;
break;
case BUILDING_LIGHTHOUSE:
permission = BUILDING_STORAGE_PERMISSION_LIGHTHOUSE;
break;
default:
permission = BUILDING_STORAGE_PERMISSION_MARKET;
break;
}

if (is_food_needed(info)) {
Expand Down
3 changes: 2 additions & 1 deletion src/building/house_evolution.c
Original file line number Diff line number Diff line change
Expand Up @@ -586,7 +586,8 @@ void building_house_process_evolve_and_consume_goods(void)
if (!b->has_plague) {
has_expanded |= evolve_callback[b->type - BUILDING_HOUSE_VACANT_LOT](b, demands);
}
if (game_time_day() == 0 || game_time_day() == 7) {
// 1x1 houses only consume half of the goods
if (game_time_day() == 0 || (game_time_day() == 7 && b->house_size > 1)) {
consume_resources(b);
}
b->last_update = last_update;
Expand Down
6 changes: 5 additions & 1 deletion src/building/storage.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,13 @@ typedef enum {
BUILDING_STORAGE_PERMISSION_DOCK = 2,
BUILDING_STORAGE_PERMISSION_QUARTERMASTER = 3,
BUILDING_STORAGE_PERMISSION_WORKER = 4,
BUILDING_STORAGE_PERMISSION_BARKEEP = 5,
BUILDING_STORAGE_PERMISSION_CARAVANSERAI = 6,
BUILDING_STORAGE_PERMISSION_LIGHTHOUSE = 7,
BUILDING_STORAGE_PERMISSION_ARMOURY = 8,
BUILDING_STORAGE_PERMISSION_WORKCAMP = 9,
} building_storage_permission_states;


/**
* Building storage struct
*/
Expand Down
4 changes: 2 additions & 2 deletions src/figure/figure.c
Original file line number Diff line number Diff line change
Expand Up @@ -298,7 +298,7 @@ static void figure_save(buffer *buf, const figure *f)
buffer_write_u8(buf, f->y);
buffer_write_u8(buf, f->previous_tile_x);
buffer_write_u8(buf, f->previous_tile_y);
buffer_write_u8(buf, f->missile_damage);
buffer_write_u8(buf, f->missile_height);
buffer_write_u8(buf, f->damage);
buffer_write_i16(buf, f->grid_offset);
buffer_write_u8(buf, f->destination_x);
Expand Down Expand Up @@ -423,7 +423,7 @@ static void figure_load(buffer *buf, figure *f, int figure_buf_size, int version
f->y = buffer_read_u8(buf);
f->previous_tile_x = buffer_read_u8(buf);
f->previous_tile_y = buffer_read_u8(buf);
f->missile_damage = buffer_read_u8(buf);
f->missile_height = buffer_read_u8(buf);
f->damage = buffer_read_u8(buf);
f->grid_offset = buffer_read_i16(buf);
f->destination_x = buffer_read_u8(buf);
Expand Down
2 changes: 1 addition & 1 deletion src/figure/figure.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ typedef struct {
unsigned char y;
unsigned char previous_tile_x;
unsigned char previous_tile_y;
unsigned char missile_damage;
unsigned char missile_height;
unsigned char damage;
short grid_offset;
unsigned char destination_x;
Expand Down
6 changes: 3 additions & 3 deletions src/figure/movement.c
Original file line number Diff line number Diff line change
Expand Up @@ -736,10 +736,10 @@ int figure_movement_move_ticks_cross_country(figure *f, int num_ticks)
int is_at_destination = 0;
while (num_ticks > 0) {
num_ticks--;
if (f->missile_damage > 0) {
f->missile_damage--;
if (f->missile_height > 0) {
f->missile_height--;
} else {
f->missile_damage = 0;
f->missile_height = 0;
}
if (f->cc_delta_x + f->cc_delta_y <= 0) {
is_at_destination = 1;
Expand Down
2 changes: 1 addition & 1 deletion src/figure/properties.c
Original file line number Diff line number Diff line change
Expand Up @@ -474,7 +474,7 @@ static const figure_properties properties[FIGURE_TYPE_MAX] = {
[FIGURE_FORT_ARCHER] = {
.category = FIGURE_CATEGORY_ARMED,
.max_damage = 80, .attack_value = 6, .defense_value = 0,
.missile_defense_value = 0, .missile_attack_value = 4, .missile_delay = 50
.missile_defense_value = 0, .missile_attack_value = 4, .missile_delay = 70
},

};
Expand Down
11 changes: 6 additions & 5 deletions src/figuretype/missile.c
Original file line number Diff line number Diff line change
Expand Up @@ -50,16 +50,17 @@ void figure_create_explosion_cloud(int x, int y, int size)
sound_effect_play(SOUND_EFFECT_EXPLOSION);
}

void figure_create_missile(int building_id, int x, int y, int x_dst, int y_dst, figure_type type)
void figure_create_missile(int figure_id, int x, int y, int x_dst, int y_dst, figure_type type)
{
figure *f = figure_create(type, x, y, DIR_0_TOP);
figure *launcher = figure_get(figure_id);
if (f->id) {
if (type == FIGURE_BOLT || type == FIGURE_FRIENDLY_ARROW) {
f->missile_damage = 60;
if (launcher->type == FIGURE_BALLISTA || launcher->type == FIGURE_WATCHTOWER_ARCHER) {
f->missile_height = 60;
} else {
f->missile_damage = 10;
f->missile_height = 10;
}
f->building_id = building_id;
f->building_id = figure_id;
f->destination_x = x_dst;
f->destination_y = y_dst;
figure_movement_set_cross_country_direction(
Expand Down
2 changes: 1 addition & 1 deletion src/figuretype/missile.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

void figure_create_explosion_cloud(int x, int y, int size);

void figure_create_missile(int building_id, int x, int y, int x_dst, int y_dst, figure_type type);
void figure_create_missile(int figure_id, int x, int y, int x_dst, int y_dst, figure_type type);

void figure_explosion_cloud_action(figure *f);

Expand Down
5 changes: 4 additions & 1 deletion src/figuretype/soldier.c
Original file line number Diff line number Diff line change
Expand Up @@ -306,6 +306,9 @@ static int soldier_percentage_speed(figure_type type)
return 75;
case FIGURE_FORT_INFANTRY:
return 85;
case FIGURE_FORT_ARCHER:
return 60;
break;
default:
break;
}
Expand All @@ -314,7 +317,7 @@ static int soldier_percentage_speed(figure_type type)
if (type == FIGURE_FORT_INFANTRY) {
return 50;
} else if (type == FIGURE_FORT_ARCHER) {
return 75;
return 25;
}
return 0;
}
Expand Down
2 changes: 2 additions & 0 deletions src/figuretype/supplier.c
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,10 @@ static int take_food_from_granary(figure *f, int market_id, int granary_id)
if (!resource_is_food(resource)) {
return 0;
}

building *granary = building_get(granary_id);
building *market = building_get(market_id);

int market_units = market->resources[resource];
int max_units = 0;
int granary_units = granary->resources[resource];
Expand Down
7 changes: 7 additions & 0 deletions src/figuretype/workcamp.c
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
#include "building/building.h"
#include "building/model.h"
#include "building/monument.h"
#include "building/storage.h"
#include "building/warehouse.h"
#include "city/gods.h"
#include "city/resource.h"
Expand Down Expand Up @@ -115,6 +116,12 @@ void figure_workcamp_worker_action(figure *f)
if (!warehouse_id) {
continue;
}
if (warehouse_id) {
building *b = building_get(warehouse_id);
if (!building_storage_get_permission(BUILDING_STORAGE_PERMISSION_WORKCAMP, b)) {
continue;
}
}
f->collecting_item_id = resource;
f->destination_building_id = warehouse_id;
f->destination_x = dst.x;
Expand Down
23 changes: 23 additions & 0 deletions src/platform/renderer.c
Original file line number Diff line number Diff line change
Expand Up @@ -698,6 +698,16 @@ static int start_tooltip_creation(int width, int height)
}
}
if (!data.tooltip.texture) {
const char *scale_quality = "linear";
#ifndef __APPLE__
// Scale using nearest neighbour when we scale a multiple of 100%: makes it look sharper.
// But not on MacOS: users are used to the linear interpolation since that's what Apple also does.
if (platform_screen_get_scale() % 100 == 0) {
scale_quality = "nearest";
}
#endif
SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY, scale_quality);

data.tooltip.texture = SDL_CreateTexture(data.renderer, SDL_PIXELFORMAT_ARGB8888,
SDL_TEXTUREACCESS_TARGET, width, height);
if (!data.tooltip.texture) {
Expand All @@ -718,6 +728,7 @@ static void finish_tooltip_creation(void)
if (data.paused) {
return;
}
SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY, "nearest");
SDL_SetRenderTarget(data.renderer, data.render_texture);
}

Expand Down Expand Up @@ -1244,6 +1255,10 @@ static void destroy_render_texture(void)
SDL_DestroyTexture(data.render_texture);
data.render_texture = 0;
}
if (data.tooltip.texture) {
SDL_DestroyTexture(data.tooltip.texture);
data.tooltip.texture = 0;
}
}

int platform_renderer_create_render_texture(int width, int height)
Expand Down Expand Up @@ -1318,6 +1333,10 @@ void platform_renderer_invalidate_target_textures(void)
data.custom_textures[CUSTOM_IMAGE_GREEN_FOOTPRINT].texture = 0;
create_blend_texture(CUSTOM_IMAGE_GREEN_FOOTPRINT);
}
if (data.tooltip.texture) {
SDL_DestroyTexture(data.tooltip.texture);
data.tooltip.texture = 0;
}
}

void platform_renderer_clear(void)
Expand All @@ -1330,6 +1349,10 @@ static void draw_tooltip(void)
if (!data.tooltip.texture || !data.tooltip.opacity) {
return;
}
color_t opacity = calc_adjust_with_percentage(0x55, calc_percentage(data.tooltip.opacity, 0xff));
fill_rect(data.tooltip.x + 2, data.tooltip.width,
data.tooltip.y + 2, data.tooltip.height, opacity << COLOR_BITSHIFT_ALPHA);

SDL_Rect src;
src.x = 0;
src.y = 0;
Expand Down
37 changes: 21 additions & 16 deletions src/translation/english.c
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ static translation_string all_strings[] = {
{TR_CONFIG_WOLVES_BLOCK, "Block building around wolves"},
{TR_CONFIG_DYNAMIC_GRANARIES, "Block unconnected granary roads"},
{TR_CONFIG_MORE_STOCKPILE, "Houses stockpile more goods from market"},
{TR_CONFIG_NO_SUPPLIER_DISTRIBUTION, "Buying market ladies don't distribute goods"},
{TR_CONFIG_NO_SUPPLIER_DISTRIBUTION, "Market buyers don't distribute goods to houses"},
{TR_CONFIG_IMMEDIATELY_DELETE_BUILDINGS, "Immediately destroy buildings"},
{TR_CONFIG_GETTING_GRANARIES_GO_OFFROAD, "Cart pushers from getting granaries can go off-road"},
{TR_CONFIG_GRANARIES_GET_DOUBLE, "Double the capacity of cart pushers from getting granaries"},
Expand Down Expand Up @@ -397,10 +397,10 @@ static translation_string all_strings[] = {
{TR_TOOLTIP_BUTTON_DELETE_READ_MESSAGES, "Delete read messages"},
{TR_TOOLTIP_BUTTON_MOTHBALL_ON, "Disable this building"},
{TR_TOOLTIP_BUTTON_MOTHBALL_OFF, "Enable this building"},
{TR_TOOLTIP_BUTTON_ACCEPT_MARKET_LADIES, "Allow market ladies to buy from here"},
{TR_TOOLTIP_BUTTON_ACCEPT_TRADE_CARAVAN, "Allow caravans to trade here"},
{TR_TOOLTIP_BUTTON_ACCEPT_TRADE_SHIPS, "Allow trade ships to trade here"},
{TR_TOOLTIP_BUTTON_ACCEPT_WORKERS, "Halt resource to workshops or granaries"},
{TR_TOOLTIP_BUTTON_ACCEPT_MARKET_LADIES, "Allow markets to get from here"},
{TR_TOOLTIP_BUTTON_ACCEPT_TRADE_CARAVAN, "Allow merchant caravans to get from here"},
{TR_TOOLTIP_BUTTON_ACCEPT_TRADE_SHIPS, "Allow docked trade ships to get from here"},
{TR_TOOLTIP_BUTTON_ACCEPT_WORKERS, "Halt resource deliveries to workshops or granaries"},
{TR_TOOLTIP_BUTTON_STOCKPILING_ON, " Enable stockpiling to a warehouse"},
{TR_TOOLTIP_BUTTON_STOCKPILING_OFF, "Disable stockpiling"},
{TR_BUILDING_LIGHTHOUSE, "Lighthouse"},
Expand Down Expand Up @@ -1427,22 +1427,27 @@ static translation_string all_strings[] = {
{TR_WINDOW_CAMPAIGN_MISSION_FAILED_TO_LOAD_TEXT, "The requested mission could not be opened.\nPlease check augustus-log.txt in your Augustus directory for details."},
{TR_EDITOR_CAESAR_SALARY, "Caesar's salary"},
{TR_CITY_MESSAGE_TEXT_CARAVANSERAI_COMPLETE, "The Caravanserai is now complete, and new commercial opportunities are sure to appear. Caravans from all over the world already announce that they are eager to come and trade with your city."},
{TR_CONFIG_SHOW_DESIRABILITY_RANGE, "Show desirability when building mausolea and nymphaea"},
{TR_CONFIG_SHOW_DESIRABILITY_RANGE, "Show desirability when building a Nymphaeum or Mausoleum"},
{TR_WINDOW_BARRACKS_PRIORITY, "Recruitment Priority:"},
{TR_WINDOW_BARRACKS_FORTS, "Forts"},
{TR_WINDOW_BARRACKS_TOWERS, "Towers"},
{TR_TOOLTIP_BARRACKS_PRIORITY_FORT, "Prioritize Legionary training"},
{TR_TOOLTIP_BARRACKS_PRIORITY_JAVELIN, "Prioritize Javelin training"},
{TR_TOOLTIP_BARRACKS_PRIORITY_MOUNTED, "Prioritize Cavalry training"},
{TR_TOOLTIP_BARRACKS_PRIORITY_AUXINF, "Prioritize Swordsman training"},
{TR_TOOLTIP_BARRACKS_PRIORITY_AUXARCH, "Prioritize Archer training"},
{TR_TOOLTIP_BARRACKS_PRIORITY_TOWER, "Prioritize Tower delivery"},
{TR_TOOLTIP_BARRACKS_PRIORITY_WATCHTOWER, "Prioritize Watchtower delivery"},
{TR_TOOLTIP_BUTTON_REJECT_DELIVERY, "Stop weapons delivery from the Armory"},
{TR_TOOLTIP_BUTTON_ACCEPT_DELIVERY, "Allow weapons delivery from the Armory"},
{TR_CONFIG_SHOW_DESIRABILITY_RANGE, "Show desirability when building mausolea and nymphaea"},
{TR_TOOLTIP_BARRACKS_PRIORITY_FORT, "Prioritize training of Legionaries"},
{TR_TOOLTIP_BARRACKS_PRIORITY_JAVELIN, "Prioritize training of Javelins"},
{TR_TOOLTIP_BARRACKS_PRIORITY_MOUNTED, "Prioritize training of Mounted"},
{TR_TOOLTIP_BARRACKS_PRIORITY_AUXINF, "Prioritize training of Swords"},
{TR_TOOLTIP_BARRACKS_PRIORITY_AUXARCH, "Prioritize training of Archers"},
{TR_TOOLTIP_BARRACKS_PRIORITY_TOWER, "Prioritize training of tower sentries"},
{TR_TOOLTIP_BARRACKS_PRIORITY_WATCHTOWER, "Prioritize training of watchtower watchmen"},
{TR_TOOLTIP_BUTTON_REJECT_DELIVERY, "Stop armories from delivering weapons here"},
{TR_TOOLTIP_BUTTON_ACCEPT_DELIVERY, "Allow armories to deliver weapons here"},
{TR_CONFIG_SHOW_DESIRABILITY_RANGE, "Show desirability when building a Nymphaeum or Mausoleum"},
{TR_BUILDING_FORT_ARCHERS, "Auxiliaries - Archers"},
{TR_WINDOW_ADVISOR_MILITARY_ARCHER, "Archers"},
{TR_TOOLTIP_BUTTON_ACCEPT_BARKEEP, "Allow taverns to get from here"},
{TR_TOOLTIP_BUTTON_ACCEPT_CARAVANSERAI, "Allow the Caravanserai to get from here"},
{TR_TOOLTIP_BUTTON_ACCEPT_ARMOURY, "Allow armories to get from here"},
{TR_TOOLTIP_BUTTON_ACCEPT_LIGHTHOUSE, "Allow the Lighthouse to get from here"},
{TR_TOOLTIP_BUTTON_ACCEPT_WORKCAMP, "Allow workcamps to get from here"},
{TR_BUILDING_LATRINES, "Latrines"},
{TR_BUILDING_LATRINES_DESC_1, "A place of comfort appreciated by the population to talk about the news of the day or their business."},
{TR_BUILDING_LATRINES_DESC_2, "Latrines are used by citizens having only access to a well, and help to slightly improve the housing and health levels. Houses in range of a fountain won't make use of public latrines."},
Expand Down
5 changes: 5 additions & 0 deletions src/translation/french.c
Original file line number Diff line number Diff line change
Expand Up @@ -1440,6 +1440,11 @@ static translation_string all_strings[] = {
{TR_TOOLTIP_BARRACKS_PRIORITY_WATCHTOWER, "Priorité d'affectation aux Tours de guet"},
{TR_TOOLTIP_BUTTON_REJECT_DELIVERY, "Suspendre la livraison d'armes par l'Armurerie"},
{TR_TOOLTIP_BUTTON_ACCEPT_DELIVERY, "Autoriser la livraison d'armes par l'Armurerie"},
{TR_TOOLTIP_BUTTON_ACCEPT_BARKEEP, "Autoriser les tavernières à acheter ici"},
{TR_TOOLTIP_BUTTON_ACCEPT_CARAVANSERAI, "Autoriser le fournisseur du caravansérail à acheter ici"},
{TR_TOOLTIP_BUTTON_ACCEPT_ARMOURY, "Autoriser les armureries à se fournir ici"},
{TR_TOOLTIP_BUTTON_ACCEPT_LIGHTHOUSE, "Autoriser le gardien du phare à obtenir du bois ici"},
{TR_TOOLTIP_BUTTON_ACCEPT_WORKCAMP, "Autoriser les architectes à se fournir ici"},
{TR_BUILDING_LATRINES, "Latrines"},
{TR_BUILDING_LATRINES_DESC_1, "Lieu d'aisance apprécié de la population pour parler des nouvelles du jour ou de leurs affaires."},
{TR_BUILDING_LATRINES_DESC_2, "Les latrines sont utilisées par les citoyens n'ayant accès qu'à un puits, et améliorent légèrement le rang de logement et l'hygiène. Les maisons avec accès à une fontaine ne feront pas usage des latrines publiques."},
Expand Down
Loading

0 comments on commit 055a6f7

Please sign in to comment.