Skip to content

Commit

Permalink
Backported #39405: Update string extraction script and fix computer t…
Browse files Browse the repository at this point in the history
…ranslation

Co-authored-by: Qrox <[email protected]>
  • Loading branch information
2 people authored and kevingranade committed Jun 18, 2020
1 parent 2a6ac5b commit ef29ca7
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 9 deletions.
18 changes: 14 additions & 4 deletions lang/extract_json_strings.py
Original file line number Diff line number Diff line change
Expand Up @@ -64,8 +64,10 @@ def warning_supressed(filename):
ignorable = {
"ammo_effect",
"behavior",
"charge_removal_blacklist",
"city_building",
"colordef",
"disease_type",
"emit",
"enchantment",
"event_transformation",
Expand Down Expand Up @@ -93,6 +95,7 @@ def warning_supressed(filename):
"region_settings",
"requirement",
"rotatable_symbol",
"SCENARIO_BLACKLIST",
"scent_type",
"skill_boost",
"TRAIT_BLACKLIST",
Expand Down Expand Up @@ -247,6 +250,9 @@ def extract_martial_art(item):
if "description" in item:
writestr(outfile, item["description"],
comment="Description for martial art '{}'".format(name))
if "initiate" in item:
writestr(outfile, item["initiate"], format_strings=True,
comment="initiate message for martial art '{}'".format(name))
onhit_buffs = item.get("onhit_buffs", list())
static_buffs = item.get("static_buffs", list())
onmove_buffs = item.get("onmove_buffs", list())
Expand Down Expand Up @@ -641,18 +647,22 @@ def extract_missiondef(item):
def extract_mutation(item):
outfile = get_outfile("mutation")

item_name = found = item.get("name")
item_name_or_id = found = item.get("name")
if found is None:
raise WrongJSONItem("JSON item don't contain 'name' field", item)
writestr(outfile, found)
if "copy-from" in item:
item_name_or_id = item["id"]
else:
raise WrongJSONItem("JSON item don't contain 'name' field", item)
else:
writestr(outfile, found)

simple_fields = [ "description" ]

for f in simple_fields:
found = item.get(f)
# Need that check due format string argument
if found is not None:
writestr(outfile, found, comment="Description for {}".format(item_name))
writestr(outfile, found, comment="Description for {}".format(item_name_or_id))

if "attacks" in item:
attacks = item.get("attacks")
Expand Down
5 changes: 3 additions & 2 deletions src/computer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -377,10 +377,11 @@ struct enum_traits<computer_failure_type> {

computer_option computer_option::from_json( const JsonObject &jo )
{
const std::string name = jo.get_string( "name" );
translation name;
jo.read( "name", name );
const computer_action action = jo.get_enum_value<computer_action>( "action" );
const int sec = jo.get_int( "security", 0 );
return computer_option( name, action, sec );
return computer_option( name.translated(), action, sec );
}

computer_failure computer_failure::from_json( const JsonObject &jo )
Expand Down
7 changes: 4 additions & 3 deletions src/mapgen.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1439,14 +1439,14 @@ class jmapgen_make_rubble : public jmapgen_piece
class jmapgen_computer : public jmapgen_piece
{
public:
std::string name;
translation name;
translation access_denied;
int security;
std::vector<computer_option> options;
std::vector<computer_failure> failures;
bool target;
jmapgen_computer( const JsonObject &jsi ) {
name = jsi.get_string( "name" );
jsi.read( "name", name );
jsi.read( "access_denied", access_denied );
security = jsi.get_int( "security", 0 );
target = jsi.get_bool( "target", false );
Expand All @@ -1466,7 +1466,8 @@ class jmapgen_computer : public jmapgen_piece
const int ry = y.get();
dat.m.ter_set( point( rx, ry ), t_console );
dat.m.furn_set( point( rx, ry ), f_null );
computer *cpu = dat.m.add_computer( tripoint( rx, ry, dat.m.get_abs_sub().z ), name, security );
computer *cpu = dat.m.add_computer( tripoint( rx, ry, dat.m.get_abs_sub().z ), name.translated(),
security );
for( const auto &opt : options ) {
cpu->add_option( opt );
}
Expand Down

0 comments on commit ef29ca7

Please sign in to comment.