diff --git a/data/json/effects.json b/data/json/effects.json index 405003138fac9..b7421a2e442b6 100644 --- a/data/json/effects.json +++ b/data/json/effects.json @@ -411,24 +411,6 @@ "vomit_chance": [60] } }, - { - "type": "effect_type", - "id": "lightsnare", - "name": ["Stuck in a light snare"], - "desc": ["You can't move until you get free!"], - "apply_message": "You are snared!", - "rating": "bad", - "show_in_info": true - }, - { - "type": "effect_type", - "id": "heavysnare", - "name": ["Stuck in a heavy snare"], - "desc": ["You can't move until you get free!"], - "apply_message": "You are snared!", - "rating": "bad", - "show_in_info": true - }, { "type": "effect_type", "id": "beartrap", diff --git a/data/json/items/generic.json b/data/json/items/generic.json index 3cd1bbfa3fd34..e4fd2c7b1c6d7 100644 --- a/data/json/items/generic.json +++ b/data/json/items/generic.json @@ -1755,21 +1755,6 @@ "bashing": 8, "to_hit": -2 }, - { - "type": "GENERIC", - "id": "crude_brick", - "symbol": ",", - "color": "red", - "name": "unfired clay brick", - "category": "spare_parts", - "description": "A soft, unfired clay brick. Firing it in a brick kiln would harden it up, making it suitable for use in a construction project.", - "price": 1500, - "material": ["stone", "freshclay"], - "weight": 1269, - "volume": 2, - "bashing": 8, - "to_hit": -2 - }, { "type": "AMMO", "id": "mortar_build", diff --git a/data/json/items/migration.json b/data/json/items/migration.json index ad23d454c4462..3005e4a66ea7f 100644 --- a/data/json/items/migration.json +++ b/data/json/items/migration.json @@ -400,5 +400,10 @@ "id": "pda_flashlight", "type": "MIGRATION", "replace": "cell_phone" + }, + { + "id": "crude_brick", + "type": "MIGRATION", + "replace": "brick" } ] diff --git a/data/json/items/tools.json b/data/json/items/tools.json index bc7449d7a3b3a..4bc99cb11fb9f 100644 --- a/data/json/items/tools.json +++ b/data/json/items/tools.json @@ -3653,27 +3653,6 @@ "symbol": ";", "color": "light_gray" }, - { - "id": "heavy_snare_kit", - "type": "TOOL", - "name": "heavy snare kit", - "description": "This is a kit for a simple trap consisting of a rope noose and a snare trigger. It requires a tree nearby. It is effective at trapping monsters.", - "weight": 1066, - "volume": 1, - "price": 250, - "cutting": 10, - "material": "wood", - "symbol": ";", - "color": "brown", - "use_action": { - "type": "place_trap", - "needs_neighbor_terrain": "t_tree", - "trap": "tr_heavy_snare", - "moves": 200, - "practice": 4, - "done_message": "You set the snare trap." - } - }, { "id": "hoe", "type": "TOOL", @@ -4352,27 +4331,6 @@ "done_message": "You place the leather funnel, waiting to collect rain." } }, - { - "id": "light_snare_kit", - "type": "TOOL", - "name": "light snare kit", - "description": "This is a kit for a simple trap consisting of a string noose and a snare trigger. It requires a young tree nearby. It is effective at trapping and killing some small animals.", - "weight": 886, - "volume": 1, - "price": 100, - "cutting": 6, - "material": "wood", - "symbol": ";", - "color": "brown", - "use_action": { - "type": "place_trap", - "needs_neighbor_terrain": "t_tree_young", - "trap": "tr_light_snare", - "moves": 150, - "practice": 2, - "done_message": "You set the snare trap." - } - }, { "id": "lighter", "type": "TOOL", @@ -6650,19 +6608,6 @@ "charges_per_use": 1, "use_action": "OXYGEN_BOTTLE" }, - { - "id": "snare_trigger", - "type": "TOOL", - "name": "snare trigger", - "description": "This is a stick that has been cut into a trigger mechanism for a snare trap.", - "weight": 850, - "volume": 1, - "price": 0, - "to_hit": -1, - "material": "wood", - "symbol": ";", - "color": "brown" - }, { "id": "soldering_iron", "type": "TOOL", diff --git a/data/json/traps.json b/data/json/traps.json index 19f3b766a4593..2fd98a4b1f0da 100644 --- a/data/json/traps.json +++ b/data/json/traps.json @@ -215,30 +215,6 @@ "difficulty" : 99, "action" : "blade" }, - { - "type" : "trap", - "id": "tr_light_snare", - "name" : "light snare trap", - "color" : "brown", - "symbol" : "^", - "visibility" : 5, - "avoidance" : 10, - "difficulty" : 2, - "action" : "snare_light", - "drops" : ["light_snare_kit"] - }, - { - "type" : "trap", - "id": "tr_heavy_snare", - "name" : "heavy snare trap", - "color" : "brown", - "symbol" : "^", - "visibility" : 3, - "avoidance" : 10, - "difficulty" : 4, - "action" : "snare_heavy", - "drops" : ["heavy_snare_kit"] - }, { "type" : "trap", "id": "tr_landmine", diff --git a/data/mods/More_Survival_Tools/effects.json b/data/mods/More_Survival_Tools/effects.json new file mode 100644 index 0000000000000..e46a958dedc33 --- /dev/null +++ b/data/mods/More_Survival_Tools/effects.json @@ -0,0 +1,20 @@ +[ + { + "type": "effect_type", + "id": "lightsnare", + "name": ["Stuck in a light snare"], + "desc": ["You can't move until you get free!"], + "apply_message": "You are snared!", + "rating": "bad", + "show_in_info": true + }, + { + "type": "effect_type", + "id": "heavysnare", + "name": ["Stuck in a heavy snare"], + "desc": ["You can't move until you get free!"], + "apply_message": "You are snared!", + "rating": "bad", + "show_in_info": true + } +] diff --git a/data/mods/More_Survival_Tools/items.json b/data/mods/More_Survival_Tools/items.json index 74b5b5255b34a..bedca3cbfb92e 100644 --- a/data/mods/More_Survival_Tools/items.json +++ b/data/mods/More_Survival_Tools/items.json @@ -636,5 +636,60 @@ "reload": 300, "valid_mod_locations": [ [ "underbarrel", 1 ], [ "sights", 1 ], [ "accessories", 2 ] ], "flags": [ "PRIMITIVE_RANGED_WEAPON" ] + }, + { + "id": "heavy_snare_kit", + "type": "TOOL", + "name": "heavy snare kit", + "description": "This is a kit for a simple trap consisting of a rope noose and a snare trigger. It requires a tree nearby. It is effective at trapping monsters.", + "weight": 1066, + "volume": 1, + "price": 250, + "cutting": 10, + "material": "wood", + "symbol": ";", + "color": "brown", + "use_action": { + "type": "place_trap", + "needs_neighbor_terrain": "t_tree", + "trap": "tr_heavy_snare", + "moves": 200, + "practice": 4, + "done_message": "You set the snare trap." + } + }, + { + "id": "light_snare_kit", + "type": "TOOL", + "name": "light snare kit", + "description": "This is a kit for a simple trap consisting of a string noose and a snare trigger. It requires a young tree nearby. It is effective at trapping and killing some small animals.", + "weight": 886, + "volume": 1, + "price": 100, + "cutting": 6, + "material": "wood", + "symbol": ";", + "color": "brown", + "use_action": { + "type": "place_trap", + "needs_neighbor_terrain": "t_tree_young", + "trap": "tr_light_snare", + "moves": 150, + "practice": 2, + "done_message": "You set the snare trap." + } + }, + { + "id": "snare_trigger", + "type": "TOOL", + "name": "snare trigger", + "description": "This is a stick that has been cut into a trigger mechanism for a snare trap.", + "weight": 850, + "volume": 1, + "price": 0, + "to_hit": -1, + "material": "wood", + "symbol": ";", + "color": "brown" } ] diff --git a/data/mods/More_Survival_Tools/traps.json b/data/mods/More_Survival_Tools/traps.json index 796a638811548..4876b8ccfea52 100644 --- a/data/mods/More_Survival_Tools/traps.json +++ b/data/mods/More_Survival_Tools/traps.json @@ -12,5 +12,29 @@ "drops" : ["tarp"], "benign" : true, "funnel_radius": 342 + }, + { + "type" : "trap", + "id": "tr_light_snare", + "name" : "light snare trap", + "color" : "brown", + "symbol" : "^", + "visibility" : 5, + "avoidance" : 10, + "difficulty" : 2, + "action" : "snare_light", + "drops" : ["light_snare_kit"] + }, + { + "type" : "trap", + "id": "tr_heavy_snare", + "name" : "heavy snare trap", + "color" : "brown", + "symbol" : "^", + "visibility" : 3, + "avoidance" : 10, + "difficulty" : 4, + "action" : "snare_heavy", + "drops" : ["heavy_snare_kit"] } ] diff --git a/doc/COLOR.md b/doc/COLOR.md new file mode 100644 index 0000000000000..09f42b90f3dcf --- /dev/null +++ b/doc/COLOR.md @@ -0,0 +1,73 @@ +# Colors + +DDA is colorful game. You can use several foreground and background colors in various places: + +* map data (terrain and furniture); +* item data; +* text data; +* etc. + +**Note:** Map data objects can only have one color-related node defined (either `color` or `bgcolor`). + +## Color string format + +Whenever color is defined in JSON it should be defined in following format: `Prefix_Foreground_Background`. + +`Prefix` can take one of following values: + +* `c_` - default color prefix (can be ommited); +* `i_` - optional prefix which indicates that foreground color should be inverted (special rules will be applied to foreground and background colors); +* `h_` - optional prefix which indicates that foreground color should be highlighted (special rules will be applied to foreground and background colors). + +`Foreground` - defines mandatory color of foreground/ink/font. + +`Background` - defines optional color of background/paper. + +**Note:** If color was not found by its name, then `c_unset` is used for `Foreground` and `i_white` for `Background`. + +## Examples of color strings + +- `c_white` - `white` color (with default prefix `c_`); +- `black` - `black` color (default prefix `c_` is ommited); +- `i_red` - inverted `red` color; +- `dark_gray_white` - `dark_gray` foreground color with `white` background color; +- `light_gray_light_red` - `light_gray` foreground color with `light_red` background color; +- `dkgray_red` - `dark_gray` foreground color with `red` background color (deprecated prefix `dk` instead of `dark_`); +- `ltblue_red` - `light_blue` foreground color with `red` background color (deprecated prefix `lt` instead of `light_`). + +## Color code + +Color code is short string which defines color and can be used, for example, in maps notes. + +## Possible colors + +| Color (image) | Color name (dda) | Color name (curses) | Default R,G,B values | Color code | Notes | +|:--------------------------------------------------------:|:------------------:|:-------------------:|:--------------------:|:----------:|:------------------------------------------------------:| +| ![#000000](https://placehold.it/20/000000/000000?text=+) | `black` | `BLACK` | `0,0,0` | | | +| ![#ff0000](https://placehold.it/20/ff0000/000000?text=+) | `red` | `RED` | `255,0,0` | `R` | | +| ![#006e00](https://placehold.it/20/006e00/000000?text=+) | `green` | `GREEN` | `0,110,0` | `G` | | +| ![#5c3317](https://placehold.it/20/5c3317/000000?text=+) | `brown` | `BROWN` | `92,51,23` | `br` | | +| ![#0000c8](https://placehold.it/20/0000c8/000000?text=+) | `blue` | `BLUE` | `0,0,200` | `B` | | +| ![#8b3a62](https://placehold.it/20/8b3a62/000000?text=+) | `magenta` or `pink`| `MAGENTA` | `139,58,98` | `P` | | +| ![#009650](https://placehold.it/20/009650/000000?text=+) | `cyan` | `CYAN` | `0,150,180` | `C` | | +| ![#969696](https://placehold.it/20/969696/000000?text=+) | `light_gray` | `GRAY` | `150,150,150` | `lg` | deprecated `lt` prefix can be used instead of `light_` | +| ![#636363](https://placehold.it/20/636363/000000?text=+) | `dark_gray` | `DGRAY` | `99,99,99` | `dg` | deprecated `dk` prefix can be used instead of `dark_` | +| ![#ff9696](https://placehold.it/20/ff9696/000000?text=+) | `light_red` | `LRED` | `255,150,150` | | deprecated `lt` prefix can be used instead of `light_` | +| ![#00ff00](https://placehold.it/20/00ff00/000000?text=+) | `light_green` | `LGREEN` | `0,255,0` | `g` | deprecated `lt` prefix can be used instead of `light_` | +| ![#ffff00](https://placehold.it/20/ffff00/000000?text=+) | `light_yellow` | `YELLOW` | `255,255,0` | | deprecated `lt` prefix can be used instead of `light_` | +| ![#6464ff](https://placehold.it/20/6464ff/000000?text=+) | `light_blue` | `LBLUE` | `100,100,255` | `b` | deprecated `lt` prefix can be used instead of `light_` | +| ![#fe00fe](https://placehold.it/20/fe00fe/000000?text=+) | `light_magenta` | `LMAGENTA` | `254,0,254` | `lm` | deprecated `lt` prefix can be used instead of `light_` | +| ![#00f0ff](https://placehold.it/20/00f0ff/000000?text=+) | `light_cyan` | `LCYAN` | `0,240,255` | `c` | deprecated `lt` prefix can be used instead of `light_` | +| ![#ffffff](https://placehold.it/20/ffffff/000000?text=+) | `white` | `WHITE` | `255,255,255` | `W` | | + +**Note:** Default RGB values are taken from file `\data\raw\colors.json`. +**Note:** RGB values can be redefined in file `\config\base_colors.json`. + +## Color rules + +There are two types of special color transformation which can affect both foreground and background color: + +* inversion; +* highlight. + +**Note:** Color rules can be redefined (for example, `\data\raw\color_templates\no_bright_background.json`). diff --git a/doc/GAME_BALANCE.md b/doc/GAME_BALANCE.md index 1a5e6da9fa38f..99df01c437360 100644 --- a/doc/GAME_BALANCE.md +++ b/doc/GAME_BALANCE.md @@ -191,10 +191,12 @@ Ammo ID | Description | Energy, J | Dmg | Base Brl | -------------------|-----------------------------|-----------|-----|----------|------------------------------- .22LR | 40gr unjacketed bullet | 141 | 12 | 6in | | .22LR FMJ | 30gr FMJ bullet | 277 | 17 | 6in | | +.32 ACP | 60gr JHP bullet | 218 | 15 | 4in | | +7.62x25mm | 85gr JHP bullet | 544 | 23 | 4.7in | | 9x19mm FMJ | 115gr FMJ bullet | 420 | 24 | 5.9in | | 9x19mm +P | 115gr JHP bullet | 632 | 25 | 5.9in | | 9x19mm +P+ | 115gr JHP bullet | 678 | 26 | 5.9in | | -9x19mm JHP | 116gr JHP bullet | 533 | 23 | 5.9in |damage increased by 3 | +9x19mm JHP | 115gr JHP bullet | 533 | 23 | 5.9in |damage increased by 3 | 9x18mm 57-N-181S | 93gr FMJ bullet | 251 | 16 | 3.8in | | 9x18mm SP-7 | 93gr bullet | 417 | 20 | 3.8in | | 9x18mm RG028 | 93gr hardened steel core bullet | 317 | 18 | 3.8in | damage reduced by 4 | @@ -212,24 +214,26 @@ Ammo ID | Description | Energy, J | Dmg | Base Brl | .500 S&W Magnum | 500gr bullet | 3056 | 55 | 8.4in | | 5.7x28mm SS190 | 31gr AP FMJ bullet | 534 | 23 | 10.4in | damage reduced by 3 | 4.6x30mm | 31gr copper plated steel bullet | 505 | 22 | 7.1in | damage reduced by 4 | +7.62x39mm | 123gr FMJ bullet | 2179 | 46 | 16.3in | | 7.62x39mm M43 | 123gr steel core FMJ bullet | 1607 | 47 | 16.3in | damage lowered by 15 | 7.62x39mm M67 | 123gr steel core FMJ bullet | 1607 | 47 | 16.3in | damage lowered by 9 | 5.45x39mm 7N10 | 56gr FMJ bullet | 1402 | 37 | 16.3in | damage increased by 3 | 5.45x39mm 7N22 | 57gr steel core FMJ bullet | 1461 | 38 | 16.3in | | .223 Remington | 36gr JHP bullet | 1524 | 39 | 20in |Uses 5.56 NATO barrel baseline; damage increased by 5 | +5.56x45mm M855A1 | 62gr copper core FMJBT bullet | 1524 | 43 | 20in | | .308 Winchester | 168gr hollow point bullet | 3570 | 60 | 24in | | 7.62 NATO M80 | 147gr FMJ bullet | 3304 | 57 | 24in | | 7.62 NATO M62 | 147gr FMJ bullet | 3304 | 57 | 24in | Belt with 1/5 tracer rounds | .270 Winchester | 130gr soft point bullet | 3663 | 61 | 24in | | .30-06 Springfield | 165gr soft point bullet | 3894 | 62 | 24in | damage increased by 4 | -.30-06 M2 | 165gr FMJ bullet | 3894 | 62 | 24in | damage reduced by 10 | +.30-06 M2 | 165.7gr AP bullet | 3676 | 60 | 24in | damage reduced by 10 | .30-06 M14A1 | Incendiary ammunition | 3894 | 62 | 24in | damage reduced by 10 | .300 Winchester Magnum | 220gr JHP bullet | 5299 | 73 | 24in | damage increased by 5 | -7.62x54mmR | 150gr FMJ bullet | 2677 | 52 | 28in | | -.32 ACP | 60gr JHP bullet | 161 | 13 | 4in | | -7.62x25mm | 85gr JHP bullet | 544 | 23 | 4.7in | | +7.62x54mmR | 150gr FMJ bullet | 3629 | 60 | 28in | | .700 NX | 1000gr JSP bullet | 12100 | 110 | 28in | | .50 BMG Ball | 750gr FMJ-BT bullet | 17083 | 131 | 45in | | +.50 BMG M33 Ball | 706.7gr bullet | 18013 | 134 | 45in | | +.50 BMG M903 SLAP | 355gr tungsten AP bullet | 17083 | 131 | 45in | Can't be used with M107A1 | # LIQUIDS: Multi-charge items are weighed by the charge/use. If you have an item that contains 40 uses, it'll weigh 40x as much (when found in-game) as you entered in the JSON. Liquids are priced by the 250mL unit, but handled in containers. This can cause problems if you create something that comes in (say) a gallon jug (15 charges) and price it at the cost of a jug's worth: it'll be 15x as expensive as intended. diff --git a/lang/po/cataclysm-dda.pot b/lang/po/cataclysm-dda.pot index 7dc912770866f..5f15540e5de2f 100644 --- a/lang/po/cataclysm-dda.pot +++ b/lang/po/cataclysm-dda.pot @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: cataclysm-dda 0.C\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-12-09 03:47-0500\n" +"POT-Creation-Date: 2017-12-15 08:37-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -28343,19 +28343,6 @@ msgstr[1] "" msgid "A fire hardened building block used in masonry construction." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "unfired clay brick" -msgid_plural "unfired clay bricks" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for unfired clay brick -#: lang/json/GENERIC_from_json.py -msgid "" -"A soft, unfired clay brick. Firing it in a brick kiln would harden it up, " -"making it suitable for use in a construction project." -msgstr "" - #: lang/json/GENERIC_from_json.py msgid "tanbark" msgid_plural "tanbarks" @@ -92052,7 +92039,7 @@ msgstr "" #: src/bionics_ui.cpp msgid "" -"Examining ! to activate, " +"Examining ! to activate, " "- to remove, = to reassign, " "TAB to switch tabs." msgstr "" @@ -92116,9 +92103,9 @@ msgstr "" msgid "No passive bionics installed." msgstr "" -#: src/bionics_ui.cpp src/mutation_ui.cpp +#: src/bionics_ui.cpp #, c-format -msgid "%s; enter new letter." +msgid "%s; enter new letter. Space to clear. Esc to cancel." msgstr "" #: src/bionics_ui.cpp @@ -92584,19 +92571,19 @@ msgid "brown" msgstr "" #: src/color.cpp -msgid "lt gray" +msgid "light_gray" msgstr "" #: src/color.cpp -msgid "dk gray" +msgid "dark gray" msgstr "" #: src/color.cpp -msgid "lt red" +msgid "light_red" msgstr "" #: src/color.cpp -msgid "lt green" +msgid "light_green" msgstr "" #: src/color.cpp src/item.cpp @@ -92608,7 +92595,7 @@ msgid "green" msgstr "" #: src/color.cpp -msgid "lt blue" +msgid "light_blue" msgstr "" #: src/color.cpp src/item.cpp @@ -92624,7 +92611,7 @@ msgid "cyan" msgstr "" #: src/color.cpp -msgid "lt cyan" +msgid "light_cyan" msgstr "" #: src/color.cpp @@ -99332,13 +99319,12 @@ msgid "Lighting: " msgstr "" #: src/game.cpp -#, c-format -msgid "Sign: %s" +msgid "???" msgstr "" #: src/game.cpp #, c-format -msgid "Sign: %s..." +msgid "Sign: %s" msgstr "" #: src/game.cpp @@ -100730,7 +100716,8 @@ msgstr "" #: src/game_inventory.cpp #, c-format msgid "" -"Item hotkeys assigned: %d/%d" +"Item hotkeys assigned: %d/%d" msgstr "" #: src/game_inventory.cpp @@ -100937,7 +100924,7 @@ msgid "You don't have any guns to modify." msgstr "" #: src/game_inventory.cpp -msgid "?" +msgid "?" msgstr "" #: src/game_inventory.cpp @@ -102152,7 +102139,7 @@ msgstr "" #: src/help.cpp msgid "" -"( Handguns\n" +"( Handguns\n" "Handguns are small weapons held in one or both hands. They are much more " "difficult to aim and control than larger firearms, and this is reflected in " "their poor accuracy. However, their small size makes them appropriate for " @@ -102242,7 +102229,7 @@ msgstr "" #: src/help.cpp msgid "" -"( Machine Guns\n" +"( Machine Guns\n" "Machine guns are one of the most powerful firearms available. They are even " "larger than assault rifles, and make poor melee weapons; however, they are " "capable of holding 100 or more rounds of highly-damaging ammunition. They " @@ -103370,6 +103357,10 @@ msgstr "" msgid "You tear the curtains and curtain rod off the windowframe." msgstr "" +#: src/iexamine.cpp +msgid "You're illiterate, and can't read the message on the sign." +msgstr "" + #: src/iexamine.cpp msgid "Nothing legible on the sign." msgstr "" @@ -103640,6 +103631,10 @@ msgstr "" msgid "Anatomies" msgstr "" +#: src/init.cpp +msgid "Tileset" +msgstr "" + #: src/init.cpp msgid "Verifying" msgstr "" @@ -112445,6 +112440,10 @@ msgstr "" msgid " dodges the beam!" msgstr "" +#: src/monattack.cpp +msgid "Your armor protects you from the radiation!" +msgstr "" + #: src/monattack.cpp msgid "You get pins and needles all over." msgstr "" @@ -114257,7 +114256,7 @@ msgstr "" #: src/mutation.cpp msgid "" -"Examining ! to activate, " +"Examining ! to activate, " "= to reassign." msgstr "" @@ -114418,6 +114417,11 @@ msgstr "" msgid " - Active" msgstr "" +#: src/mutation_ui.cpp +#, c-format +msgid "%s; enter new letter." +msgstr "" + #: src/mutation_ui.cpp #, c-format msgid "" @@ -122814,35 +122818,35 @@ msgid "New label:" msgstr "" #: src/veh_interact.cpp -msgid "disabled" +msgid "disabled" msgstr "" #: src/veh_interact.cpp -msgid "lack" +msgid "lack" msgstr "" #: src/veh_interact.cpp -msgid "unbalanced" +msgid "unbalanced" msgstr "" #: src/veh_interact.cpp -msgid "no steering" +msgid "no steering" msgstr "" #: src/veh_interact.cpp -msgid "broken steering" +msgid "broken steering" msgstr "" #: src/veh_interact.cpp -msgid "poor steering" +msgid "poor steering" msgstr "" #: src/veh_interact.cpp -msgid "enough" +msgid "enough" msgstr "" #: src/veh_interact.cpp -msgid "leaks" +msgid "leaks" msgstr "" #: src/veh_interact.cpp @@ -122866,23 +122870,25 @@ msgstr "" #: src/veh_interact.cpp #, c-format -msgid "Safe/Top Speed: %3d/%3d %s" +msgid "" +"Safe/Top Speed: %3d/%3d " +"%s" msgstr "" #. ~ /t means per turn #: src/veh_interact.cpp #, c-format -msgid "Acceleration: %3d %s/t" +msgid "Acceleration: %3d %s/t" msgstr "" #: src/veh_interact.cpp #, c-format -msgid "Mass: %5.0f %s" +msgid "Mass: %5.0f %s" msgstr "" #: src/veh_interact.cpp #, c-format -msgid "Cargo Volume: %s/%s %s" +msgid "Cargo Volume: %s/%s %s" msgstr "" #: src/veh_interact.cpp @@ -122903,22 +122909,22 @@ msgstr "" #: src/veh_interact.cpp #, c-format -msgid "K aerodynamics: %3d%%" +msgid "K aerodynamics: %3d%%" msgstr "" #: src/veh_interact.cpp #, c-format -msgid "K friction: %3d%%" +msgid "K friction: %3d%%" msgstr "" #: src/veh_interact.cpp #, c-format -msgid "K mass: %3d%%" +msgid "K mass: %3d%%" msgstr "" #: src/veh_interact.cpp #, c-format -msgid "Offroad: %3d%%" +msgid "Offroad: %3d%%" msgstr "" #: src/veh_interact.cpp @@ -123035,12 +123041,12 @@ msgstr "" #: src/veh_interact.cpp #, c-format -msgid "Charge: %s" +msgid "Charge: %s" msgstr "" #: src/veh_interact.cpp #, c-format -msgid "Power: %d" +msgid "Power: %d" msgstr "" #: src/veh_interact.cpp diff --git a/lang/po/de.po b/lang/po/de.po index 0a7421385e92f..0f340470b3be2 100644 --- a/lang/po/de.po +++ b/lang/po/de.po @@ -18,8 +18,8 @@ msgid "" msgstr "" "Project-Id-Version: Cataclysm-DDA\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-12-02 03:01-0500\n" -"PO-Revision-Date: 2017-12-02 13:06+0000\n" +"POT-Creation-Date: 2017-12-09 03:47-0500\n" +"PO-Revision-Date: 2017-12-10 12:00+0000\n" "Last-Translator: Vlasov Vitaly \n" "Language-Team: German (http://www.transifex.com/cataclysm-dda-translators/cataclysm-dda/language/de/)\n" "MIME-Version: 1.0\n" @@ -57397,6 +57397,35 @@ msgid "" "cartridges." msgstr "" +#: lang/json/gunmod_from_json.py +msgid "auto-fire mechanism" +msgid_plural "auto-fire mechanisms" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gunmod_from_json.py +msgid "" +"A simple mechanism that converts a pistol to a selective fire weapon with a " +"burst size of three rounds. However it reduces accuracy and increases " +"noise." +msgstr "" + +#: lang/json/gunmod_from_json.py +msgid "mechanism" +msgstr "Mechanismus" + +#: lang/json/gunmod_from_json.py +msgid "handmade auto-fire mechanism" +msgid_plural "handmade auto-fire mechanisms" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gunmod_from_json.py +msgid "" +"Mechanism that allows your CW-24 rifle to fire in fully automatic mode. It " +"is handmade." +msgstr "" + #: lang/json/gunmod_from_json.py msgid "arrow rest" msgid_plural "arrow rests" @@ -57709,23 +57738,6 @@ msgid "" " Leadworks magazines. Guaranteed to void your warranty." msgstr "" -#: lang/json/gunmod_from_json.py -msgid "auto-fire mechanism" -msgid_plural "auto-fire mechanisms" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gunmod_from_json.py -msgid "" -"A simple mechanism that converts a pistol to a selective fire weapon with a " -"burst size of three rounds. However it reduces accuracy and increases " -"noise." -msgstr "" - -#: lang/json/gunmod_from_json.py -msgid "mechanism" -msgstr "Mechanismus" - #: lang/json/gunmod_from_json.py msgid "rapid blowback" msgid_plural "rapid blowbacks" @@ -58333,18 +58345,6 @@ msgid "" " accuracy and damage." msgstr "" -#: lang/json/gunmod_from_json.py -msgid "handmade auto-fire mechanism" -msgid_plural "handmade auto-fire mechanisms" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gunmod_from_json.py -msgid "" -"Mechanism that allows your CW-24 rifle to fire in fully automatic mode. It " -"is handmade." -msgstr "" - #: lang/json/gunmod_from_json.py msgid "5.45 caliber conversion kit" msgid_plural "5.45 caliber conversion kits" @@ -74139,10 +74139,10 @@ msgstr "Drohnenführer" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You had a job programming machines like automatic street cleaners, newsbots " -"and pizza delivery drones. Now the all the drones carry guns instead of " -"pizza." -msgstr "Du hattest den Beruf, Maschinen wie automatische Straßenkehrer, Nachrichtenroboter und Pizzaauslieferungsdrohnen zu programmieren. Nun tragen all die Drohnen Schusswaffen statt Pizzen." +"You had a job programming machines such as automatic street cleaners, " +"newsbots and pizza delivery drones. Now all the drones carry guns instead " +"of pizza." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -74153,10 +74153,10 @@ msgstr "Drohnenführerin" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You had a job programming machines like automatic street cleaners, newsbots " -"and pizza delivery drones. Now the all the drones carry guns instead of " -"pizza." -msgstr "Du hattest den Beruf, Maschinen wie automatische Straßenkehrer, Nachrichtenroboter und Pizzaauslieferungsdrohnen zu programmieren. Nun tragen all die Drohnen Schusswaffen statt Pizzen." +"You had a job programming machines such as automatic street cleaners, " +"newsbots and pizza delivery drones. Now all the drones carry guns instead " +"of pizza." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -102264,8 +102264,8 @@ msgstr "F: Mir ist kalt und ich kann nachts nicht schlafen!\nA: Besorg dir ein p #: src/help.cpp msgid "" "Q: I have a question that's not addressed here. How can I get an answer?\n" -"A: Ask the helpful people on the forum at smf.cataclysmdda.com or at the irc channel #CataclysmDDA on freenode." -msgstr "F: Ich habe eine Frage, die hier nicht beantwortet wurde. Wie finde ich eine Antwort?\nA: Frage die hilfsbereiten Leute im Forum auf smf.cataclysmdda.com oder im IRC-Kanal »#CataclysmDDA« auf FreeNode." +"A: Ask the helpful people on the forum at discourse.cataclysmdda.org or at the irc channel #CataclysmDDA on freenode." +msgstr "" #: src/help.cpp msgid " HELP " @@ -108144,11 +108144,6 @@ msgstr "" msgid "The %1$s is too big to put in your %2$s." msgstr "" -#: src/iuse.cpp -#, c-format -msgid "Error serializing monster: %s" -msgstr "" - #: src/iuse.cpp #, c-format msgid "%s holding %s" @@ -121259,12 +121254,6 @@ msgstr "Dein %s wird von der Versagerpatrone beschädigt." msgid "'s %s is damaged by the misfired round!" msgstr "s %s wird von der Versagerpatrone beschädigt." -#: src/ranged.cpp -msgid "" -"You'll need to aim at more distant targets to further improve your " -"marksmanship." -msgstr "" - #: src/ranged.cpp msgid "Recoil" msgstr "Rückst." diff --git a/lang/po/es_AR.po b/lang/po/es_AR.po index 7bcbcad366164..807c62097d2ea 100644 --- a/lang/po/es_AR.po +++ b/lang/po/es_AR.po @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: Cataclysm-DDA\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-12-02 03:01-0500\n" -"PO-Revision-Date: 2017-12-03 15:51+0000\n" +"POT-Creation-Date: 2017-12-09 03:47-0500\n" +"PO-Revision-Date: 2017-12-10 14:51+0000\n" "Last-Translator: Noctivagante \n" "Language-Team: Spanish (Argentina) (http://www.transifex.com/cataclysm-dda-translators/cataclysm-dda/language/es_AR/)\n" "MIME-Version: 1.0\n" @@ -57385,6 +57385,35 @@ msgid "" "cartridges." msgstr "El Taurus Raging Judge Magnum es un revólver de 5 disparos para la .454. Casull. Puede disparar cartuchos .410 y .45 Long Colt." +#: lang/json/gunmod_from_json.py +msgid "auto-fire mechanism" +msgid_plural "auto-fire mechanisms" +msgstr[0] "mecanismo de auto-disparo" +msgstr[1] "mecanismos de auto-disparo" + +#: lang/json/gunmod_from_json.py +msgid "" +"A simple mechanism that converts a pistol to a selective fire weapon with a " +"burst size of three rounds. However it reduces accuracy and increases " +"noise." +msgstr "Es un simple mecanismo que convierte la pistola en un arma de disparo selectivo, con un tamaño de ráfaga de tres disparos. Sin embargo, reduce la precisión e incrementa el ruido." + +#: lang/json/gunmod_from_json.py +msgid "mechanism" +msgstr "mecanismo" + +#: lang/json/gunmod_from_json.py +msgid "handmade auto-fire mechanism" +msgid_plural "handmade auto-fire mechanisms" +msgstr[0] "mecanismo de auto-disparo hecho a mano" +msgstr[1] "mecanismos de auto-disparo hechos a mano" + +#: lang/json/gunmod_from_json.py +msgid "" +"Mechanism that allows your CW-24 rifle to fire in fully automatic mode. It " +"is handmade." +msgstr "Es un mecanismo que le permite al rifle CW-24 disparar en modo completamente automático. Está hecho a mano." + #: lang/json/gunmod_from_json.py msgid "arrow rest" msgid_plural "arrow rests" @@ -57697,23 +57726,6 @@ msgid "" " Leadworks magazines. Guaranteed to void your warranty." msgstr "Es un adaptador trucho para convertir un arma de fuego de manera permanente para que funcione con los cargadores de la marca Leadworks. Se garantiza la nulidad de la garantía." -#: lang/json/gunmod_from_json.py -msgid "auto-fire mechanism" -msgid_plural "auto-fire mechanisms" -msgstr[0] "mecanismo de auto-disparo" -msgstr[1] "mecanismos de auto-disparo" - -#: lang/json/gunmod_from_json.py -msgid "" -"A simple mechanism that converts a pistol to a selective fire weapon with a " -"burst size of three rounds. However it reduces accuracy and increases " -"noise." -msgstr "Es un simple mecanismo que convierte la pistola en un arma de disparo selectivo, con un tamaño de ráfaga de tres disparos. Sin embargo, reduce la precisión e incrementa el ruido." - -#: lang/json/gunmod_from_json.py -msgid "mechanism" -msgstr "mecanismo" - #: lang/json/gunmod_from_json.py msgid "rapid blowback" msgid_plural "rapid blowbacks" @@ -58321,18 +58333,6 @@ msgid "" " accuracy and damage." msgstr "Este es un equipo de conversión completa, diseñado para convertir un rifle en un mortal rifle de francotirador. Quita la posibilidad de disparo automático pero incrementa la precisión y el daño." -#: lang/json/gunmod_from_json.py -msgid "handmade auto-fire mechanism" -msgid_plural "handmade auto-fire mechanisms" -msgstr[0] "mecanismo de auto-disparo hecho a mano" -msgstr[1] "mecanismos de auto-disparo hechos a mano" - -#: lang/json/gunmod_from_json.py -msgid "" -"Mechanism that allows your CW-24 rifle to fire in fully automatic mode. It " -"is handmade." -msgstr "Es un mecanismo que le permite al rifle CW-24 disparar en modo completamente automático. Está hecho a mano." - #: lang/json/gunmod_from_json.py msgid "5.45 caliber conversion kit" msgid_plural "5.45 caliber conversion kits" @@ -74127,10 +74127,10 @@ msgstr "Operador de Drone" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You had a job programming machines like automatic street cleaners, newsbots " -"and pizza delivery drones. Now the all the drones carry guns instead of " -"pizza." -msgstr "Trabajabas programando máquinas para que limpiaran automáticamente las calles, robots canillitas y drones de delivery de pizza. Ahora todos los drones llevan armas en lugar de pizza." +"You had a job programming machines such as automatic street cleaners, " +"newsbots and pizza delivery drones. Now all the drones carry guns instead " +"of pizza." +msgstr "Trabajabas programando máquinas automáticas para limpiar las calles, robots canillitas y drones de delivery de pizza. Ahora todos los drones llevan armas en lugar de pizza." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -74141,10 +74141,10 @@ msgstr "Operadora de Drone" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You had a job programming machines like automatic street cleaners, newsbots " -"and pizza delivery drones. Now the all the drones carry guns instead of " -"pizza." -msgstr "Trabajabas programando máquinas para que limpiaran automáticamente las calles, robots canillitas y drones de delivery de pizza. Ahora todos los drones llevan armas en lugar de pizza." +"You had a job programming machines such as automatic street cleaners, " +"newsbots and pizza delivery drones. Now all the drones carry guns instead " +"of pizza." +msgstr "Trabajabas programando máquinas automáticas para limpiar las calles, robots canillitas y drones de delivery de pizza. Ahora todos los drones llevan armas en lugar de pizza." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -102252,8 +102252,8 @@ msgstr "P: ¡Tengo frío y no puedo dormir a la noche!\nR: Juntá un poco de rop #: src/help.cpp msgid "" "Q: I have a question that's not addressed here. How can I get an answer?\n" -"A: Ask the helpful people on the forum at smf.cataclysmdda.com or at the irc channel #CataclysmDDA on freenode." -msgstr "P: Tengo una pregunta que acá no está. ¿Dónde me la pueden responder?\nR: Preguntale a alguna de las personas serviciales del foro, en smf.cataclysmdda.com o en el canal de irc #CataclysmDDA en la red freenode." +"A: Ask the helpful people on the forum at discourse.cataclysmdda.org or at the irc channel #CataclysmDDA on freenode." +msgstr "P: Tengo una pregunta que acá no está. ¿Dónde me la pueden responder?\nR: Preguntale a alguna de las personas serviciales del foro, en discourse.cataclysmdda.org o en el canal de irc #CataclysmDDA en la red freenode." #: src/help.cpp msgid " HELP " @@ -108132,11 +108132,6 @@ msgstr "No podés usar un %s ahí." msgid "The %1$s is too big to put in your %2$s." msgstr "El %1$s es muy grande para ponerlo en el %2$s." -#: src/iuse.cpp -#, c-format -msgid "Error serializing monster: %s" -msgstr "Error serializando monstruo: %s" - #: src/iuse.cpp #, c-format msgid "%s holding %s" @@ -121247,12 +121242,6 @@ msgstr "¡Tu %s queda dañado por la bala que falló!" msgid "'s %s is damaged by the misfired round!" msgstr "¡El %s de queda dañado por la bala que falló!" -#: src/ranged.cpp -msgid "" -"You'll need to aim at more distant targets to further improve your " -"marksmanship." -msgstr "Necesitás apuntarle a objetivos más alejados para mejorar tu puntería." - #: src/ranged.cpp msgid "Recoil" msgstr "Retroceso" diff --git a/lang/po/es_ES.po b/lang/po/es_ES.po index 8ede9439eda36..5a6a00c006329 100644 --- a/lang/po/es_ES.po +++ b/lang/po/es_ES.po @@ -19,8 +19,8 @@ msgid "" msgstr "" "Project-Id-Version: Cataclysm-DDA\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-12-02 03:01-0500\n" -"PO-Revision-Date: 2017-12-02 13:06+0000\n" +"POT-Creation-Date: 2017-12-09 03:47-0500\n" +"PO-Revision-Date: 2017-12-10 12:00+0000\n" "Last-Translator: Vlasov Vitaly \n" "Language-Team: Spanish (Spain) (http://www.transifex.com/cataclysm-dda-translators/cataclysm-dda/language/es_ES/)\n" "MIME-Version: 1.0\n" @@ -57398,6 +57398,35 @@ msgid "" "cartridges." msgstr "" +#: lang/json/gunmod_from_json.py +msgid "auto-fire mechanism" +msgid_plural "auto-fire mechanisms" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gunmod_from_json.py +msgid "" +"A simple mechanism that converts a pistol to a selective fire weapon with a " +"burst size of three rounds. However it reduces accuracy and increases " +"noise." +msgstr "Un mecanismo simple que convierte una pistola en un arma de fuego selectiva con un tamaño de ráfaga de tres balas. Sin embargo esto reduce la precisión y aumenta el ruido." + +#: lang/json/gunmod_from_json.py +msgid "mechanism" +msgstr "mecanismo" + +#: lang/json/gunmod_from_json.py +msgid "handmade auto-fire mechanism" +msgid_plural "handmade auto-fire mechanisms" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gunmod_from_json.py +msgid "" +"Mechanism that allows your CW-24 rifle to fire in fully automatic mode. It " +"is handmade." +msgstr "Es un mecanismo que le permite al rifle CW-24 disparar en modo completamente automático. Está hecho a mano." + #: lang/json/gunmod_from_json.py msgid "arrow rest" msgid_plural "arrow rests" @@ -57710,23 +57739,6 @@ msgid "" " Leadworks magazines. Guaranteed to void your warranty." msgstr "Es un adaptador trucho para convertir un arma de fuego de manera permanente para que funcione con los cargadores de la marca Leadworks. Se garantiza la nulidad de la garantía." -#: lang/json/gunmod_from_json.py -msgid "auto-fire mechanism" -msgid_plural "auto-fire mechanisms" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gunmod_from_json.py -msgid "" -"A simple mechanism that converts a pistol to a selective fire weapon with a " -"burst size of three rounds. However it reduces accuracy and increases " -"noise." -msgstr "Un mecanismo simple que convierte una pistola en un arma de fuego selectiva con un tamaño de ráfaga de tres balas. Sin embargo esto reduce la precisión y aumenta el ruido." - -#: lang/json/gunmod_from_json.py -msgid "mechanism" -msgstr "mecanismo" - #: lang/json/gunmod_from_json.py msgid "rapid blowback" msgid_plural "rapid blowbacks" @@ -58334,18 +58346,6 @@ msgid "" " accuracy and damage." msgstr "" -#: lang/json/gunmod_from_json.py -msgid "handmade auto-fire mechanism" -msgid_plural "handmade auto-fire mechanisms" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gunmod_from_json.py -msgid "" -"Mechanism that allows your CW-24 rifle to fire in fully automatic mode. It " -"is handmade." -msgstr "Es un mecanismo que le permite al rifle CW-24 disparar en modo completamente automático. Está hecho a mano." - #: lang/json/gunmod_from_json.py msgid "5.45 caliber conversion kit" msgid_plural "5.45 caliber conversion kits" @@ -74140,10 +74140,10 @@ msgstr "Operador de Drone" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You had a job programming machines like automatic street cleaners, newsbots " -"and pizza delivery drones. Now the all the drones carry guns instead of " -"pizza." -msgstr "Trabajabas programando máquinas para que limpiaran automáticamente las calles, robots canillitas y drones de delivery de pizza. Ahora todos los drones llevan armas en lugar de pizza." +"You had a job programming machines such as automatic street cleaners, " +"newsbots and pizza delivery drones. Now all the drones carry guns instead " +"of pizza." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -74154,10 +74154,10 @@ msgstr "Operadora de Drone" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You had a job programming machines like automatic street cleaners, newsbots " -"and pizza delivery drones. Now the all the drones carry guns instead of " -"pizza." -msgstr "Trabajabas programando máquinas para que limpiaran automáticamente las calles, robots canillitas y drones de delivery de pizza. Ahora todos los drones llevan armas en lugar de pizza." +"You had a job programming machines such as automatic street cleaners, " +"newsbots and pizza delivery drones. Now all the drones carry guns instead " +"of pizza." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -102265,8 +102265,8 @@ msgstr "P: ¡Tengo frío y no puedo dormir a la noche!\nR: Juntá un poco de rop #: src/help.cpp msgid "" "Q: I have a question that's not addressed here. How can I get an answer?\n" -"A: Ask the helpful people on the forum at smf.cataclysmdda.com or at the irc channel #CataclysmDDA on freenode." -msgstr "P: Tengo una pregunta que aquí no está. ¿Dónde me la pueden responder?\nR: Preguntale a alguna de las personas serviciales del foro, en smf.cataclysmdda.com o en el canal de irc #CataclysmDDA en la red freenode." +"A: Ask the helpful people on the forum at discourse.cataclysmdda.org or at the irc channel #CataclysmDDA on freenode." +msgstr "" #: src/help.cpp msgid " HELP " @@ -108145,11 +108145,6 @@ msgstr "No puedes usar un %s ahí." msgid "The %1$s is too big to put in your %2$s." msgstr "El %1$s es muy grande para ponerlo en el %2$s." -#: src/iuse.cpp -#, c-format -msgid "Error serializing monster: %s" -msgstr "Error serializando monstruo: %s" - #: src/iuse.cpp #, c-format msgid "%s holding %s" @@ -121260,12 +121255,6 @@ msgstr "¡Tu %s queda dañado por la bala que falló!" msgid "'s %s is damaged by the misfired round!" msgstr "¡El %s de queda dañado por la bala que falló!" -#: src/ranged.cpp -msgid "" -"You'll need to aim at more distant targets to further improve your " -"marksmanship." -msgstr "Tendrás que apuntar a objetivos más lejanos para mejorar tu puntería." - #: src/ranged.cpp msgid "Recoil" msgstr "Retroceso" diff --git a/lang/po/fr.po b/lang/po/fr.po index a865023c26ddc..503e904dc8c9c 100644 --- a/lang/po/fr.po +++ b/lang/po/fr.po @@ -13,8 +13,8 @@ msgid "" msgstr "" "Project-Id-Version: Cataclysm-DDA\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-12-02 03:01-0500\n" -"PO-Revision-Date: 2017-12-02 13:06+0000\n" +"POT-Creation-Date: 2017-12-09 03:47-0500\n" +"PO-Revision-Date: 2017-12-10 12:00+0000\n" "Last-Translator: Vlasov Vitaly \n" "Language-Team: French (http://www.transifex.com/cataclysm-dda-translators/cataclysm-dda/language/fr/)\n" "MIME-Version: 1.0\n" @@ -57392,6 +57392,35 @@ msgid "" "cartridges." msgstr "" +#: lang/json/gunmod_from_json.py +msgid "auto-fire mechanism" +msgid_plural "auto-fire mechanisms" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gunmod_from_json.py +msgid "" +"A simple mechanism that converts a pistol to a selective fire weapon with a " +"burst size of three rounds. However it reduces accuracy and increases " +"noise." +msgstr "" + +#: lang/json/gunmod_from_json.py +msgid "mechanism" +msgstr "mécanisme" + +#: lang/json/gunmod_from_json.py +msgid "handmade auto-fire mechanism" +msgid_plural "handmade auto-fire mechanisms" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gunmod_from_json.py +msgid "" +"Mechanism that allows your CW-24 rifle to fire in fully automatic mode. It " +"is handmade." +msgstr "" + #: lang/json/gunmod_from_json.py msgid "arrow rest" msgid_plural "arrow rests" @@ -57704,23 +57733,6 @@ msgid "" " Leadworks magazines. Guaranteed to void your warranty." msgstr "" -#: lang/json/gunmod_from_json.py -msgid "auto-fire mechanism" -msgid_plural "auto-fire mechanisms" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gunmod_from_json.py -msgid "" -"A simple mechanism that converts a pistol to a selective fire weapon with a " -"burst size of three rounds. However it reduces accuracy and increases " -"noise." -msgstr "" - -#: lang/json/gunmod_from_json.py -msgid "mechanism" -msgstr "mécanisme" - #: lang/json/gunmod_from_json.py msgid "rapid blowback" msgid_plural "rapid blowbacks" @@ -58328,18 +58340,6 @@ msgid "" " accuracy and damage." msgstr "Ceci est un kit complet de conversion, conçu pour convertir une carabine en un fusil sniper mortel. Il retire toutes capacités de tir automatique mais augmente la précision et les dommages." -#: lang/json/gunmod_from_json.py -msgid "handmade auto-fire mechanism" -msgid_plural "handmade auto-fire mechanisms" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gunmod_from_json.py -msgid "" -"Mechanism that allows your CW-24 rifle to fire in fully automatic mode. It " -"is handmade." -msgstr "" - #: lang/json/gunmod_from_json.py msgid "5.45 caliber conversion kit" msgid_plural "5.45 caliber conversion kits" @@ -74134,10 +74134,10 @@ msgstr "Opérateur de Drones" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You had a job programming machines like automatic street cleaners, newsbots " -"and pizza delivery drones. Now the all the drones carry guns instead of " -"pizza." -msgstr "Vous programmiez des machines telles que les robots de nettoyage, de distribution de journaux ou de livraison de pizza. Désormais ces drones sont tous équipés avec des armes à feu." +"You had a job programming machines such as automatic street cleaners, " +"newsbots and pizza delivery drones. Now all the drones carry guns instead " +"of pizza." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -74148,10 +74148,10 @@ msgstr "Opératrice de Drones" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You had a job programming machines like automatic street cleaners, newsbots " -"and pizza delivery drones. Now the all the drones carry guns instead of " -"pizza." -msgstr "Vous programmiez des machines telles que les robots de nettoyage, de distribution de journaux ou de livraison de pizza. Désormais ces drones sont tous équipés avec des armes à feu." +"You had a job programming machines such as automatic street cleaners, " +"newsbots and pizza delivery drones. Now all the drones carry guns instead " +"of pizza." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -102259,8 +102259,8 @@ msgstr "Q: J'ai froid et ne peux pas dormir la nuit!\nR: Récupérez des vêteme #: src/help.cpp msgid "" "Q: I have a question that's not addressed here. How can I get an answer?\n" -"A: Ask the helpful people on the forum at smf.cataclysmdda.com or at the irc channel #CataclysmDDA on freenode." -msgstr "Q: J'ai une question qui n'apparaît pas ici; comment puis-je obtenir une réponse?\nR: Demandez aux aimables membres du forum smf.cataclysmdda.com ou sur le canal irc #CataclysmDDA sur freenode." +"A: Ask the helpful people on the forum at discourse.cataclysmdda.org or at the irc channel #CataclysmDDA on freenode." +msgstr "" #: src/help.cpp msgid " HELP " @@ -108139,11 +108139,6 @@ msgstr "" msgid "The %1$s is too big to put in your %2$s." msgstr "" -#: src/iuse.cpp -#, c-format -msgid "Error serializing monster: %s" -msgstr "" - #: src/iuse.cpp #, c-format msgid "%s holding %s" @@ -121254,12 +121249,6 @@ msgstr "" msgid "'s %s is damaged by the misfired round!" msgstr "" -#: src/ranged.cpp -msgid "" -"You'll need to aim at more distant targets to further improve your " -"marksmanship." -msgstr "" - #: src/ranged.cpp msgid "Recoil" msgstr "Recul" diff --git a/lang/po/it_IT.po b/lang/po/it_IT.po index 15ff0dca7dfed..678d7eec672e1 100644 --- a/lang/po/it_IT.po +++ b/lang/po/it_IT.po @@ -15,8 +15,8 @@ msgid "" msgstr "" "Project-Id-Version: Cataclysm-DDA\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-12-02 03:01-0500\n" -"PO-Revision-Date: 2017-12-02 13:06+0000\n" +"POT-Creation-Date: 2017-12-09 03:47-0500\n" +"PO-Revision-Date: 2017-12-10 12:00+0000\n" "Last-Translator: Vlasov Vitaly \n" "Language-Team: Italian (Italy) (http://www.transifex.com/cataclysm-dda-translators/cataclysm-dda/language/it_IT/)\n" "MIME-Version: 1.0\n" @@ -57394,6 +57394,35 @@ msgid "" "cartridges." msgstr "" +#: lang/json/gunmod_from_json.py +msgid "auto-fire mechanism" +msgid_plural "auto-fire mechanisms" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gunmod_from_json.py +msgid "" +"A simple mechanism that converts a pistol to a selective fire weapon with a " +"burst size of three rounds. However it reduces accuracy and increases " +"noise." +msgstr "" + +#: lang/json/gunmod_from_json.py +msgid "mechanism" +msgstr "" + +#: lang/json/gunmod_from_json.py +msgid "handmade auto-fire mechanism" +msgid_plural "handmade auto-fire mechanisms" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gunmod_from_json.py +msgid "" +"Mechanism that allows your CW-24 rifle to fire in fully automatic mode. It " +"is handmade." +msgstr "" + #: lang/json/gunmod_from_json.py msgid "arrow rest" msgid_plural "arrow rests" @@ -57706,23 +57735,6 @@ msgid "" " Leadworks magazines. Guaranteed to void your warranty." msgstr "" -#: lang/json/gunmod_from_json.py -msgid "auto-fire mechanism" -msgid_plural "auto-fire mechanisms" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gunmod_from_json.py -msgid "" -"A simple mechanism that converts a pistol to a selective fire weapon with a " -"burst size of three rounds. However it reduces accuracy and increases " -"noise." -msgstr "" - -#: lang/json/gunmod_from_json.py -msgid "mechanism" -msgstr "" - #: lang/json/gunmod_from_json.py msgid "rapid blowback" msgid_plural "rapid blowbacks" @@ -58330,18 +58342,6 @@ msgid "" " accuracy and damage." msgstr "" -#: lang/json/gunmod_from_json.py -msgid "handmade auto-fire mechanism" -msgid_plural "handmade auto-fire mechanisms" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gunmod_from_json.py -msgid "" -"Mechanism that allows your CW-24 rifle to fire in fully automatic mode. It " -"is handmade." -msgstr "" - #: lang/json/gunmod_from_json.py msgid "5.45 caliber conversion kit" msgid_plural "5.45 caliber conversion kits" @@ -74136,9 +74136,9 @@ msgstr "Operatore droni" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You had a job programming machines like automatic street cleaners, newsbots " -"and pizza delivery drones. Now the all the drones carry guns instead of " -"pizza." +"You had a job programming machines such as automatic street cleaners, " +"newsbots and pizza delivery drones. Now all the drones carry guns instead " +"of pizza." msgstr "" #: lang/json/professions_from_json.py @@ -74150,9 +74150,9 @@ msgstr "Operatrice droni" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You had a job programming machines like automatic street cleaners, newsbots " -"and pizza delivery drones. Now the all the drones carry guns instead of " -"pizza." +"You had a job programming machines such as automatic street cleaners, " +"newsbots and pizza delivery drones. Now all the drones carry guns instead " +"of pizza." msgstr "" #: lang/json/professions_from_json.py @@ -102261,8 +102261,8 @@ msgstr "Q: Ho freddo e non riesco a dormire durante la notte!\nA: Prendi dei ves #: src/help.cpp msgid "" "Q: I have a question that's not addressed here. How can I get an answer?\n" -"A: Ask the helpful people on the forum at smf.cataclysmdda.com or at the irc channel #CataclysmDDA on freenode." -msgstr "Q: Ho una domanda che non c'è qui. Dove posso ottenere una risposta?\nA: Puoi chiedere aiuto al nostro forum (smf.cataclysmdda.com) oppure al canale IRC #CataclysmDDA su freenode." +"A: Ask the helpful people on the forum at discourse.cataclysmdda.org or at the irc channel #CataclysmDDA on freenode." +msgstr "" #: src/help.cpp msgid " HELP " @@ -108141,11 +108141,6 @@ msgstr "" msgid "The %1$s is too big to put in your %2$s." msgstr "" -#: src/iuse.cpp -#, c-format -msgid "Error serializing monster: %s" -msgstr "" - #: src/iuse.cpp #, c-format msgid "%s holding %s" @@ -121256,12 +121251,6 @@ msgstr "" msgid "'s %s is damaged by the misfired round!" msgstr "" -#: src/ranged.cpp -msgid "" -"You'll need to aim at more distant targets to further improve your " -"marksmanship." -msgstr "" - #: src/ranged.cpp msgid "Recoil" msgstr "Rinculo" diff --git a/lang/po/ja.po b/lang/po/ja.po index 6beefa6f7cd67..3511bc92147a9 100644 --- a/lang/po/ja.po +++ b/lang/po/ja.po @@ -23,8 +23,8 @@ msgid "" msgstr "" "Project-Id-Version: Cataclysm-DDA\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-12-02 03:01-0500\n" -"PO-Revision-Date: 2017-12-03 01:54+0000\n" +"POT-Creation-Date: 2017-12-09 03:47-0500\n" +"PO-Revision-Date: 2017-12-12 00:42+0000\n" "Last-Translator: Pigmentblue15\n" "Language-Team: Japanese (http://www.transifex.com/cataclysm-dda-translators/cataclysm-dda/language/ja/)\n" "MIME-Version: 1.0\n" @@ -8284,7 +8284,7 @@ msgstr "建設現場で被る硬質プラスチック製のヘルメットです #: lang/json/ARMOR_from_json.py msgid "hooded hard hat" msgid_plural "hooded hard hats" -msgstr[0] "安全ヘルメット(フード付)" +msgstr[0] "フード付安全ヘルメット" #. ~ Description for hooded hard hat #: lang/json/ARMOR_from_json.py @@ -8292,7 +8292,7 @@ msgid "" "A hard plastic hat worn in construction sites, with a cloth tucked in under " "it to serve as a makeshift hood. Makes it a bit more comfortable to wear, " "and better protects the neck from sun and rain." -msgstr "フードとして被れる布が裏に収納された、建設現場で着用するプラスチック製のヘルメットです。ある程度快適に着用でき、首筋を太陽や雨から保護します。" +msgstr "内側に簡易フードがついた、建設現場で着用するプラスチック製のヘルメットです。ある程度快適に着用でき、首筋を太陽や雨から保護します。" #: lang/json/ARMOR_from_json.py msgid "hunting cap" @@ -26233,7 +26233,7 @@ msgstr "受信した信号を送信する為の回路です。通信装置の製 #: lang/json/GENERIC_from_json.py msgid "signal receiver" msgid_plural "signal receivers" -msgstr[0] "信号受信器" +msgstr[0] "信号受信機" #. ~ Description for signal receiver #: lang/json/GENERIC_from_json.py @@ -54536,6 +54536,33 @@ msgid "" "cartridges." msgstr ".454カスール弾を使用する5連発リボルバーです。その名に恥じない絶大な制止力を発揮します。.410口径散弾と.45口径ロングコルト弾を装填できます。" +#: lang/json/gunmod_from_json.py +msgid "auto-fire mechanism" +msgid_plural "auto-fire mechanisms" +msgstr[0] "自動発射機構" + +#: lang/json/gunmod_from_json.py +msgid "" +"A simple mechanism that converts a pistol to a selective fire weapon with a " +"burst size of three rounds. However it reduces accuracy and increases " +"noise." +msgstr "ピストルに3連射可能な全自動発射機能を追加する単純な構造の部品です。命中精度が下がり、発射音が大きくなります。" + +#: lang/json/gunmod_from_json.py +msgid "mechanism" +msgstr "機構" + +#: lang/json/gunmod_from_json.py +msgid "handmade auto-fire mechanism" +msgid_plural "handmade auto-fire mechanisms" +msgstr[0] "手製自動発射機構" + +#: lang/json/gunmod_from_json.py +msgid "" +"Mechanism that allows your CW-24 rifle to fire in fully automatic mode. It " +"is handmade." +msgstr "CW-24に組み込めるフルオート機構です。手作りです。" + #: lang/json/gunmod_from_json.py msgid "arrow rest" msgid_plural "arrow rests" @@ -54826,22 +54853,6 @@ msgid "" " Leadworks magazines. Guaranteed to void your warranty." msgstr "銃器に不可逆的改造を加えて独自の鉛製弾倉を使用できるようにするための、密造された部品一式です。銃器が保証対象外になることは保証できます。" -#: lang/json/gunmod_from_json.py -msgid "auto-fire mechanism" -msgid_plural "auto-fire mechanisms" -msgstr[0] "自動発射機構" - -#: lang/json/gunmod_from_json.py -msgid "" -"A simple mechanism that converts a pistol to a selective fire weapon with a " -"burst size of three rounds. However it reduces accuracy and increases " -"noise." -msgstr "ピストルに3連射可能な全自動発射機能を追加する単純な構造の部品です。命中精度が下がり、発射音が大きくなります。" - -#: lang/json/gunmod_from_json.py -msgid "mechanism" -msgstr "機構" - #: lang/json/gunmod_from_json.py msgid "rapid blowback" msgid_plural "rapid blowbacks" @@ -55401,17 +55412,6 @@ msgid "" " accuracy and damage." msgstr "ライフルを必殺のスナイパーライフル仕様に改造する変換キットです。連射機構が排除され、精度と威力が増大します。" -#: lang/json/gunmod_from_json.py -msgid "handmade auto-fire mechanism" -msgid_plural "handmade auto-fire mechanisms" -msgstr[0] "手製自動発射機構" - -#: lang/json/gunmod_from_json.py -msgid "" -"Mechanism that allows your CW-24 rifle to fire in fully automatic mode. It " -"is handmade." -msgstr "CW-24に組み込めるフルオート機構です。手作りです。" - #: lang/json/gunmod_from_json.py msgid "5.45 caliber conversion kit" msgid_plural "5.45 caliber conversion kits" @@ -67252,7 +67252,7 @@ msgstr "精肉店" #: lang/json/overmap_terrain_from_json.py msgid "bike shop" -msgstr "バイク屋" +msgstr "自転車屋" #: lang/json/overmap_terrain_from_json.py msgid "pizza parlor" @@ -71196,9 +71196,9 @@ msgstr "無人ロボット技師" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You had a job programming machines like automatic street cleaners, newsbots " -"and pizza delivery drones. Now the all the drones carry guns instead of " -"pizza." +"You had a job programming machines such as automatic street cleaners, " +"newsbots and pizza delivery drones. Now all the drones carry guns instead " +"of pizza." msgstr "無人道路清掃機、ニュースボット、ピザ配達ドローンなどをプログラミングする仕事に就いていました。今、ドローンたちはピザの代わりに銃を抱えています。" #: lang/json/professions_from_json.py @@ -71210,9 +71210,9 @@ msgstr "無人ロボット技師" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You had a job programming machines like automatic street cleaners, newsbots " -"and pizza delivery drones. Now the all the drones carry guns instead of " -"pizza." +"You had a job programming machines such as automatic street cleaners, " +"newsbots and pizza delivery drones. Now all the drones carry guns instead " +"of pizza." msgstr "無人道路清掃機、ニュースボット、ピザ配達ドローンなどをプログラミングする仕事に就いていました。今、ドローンたちはピザの代わりに銃を抱えています。" #: lang/json/professions_from_json.py @@ -99290,8 +99290,8 @@ msgstr "Q: さ、寒くて、夜に眠れないよ!\nA: 衣類を集めて寝 #: src/help.cpp msgid "" "Q: I have a question that's not addressed here. How can I get an answer?\n" -"A: Ask the helpful people on the forum at smf.cataclysmdda.com or at the irc channel #CataclysmDDA on freenode." -msgstr "Q: この質問一覧では解決できない質問があります。どこで聞けばいいですか?\nA: smf.cataclysmdda.com にあるフォーラムや、ircの freenode ネットワーク内のチャンネル #CataclysmDDA にて親切な人に聞いてみましょう。" +"A: Ask the helpful people on the forum at discourse.cataclysmdda.org or at the irc channel #CataclysmDDA on freenode." +msgstr "Q: この質問一覧では解決できない質問があります。どこで聞けばいいですか?\nA: discourse.cataclysmdda.orgにあるフォーラムや、ircの freenode ネットワーク内のチャンネル #CataclysmDDA で親切な人に聞いてみましょう。" #: src/help.cpp msgid " HELP " @@ -105147,11 +105147,6 @@ msgstr "そこに%sは使えない。" msgid "The %1$s is too big to put in your %2$s." msgstr "%1$sは大きすぎて%2$sに入りません。" -#: src/iuse.cpp -#, c-format -msgid "Error serializing monster: %s" -msgstr "Error モンスターの固有番号付与に失敗: %s" - #: src/iuse.cpp #, c-format msgid "%s holding %s" @@ -118233,12 +118228,6 @@ msgstr "%sが不発弾を噛んで損傷しました!" msgid "'s %s is damaged by the misfired round!" msgstr "の%sが不発弾を噛んで損傷しました!" -#: src/ranged.cpp -msgid "" -"You'll need to aim at more distant targets to further improve your " -"marksmanship." -msgstr "射撃の腕を磨くには、より遠くの標的を狙う必要があります。" - #: src/ranged.cpp msgid "Recoil" msgstr "反動" diff --git a/lang/po/ko.po b/lang/po/ko.po index 155a91b6c6a4b..66ec913346b40 100644 --- a/lang/po/ko.po +++ b/lang/po/ko.po @@ -34,8 +34,8 @@ msgid "" msgstr "" "Project-Id-Version: Cataclysm-DDA\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-12-02 03:01-0500\n" -"PO-Revision-Date: 2017-12-07 14:55+0000\n" +"POT-Creation-Date: 2017-12-09 03:47-0500\n" +"PO-Revision-Date: 2017-12-11 05:07+0000\n" "Last-Translator: T itan \n" "Language-Team: Korean (http://www.transifex.com/cataclysm-dda-translators/cataclysm-dda/language/ko/)\n" "MIME-Version: 1.0\n" @@ -54547,6 +54547,33 @@ msgid "" "cartridges." msgstr ".454 Casull 탄환을 사용하는 5연발 리볼버. .410 산탄 탄환과 .45 Long Colt 탄환을 사용할 수 있습니다." +#: lang/json/gunmod_from_json.py +msgid "auto-fire mechanism" +msgid_plural "auto-fire mechanisms" +msgstr[0] "자동사격 개조부품" + +#: lang/json/gunmod_from_json.py +msgid "" +"A simple mechanism that converts a pistol to a selective fire weapon with a " +"burst size of three rounds. However it reduces accuracy and increases " +"noise." +msgstr "권총에 3연사 기능을 제공하는 간단한 기계 부품. 하지만 명중률이 감소하고 사격 소음이 커집니다." + +#: lang/json/gunmod_from_json.py +msgid "mechanism" +msgstr "내부구조" + +#: lang/json/gunmod_from_json.py +msgid "handmade auto-fire mechanism" +msgid_plural "handmade auto-fire mechanisms" +msgstr[0] "수제 자동사격 개조부품" + +#: lang/json/gunmod_from_json.py +msgid "" +"Mechanism that allows your CW-24 rifle to fire in fully automatic mode. It " +"is handmade." +msgstr "CW-24 소총에 완전 자동 사격이 가능하도록 하는 부품. 수제품 입니다." + #: lang/json/gunmod_from_json.py msgid "arrow rest" msgid_plural "arrow rests" @@ -54837,22 +54864,6 @@ msgid "" " Leadworks magazines. Guaranteed to void your warranty." msgstr "총기에 레드웍스 정품 탄창을 사용할 수 있도록 영구적으로 개조하는 비정품 어뎁터. 제품 보증이 무효화 됩니다." -#: lang/json/gunmod_from_json.py -msgid "auto-fire mechanism" -msgid_plural "auto-fire mechanisms" -msgstr[0] "자동사격 개조부품" - -#: lang/json/gunmod_from_json.py -msgid "" -"A simple mechanism that converts a pistol to a selective fire weapon with a " -"burst size of three rounds. However it reduces accuracy and increases " -"noise." -msgstr "권총에 3연사 기능을 제공하는 간단한 기계 부품. 하지만 명중률이 감소하고 사격 소음이 커집니다." - -#: lang/json/gunmod_from_json.py -msgid "mechanism" -msgstr "내부구조" - #: lang/json/gunmod_from_json.py msgid "rapid blowback" msgid_plural "rapid blowbacks" @@ -55412,17 +55423,6 @@ msgid "" " accuracy and damage." msgstr "소총을 치명적인 저격소총으로 바꿔주는 컨버전 장치. 자동 발사 기능을 완전히 없애지만 정확도와 위력 또한 증가시켜줍니다." -#: lang/json/gunmod_from_json.py -msgid "handmade auto-fire mechanism" -msgid_plural "handmade auto-fire mechanisms" -msgstr[0] "수제 자동사격 개조부품" - -#: lang/json/gunmod_from_json.py -msgid "" -"Mechanism that allows your CW-24 rifle to fire in fully automatic mode. It " -"is handmade." -msgstr "CW-24 소총에 완전 자동 사격이 가능하도록 하는 부품. 수제품 입니다." - #: lang/json/gunmod_from_json.py msgid "5.45 caliber conversion kit" msgid_plural "5.45 caliber conversion kits" @@ -71207,10 +71207,10 @@ msgstr "드론 조종사" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You had a job programming machines like automatic street cleaners, newsbots " -"and pizza delivery drones. Now the all the drones carry guns instead of " -"pizza." -msgstr "당신은 자동 거리미화기계, 뉴스로봇 그리고 피자 배달 드론같은 기계를 프로그래밍하는 일을 했었습니다. 이제 드론은 피자대신 총을 나르네요." +"You had a job programming machines such as automatic street cleaners, " +"newsbots and pizza delivery drones. Now all the drones carry guns instead " +"of pizza." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -71221,10 +71221,10 @@ msgstr "드론 조종사" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You had a job programming machines like automatic street cleaners, newsbots " -"and pizza delivery drones. Now the all the drones carry guns instead of " -"pizza." -msgstr "당신은 자동 거리 미화 기계, 뉴스로봇 그리고 피자 배달 드론같은 기계를 프로그래밍하는 일을 했었습니다. 이제 드론은 피자대신 총을 나르네요." +"You had a job programming machines such as automatic street cleaners, " +"newsbots and pizza delivery drones. Now all the drones carry guns instead " +"of pizza." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -99301,8 +99301,8 @@ msgstr "Q: 추워서 밤에 잠을 잘 수가 없어요!\nA: 옷가지를 모아 #: src/help.cpp msgid "" "Q: I have a question that's not addressed here. How can I get an answer?\n" -"A: Ask the helpful people on the forum at smf.cataclysmdda.com or at the irc channel #CataclysmDDA on freenode." -msgstr "Q: 여기에 나와있지 않은 것에 대해 질문하고 싶습니다. 어디서 답변을 받을 수 있을까요?\nA: smf.cataclysmdda.com 포럼이나 freenode의 irc 채널 #CataclysmDDA에서 물어보세요." +"A: Ask the helpful people on the forum at discourse.cataclysmdda.org or at the irc channel #CataclysmDDA on freenode." +msgstr "" #: src/help.cpp msgid " HELP " @@ -105158,11 +105158,6 @@ msgstr "" msgid "The %1$s is too big to put in your %2$s." msgstr "%1$s은(는) %2$s에 착용하기 너무 크다." -#: src/iuse.cpp -#, c-format -msgid "Error serializing monster: %s" -msgstr "" - #: src/iuse.cpp #, c-format msgid "%s holding %s" @@ -112487,11 +112482,11 @@ msgstr "방사능 증세 때문에 괴롭다..." #: src/npcmove.cpp msgid "" -msgstr "<허기>" +msgstr "" #: src/npcmove.cpp msgid "" -msgstr "<목마름>" +msgstr "" #: src/npcmove.cpp #, c-format @@ -118244,12 +118239,6 @@ msgstr "%s이(가) 불량 탄환에 손상되었다!" msgid "'s %s is damaged by the misfired round!" msgstr "의 %s이(가) 불량 탄환에 손상되었다!" -#: src/ranged.cpp -msgid "" -"You'll need to aim at more distant targets to further improve your " -"marksmanship." -msgstr "사격에 능숙해지려면 좀 더 먼 목표물을 조준해야 한다." - #: src/ranged.cpp msgid "Recoil" msgstr "반동" diff --git a/lang/po/pl.po b/lang/po/pl.po index fd6c534baf9bf..18a4f05cc853b 100644 --- a/lang/po/pl.po +++ b/lang/po/pl.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: Cataclysm-DDA\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-12-02 03:01-0500\n" -"PO-Revision-Date: 2017-12-07 18:54+0000\n" +"POT-Creation-Date: 2017-12-09 03:47-0500\n" +"PO-Revision-Date: 2017-12-11 20:07+0000\n" "Last-Translator: Aleksander Sienkiewicz \n" "Language-Team: Polish (http://www.transifex.com/cataclysm-dda-translators/cataclysm-dda/language/pl/)\n" "MIME-Version: 1.0\n" @@ -63121,6 +63121,39 @@ msgid "" "cartridges." msgstr "Taurus Raging Judge Magnum to 5-strzałowy rewolwer w kalibrze .454 Casull. Może też strzelać nabojami kalibru .410 i .45 Long Colt." +#: lang/json/gunmod_from_json.py +msgid "auto-fire mechanism" +msgid_plural "auto-fire mechanisms" +msgstr[0] "mechanizm ognia ciągłego" +msgstr[1] "mechanizm ognia ciągłego" +msgstr[2] "mechanizm ognia ciągłego" +msgstr[3] "mechanizm ognia ciągłego" + +#: lang/json/gunmod_from_json.py +msgid "" +"A simple mechanism that converts a pistol to a selective fire weapon with a " +"burst size of three rounds. However it reduces accuracy and increases " +"noise." +msgstr "Prosty mechanizm konwertujący pistolet w broń z wyborem trybu prowadzenia ognia z trzystrzałową serią. Niestety redukuje celność i zwiększa hałas." + +#: lang/json/gunmod_from_json.py +msgid "mechanism" +msgstr "mechanizm" + +#: lang/json/gunmod_from_json.py +msgid "handmade auto-fire mechanism" +msgid_plural "handmade auto-fire mechanisms" +msgstr[0] "ręcznej produkcji mechanizm automatycznego strzelania" +msgstr[1] "ręcznej produkcji mechanizm automatycznego strzelania" +msgstr[2] "ręcznej produkcji mechanizm automatycznego strzelania" +msgstr[3] "ręcznej produkcji mechanizm automatycznego strzelania" + +#: lang/json/gunmod_from_json.py +msgid "" +"Mechanism that allows your CW-24 rifle to fire in fully automatic mode. It " +"is handmade." +msgstr "Mechanizm pozwalający twojemu karabinowi CW-24 na strzelanie w trybie automatycznym. Został ręcznie wyprodukowany." + #: lang/json/gunmod_from_json.py msgid "arrow rest" msgid_plural "arrow rests" @@ -63477,25 +63510,6 @@ msgid "" " Leadworks magazines. Guaranteed to void your warranty." msgstr "Adapter z rynku wtórnego permanentnie konwertujący broń, by używała magazynków Leadworks. Utrata gwarancji gwarantowana." -#: lang/json/gunmod_from_json.py -msgid "auto-fire mechanism" -msgid_plural "auto-fire mechanisms" -msgstr[0] "mechanizm ognia ciągłego" -msgstr[1] "mechanizm ognia ciągłego" -msgstr[2] "mechanizm ognia ciągłego" -msgstr[3] "mechanizm ognia ciągłego" - -#: lang/json/gunmod_from_json.py -msgid "" -"A simple mechanism that converts a pistol to a selective fire weapon with a " -"burst size of three rounds. However it reduces accuracy and increases " -"noise." -msgstr "Prosty mechanizm konwertujący pistolet w broń z wyborem trybu prowadzenia ognia z trzystrzałową serią. Niestety redukuje celność i zwiększa hałas." - -#: lang/json/gunmod_from_json.py -msgid "mechanism" -msgstr "mechanizm" - #: lang/json/gunmod_from_json.py msgid "rapid blowback" msgid_plural "rapid blowbacks" @@ -64199,20 +64213,6 @@ msgid "" " accuracy and damage." msgstr "To kompletny zestaw konwersyjny, zmieniający karabin w zabójczy karabin snajperski. Karabin traci zdolność ognia automatycznego zyskując na celności i sile rażenia." -#: lang/json/gunmod_from_json.py -msgid "handmade auto-fire mechanism" -msgid_plural "handmade auto-fire mechanisms" -msgstr[0] "ręcznej produkcji mechanizm automatycznego strzelania" -msgstr[1] "ręcznej produkcji mechanizm automatycznego strzelania" -msgstr[2] "ręcznej produkcji mechanizm automatycznego strzelania" -msgstr[3] "ręcznej produkcji mechanizm automatycznego strzelania" - -#: lang/json/gunmod_from_json.py -msgid "" -"Mechanism that allows your CW-24 rifle to fire in fully automatic mode. It " -"is handmade." -msgstr "Mechanizm pozwalający twojemu karabinowi CW-24 na strzelanie w trybie automatycznym. Został ręcznie wyprodukowany." - #: lang/json/gunmod_from_json.py msgid "5.45 caliber conversion kit" msgid_plural "5.45 caliber conversion kits" @@ -80027,9 +80027,9 @@ msgstr "Operator Dronów" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You had a job programming machines like automatic street cleaners, newsbots " -"and pizza delivery drones. Now the all the drones carry guns instead of " -"pizza." +"You had a job programming machines such as automatic street cleaners, " +"newsbots and pizza delivery drones. Now all the drones carry guns instead " +"of pizza." msgstr "Pracowałeś jako programista maszyn takich jak automatyczne zamiatacze ulic, i drony dostarczające pizzę. Teraz wszystkie drony noszą broń zamiast pizzy." #: lang/json/professions_from_json.py @@ -80041,9 +80041,9 @@ msgstr "Operatorka Dronów" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You had a job programming machines like automatic street cleaners, newsbots " -"and pizza delivery drones. Now the all the drones carry guns instead of " -"pizza." +"You had a job programming machines such as automatic street cleaners, " +"newsbots and pizza delivery drones. Now all the drones carry guns instead " +"of pizza." msgstr "Pracowałaś jako programistka maszyn takich jak automatyczne zamiatacze ulic, i drony dostarczające pizzę. Teraz wszystkie drony noszą broń zamiast pizzy." #: lang/json/professions_from_json.py @@ -92686,7 +92686,7 @@ msgstr "szydełkujący" #: lang/json/tool_quality_from_json.py msgid "bullet pulling" -msgstr "" +msgstr "wyciąganie pocisków" #: lang/json/trap_from_json.py msgid "roll mat" @@ -106696,15 +106696,15 @@ msgstr "Nie masz %s." #: src/game_inventory.cpp msgid "ENCUMBRANCE" -msgstr "" +msgstr "SKRĘPOWANIE" #: src/game_inventory.cpp msgid "COVERAGE" -msgstr "" +msgstr "POKRYCIE" #: src/game_inventory.cpp msgid "WARMTH" -msgstr "" +msgstr "CIEPŁO" #: src/game_inventory.cpp msgid "BASH" @@ -106716,15 +106716,15 @@ msgstr "MIAŻDŻONE" #: src/game_inventory.cpp msgid "ACID" -msgstr "" +msgstr "KWAS" #: src/game_inventory.cpp msgid "FIRE" -msgstr "" +msgstr "OGIEŃ" #: src/game_inventory.cpp msgid "ENV" -msgstr "" +msgstr "ŚROD" #: src/game_inventory.cpp src/player.cpp msgid "Wear item" @@ -106732,7 +106732,7 @@ msgstr "Ubierz przedmiot" #: src/game_inventory.cpp msgid "You have nothing to wear." -msgstr "" +msgstr "Nie masz niczego do założenia." #: src/game_inventory.cpp msgid "Take off item" @@ -108214,8 +108214,8 @@ msgstr "P: Jestem zmarznięty i nie mogę w nocy spać!\nO: Zgromadź trochę ub #: src/help.cpp msgid "" "Q: I have a question that's not addressed here. How can I get an answer?\n" -"A: Ask the helpful people on the forum at smf.cataclysmdda.com or at the irc channel #CataclysmDDA on freenode." -msgstr "P: Mam pytanie na które nie ma tu odpowiedzi. Gdzie jej szukać?\nO: Zapytaj pomocnych ludzi na forum smf.cataclysmdda.com lub kanale irc #CataclysmDDA na freenode." +"A: Ask the helpful people on the forum at discourse.cataclysmdda.org or at the irc channel #CataclysmDDA on freenode." +msgstr "" #: src/help.cpp msgid " HELP " @@ -109810,7 +109810,7 @@ msgstr "Zawiera: %s" #: src/item.cpp msgid "Amount: " -msgstr "" +msgstr "Ilość: " #: src/item.cpp msgid "age: " @@ -112790,7 +112790,7 @@ msgstr "Pobierz krew od %s?" #: src/iuse.cpp #, c-format msgid "You drew blood from the %s..." -msgstr "" +msgstr "Pobierasz krew z %s ..." #: src/iuse.cpp msgid "Draw your own blood?" @@ -112798,17 +112798,17 @@ msgstr "Pobrać własną krew?" #: src/iuse.cpp msgid "You drew your own blood..." -msgstr "" +msgstr "Pobierasz własną krew..." #: src/iuse.cpp #, c-format msgid "...but acidic blood melts the %s, destroying it!" -msgstr "" +msgstr "... ale twoja kwasowa krew roztapia %s, niszcząc go!" #: src/iuse.cpp #, c-format msgid "...but acidic blood damages the %s!" -msgstr "" +msgstr "... ale kwasowa krew uszkadza %s!" #: src/iuse.cpp msgid "You cut the log into planks." @@ -114140,11 +114140,6 @@ msgstr "Nie możesz użyć %s tam." msgid "The %1$s is too big to put in your %2$s." msgstr "%1$s jest zbyt duży żeby włożyć go do twojego %2$s." -#: src/iuse.cpp -#, c-format -msgid "Error serializing monster: %s" -msgstr "Błąd przy serializowaniu potwora: %s" - #: src/iuse.cpp #, c-format msgid "%s holding %s" @@ -120388,7 +120383,7 @@ msgid "" "Saving will override the already existing character.\n" "\n" "Continue anyways?" -msgstr "" +msgstr "Postać o imieniu '%s' już istnieje w tym świecie.\nZapis spowoduje nadpisanie już istniejącej postaci.\n\nKontynuować mimo to?" #: src/newcharacter.cpp msgid "Last Character" @@ -127313,12 +127308,6 @@ msgstr "Twój %s jest uszkodzony przez niewypał!" msgid "'s %s is damaged by the misfired round!" msgstr "Należący do %s jest uszkodzony przez niewypał!" -#: src/ranged.cpp -msgid "" -"You'll need to aim at more distant targets to further improve your " -"marksmanship." -msgstr "Musisz celować do bardziej odległych celów by dalej ulepszać swoją celność." - #: src/ranged.cpp msgid "Recoil" msgstr "Odrzut" diff --git a/lang/po/pt_BR.po b/lang/po/pt_BR.po index f0a25cd8a94ab..0e6a12fca3492 100644 --- a/lang/po/pt_BR.po +++ b/lang/po/pt_BR.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: Cataclysm-DDA\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-12-02 03:01-0500\n" -"PO-Revision-Date: 2017-12-02 13:06+0000\n" +"POT-Creation-Date: 2017-12-09 03:47-0500\n" +"PO-Revision-Date: 2017-12-10 12:00+0000\n" "Last-Translator: Vlasov Vitaly \n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/cataclysm-dda-translators/cataclysm-dda/language/pt_BR/)\n" "MIME-Version: 1.0\n" @@ -57388,6 +57388,35 @@ msgid "" "cartridges." msgstr "" +#: lang/json/gunmod_from_json.py +msgid "auto-fire mechanism" +msgid_plural "auto-fire mechanisms" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gunmod_from_json.py +msgid "" +"A simple mechanism that converts a pistol to a selective fire weapon with a " +"burst size of three rounds. However it reduces accuracy and increases " +"noise." +msgstr "" + +#: lang/json/gunmod_from_json.py +msgid "mechanism" +msgstr "" + +#: lang/json/gunmod_from_json.py +msgid "handmade auto-fire mechanism" +msgid_plural "handmade auto-fire mechanisms" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gunmod_from_json.py +msgid "" +"Mechanism that allows your CW-24 rifle to fire in fully automatic mode. It " +"is handmade." +msgstr "" + #: lang/json/gunmod_from_json.py msgid "arrow rest" msgid_plural "arrow rests" @@ -57700,23 +57729,6 @@ msgid "" " Leadworks magazines. Guaranteed to void your warranty." msgstr "" -#: lang/json/gunmod_from_json.py -msgid "auto-fire mechanism" -msgid_plural "auto-fire mechanisms" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gunmod_from_json.py -msgid "" -"A simple mechanism that converts a pistol to a selective fire weapon with a " -"burst size of three rounds. However it reduces accuracy and increases " -"noise." -msgstr "" - -#: lang/json/gunmod_from_json.py -msgid "mechanism" -msgstr "" - #: lang/json/gunmod_from_json.py msgid "rapid blowback" msgid_plural "rapid blowbacks" @@ -58324,18 +58336,6 @@ msgid "" " accuracy and damage." msgstr "" -#: lang/json/gunmod_from_json.py -msgid "handmade auto-fire mechanism" -msgid_plural "handmade auto-fire mechanisms" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gunmod_from_json.py -msgid "" -"Mechanism that allows your CW-24 rifle to fire in fully automatic mode. It " -"is handmade." -msgstr "" - #: lang/json/gunmod_from_json.py msgid "5.45 caliber conversion kit" msgid_plural "5.45 caliber conversion kits" @@ -74130,9 +74130,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You had a job programming machines like automatic street cleaners, newsbots " -"and pizza delivery drones. Now the all the drones carry guns instead of " -"pizza." +"You had a job programming machines such as automatic street cleaners, " +"newsbots and pizza delivery drones. Now all the drones carry guns instead " +"of pizza." msgstr "" #: lang/json/professions_from_json.py @@ -74144,9 +74144,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You had a job programming machines like automatic street cleaners, newsbots " -"and pizza delivery drones. Now the all the drones carry guns instead of " -"pizza." +"You had a job programming machines such as automatic street cleaners, " +"newsbots and pizza delivery drones. Now all the drones carry guns instead " +"of pizza." msgstr "" #: lang/json/professions_from_json.py @@ -102255,7 +102255,7 @@ msgstr "" #: src/help.cpp msgid "" "Q: I have a question that's not addressed here. How can I get an answer?\n" -"A: Ask the helpful people on the forum at smf.cataclysmdda.com or at the irc channel #CataclysmDDA on freenode." +"A: Ask the helpful people on the forum at discourse.cataclysmdda.org or at the irc channel #CataclysmDDA on freenode." msgstr "" #: src/help.cpp @@ -108135,11 +108135,6 @@ msgstr "" msgid "The %1$s is too big to put in your %2$s." msgstr "" -#: src/iuse.cpp -#, c-format -msgid "Error serializing monster: %s" -msgstr "" - #: src/iuse.cpp #, c-format msgid "%s holding %s" @@ -121250,12 +121245,6 @@ msgstr "" msgid "'s %s is damaged by the misfired round!" msgstr "" -#: src/ranged.cpp -msgid "" -"You'll need to aim at more distant targets to further improve your " -"marksmanship." -msgstr "" - #: src/ranged.cpp msgid "Recoil" msgstr "" diff --git a/lang/po/ru.po b/lang/po/ru.po index f8ffce06f8045..43d0c0cf590f2 100644 --- a/lang/po/ru.po +++ b/lang/po/ru.po @@ -68,8 +68,8 @@ msgid "" msgstr "" "Project-Id-Version: Cataclysm-DDA\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-12-02 03:01-0500\n" -"PO-Revision-Date: 2017-12-08 20:15+0000\n" +"POT-Creation-Date: 2017-12-09 03:47-0500\n" +"PO-Revision-Date: 2017-12-14 14:02+0000\n" "Last-Translator: Антон Бурмистров <22.valiant@gmail.com>\n" "Language-Team: Russian (http://www.transifex.com/cataclysm-dda-translators/cataclysm-dda/language/ru/)\n" "MIME-Version: 1.0\n" @@ -5559,10 +5559,10 @@ msgstr "Заряд пороха с маленькими шариками в ро #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "tinder" msgid_plural "tinder" -msgstr[0] "фитиль" -msgstr[1] "фитиля" -msgstr[2] "фитилей" -msgstr[3] "фитиль" +msgstr[0] "трут" +msgstr[1] "трута" +msgstr[2] "трутов" +msgstr[3] "трут" #. ~ Description for tinder #: lang/json/AMMO_from_json.py @@ -23814,7 +23814,7 @@ msgstr "Сырой картофель, порезанный на кусочки, #: lang/json/COMESTIBLE_from_json.py msgid "potatoes" -msgstr "картофели" +msgstr "картофель" #: lang/json/COMESTIBLE_from_json.py msgid "irradiated potato" @@ -36764,17 +36764,17 @@ msgstr "Сломанная аниматронная летучая мышь. П #: lang/json/GENERIC_from_json.py msgid "broken animatronic beaver" msgid_plural "broken animatronic beavers" -msgstr[0] "сломанный аниматронный бобёр" +msgstr[0] "сломанный аниматронный бобр" msgstr[1] "сломанных аниматронных бобра" msgstr[2] "сломанных аниматронных бобров" -msgstr[3] "сломанный аниматронный бобёр" +msgstr[3] "сломанный аниматронный бобр" #. ~ Description for broken animatronic beaver #: lang/json/GENERIC_from_json.py msgid "" "A broken animatronic beaver. For some reason, it is oozing with blood - " "it's not your blood." -msgstr "Сломанный аниматронный бобёр. По какой-то причине сочится кровью — это не ваша кровь." +msgstr "Сломанный аниматронный бобр. По какой-то причине сочится кровью — это не ваша кровь." #: lang/json/GENERIC_from_json.py msgid "broken animatronic cat" @@ -39612,7 +39612,7 @@ msgstr "Дымящая оболочка это всё, что осталось #: lang/json/MONSTER_from_json.py msgid "beaver" -msgstr "бобёр" +msgstr "бобр" #. ~ Description for beaver #: lang/json/MONSTER_from_json.py @@ -39621,7 +39621,7 @@ msgid "" "shaped tail helps ferry it through the water, and its prominent teeth can " "chew through wood, which it uses to build dam-like nests in lakes and " "streams." -msgstr "Североамериканский бобёр, крупнейший грызун на континенте. Его веслообразный хвост помогает ему держаться на плаву, а выступающие зубы могут грызть древесину. Из древесины он создаёт плотины на реках, которые использует в качестве гнёзд." +msgstr "Североамериканский бобр, крупнейший грызун на континенте. Его веслообразный хвост помогает ему держаться на плаву, а выступающие зубы могут грызть древесину. Из древесины он создаёт плотины на реках, которые использует в качестве гнёзд." #: lang/json/MONSTER_from_json.py msgid "giant bee" @@ -42661,7 +42661,7 @@ msgstr "Двуногая аниматронная летучая мышь раз #: lang/json/MONSTER_from_json.py msgid "animatronic beaver" -msgstr "аниматронный бобёр" +msgstr "аниматронный бобр" #. ~ Description for animatronic beaver #: lang/json/MONSTER_from_json.py @@ -42669,7 +42669,7 @@ msgid "" "A bipedal animatronic beaver, nearly twice your size. Its buck teeth look " "far more sharp than they should be. Though it is a robot, it stinks like " "death." -msgstr "Двуногий аниматронный бобёр размером почти вдвое больше вас. Его выступающие зубы выглядят гораздо острее, чем должны быть. Хотя это и робот, чувствуется источаемый запах смерти." +msgstr "Двуногий аниматронный бобр размером почти вдвое больше вас. Его выступающие зубы выглядят гораздо острее, чем должны быть. Хотя это и робот, чувствуется источаемый запах смерти." #: lang/json/MONSTER_from_json.py msgid "animatronic cat" @@ -54196,7 +54196,7 @@ msgstr "Строить металлическую крышу" #: lang/json/construction_from_json.py msgid "Must be supported on at least two sides." -msgstr "Должна быть поддержана как минимум с двух сторон." +msgstr "Должно быть поддержано как минимум с двух сторон." #: lang/json/construction_from_json.py msgid "Build Concrete Roof" @@ -54268,7 +54268,7 @@ msgstr "Строить проход в проволоч. ограде" #: lang/json/construction_from_json.py msgid "Needs to be supported on both sides by fencing, walls, etc." -msgstr "Должна быть поддержана с обеих сторон оградой, стенами и т.д." +msgstr "Должно быть поддержано с обеих сторон оградой, стенами и т.д." #: lang/json/construction_from_json.py msgid "Seal Crate" @@ -63179,6 +63179,39 @@ msgid "" "cartridges." msgstr "Taurus Raging Judge Magnum - пятизарядный револьвер под калибр .454 Casull. В нём могут применяться боеприпасы калибров .410 и .45 Long Colt." +#: lang/json/gunmod_from_json.py +msgid "auto-fire mechanism" +msgid_plural "auto-fire mechanisms" +msgstr[0] "механизм авто-стрельбы" +msgstr[1] "механизма авто-стрельбы" +msgstr[2] "механизмов авто-стрельбы" +msgstr[3] "механизма авто-стрельбы" + +#: lang/json/gunmod_from_json.py +msgid "" +"A simple mechanism that converts a pistol to a selective fire weapon with a " +"burst size of three rounds. However it reduces accuracy and increases " +"noise." +msgstr "Простой механизм позволит превратить пистолет в автоматическое оружие за счёт снижения точности и увеличения шума." + +#: lang/json/gunmod_from_json.py +msgid "mechanism" +msgstr "механизм" + +#: lang/json/gunmod_from_json.py +msgid "handmade auto-fire mechanism" +msgid_plural "handmade auto-fire mechanisms" +msgstr[0] "самодельный механизм авто-стрельбы" +msgstr[1] "самодельных механизма авто-стрельбы" +msgstr[2] "самодельных механизмов авто-стрельбы" +msgstr[3] "самодельный механизм авто-стрельбы" + +#: lang/json/gunmod_from_json.py +msgid "" +"Mechanism that allows your CW-24 rifle to fire in fully automatic mode. It " +"is handmade." +msgstr "Самодельный механизм, который позволяет вашей винтовке CW-24 стрелять в автоматическом режиме." + #: lang/json/gunmod_from_json.py msgid "arrow rest" msgid_plural "arrow rests" @@ -63535,25 +63568,6 @@ msgid "" " Leadworks magazines. Guaranteed to void your warranty." msgstr "Нелицензионный переходник, который изменит оружие так, чтобы к нему подходили оригинальные магазины «Лидворкс». Гарантированно лишит вас гарантийного обслуживания." -#: lang/json/gunmod_from_json.py -msgid "auto-fire mechanism" -msgid_plural "auto-fire mechanisms" -msgstr[0] "механизм авто-стрельбы" -msgstr[1] "механизма авто-стрельбы" -msgstr[2] "механизмов авто-стрельбы" -msgstr[3] "механизма авто-стрельбы" - -#: lang/json/gunmod_from_json.py -msgid "" -"A simple mechanism that converts a pistol to a selective fire weapon with a " -"burst size of three rounds. However it reduces accuracy and increases " -"noise." -msgstr "Простой механизм позволит превратить пистолет в автоматическое оружие за счёт снижения точности и увеличения шума." - -#: lang/json/gunmod_from_json.py -msgid "mechanism" -msgstr "механизм" - #: lang/json/gunmod_from_json.py msgid "rapid blowback" msgid_plural "rapid blowbacks" @@ -64257,20 +64271,6 @@ msgid "" " accuracy and damage." msgstr "Этот набор для переоборудования позволит превратить ваше оружие в полноценную снайперскую винтовку. Плюсы: увеличение наносимого урона и точности. Минусы: возможность ведения только одиночного огня." -#: lang/json/gunmod_from_json.py -msgid "handmade auto-fire mechanism" -msgid_plural "handmade auto-fire mechanisms" -msgstr[0] "самодельный механизм авто-стрельбы" -msgstr[1] "самодельных механизма авто-стрельбы" -msgstr[2] "самодельных механизмов авто-стрельбы" -msgstr[3] "самодельный механизм авто-стрельбы" - -#: lang/json/gunmod_from_json.py -msgid "" -"Mechanism that allows your CW-24 rifle to fire in fully automatic mode. It " -"is handmade." -msgstr "Самодельный механизм, который позволяет вашей винтовке CW-24 стрелять в автоматическом режиме." - #: lang/json/gunmod_from_json.py msgid "5.45 caliber conversion kit" msgid_plural "5.45 caliber conversion kits" @@ -80085,10 +80085,10 @@ msgstr "Оператор дронов" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You had a job programming machines like automatic street cleaners, newsbots " -"and pizza delivery drones. Now the all the drones carry guns instead of " -"pizza." -msgstr "Твоя работа состояла в программировании машин, таких как автодворники, новостные боты и дроны доставки пиццы. Теперь все эти дроны носят оружие, а не пиццу." +"You had a job programming machines such as automatic street cleaners, " +"newsbots and pizza delivery drones. Now all the drones carry guns instead " +"of pizza." +msgstr "Ваша работа состояла в программировании машин, таких как автодворники, новостные боты и дроны доставки пиццы. Теперь все эти дроны носят оружие, а не пиццу." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -80099,10 +80099,10 @@ msgstr "Оператор дронов" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You had a job programming machines like automatic street cleaners, newsbots " -"and pizza delivery drones. Now the all the drones carry guns instead of " -"pizza." -msgstr "Твоя работа состояла в программировании машин, таких как автодворники, новостные боты и дроны доставки пиццы. Теперь все эти дроны носят оружие, а не пиццу." +"You had a job programming machines such as automatic street cleaners, " +"newsbots and pizza delivery drones. Now all the drones carry guns instead " +"of pizza." +msgstr "Ваша работа состояла в программировании машин, таких как автодворники, новостные боты и дроны доставки пиццы. Теперь все эти дроны носят оружие, а не пиццу." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -82809,7 +82809,7 @@ msgstr "Вы потягиваетесь, но ваши мышцы, похоже, msgid "" "Your stomach gurgles. It's probably nothing, but maybe you should look into" " eating something healthy." -msgstr "В вас урчит в животе. Скорее всего, это ничего такого, но, возможно, вам стоит начать есть что-нибудь более полезное." +msgstr "У вас урчит в животе. Скорее всего, это ничего такого, но, возможно, вам стоит начать есть что-нибудь более полезное." #: lang/json/snippet_from_json.py msgid "" @@ -108272,8 +108272,8 @@ msgstr "В: Я замёрз и не могу спать ночью!\nО: Воз #: src/help.cpp msgid "" "Q: I have a question that's not addressed here. How can I get an answer?\n" -"A: Ask the helpful people on the forum at smf.cataclysmdda.com or at the irc channel #CataclysmDDA on freenode." -msgstr "В: Здесь нет моего вопроса. Где мне узнать ответ?\nО: Спросите у людей на форуме smf.cataclysmdda.com или на irc канале на freenode." +"A: Ask the helpful people on the forum at discourse.cataclysmdda.org or at the irc channel #CataclysmDDA on freenode." +msgstr "В: Здесь нет моего вопроса. Где мне узнать ответ?\nО: Спросите у людей на форуме discourse.cataclysmdda.org или на irc канале #CataclysmDDA на freenode." #: src/help.cpp msgid " HELP " @@ -114198,11 +114198,6 @@ msgstr "Вы не можете использовать здесь %s." msgid "The %1$s is too big to put in your %2$s." msgstr "Этот предмет (%1$s) слишком велик, чтобы убрать в %2$s!" -#: src/iuse.cpp -#, c-format -msgid "Error serializing monster: %s" -msgstr "Ошибка сериализации монстра: %s" - #: src/iuse.cpp #, c-format msgid "%s holding %s" @@ -127371,12 +127366,6 @@ msgstr "Ваш %s повреждён из-за осечки!" msgid "'s %s is damaged by the misfired round!" msgstr "%s () повреждается из-за осечки." -#: src/ranged.cpp -msgid "" -"You'll need to aim at more distant targets to further improve your " -"marksmanship." -msgstr "Вы должны целиться в более удаленные цели для дальнейшего улучшения вашей меткости." - #: src/ranged.cpp msgid "Recoil" msgstr "Отдача" diff --git a/lang/po/sr.po b/lang/po/sr.po index f94b2e910b6f4..6e836fa8c2fcd 100644 --- a/lang/po/sr.po +++ b/lang/po/sr.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: Cataclysm-DDA\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-12-02 03:01-0500\n" -"PO-Revision-Date: 2017-12-02 13:06+0000\n" +"POT-Creation-Date: 2017-12-09 03:47-0500\n" +"PO-Revision-Date: 2017-12-10 12:00+0000\n" "Last-Translator: Vlasov Vitaly \n" "Language-Team: Serbian (http://www.transifex.com/cataclysm-dda-translators/cataclysm-dda/language/sr/)\n" "MIME-Version: 1.0\n" @@ -60250,6 +60250,37 @@ msgid "" "cartridges." msgstr "" +#: lang/json/gunmod_from_json.py +msgid "auto-fire mechanism" +msgid_plural "auto-fire mechanisms" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: lang/json/gunmod_from_json.py +msgid "" +"A simple mechanism that converts a pistol to a selective fire weapon with a " +"burst size of three rounds. However it reduces accuracy and increases " +"noise." +msgstr "" + +#: lang/json/gunmod_from_json.py +msgid "mechanism" +msgstr "" + +#: lang/json/gunmod_from_json.py +msgid "handmade auto-fire mechanism" +msgid_plural "handmade auto-fire mechanisms" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: lang/json/gunmod_from_json.py +msgid "" +"Mechanism that allows your CW-24 rifle to fire in fully automatic mode. It " +"is handmade." +msgstr "" + #: lang/json/gunmod_from_json.py msgid "arrow rest" msgid_plural "arrow rests" @@ -60584,24 +60615,6 @@ msgid "" " Leadworks magazines. Guaranteed to void your warranty." msgstr "" -#: lang/json/gunmod_from_json.py -msgid "auto-fire mechanism" -msgid_plural "auto-fire mechanisms" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" - -#: lang/json/gunmod_from_json.py -msgid "" -"A simple mechanism that converts a pistol to a selective fire weapon with a " -"burst size of three rounds. However it reduces accuracy and increases " -"noise." -msgstr "" - -#: lang/json/gunmod_from_json.py -msgid "mechanism" -msgstr "" - #: lang/json/gunmod_from_json.py msgid "rapid blowback" msgid_plural "rapid blowbacks" @@ -61257,19 +61270,6 @@ msgid "" " accuracy and damage." msgstr "" -#: lang/json/gunmod_from_json.py -msgid "handmade auto-fire mechanism" -msgid_plural "handmade auto-fire mechanisms" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" - -#: lang/json/gunmod_from_json.py -msgid "" -"Mechanism that allows your CW-24 rifle to fire in fully automatic mode. It " -"is handmade." -msgstr "" - #: lang/json/gunmod_from_json.py msgid "5.45 caliber conversion kit" msgid_plural "5.45 caliber conversion kits" @@ -77074,9 +77074,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You had a job programming machines like automatic street cleaners, newsbots " -"and pizza delivery drones. Now the all the drones carry guns instead of " -"pizza." +"You had a job programming machines such as automatic street cleaners, " +"newsbots and pizza delivery drones. Now all the drones carry guns instead " +"of pizza." msgstr "" #: lang/json/professions_from_json.py @@ -77088,9 +77088,9 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You had a job programming machines like automatic street cleaners, newsbots " -"and pizza delivery drones. Now the all the drones carry guns instead of " -"pizza." +"You had a job programming machines such as automatic street cleaners, " +"newsbots and pizza delivery drones. Now all the drones carry guns instead " +"of pizza." msgstr "" #: lang/json/professions_from_json.py @@ -105230,7 +105230,7 @@ msgstr "" #: src/help.cpp msgid "" "Q: I have a question that's not addressed here. How can I get an answer?\n" -"A: Ask the helpful people on the forum at smf.cataclysmdda.com or at the irc channel #CataclysmDDA on freenode." +"A: Ask the helpful people on the forum at discourse.cataclysmdda.org or at the irc channel #CataclysmDDA on freenode." msgstr "" #: src/help.cpp @@ -111133,11 +111133,6 @@ msgstr "" msgid "The %1$s is too big to put in your %2$s." msgstr "" -#: src/iuse.cpp -#, c-format -msgid "Error serializing monster: %s" -msgstr "" - #: src/iuse.cpp #, c-format msgid "%s holding %s" @@ -124277,12 +124272,6 @@ msgstr "" msgid "'s %s is damaged by the misfired round!" msgstr "" -#: src/ranged.cpp -msgid "" -"You'll need to aim at more distant targets to further improve your " -"marksmanship." -msgstr "" - #: src/ranged.cpp msgid "Recoil" msgstr "" diff --git a/lang/po/zh_CN.po b/lang/po/zh_CN.po index 4016e6a7197af..ad32147cf11b3 100644 --- a/lang/po/zh_CN.po +++ b/lang/po/zh_CN.po @@ -35,9 +35,9 @@ msgid "" msgstr "" "Project-Id-Version: Cataclysm-DDA\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-12-02 03:01-0500\n" -"PO-Revision-Date: 2017-12-07 12:59+0000\n" -"Last-Translator: 曾泰瑋 \n" +"POT-Creation-Date: 2017-12-09 03:47-0500\n" +"PO-Revision-Date: 2017-12-14 04:16+0000\n" +"Last-Translator: 何方神圣 何 <1366003560@qq.com>\n" "Language-Team: Chinese (China) (http://www.transifex.com/cataclysm-dda-translators/cataclysm-dda/language/zh_CN/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -2008,7 +2008,7 @@ msgstr "绒羽" #. ~ Description for down feather #: lang/json/AMMO_from_json.py msgid "fluffy down feathers from a bird. Useful for making cozy bedclothes." -msgstr "一些禽类羽绒,可用于制作舒适的床上用品。\n\"想在这玩意做成的毯子上打滚。\"" +msgstr "一些禽类羽绒,可用于制作舒适的床上用品。" #: lang/json/AMMO_from_json.py msgid "fusion pack" @@ -2020,7 +2020,7 @@ msgid "" "In the middle of the 21st Century, military powers began to look towards " "energy based weapons. The result was the standard fusion pack, capable of " "delivering bolts of superheated gas at near light speed with no recoil." -msgstr "一包研制于21世纪中期的军方研制的标准核聚变能源包,用于新兴的能量武器。能射出接近光速的超高温气体,还没有任何后坐力影响。\n\"和帝国暴风士兵用的一样?但绝对没有他们的枪法准!\"" +msgstr "一包研制于21世纪中期的军方研制的标准核聚变能源包,用于新兴的能量武器。能射出接近光速的超高温气体,还没有任何后坐力影响。\n\"使星球大战式的枪战场景成为可能。\"" #: lang/json/AMMO_from_json.py msgid "66mm HEAT" @@ -2063,7 +2063,7 @@ msgstr "未使用的.22弹壳" msgid "" "An empty casing from a .22 round that hasn't been fired, and still has an " "intact case with primer." -msgstr "一些未使用过的 .22 空弹壳,弹壳完整,附有底火。\n\"嘛,总比是BB弹的弹壳强。\"" +msgstr "一些未使用过的 .22 空弹壳,弹壳完整,附有底火。" #: lang/json/AMMO_from_json.py msgid "gunpowder" @@ -2090,7 +2090,7 @@ msgstr "碱粉" #. ~ Description for lye powder #: lang/json/AMMO_from_json.py msgid "Powdered caustic soda." -msgstr "一些粉末状的腐蚀性纯碱。\n\"拿着有些烧手。\"" +msgstr "一些粉末状的腐蚀性纯碱。\n\"拿着有些烧手,但没有大碍。\"" #: lang/json/AMMO_from_json.py msgid "shotgun primer" @@ -2099,7 +2099,7 @@ msgstr "霰弹底火" #. ~ Description for shotgun primer #: lang/json/AMMO_from_json.py msgid "Primer from a shotgun round." -msgstr "一些霰弹所使用的子弹底火。\n\"小可爱们,快和火药、弹壳和焊料它们结合。\"" +msgstr "一些霰弹所使用的子弹底火。" #: lang/json/AMMO_from_json.py msgid "small pistol primer" @@ -2108,7 +2108,7 @@ msgstr "小口径手枪子弹底火" #. ~ Description for small pistol primer #: lang/json/AMMO_from_json.py msgid "Primer from a small caliber pistol round." -msgstr "一些小口径手枪子弹使用的底火。\n\"小可爱们,快和火药、弹壳和焊料它们结合。\"" +msgstr "一些小口径手枪子弹使用的底火。" #: lang/json/AMMO_from_json.py msgid "large pistol primer" @@ -2117,7 +2117,7 @@ msgstr "大口径手枪子弹底火" #. ~ Description for large pistol primer #: lang/json/AMMO_from_json.py msgid "Primer from a large caliber pistol round." -msgstr "一些大口径手枪子弹使用的底火。\n\"小可爱们,快和火药、弹壳和焊料它们结合。\"" +msgstr "一些大口径手枪子弹使用的底火。" #: lang/json/AMMO_from_json.py msgid "small rifle primer" @@ -2126,7 +2126,7 @@ msgstr "小口径步枪子弹底火" #. ~ Description for small rifle primer #: lang/json/AMMO_from_json.py msgid "Primer from a small caliber rifle round." -msgstr "一些小口径步枪子弹使用的底火。\n\"小可爱们,快和火药、弹壳和焊料它们结合。\"" +msgstr "一些小口径步枪子弹使用的底火。" #: lang/json/AMMO_from_json.py msgid "large rifle primer" @@ -2135,7 +2135,7 @@ msgstr "大口径步枪子弹底火" #. ~ Description for large rifle primer #: lang/json/AMMO_from_json.py msgid "Primer from a large caliber rifle round." -msgstr "一些大口径步枪子弹使用的底火。\n\"小可爱们,快和火药、弹壳和焊料它们结合。\"" +msgstr "一些大口径步枪子弹使用的底火。" #: lang/json/AMMO_from_json.py msgid "rubber slug" @@ -2185,7 +2185,7 @@ msgstr "医学胶带" #. ~ Description for medical tape #: lang/json/AMMO_from_json.py msgid "A roll of medical tape, similar to duct tape." -msgstr "一卷医用胶布,有一些透气用小孔,总体类似强力胶带。\n\"可以用来假扮木乃伊,但无法蒙骗过丧尸。\"" +msgstr "一卷医用胶布,有一些透气用小孔,总体类似强力胶带。\n\"可以用来假扮木乃伊,但饥饿的丧尸并不在乎血肉的保质期。\"" #: lang/json/AMMO_from_json.py msgid "FFV441B HE rocket" @@ -2258,7 +2258,7 @@ msgid "" " other volatile constituents from animal and vegetation substances. It is " "produced by slowly heating wood or other substances in the absence of " "oxygen." -msgstr "一些在缺氧条件下,通过缓慢加热木材或其他物质以去除水份与其他挥发成份制成的易燃碳基材料。\n\"制作用于木炭是在荒野求生中的必学课程。\"" +msgstr "一些在缺氧条件下,通过缓慢加热木材或其他物质以去除水份与其他挥发成份制成的易燃碳基材料。\n\"制作用于木炭是在荒野求生中的必学课程之一。\"" #: lang/json/AMMO_from_json.py msgid "coal" @@ -2294,7 +2294,7 @@ msgid "" "A tiny glass vial filled with advanced fast-healing chemicals which can only" " be activated by a Rivtech jet injector device. A label on the side warns " "against using more than two doses per hour." -msgstr "一只小小的装满了快速助愈化合物的玻璃药水瓶,可以用Rivtech注射器来激活使用,药水瓶上贴着的侧标上印着一行警告:\"每小时最多使用两剂。\"\n\"每小时可以两次拥有死侍般的愈合能力,真棒!\"" +msgstr "一只小小的装满了快速助愈化合物的玻璃药水瓶,可以用Rivtech注射器来激活使用,药水瓶上贴着的侧标上印着一行警告:\"每小时最多使用两剂。\"\n\"让您拥有超级英雄般的愈合能力,但请遵医嘱。\"" #: lang/json/AMMO_from_json.py msgid "RA10K stimulant module" @@ -2315,7 +2315,7 @@ msgstr "呼吸器滤芯" #. ~ Description for rebreather filter cartridge #: lang/json/AMMO_from_json.py msgid "A replacement filter cartridge for a rebreather." -msgstr "一个循环呼吸器面罩使用的过滤芯。\n\"这块黑黑的东西其貌不扬,却能让人在水下渡过难关。\"" +msgstr "一个循环呼吸器面罩使用的过滤芯。" #: lang/json/AMMO_from_json.py msgid "nicotine liquid" @@ -2344,7 +2344,7 @@ msgstr "氧气" #. ~ Description for oxygen #: lang/json/AMMO_from_json.py msgid "A canister of oxygen." -msgstr "一罐氧气。\n\"人类因此而呼吸。\"" +msgstr "一罐氧气。" #: lang/json/AMMO_from_json.py msgid "spiked home-made rocket" @@ -2433,7 +2433,7 @@ msgstr "碳化木箭" msgid "" "This simple arrow has a fire-hardened point and fletching. Stands a below " "average chance of remaining intact once fired." -msgstr "一支顶端经过碳化加硬处理并装上了箭羽的简易箭杆。射击后只有小概率可以保持完好。\n\"听名字就知道不是什么结实东西,所以也别抱有太大期望。\"" +msgstr "一支顶端经过碳化加硬处理并装上了箭羽的简易箭杆。射击后只有小概率可以保持完好。" #: lang/json/AMMO_from_json.py msgid "field point wooden arrow" @@ -2493,7 +2493,7 @@ msgid "" "This arrow is significantly sturdier than other wooden arrows. It has a " "crude field point head and fletching. Stands a good chance of remaining " "intact once fired." -msgstr "一支带有粗制箭头和箭羽的木制箭矢。相较于其他木箭更稳固也更耐用,射击后有较好概率可以保持完好。\n\"再粗点就干脆插上一个拳击手套得了。\"" +msgstr "一支带有粗制箭头和箭羽的木制箭矢。相较于其他木箭更稳固也更耐用,射击后有较好概率可以保持完好。" #: lang/json/AMMO_from_json.py msgid "heavy wooden arrow" @@ -2517,7 +2517,7 @@ msgstr "磨尖金属箭" msgid "" "This metal shaft has been carefully sharpened so that it has a crude point " "at the end. Stands a very good chance of remaining intact once fired." -msgstr "一支磨尖了头的金属箭,射击后有较高概率可以保持完好。\n\"咻——金属破空之声令人陶醉。\"" +msgstr "一支磨尖了头的金属箭,射击后有较高概率可以保持完好。" #: lang/json/AMMO_from_json.py msgid "metal arrow" @@ -2528,7 +2528,7 @@ msgstr "金属箭" msgid "" "This metal arrow has fletching and a steel arrowhead. Stands a very good " "chance of remaining intact once fired." -msgstr "一支装有钢制箭头的金属箭,相比重木箭更稳固也更耐用,伤害较好。射击后有较高概率可以保持完好。\n\"金属与空气摩擦的声音最令人着迷。\"" +msgstr "一支装有钢制箭头的金属箭,相比重木箭更稳固也更耐用,伤害较好。射击后有较高概率可以保持完好。" #: lang/json/AMMO_from_json.py msgid "carbon fiber arrow" @@ -2540,11 +2540,11 @@ msgid "" "High-tech carbon fiber shafts and 100 grain broadheads. Very lightweight, " "fast, and notoriously fragile. Stands a bad chance of remaining intact once" " fired." -msgstr "一支含高科技碳纤维的箭杆并装有100格令重的宽刃箭头,极轻,极快,极为脆弱。射击后较小概率保持完好。\n\"射出去的箭不捡回来才是一个弓箭手的浪漫。\"" +msgstr "一支含高科技碳纤维的箭杆并装有100格令重的宽刃箭头,极轻,极快,极为脆弱。射击后较小概率保持完好。" #: lang/json/AMMO_from_json.py msgid "exploding arrow" -msgstr "爆裂箭" +msgstr "爆炸箭" #. ~ Description for exploding arrow #: lang/json/AMMO_from_json.py @@ -2553,7 +2553,7 @@ msgid "" " and bulky, not only does this contraption require expert hands to pull off " "a shot, it requires one to loose this with a small measure of confidence the" " shooter won't be caught in the blast radius." -msgstr "一支顶端装有一个简易爆炸装置的箭。非常不准确且非常笨重。使用它不仅需要专业射手将它射到目标处,还要需要射手够自信不会被卷入爆炸之中。\n\"用这个射中能目标的话,就可以自称比肩绿箭侠和鹰眼了!\"" +msgstr "一支顶端装有一个简易爆炸装置的箭。非常不准确且非常笨重。使用它不仅需要专业射手将它射到目标处,还要需要射手够自信不会被卷入爆炸之中。\n\"由现代科技制造而成的狱炎之箭。\"" #: lang/json/AMMO_from_json.py msgid "flaming arrow" @@ -2564,7 +2564,7 @@ msgstr "燃烧箭" msgid "" "This arrow has a flaming rag wrapped around the shaft near the head. You " "should shoot it soon before it burns your bow." -msgstr "一支顶端缠绕的布条正在燃烧的箭,你应该在火烧到你的弓与手指之前把它发射出去。\n\"在某一平行时空中名为《草船借箭》的寓言中用的是这种火矢。\"" +msgstr "一支顶端缠绕的布条正在燃烧的箭,你应该在火烧到你的弓与手指之前把它发射出去。\n\"制造较为简易的可燃烧的战术弓箭,在悠久的历史中扮演着重要的角色。\"" #: lang/json/AMMO_from_json.py msgid "throwing knife" @@ -2576,7 +2576,7 @@ msgstr[0] "飞刀" msgid "" "A thin and flat knife made for throwing. Its ineffective cutting edge and " "odd shape makes it unsuitable for use as a tool." -msgstr "一个细薄而扁平的投掷用小刀。它没有刀刃,而且形状也很怪异,这让它没法当作工具使用。\n\"也许可以在一个美国将军的脑袋上发现。\"" +msgstr "一个细薄而扁平的投掷用小刀。它没有刀刃,而且形状也很怪异,这让它无法作为工具使用。" #: lang/json/AMMO_from_json.py msgid "throwing axe" @@ -2587,7 +2587,7 @@ msgstr "投斧" msgid "" "A lightweight hatchet made for throwing. Its ineffective cutting edge and " "light weight makes it unsuitable for use as a tool." -msgstr "一把重量很轻的投掷用轻斧。它没有斧刃,而且重量太轻,这让它没法当作工具使用。\n\"据说矮人们都用的一手好飞斧。\"" +msgstr "一把重量很轻的投掷用轻斧。它没有斧刃,而且重量太轻,这让它没法当作工具使用。\n\"中土世界的矮人都是善用飞斧的好手。\"" #: lang/json/AMMO_from_json.py msgid "lawn dart" @@ -2706,7 +2706,7 @@ msgid "" "in making cement. That said, it is also extremely caustic and will cause " "severe burns to any tissue it comes in contact with. This property could " "probably be exploited..." -msgstr "烧结石灰石的产物,这种白色粉末是制造水泥的重要材料。但同时极具腐蚀性,会灼烧任何接触的组织。\n\"泡面时如果没有热水,就可以往水里撒上一把石灰来加热再吃,真是天才!\"" +msgstr "烧结石灰石的产物,这种白色粉末是制造水泥的重要材料。但同时极具腐蚀性,会灼烧任何接触的组织。" #: lang/json/AMMO_from_json.py lang/json/terrain_from_json.py msgid "sand" @@ -6170,12 +6170,12 @@ msgstr "一件轻便而舒适的厚实耐用皮革护甲。" #: lang/json/ARMOR_from_json.py msgid "plate armor" msgid_plural "plate armors" -msgstr[0] "铠甲" +msgstr[0] "哥特式板甲" #. ~ Description for plate armor #: lang/json/ARMOR_from_json.py msgid "A suit of Gothic plate armor." -msgstr "一套哥特金属铠甲,中世纪最著名的骑兵铠甲之一,做工过硬、造型美观,坚固耐用,具有优异的防护性能。" +msgstr "一套哥特式板甲,中世纪最著名的骑兵铠甲之一,做工过硬、造型美观并且坚固耐用,具有优异的防护性能。" #: lang/json/ARMOR_from_json.py msgid "nomad gear" @@ -7250,7 +7250,7 @@ msgstr "一个羽绒毯,相比普通棉毯,羽绒毯更加的温暖舒适, #: lang/json/ARMOR_from_json.py msgid "dragon skin vest" msgid_plural "dragon skin vests" -msgstr[0] "龙皮背心" +msgstr[0] "龙鳞防弹甲" #. ~ Description for dragon skin vest #: lang/json/ARMOR_from_json.py @@ -7258,7 +7258,7 @@ msgid "" "A state-of-the-art, lightweight, flexible, bullet resistant vest. The " "ceramic disks used in its construction make it impossible to repair, only " "replace." -msgstr "一件如同精致的艺术品级别的背心,轻盈而富有弹性,几乎子弹也能防御。附合在里面的强化陶瓷片只能被替换而不能被维修。" +msgstr "一款由美国尖峰装甲公司推出的一种防弹衣,由小块的陶瓷防弹瓦和新型的防弹纤维编织成鱼鳞状的防护甲,类似中世纪的鳞甲,因而得名“龙鳞甲”,附合在里面的强化陶瓷片只能被替换而不能被维修。" #: lang/json/ARMOR_from_json.py msgid "dress" @@ -7366,7 +7366,7 @@ msgstr[0] "防噪耳塞" #. ~ Description for pair of ear plugs #: lang/json/ARMOR_from_json.py msgid "Industrial grade ear plugs. They fit inside the ear." -msgstr "一对工业级防噪耳塞,塞进耳朵内来隔绝噪音。\n\"去他妈的丧尸还是什么乱叫的鬼东西,老子只想静静。\"" +msgstr "一对工业级防噪耳塞,塞进耳朵内来隔绝噪音。\n\"在丧尸与怪物的呻吟咆哮中也能获得片刻或永恒的宁静。\"" #: lang/json/ARMOR_from_json.py msgid "plug" @@ -7378,7 +7378,7 @@ msgstr[0] "耳钉" msgid "" "Those round things people plug into their earlobes as earrings, also called " "\"ear plug\" or \"ear spool.\"" -msgstr "一对插入耳垂中当做装饰的圆形耳饰。\n\"神奇的是,我即便没有耳洞甚至耳朵也可以戴上,也许我有个微型虫洞?\"" +msgstr "一对插入耳垂中当做装饰的圆形耳饰。\n\"即便没有耳洞也可以戴上的神奇耳钉。\"" #: lang/json/ARMOR_from_json.py msgid "eboshi" @@ -7642,7 +7642,7 @@ msgstr[0] "毛绒项圈" msgid "" "A decorative 'collar' made out of fur. Complete with a little bell hanging " "from the front. Don't worry, it's silent." -msgstr "一个毛皮制作的装饰用的项圈,前面还配了一个不会响的小铃铛,非常可爱,引人注目。\n\"我到底是哆啦A梦还是喜羊羊......\"" +msgstr "一个毛皮制作的装饰用的项圈,前面还配了一个不会响的小铃铛,非常可爱,引人注目。" #: lang/json/ARMOR_from_json.py msgid "gambeson" @@ -13055,7 +13055,7 @@ msgid "" "Your left arm has been replaced by a heavy-duty fusion blaster! You may use" " your energy banks to fire a damaging heat ray; however, you are unable to " "use or carry two-handed items, and may only fire handguns." -msgstr "你的左手臂被切除然后改造成了一只重型核聚变炮!你可以消耗部分能量,释放高温毁灭射线攻击敌!作为代价,你将无法使用或搬运需要使用双手的物品,并且只能使用单手枪械,请慎重考虑。" +msgstr "你的左臂被改造成了一只重型核聚变炮!你可以消耗部分能量,释放高温毁灭射线攻击敌!\n※装备该CBM将切除你的左臂,从此将无法再使用或搬运需要使用双手的物品,并且只能使用单手枪械,请慎重考虑。" #: lang/json/BIONIC_ITEM_from_json.py msgid "Blood Analysis CBM" @@ -22988,7 +22988,7 @@ msgstr "熟人肉" #. ~ Description for cooked creep #: lang/json/COMESTIBLE_from_json.py msgid "A freshly cooked slice of some unpleasant person. Tastes great." -msgstr "刚烹熟的人肉片,切自某个讨厌的家伙。不管怎样,味道好极了。" +msgstr "一份刚烹熟的人肉片,味道好极了。\n\"切自某个令人讨厌的家伙。\"" #: lang/json/COMESTIBLE_from_json.py msgid "chunk of meat" @@ -22999,7 +22999,7 @@ msgstr[0] "肉块" #: lang/json/COMESTIBLE_from_json.py msgid "" "Freshly butchered meat. You could eat it raw, but cooking it is better." -msgstr "刚被屠宰的肉。你可以生吃,但烹饪更佳。" +msgstr "一份经过屠宰的肉,可以直接食用,烹饪加工后更美味也更加安全。" #: lang/json/COMESTIBLE_from_json.py msgid "cooked meat" @@ -23008,7 +23008,7 @@ msgstr "熟肉" #. ~ Description for cooked meat #: lang/json/COMESTIBLE_from_json.py msgid "Freshly cooked meat. Very nutritious." -msgstr "新鲜的肉再加上高超的手艺,就成了这道营养的美食。" +msgstr "一份经过简单烹饪的肉块,美味且十分管饱。" #: lang/json/COMESTIBLE_from_json.py msgid "raw offal" @@ -23019,7 +23019,7 @@ msgstr "生内脏" msgid "" "Uncooked internal organs and entrails. Unappealing to eat but filled with " "essential vitamins." -msgstr "生的器官和内脏。看着很难吃但充满了必需的维生素。" +msgstr "一个生的器官和内脏,外观看起来很难引起食欲但充满了必需的维生素。" #: lang/json/COMESTIBLE_from_json.py msgid "cooked offal" @@ -23030,7 +23030,7 @@ msgstr[0] "熟内脏" #: lang/json/COMESTIBLE_from_json.py msgid "" "Freshly cooked entrails. Unappetizing, but filled with essential vitamins." -msgstr "煮熟的新鲜内脏。看着很难吃却充满了必需的维生素。" +msgstr "一份煮熟的新鲜内脏,外观看起来很难引起食欲但充满了必需的维生素。" #: lang/json/COMESTIBLE_from_json.py msgid "pickled offal" @@ -23042,7 +23042,7 @@ msgstr[0] "腌制内脏" msgid "" "Cooked entrails, preserved in brine. Packed with essential vitamins, tastes" " better than it smells." -msgstr "在盐卤里保存的煮熟内脏。富含人体必须的维生素,闻起来臭吃起来香。" +msgstr "一份在盐卤里保存的煮熟内脏。富含人体必须的维生素,闻起来臭吃起来香。" #: lang/json/COMESTIBLE_from_json.py msgid "canned offal" @@ -23063,7 +23063,7 @@ msgstr "胃囊" #. ~ Description for stomach #: lang/json/COMESTIBLE_from_json.py msgid "The stomach of a woodland creature. It is surprisingly durable." -msgstr "林地生物的胃囊,令人意外的耐磨。" +msgstr "一个林地生物的胃囊,十分的耐磨,经过加工后可以用作简单的工具,或有其它用途。" #: lang/json/COMESTIBLE_from_json.py msgid "large stomach" @@ -23072,7 +23072,7 @@ msgstr "大胃囊" #. ~ Description for large stomach #: lang/json/COMESTIBLE_from_json.py msgid "The stomach of a large woodland creature. It is surprisingly durable." -msgstr "大型林地生物的胃囊,令人意外的耐磨。" +msgstr "一个大型林地生物的胃囊,十分的耐磨,经过加工后可以用作简单的工具,或有其它用途。" #: lang/json/COMESTIBLE_from_json.py msgid "meat jerky" @@ -23082,7 +23082,7 @@ msgstr[0] "肉干" #. ~ Description for meat jerky #: lang/json/COMESTIBLE_from_json.py msgid "Salty dried meat that never goes bad, but will make you thirsty." -msgstr "永不变质的咸味肉干,会让你越吃越口渴。" +msgstr "一份几乎永不变质的咸味肉干,作为配菜十分可口,但是越吃会让人感到口渴。" #: lang/json/COMESTIBLE_from_json.py msgid "salted fish" @@ -23092,7 +23092,7 @@ msgstr[0] "咸鱼" #. ~ Description for salted fish #: lang/json/COMESTIBLE_from_json.py msgid "Salty dried fish that never goes bad, but will make you thirsty." -msgstr "一个有生之年都不会变质的咸味鱼肉干。\n\"这,就像我的未来一样......\"" +msgstr "一个有生之年都不会变质的咸味鱼肉干。\n\"与幸存者有着同样未来的美食。\"" #: lang/json/COMESTIBLE_from_json.py msgid "jerk jerky" @@ -23143,7 +23143,7 @@ msgstr[0] "净水" #. ~ Description for clean water #: lang/json/COMESTIBLE_from_json.py msgid "Fresh, clean water. Truly the best thing to quench your thirst." -msgstr "新鲜且纯净的水,最佳解渴饮用水。" +msgstr "一份新鲜且纯净的水。" #: lang/json/COMESTIBLE_from_json.py msgid "mineral water" @@ -23153,7 +23153,7 @@ msgstr[0] "矿泉水" #. ~ Description for mineral water #: lang/json/COMESTIBLE_from_json.py msgid "Fancy mineral water, so fancy it makes you feel fancy just holding it." -msgstr "高端的矿泉水放在大气的矿泉水瓶里,你就是握着瓶子就能感到它是那么的上档次!" +msgstr "一份从地下深处自然涌出的或者是经人工揭露的、未受污染的纯净矿泉水。" #: lang/json/COMESTIBLE_from_json.py msgid "first aid kit" @@ -23175,7 +23175,7 @@ msgstr "简易急救包" msgid "" "A medical kit made with cheap, subpar components. For when nothing else is " "available." -msgstr "使用廉价劣等的代用材料组合成的医疗包。在找不到其他可用的时候只能用它了。" +msgstr "一个使用廉价劣等的代用材料组合成的医疗包。在找不到其他可用的时候只能用它了。" #: lang/json/COMESTIBLE_from_json.py msgid "Adderall" @@ -23201,7 +23201,7 @@ msgid "" "A syringe filled with a shot of adrenaline. It serves as a powerful " "stimulant when you inject yourself with it. Asthmatics can use it in an " "emergency to clear their asthma." -msgstr "一支包含一次计量强心剂的针筒。注射这玩意会让你嗨到翻。" +msgstr "一管装满了肾上腺素的注射器,医用时,可以在紧急情况下使用它来解除哮喘病人的哮喘;也可用作为一种强大的兴奋剂,使人暂时爆发出强大的肌体力量与神经反射能力,效果消失后也有着一定的副作用。" #: lang/json/COMESTIBLE_from_json.py msgid "antibiotic" @@ -23212,7 +23212,7 @@ msgstr "抗生素" msgid "" "Antibacterial medication designed to prevent or stop the spread of " "infection." -msgstr "这种抗菌药物旨在预防及阻止感染扩散。" +msgstr "一种在低浓度下就能选择性地抑制某些生物生命活动的微生物次级代谢产物,及其化学半合成或全合成的衍生物,旨在预防及阻止感染扩散。" #: lang/json/COMESTIBLE_from_json.py msgid "antifungal drug" @@ -23223,7 +23223,7 @@ msgstr "抗真菌药" msgid "" "Powerful chemical tablets designed to eliminate fungal infections in living " "creatures." -msgstr "非常有效的化学药片,可以为生物清除体内的真菌感染。" +msgstr "一些非常有效的化学药片,可以为生物清除体内的真菌感染。" #: lang/json/COMESTIBLE_from_json.py msgid "antiparasitic drug" @@ -23235,7 +23235,7 @@ msgid "" "Broad spectrum chemical tablets designed to eliminate parasitic infestations" " in living creatures. Though designed for use on pets and livestock, it " "will likely work on humans as well." -msgstr "广谱的抗寄生虫药片,用来清除生物体内的寄生虫。虽然是给宠物和牲畜使用的兽药,不过人类服用也是有效的。" +msgstr "一些广谱的抗寄生虫药片,用来清除生物体内的寄生虫。" #: lang/json/COMESTIBLE_from_json.py msgid "aspirin" @@ -23251,7 +23251,7 @@ msgstr "你服用了一些阿司匹林 。" msgid "" "Acetylsalicylic acid, a mild anti-inflammatory. Take to relieve pain and " "swelling." -msgstr "乙酰水杨酸,一种温和的消炎药。用以缓解痛肿。最好避免与酒或其他止痛药一起服用。" +msgstr "一种温和的消炎药,亦称乙酰水杨酸,用以缓解轻微的痛肿。最好避免与酒或其他止痛药一起服用。" #: lang/json/COMESTIBLE_from_json.py msgid "bandage" @@ -23260,19 +23260,19 @@ msgstr "绷带" #. ~ Description for bandage #: lang/json/COMESTIBLE_from_json.py msgid "Simple cloth bandages. Used for healing small amounts of damage." -msgstr "简单的布绷带,可以用来包扎小伤口。" +msgstr "一捆简单的医用绷带,可以用来包扎伤口并阻止伤口流血。" #: lang/json/COMESTIBLE_from_json.py msgid "antiseptic powder" msgid_plural "antiseptic powder" -msgstr[0] "消毒粉" +msgstr[0] "医用消毒粉" #. ~ Description for antiseptic powder #: lang/json/COMESTIBLE_from_json.py msgid "" "A powdered form of chemical disinfectant, this bismuth formic iodide cleans " "wounds quickly and painlessly." -msgstr "化学消毒剂的粉末形式,这些BFI消毒粉可以轻松无痛的清洁伤口。" +msgstr "一些粉末形式的化学消毒剂,这些碘化铋甲酸消毒粉可以轻松无痛的清洁伤口。" #: lang/json/COMESTIBLE_from_json.py msgid "special brownie" @@ -23281,7 +23281,7 @@ msgstr "特制布朗尼蛋糕" #. ~ Description for special brownie #: lang/json/COMESTIBLE_from_json.py msgid "This is definitely not how grandma used to bake them." -msgstr "这个和奶奶做的完全不一样啊。" +msgstr "一份包括坚果、霜状白糖、生奶油、巧克力的蛋糕,发源于19世纪末的美国。\n\"这个和外婆做的完全不一样。\"" #: lang/json/COMESTIBLE_from_json.py msgid "caffeinated chewing gum" @@ -23292,7 +23292,7 @@ msgstr "咖啡因口香糖" msgid "" "Chewing gum with added caffeine. Sugary and bad for your teeth, but it's a " "nice pick-me-up." -msgstr "添加咖啡因的口香糖。含糖,并且对你的牙齿不好,但它可以很好的提神。" +msgstr "若干添加咖啡因的口香糖。含糖,可以很好的提神。" #: lang/json/COMESTIBLE_from_json.py msgid "caffeine pill" @@ -23303,7 +23303,7 @@ msgstr "咖啡因含片" msgid "" "No-doz brand caffeine pills, maximum strength. Useful in pulling an all-" "nighter, one pill is about equivalent to a strong cup of coffee." -msgstr "没有品牌的咖啡因药丸,最大药量。熬夜时很有用,一颗相当于一大杯咖啡。" +msgstr "一些没有品牌的咖啡因药丸,为保证出色的效果有着最大咖啡因量,熬夜工作时很有用,一颗相当于一大杯咖啡。" #: lang/json/COMESTIBLE_from_json.py msgid "chewing tobacco" @@ -23353,7 +23353,7 @@ msgstr[0] "雪茄" msgid "" "Rolled, cured tobacco leaf, addictive and hazardous to health.\n" "A gentleman's vice, cigars set the civil man apart from the savage." -msgstr "卷式烤烟,会上瘾,对身体有害。\n绅士大亨们经常一边抽着这玩意一边高谈阔论。" +msgstr "一份卷式烤烟,会上瘾,对身体有害。\n\"绅士大亨们经常一边抽着这玩意一边高谈阔论。\"" #: lang/json/COMESTIBLE_from_json.py msgid "chloroform soaked rag" @@ -23470,12 +23470,12 @@ msgstr "白天使用应付的感冒和流感的药物。不瞌睡。可以抑制 #: lang/json/COMESTIBLE_from_json.py msgid "disinfectant" -msgstr "消毒剂" +msgstr "医用消毒剂" #. ~ Description for disinfectant #: lang/json/COMESTIBLE_from_json.py msgid "A powerful disinfectant commonly used for contaminated wounds." -msgstr "强效消毒剂,用于清洁伤口。" +msgstr "一份强效的消毒剂,用于清洁伤口。" #: lang/json/COMESTIBLE_from_json.py src/addiction.cpp msgid "diazepam" @@ -23522,7 +23522,7 @@ msgstr "流感疫苗" msgid "" "Pharmaceutical flu shot designed for mass vaccinations, still in the " "packaging. Purported to provide immunity to influenza." -msgstr "大灾变用于大规模接种、据说提供某种免疫力的流感疫苗,未开封。\n“”" +msgstr "大灾变用于大规模接种、据说提供某种免疫力的流感疫苗,未开封。" #: lang/json/COMESTIBLE_from_json.py msgid "chewing gum" @@ -23544,7 +23544,7 @@ msgid "" "A roll-your-own made from tobacco and rolling paper. Stimulates mental " "acuity and reduces appetite. Despite being hand crafted, it's still highly " "addictive and hazardous to health." -msgstr "一根你用卷烟纸和烟草DIY的香烟,刺激感知能力并且降低进食欲望。\n\"自产自销的小家伙,应该……对我的健康没影响吧……?应该……吧……\"" +msgstr "一根你用卷烟纸和烟草DIY的香烟,刺激感知能力并且降低进食欲望。\n\"即便自产自销但依旧无法掩盖会导致上瘾且有害健康的事实。\"" #: lang/json/COMESTIBLE_from_json.py msgid "heroin" @@ -23591,7 +23591,7 @@ msgstr[0] "手卷大麻烟" msgid "" "Marijuana, cannabis, pot. Whatever you want to call it, it's rolled up in a" " piece of paper and ready for smokin'." -msgstr "一些大麻,或是飞草,随便你怎么叫,总是这是一个将之用纸卷起来随时可以抽的\"好东西\"。\n\"$m0k3 W33d 3v3ryd@y(每迗磕大痲)——!\"" +msgstr "一些大麻,或是飞草,这是一个将之用纸卷起来随时可以抽的\"好东西\"。\n\"$m0k3 W33d 3v3ryd@y(每迗磕大痲)——!\"" #: lang/json/COMESTIBLE_from_json.py msgid "pink tablet" @@ -23607,7 +23607,7 @@ msgstr "你服用了摇头丸。" msgid "" "Tiny pink candies shaped like hearts, already dosed with some sort of drug." " Really only useful for entertainment. Will cause hallucinations." -msgstr "呈心形的粉红色糖果,一种毒品。只是用来娱乐。会引起幻觉。" +msgstr "一些呈心形的粉红色糖果,一种消遣用毒品,会引起幻觉。" #: lang/json/COMESTIBLE_from_json.py msgid "medical gauze" @@ -23674,7 +23674,7 @@ msgstr[0] "抗感冒药水" msgid "" "Nighttime cold and flu medication. Useful when trying to sleep with a head " "full of virions. Will cause drowsiness." -msgstr "一瓶抗感冒药物,药效发挥会使人感到困倦。" +msgstr "一瓶抗感冒药物,药效的发挥会使人感到困倦。" #: lang/json/COMESTIBLE_from_json.py msgid "oxycodone" @@ -23780,7 +23780,7 @@ msgstr[0] "止血粉" msgid "" "A powdered antihemorrhagic compound that reacts with blood to immediately " "form a gel-like substance that stops bleeding." -msgstr "一些止血粉,用于止血和抗复合反应。" +msgstr "一些接触正在流血的伤口就立即形成一种能止血的凝胶状物质的止血粉。" #: lang/json/COMESTIBLE_from_json.py msgid "saline solution" @@ -23888,7 +23888,7 @@ msgstr "钙片" msgid "" "White calcium tablets. Widely used by elderly people with osteoporosis as a" " method to supplement calcium before the apocalypse." -msgstr "一些白色的钙片。在大灾变之前广泛用于给骨质疏松的老人补充钙质\n\"人啊,一上了年纪就容易缺钙。过去我经常补钙,可是一天三遍地吃,麻烦!现在,有了新盖中盖高钙片……\"" +msgstr "一些白色的钙片。在大灾变之前广泛用于给骨质疏松的老人补充钙质\n\"经过全新科技配方研制而成,一片顶过去五片儿,令人一口气上五楼不费劲。\"" #: lang/json/COMESTIBLE_from_json.py msgid "gummy vitamin" @@ -23900,7 +23900,7 @@ msgid "" "Essential dietary nutrients conveniently packaged in a fruit-flavored chewy " "candy form. An option of last resort when a balanced diet is not possible." " Excess use can cause hypervitaminosis." -msgstr "水果口味耐嚼软糖形式的基本膳食营养。当饮食营养不均衡时的最终解决方案,过多使用会导致复合维生素过多症。" +msgstr "一些水果口味耐嚼软糖形式的基本膳食营养。当饮食营养不均衡时的最终解决方案,过多使用会导致复合维生素过多症。" #: lang/json/COMESTIBLE_from_json.py msgid "injectable vitamin B" @@ -24471,7 +24471,7 @@ msgstr[0] "盐" msgid "" "Yuck! You surely wouldn't want to eat this. It's good for preserving meat " "and cooking, though." -msgstr "呃!你不会是想用这个来直接填饱肚子吧?虽然它是腌制肉类和烹饪的必须原料。" +msgstr "一些腌制肉类和烹饪的必须原料。" #: lang/json/COMESTIBLE_from_json.py msgid "Italian seasoning" @@ -24588,7 +24588,7 @@ msgstr "我们不应存在在这一时空,聪明的小小人类哟,你是用 #: lang/json/COMESTIBLE_from_json.py msgid "revival serum" -msgstr "大变活人血清" +msgstr "复活药水" #. ~ Description for revival serum #: lang/json/COMESTIBLE_from_json.py @@ -24783,7 +24783,7 @@ msgid "" "A slim and lightweight insulated plastic bladder worn on the back. It has a" " large pocket and a capped mouth for filling with liquid with a hose that " "allows the wearer to drink hands-free." -msgstr "配戴在背后的轻薄绝缘塑料水囊,由一个水袋和可用塑料软管充填液体的密封壶嘴构成。配戴者不用动手就能饮用其中的液体。" +msgstr "一个配戴在背后的轻薄绝缘塑料水囊,由一个水袋和可用塑料软管充填液体的密封壶嘴构成。配戴者不用动手就能饮用其中的液体。\n\"多用于单兵饮水携行系统。\"" #: lang/json/CONTAINER_from_json.py msgid "aluminum can" @@ -24793,7 +24793,7 @@ msgstr[0] "铝罐" #. ~ Description for aluminum can #: lang/json/CONTAINER_from_json.py msgid "An aluminum can, like what soda comes in." -msgstr "一个铝罐,就是一般装着苏打水的那种。" +msgstr "一个铝罐,就是一般装着饮料的那种。" #: lang/json/CONTAINER_from_json.py msgid "opened aluminum can" @@ -24805,7 +24805,7 @@ msgstr[0] "铝罐(开)" msgid "" "An aluminum can, like what soda comes in. This one is opened and can't be " "easily sealed." -msgstr "一个铝罐,就是装苏打水的那种。这个已经被打开了而且没法简单的重新密封。" +msgstr "一个铝罐,就是装饮料的那种。这个已经被打开了而且没法简单的重新密封。" #: lang/json/CONTAINER_from_json.py msgid "tin can" @@ -24827,7 +24827,7 @@ msgstr[0] "锡罐(开)" msgid "" "A tin can, like what beans come in. This one is opened and can't be easily " "sealed." -msgstr "一个锡罐,就是装豆子的那种。这个已经被打开而且没法简单的重新密封。" +msgstr "一个锡罐,多用于作为封闭的罐装食品的容器。这个已经被打开而且没法简单的重新密封。" #: lang/json/CONTAINER_from_json.py msgid "plastic canteen" @@ -24859,7 +24859,7 @@ msgstr[0] "陶瓷杯" #. ~ Description for ceramic cup #: lang/json/CONTAINER_from_json.py msgid "A ceramic teacup, pinky out!" -msgstr "一个总是在思考自己杯具命运的陶瓷杯具。\n\"铁杯那家伙,又在说风凉话了。\"" +msgstr "一个陶瓷杯具。\n\"似乎正在思考自己的杯具命运。\"" #: lang/json/CONTAINER_from_json.py msgid "clay canister" @@ -25044,7 +25044,7 @@ msgstr[0] "加仑壶" #. ~ Description for gallon jug #: lang/json/CONTAINER_from_json.py msgid "A standard plastic jug used for milk and household cleaning chemicals." -msgstr "一个标准容量的塑料壶,一般盛放家用清洁剂或者牛奶什么的。" +msgstr "一个标准容量的塑料壶,一般盛放家用清洁剂或者牛奶等液体。" #: lang/json/CONTAINER_from_json.py msgid "aluminum keg" @@ -25791,7 +25791,7 @@ msgstr[0] "大刀片" msgid "" "A large, relatively sharp blade. Could be used to make bladed weaponry, or " "attached to a car." -msgstr "一个锋利的大刀片,用于装在车上对目标造成物理伤害。\n\"难不成还想造成魔法伤害?\"" +msgstr "一个锋利的大刀片,用于装在车上对目标造成物理伤害,也经过可简易的加工成为一把砍刀。" #: lang/json/GENERIC_from_json.py msgid "circular sawblade" @@ -27966,7 +27966,7 @@ msgstr "一块废金属被粗鲁的打制成这个形状,有着层叠的布内 #: lang/json/GENERIC_from_json.py msgid "razorbar katar" msgid_plural "razorbar katars" -msgstr[0] "剃刀拳刃" +msgstr[0] "卡塔尔拳刃" #. ~ Description for razorbar katar #: lang/json/GENERIC_from_json.py @@ -47969,7 +47969,7 @@ msgstr "闪烁的世界终于恢复正常。" #: lang/json/effects_from_json.py msgid "Stunned" -msgstr "被震慑" +msgstr "被眩晕" #. ~ Description of effect 'Stunned'. #: lang/json/effects_from_json.py @@ -47979,7 +47979,7 @@ msgstr "你开始不自主的随意运动。" #. ~ Apply message for effect(s) 'Stunned'. #: lang/json/effects_from_json.py msgid "You're stunned!" -msgstr "你被震慑了!" +msgstr "你被眩晕了!" #: lang/json/effects_from_json.py msgid "Dazed" @@ -54548,6 +54548,33 @@ msgid "" "cartridges." msgstr "陶鲁斯\"愤怒法官\"左轮手枪发射.454 卡苏尔弹,弹容量5发。该型号同时也能够发射.410口径霰弹及.45长柯尔特弹。" +#: lang/json/gunmod_from_json.py +msgid "auto-fire mechanism" +msgid_plural "auto-fire mechanisms" +msgstr[0] "连发装置" + +#: lang/json/gunmod_from_json.py +msgid "" +"A simple mechanism that converts a pistol to a selective fire weapon with a " +"burst size of three rounds. However it reduces accuracy and increases " +"noise." +msgstr "这是一套枪支改造器,可以为手枪附加连发属性,一次可以射出三发子弹,然而同时会减少精确度并增加噪音。" + +#: lang/json/gunmod_from_json.py +msgid "mechanism" +msgstr "机械" + +#: lang/json/gunmod_from_json.py +msgid "handmade auto-fire mechanism" +msgid_plural "handmade auto-fire mechanisms" +msgstr[0] "自制连发装置" + +#: lang/json/gunmod_from_json.py +msgid "" +"Mechanism that allows your CW-24 rifle to fire in fully automatic mode. It " +"is handmade." +msgstr "这个自制的改装模组给你的CW-24步枪增加了自动开火模式。虽然很简陋,但是非常有效。" + #: lang/json/gunmod_from_json.py msgid "arrow rest" msgid_plural "arrow rests" @@ -54838,22 +54865,6 @@ msgid "" " Leadworks magazines. Guaranteed to void your warranty." msgstr "一套非法的工具,用于将枪支永久性改装为使用Leadworks公司弹匣供弹。保证让枪的保修失效。" -#: lang/json/gunmod_from_json.py -msgid "auto-fire mechanism" -msgid_plural "auto-fire mechanisms" -msgstr[0] "连发装置" - -#: lang/json/gunmod_from_json.py -msgid "" -"A simple mechanism that converts a pistol to a selective fire weapon with a " -"burst size of three rounds. However it reduces accuracy and increases " -"noise." -msgstr "这是一套枪支改造器,可以为手枪附加连发属性,一次可以射出三发子弹,然而同时会减少精确度并增加噪音。" - -#: lang/json/gunmod_from_json.py -msgid "mechanism" -msgstr "机械" - #: lang/json/gunmod_from_json.py msgid "rapid blowback" msgid_plural "rapid blowbacks" @@ -55413,17 +55424,6 @@ msgid "" " accuracy and damage." msgstr "这是一整套枪支改装组件,可以将大部分的普通步枪改装成致命的狙击枪,虽然去除了连发功能,但是你射出的每一发子弹将更加精准和致命。" -#: lang/json/gunmod_from_json.py -msgid "handmade auto-fire mechanism" -msgid_plural "handmade auto-fire mechanisms" -msgstr[0] "自制连发装置" - -#: lang/json/gunmod_from_json.py -msgid "" -"Mechanism that allows your CW-24 rifle to fire in fully automatic mode. It " -"is handmade." -msgstr "这个自制的改装模组给你的CW-24步枪增加了自动开火模式。虽然很简陋,但是非常有效。" - #: lang/json/gunmod_from_json.py msgid "5.45 caliber conversion kit" msgid_plural "5.45 caliber conversion kits" @@ -64673,7 +64673,7 @@ msgstr "你认为你自己不再是人类,也不再同情他们。战斗技能 #: lang/json/mutation_from_json.py msgid "Apex Predator" -msgstr "顶级掠食者" +msgstr "生杀予夺" #. ~ Description for Apex Predator #: lang/json/mutation_from_json.py @@ -64690,7 +64690,7 @@ msgstr "嗜人症" #. ~ Description for Sapiovore #: lang/json/mutation_from_json.py msgid "The hairless apes are as good eating as any other meat." -msgstr "那些没毛的猴子们比任何肉都要更好吃!" +msgstr "你认为那些没毛的猴子们比任何肉都要更好吃,你对美味的人肉充满着渴望。" #: lang/json/mutation_from_json.py msgid "Mycus Defender" @@ -64827,7 +64827,7 @@ msgid "" "Your upper earlobes have grown noticeably higher. Fortunately, they don't " "get in the way of your headgear, much. Unfortunately, they also don't seem " "to help your hearing any." -msgstr "你的耳朵像精灵一般,幸运的是,长长的耳垂并不影响你穿戴头饰,但不幸的是,即使耳朵这么大也无法提高听力。" +msgstr "你的耳朵像精灵一般,幸运的是,长长的耳垂并不影响你穿戴头饰,但这仅仅是外观上的改变,并无法增强听力。" #: lang/json/mutation_from_json.py msgid "Web Walker" @@ -64973,7 +64973,7 @@ msgstr "身强体壮" #. ~ Description for Strong #: lang/json/mutation_from_json.py msgid "Your muscles are a little stronger. Strength + 1" -msgstr "经过锻炼,你感觉身体好像比以前强壮了少许。力量+1" +msgstr "你的肌体比以前强壮了少许。力量+1" #: lang/json/mutation_from_json.py msgid "Very Strong" @@ -64982,7 +64982,7 @@ msgstr "肌肉发达" #. ~ Description for Very Strong #: lang/json/mutation_from_json.py msgid "Your muscles are stronger. Strength + 2" -msgstr "在末日的磨砺下,你的肌肉日渐发达。力量+2" +msgstr "在末日的磨砺下,你的肌肉更加发达。力量+2" #: lang/json/mutation_from_json.py msgid "Extremely Strong" @@ -64991,7 +64991,7 @@ msgstr "孔武有力" #. ~ Description for Extremely Strong #: lang/json/mutation_from_json.py msgid "Your muscles are much stronger. Strength + 4" -msgstr "你的肌肉变得强壮无比,比你见过的健身教练还要威猛!力量+4" +msgstr "你的肌肉变得强壮无比。力量+4" #: lang/json/mutation_from_json.py msgid "Insanely Strong" @@ -65031,12 +65031,12 @@ msgstr "你的手脚更加灵活了。敏捷+2" #: lang/json/mutation_from_json.py msgid "Extremely Dextrous" -msgstr "兔起鹘落" +msgstr "高度灵巧" #. ~ Description for Extremely Dextrous #: lang/json/mutation_from_json.py msgid "You are nimble and quick. Dexterity + 4" -msgstr "其疾如风,你领悟了灵活行动的技巧。敏捷+4" +msgstr "你领悟了灵活行动的技巧。敏捷+4" #: lang/json/mutation_from_json.py msgid "Insanely Dextrous" @@ -65045,7 +65045,7 @@ msgstr "风驰电擎" #. ~ Description for Insanely Dextrous #: lang/json/mutation_from_json.py msgid "You are much nimbler than before. Dexterity + 7" -msgstr "你掌握了灵活行动的身法,身手比传说中的忍者也不遑多让。敏捷+7" +msgstr "你掌握了灵活行动的身法。敏捷+7" #: lang/json/mutation_from_json.py msgid "Prime Dexterity" @@ -65170,7 +65170,7 @@ msgid "" "Your sense organs are all over the place: eyes extending and retracting, " "'ears' of various shapes migrating about, and taste & smell are " "uncontrollable. The world is a horrible mixup. Ugh!" -msgstr "你的感知器官非常淘气:眼睛非凸即凹,各种形状的耳朵长的到处都是,假如它们还算是耳朵的话,更别提嗅觉和味觉了,根本不听使唤。这世界变成了一团恐怖的浆糊。呃啊~~" +msgstr "你的感知器官非常淘气:眼睛非凸即凹,各种形状的耳朵长的到处都是,假如它们还算是耳朵的话,更别提嗅觉和味觉了,根本不听使唤。这世界变成了一团恐怖的浆糊。呃啊~!" #: lang/json/mutation_from_json.py msgid "Distributed Senses" @@ -65197,7 +65197,7 @@ msgstr "只要一想到'诱变剂'你就会饥渴难耐,你是如此的迷恋 #: lang/json/mutation_from_json.py msgid "Head Bumps" -msgstr "头部疙瘩" +msgstr "头部隆块" #. ~ Description for Head Bumps #: lang/json/mutation_from_json.py @@ -65268,7 +65268,7 @@ msgid "" "You have a pair of large, leathery wings. You can move them a little, but " "they are useless, and in fact put you off balance, reducing your ability to " "dodge slightly." -msgstr "你的背后有双巨大的翅膀,它太重了以至于不但飞不起来还使你身体失去了平衡。" +msgstr "你的背后有双巨大的翅膀,它太重了以至于不但飞不起来还使你身体失去了平衡,降低了你的闪避能力。" #: lang/json/mutation_from_json.py msgid "Butterfly Wings" @@ -65319,7 +65319,7 @@ msgstr "畸形外貌" #: lang/json/mutation_from_json.py msgid "" "You're minorly deformed. Some people will react badly to your appearance." -msgstr "你长得很委婉,某些人看你可能不顺眼。" +msgstr "你长得像个畸形怪胎,某些人看你可能不顺眼。" #: lang/json/mutation_from_json.py msgid "Badly Deformed" @@ -65330,7 +65330,7 @@ msgstr "丑陋不堪" msgid "" "You're hideously deformed. Some people will have a strong negative reaction" " to your appearance." -msgstr "长的丑不是你的错,出来吓人就是你不对了。" +msgstr "你的面部结构严重变形,有些人可能会对你的外表产生强烈的反感。" #: lang/json/mutation_from_json.py src/artifact.cpp msgid "Grotesque" @@ -65367,7 +65367,7 @@ msgstr "你有一个看起来美丽的外表,一些人会被你外表所吸引 #: lang/json/mutation_from_json.py msgid "Glorious" -msgstr "倾国倾城" +msgstr "极致容貌" #. ~ Description for Glorious #: lang/json/mutation_from_json.py @@ -65450,7 +65450,7 @@ msgstr "鼠嘴" msgid "" "Your face and jaw have extended, giving you an alert and attentive " "appearance." -msgstr "你的脸颊凸出来了,贼眉鼠眼的怎么看都让人放心不下。" +msgstr "你的脸颊凸出来了,让你看起来充满着警觉与细心。" #: lang/json/mutation_from_json.py msgid "Reptilian Muzzle" @@ -71208,9 +71208,9 @@ msgstr "无人机操作员" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You had a job programming machines like automatic street cleaners, newsbots " -"and pizza delivery drones. Now the all the drones carry guns instead of " -"pizza." +"You had a job programming machines such as automatic street cleaners, " +"newsbots and pizza delivery drones. Now all the drones carry guns instead " +"of pizza." msgstr "你曾经有一份给像是给自动道路清扫机器、派报机器人、或者送披萨无人机编程的编程工作,现在所有的无人机都挂着枪炮而不是披萨。" #: lang/json/professions_from_json.py @@ -71222,9 +71222,9 @@ msgstr "无人机女操作员" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You had a job programming machines like automatic street cleaners, newsbots " -"and pizza delivery drones. Now the all the drones carry guns instead of " -"pizza." +"You had a job programming machines such as automatic street cleaners, " +"newsbots and pizza delivery drones. Now all the drones carry guns instead " +"of pizza." msgstr "你曾经有一份给像是给自动道路清扫机器、派报机器人、或者送披萨无人机编程的编程工作,现在所有的无人机都挂着枪炮而不是披萨。" #: lang/json/professions_from_json.py @@ -77570,7 +77570,7 @@ msgstr "我有 麻烦了" #: lang/json/snippet_from_json.py msgid "I'm doomed" -msgstr "我会完犊子" +msgstr "我必死无疑" #: lang/json/snippet_from_json.py msgid "I'm done for" @@ -79957,7 +79957,7 @@ msgstr "不可思议呀![subject name here],[subject hometown here]必将以 msgid "" "That thing is probably some sort of raw sewage container. Go ahead and rub " "your face all over it." -msgstr "" +msgstr "这可能是某种未经处理的污水容器。快去好好洗把脸吧。" #: lang/json/speech_from_json.py msgid "" @@ -79979,30 +79979,30 @@ msgstr "太棒了!在如此悲哀的气氛中,你仍然有着果敢与机智 #: lang/json/speech_from_json.py msgid "Hello again. To reiterate our previous warning: [garbled]" -msgstr "" +msgstr "再次向您致敬。 并重申我们之前的警告: [garbled]" #: lang/json/speech_from_json.py msgid "Weeeeeeeeeeeeeeeeeeeeee[bzzt]" -msgstr "" +msgstr "噫噫噫噫噫噫噫噫噫——[bzzt]" #: lang/json/speech_from_json.py msgid "If you become light headed from thirst, feel free to pass out." -msgstr "" +msgstr "如果你渴昏了头,随时可以放弃。" #: lang/json/speech_from_json.py msgid "" "No further compliance information is required or will be provided, and you " "are an excellent test subject!" -msgstr "" +msgstr "不需要,也不会提供近一步符合讯息,你是个极好的测试对象!" #: lang/json/speech_from_json.py msgid "Thank you for helping us help you help us all." -msgstr "" +msgstr "感谢您对我们的协助……助人即助己。" #: lang/json/speech_from_json.py msgid "" "Cake and grief counseling will be available at the conclusion of the test." -msgstr "" +msgstr "测试结束后将提供蛋糕与心理创伤辅导。" #: lang/json/speech_from_json.py msgid "The experiment is nearing its conclusion." @@ -80012,7 +80012,7 @@ msgstr "这个实验已经进行到最后关头,快要的出结论了。" msgid "" "The Enrichment Center is required to remind you that you will be baked " "[garbled] cake." -msgstr "" +msgstr "富集中心需要提醒您,您即将被做成[乱码]烤蛋糕" #: lang/json/speech_from_json.py msgid "We are very, very happy for your success." @@ -80024,7 +80024,7 @@ msgstr "我们要举行一个派对,来纪念你伟大的胜利。" #: lang/json/speech_from_json.py msgid "A party associate will arrive shortly to collect you for your party." -msgstr "" +msgstr "党的成员将尽快抵达,为党征召你。" #: lang/json/speech_from_json.py msgid "I know you're there. I can feel you here." @@ -80042,7 +80042,7 @@ msgstr "你不该待在这儿,这对你很不安全。" msgid "" "Maybe you think you're helping yourself. But you're not. This isn't " "helping anyone." -msgstr "" +msgstr "也许你认为这样有利于己,然并卵。这对任何人都无助益。" #: lang/json/speech_from_json.py msgid "It's not too late to turn back." @@ -80050,7 +80050,7 @@ msgstr "现在回头还来得及。" #: lang/json/speech_from_json.py msgid "Someone is going to get badly hurt." -msgstr "" +msgstr "有人正受到严重伤害。" #: lang/json/speech_from_json.py msgid "" @@ -80078,7 +80078,7 @@ msgstr "你应该先左转。" msgid "" "Despite your violent behavior, the only thing you've managed to break so far" " is my heart." -msgstr "" +msgstr "那怕你竭尽暴虐,能伤害的也只有我的心罢了。" #: lang/json/speech_from_json.py msgid "What was that? Did you say something? " @@ -80092,7 +80092,7 @@ msgstr "我只想指出,所有通向成功的机会已经给你了。" #: lang/json/speech_from_json.py msgid "What's your point, anyway? Survival?" -msgstr "" +msgstr "你有任何方面的建议吗?生存?" #: lang/json/speech_from_json.py msgid "" @@ -80104,22 +80104,22 @@ msgstr "你所做的每一件事都是错误的,包括这件事。" msgid "" "I have an infinite capacity for knowledge, and even I'm not sure what's " "going on outside." -msgstr "" +msgstr "我拥有无限的知识,而哪怕是我也不确定外面发生了什么。" #: lang/json/speech_from_json.py msgid "" "Stop squirming and die like an adult or I'm going to delete your backup." -msgstr "" +msgstr "停止小动作,像个成熟的人一样赴死。否则我删除你的备份。" #: lang/json/speech_from_json.py msgid "Good job on that, by the way. SARCASM SPHERE SELF-TEST COMPLETE." -msgstr "" +msgstr "顺帶一提,幹得好。 SARCASM SPHERE 自 檢 完 成。" #: lang/json/speech_from_json.py msgid "" "I don't want to tell you your business, but if it were me, I'd leave that " "thing alone." -msgstr "" +msgstr "你的行当我不想插嘴,但要我的话,就会把那事儿留给自己。" #: lang/json/speech_from_json.py msgid "" @@ -94548,7 +94548,7 @@ msgstr "虫类残肢" #: src/field.cpp msgid "torn insect organs" -msgstr "残破虫内脏" +msgstr "残破虫类内脏" #: src/field.cpp msgid "gooey scraps" @@ -95429,7 +95429,7 @@ msgstr "存储游戏数据失败" #: src/game.cpp msgid "Debug Functions - Using these is CHEATING!" -msgstr "调试模式-使用此功能等同于作弊!" +msgstr "调试模式-使用此功能等·同·于·作·弊!" #: src/game.cpp msgid "Wish for an item" @@ -95612,7 +95612,7 @@ msgstr "(你:%d:%d)" #: src/game.cpp #, c-format msgid "%s's head implodes!" -msgstr "%s 脑浆四射!" +msgstr "%s 脑浆炸裂!" #: src/game.cpp msgid "Choose vehicle to spawn" @@ -95938,13 +95938,13 @@ msgstr "%s 撞上了你,它几乎撞开了你的触手。" #, c-format msgid "You were stunned for %d turn!" msgid_plural "You were stunned for %d turns!" -msgstr[0] "你被震慑了 %d 回合!" +msgstr[0] "你被眩晕了 %d 回合!" #: src/game.cpp #, c-format msgid "You were stunned AGAIN for %d turn!" msgid_plural "You were stunned AGAIN for %d turns!" -msgstr[0] "你再次被震慑了 %d 回合!" +msgstr[0] "你再次被眩晕了 %d 回合!" #: src/game.cpp msgid "You collided with something and sent it flying!" @@ -97642,7 +97642,7 @@ msgstr "你突然感觉到一阵莫名剧痛。" #: src/game.cpp msgid "You feel your body decaying." -msgstr "你感觉到自己的身体正在腐烂。" +msgstr "你感觉到自己的生命能量正在消散。" #: src/game.cpp #, c-format @@ -99302,8 +99302,8 @@ msgstr "问:我晚上冻的睡不着!\n答:收集一些衣服什么的, #: src/help.cpp msgid "" "Q: I have a question that's not addressed here. How can I get an answer?\n" -"A: Ask the helpful people on the forum at smf.cataclysmdda.com or at the irc channel #CataclysmDDA on freenode." -msgstr "问:我还有些问题这里没有找到答案,我该去问谁呢?\n答:把你的问题发到smf.cataclysmdda.com的论坛或者freenode的#CataclysmDDA频道,我们将尽量回答。官方论坛有中文讨论专版,也可至百度cataclysmdda吧或3dmgame的cdda专区。by 五毛钱" +"A: Ask the helpful people on the forum at discourse.cataclysmdda.org or at the irc channel #CataclysmDDA on freenode." +msgstr "问:我有疑问却在这篇问答之中找不到,那我怎样才能得到答案?\n答:在discourse.cataclysmdda.org或irc频道# CataclysmDDA自由节点中发问,会有很多乐于助人的人为你解答。" #: src/help.cpp msgid " HELP " @@ -105159,11 +105159,6 @@ msgstr "无法在此处使用 %s。" msgid "The %1$s is too big to put in your %2$s." msgstr "%1$s 对你的 %2$s 来说太大了!" -#: src/iuse.cpp -#, c-format -msgid "Error serializing monster: %s" -msgstr "怪物编号时出错:%s" - #: src/iuse.cpp #, c-format msgid "%s holding %s" @@ -113360,7 +113355,7 @@ msgstr "精疲力尽" #: src/npctalk.cpp src/player.cpp msgid "Dead tired" -msgstr "快累死了" +msgstr "疲于奔命" #: src/npctalk.cpp src/player.cpp msgid "Tired" @@ -113376,11 +113371,11 @@ msgstr "不行就是 不行。" #: src/npctalk.cpp msgid "Just let me sleep, !" -msgstr "求你了让我睡觉吧, !" +msgstr "赶紧让我睡觉吧, !" #: src/npctalk.cpp msgid "Make it quick, I want to go back to sleep." -msgstr "快一点,我想回去睡觉" +msgstr "快点,我想回去睡觉" #: src/npctalk.cpp msgid "Just few minutes more..." @@ -113926,7 +113921,7 @@ msgstr "[交易]做些交易吧,怎样?" #: src/npctalk.cpp msgid "I can't leave the shelter without equipment..." -msgstr "[请求]请给我些你的装备,可以吗?" +msgstr "[索取]请给我些你的装备,可以吗?" #: src/npctalk.cpp msgid "Hmm, okay." @@ -114063,7 +114058,7 @@ msgstr "还有多远?" #: src/npctalk.cpp msgid "I'm going to go my own way for a while." -msgstr "[离队]我们就此分开吧。" +msgstr "[解散]我们就此分开吧。" #: src/npctalk.cpp msgid "I'd like to lead for a while." @@ -114107,7 +114102,7 @@ msgstr "继续赶路吧。" #: src/npctalk.cpp msgid "I need you to come with me." -msgstr "[入队]我需要你和我一起走。" +msgstr "[归队]我需要你和我一起走。" #: src/npctalk.cpp msgid "See you around." @@ -114115,7 +114110,7 @@ msgstr "[取消]嗯,保重吧,回头见。" #: src/npctalk.cpp msgid "Combat commands..." -msgstr "[作战]按我说的方式战斗……" +msgstr "[战术]按我说的方式战斗……" #: src/npctalk.cpp msgid "Give it some time, I'll show you something new later..." @@ -114299,7 +114294,7 @@ msgstr "现在赶紧离开这里。" #: src/npctalk.cpp msgid "Okay, I'm going." -msgstr "好的,我现在就走。" +msgstr "好好,我现在就走。" #: src/npctalk.cpp msgid "Okay." @@ -114343,7 +114338,7 @@ msgstr "任何时刻都保持清醒。" #: src/npctalk.cpp msgid "Stay quiet." -msgstr "保持安静,不要跟我说话。" +msgstr "保持安静,不要随意跟我说话。" #: src/npctalk.cpp msgid "Tell me when you need something." @@ -114351,7 +114346,7 @@ msgstr "当你需要什么的时候就告诉我。" #: src/npctalk.cpp msgid "Leave corpses alone." -msgstr "不理会尸体。" +msgstr "不用理会尸体。" #: src/npctalk.cpp msgid "Smash zombie corpses." @@ -114510,7 +114505,7 @@ msgstr "Shift+S:估测状态" #: src/npctalk.cpp msgid "Shift+Y: Yell" -msgstr "Shift+Y:叫喊" +msgstr "Shift+Y:大声叫喊" #: src/npctalk.cpp msgid "Shift+O: Check opinion" @@ -114626,7 +114621,7 @@ msgstr "你没有可以提供的物品。" #: src/npctalk.cpp msgid "Changed your mind?" -msgstr "改变主意了吗?" +msgstr "改变主意了?" #: src/npctalk.cpp msgid "How?" @@ -114642,7 +114637,7 @@ msgstr "我们开始吧……" #: src/npctalk.cpp msgid "My current weapon is better than this." -msgstr "我手上的这玩意比这个好。" +msgstr "我手上的这东西比这个好。" #: src/npctalk.cpp #, c-format @@ -114890,11 +114885,11 @@ msgstr "阴暗" #: src/output.cpp msgid "dark" -msgstr "黑暗" +msgstr "深暗" #: src/output.cpp msgid "very dark" -msgstr "漆黑" +msgstr "黑暗" #: src/output.h msgid ", and " @@ -115849,7 +115844,7 @@ msgstr "你加快速度,开始奔跑。" #: src/player.cpp msgid "You're too tired to run." -msgstr "你太累了,无法奔跑。" +msgstr "你力竭了,无法奔跑。" #: src/player.cpp msgid "You slow to a walk." @@ -116632,7 +116627,7 @@ msgstr "你不能同时装备超过 %i 件 %s。" #: src/player.cpp msgid "You're already wearing footwear!" -msgstr "你脚上已经穿了鞋子了!" +msgstr "你双脚已经穿了鞋子了!" #: src/player.cpp msgid "You can't wear a helmet!" @@ -116957,7 +116952,7 @@ msgstr "光线不足,你无法阅读!" #: src/player.cpp msgid "Maybe someone could read that to you, but you're deaf!" -msgstr "也许他能读给你听,但是你失聪了!" +msgstr "他也许能读给你听,但是你失聪了!" #: src/player.cpp #, c-format @@ -118048,7 +118043,7 @@ msgstr "你的肌肉发生痉挛。" msgid "" "You're experiencing loss of basic motor skills and blurred vision. Your " "mind recoils in horror, unable to communicate with your spinal column." -msgstr "你感到肌肉无力与视觉模糊,你的意识在巨大的恐惧面前不知所措,无法和脊柱沟通。" +msgstr "你感到肌肉无力与视觉模糊,你的意识被巨大的恐惧淹没,完全不知所措,无法和脊柱沟通。" #: src/player_hardcoded_effects.cpp msgid "You stagger and fall!" @@ -118245,12 +118240,6 @@ msgstr "你的 %s 被卡壳的弹药损坏了!" msgid "'s %s is damaged by the misfired round!" msgstr " 的 %s 被卡壳的弹药损坏了!" -#: src/ranged.cpp -msgid "" -"You'll need to aim at more distant targets to further improve your " -"marksmanship." -msgstr "你需要瞄准距离更远的目标才能继续提升枪法等级。" - #: src/ranged.cpp msgid "Recoil" msgstr "后坐力" @@ -120675,7 +120664,7 @@ msgstr "酸雨灼烧着你!" #: src/weather.cpp msgid "middle of nowhere" -msgstr "无人之地" +msgstr "无人区" #: src/weather.cpp #, c-format diff --git a/lang/po/zh_TW.po b/lang/po/zh_TW.po index 23298798fd175..6ba66136b6c02 100644 --- a/lang/po/zh_TW.po +++ b/lang/po/zh_TW.po @@ -41,9 +41,9 @@ msgid "" msgstr "" "Project-Id-Version: Cataclysm-DDA\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-12-02 03:01-0500\n" -"PO-Revision-Date: 2017-12-07 17:06+0000\n" -"Last-Translator: Laughing Man\n" +"POT-Creation-Date: 2017-12-09 03:47-0500\n" +"PO-Revision-Date: 2017-12-10 12:00+0000\n" +"Last-Translator: Vlasov Vitaly \n" "Language-Team: Chinese (Taiwan) (http://www.transifex.com/cataclysm-dda-translators/cataclysm-dda/language/zh_TW/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -54554,6 +54554,33 @@ msgid "" "cartridges." msgstr "" +#: lang/json/gunmod_from_json.py +msgid "auto-fire mechanism" +msgid_plural "auto-fire mechanisms" +msgstr[0] "連發射擊模組" + +#: lang/json/gunmod_from_json.py +msgid "" +"A simple mechanism that converts a pistol to a selective fire weapon with a " +"burst size of three rounds. However it reduces accuracy and increases " +"noise." +msgstr "讓手槍變成自動武器,可以一次發射三發。但是會降低準確性與增加噪音。" + +#: lang/json/gunmod_from_json.py +msgid "mechanism" +msgstr "機件" + +#: lang/json/gunmod_from_json.py +msgid "handmade auto-fire mechanism" +msgid_plural "handmade auto-fire mechanisms" +msgstr[0] "自製全自動射擊改裝套件" + +#: lang/json/gunmod_from_json.py +msgid "" +"Mechanism that allows your CW-24 rifle to fire in fully automatic mode. It " +"is handmade." +msgstr "此改裝套件讓你的CW-24步槍以全自動射擊模式射擊。它是自製的。" + #: lang/json/gunmod_from_json.py msgid "arrow rest" msgid_plural "arrow rests" @@ -54844,22 +54871,6 @@ msgid "" " Leadworks magazines. Guaranteed to void your warranty." msgstr "一套黑市轉接器,能讓 Leadworks 彈匣裝於其他槍械上。這會讓你的保固失效。" -#: lang/json/gunmod_from_json.py -msgid "auto-fire mechanism" -msgid_plural "auto-fire mechanisms" -msgstr[0] "連發射擊模組" - -#: lang/json/gunmod_from_json.py -msgid "" -"A simple mechanism that converts a pistol to a selective fire weapon with a " -"burst size of three rounds. However it reduces accuracy and increases " -"noise." -msgstr "讓手槍變成自動武器,可以一次發射三發。但是會降低準確性與增加噪音。" - -#: lang/json/gunmod_from_json.py -msgid "mechanism" -msgstr "機件" - #: lang/json/gunmod_from_json.py msgid "rapid blowback" msgid_plural "rapid blowbacks" @@ -55419,17 +55430,6 @@ msgid "" " accuracy and damage." msgstr "該模組會將步槍轉成狙擊步槍,缺點包括降低彈夾容量,只有半自動模式。優點則為增加準確性與傷害。" -#: lang/json/gunmod_from_json.py -msgid "handmade auto-fire mechanism" -msgid_plural "handmade auto-fire mechanisms" -msgstr[0] "自製全自動射擊改裝套件" - -#: lang/json/gunmod_from_json.py -msgid "" -"Mechanism that allows your CW-24 rifle to fire in fully automatic mode. It " -"is handmade." -msgstr "此改裝套件讓你的CW-24步槍以全自動射擊模式射擊。它是自製的。" - #: lang/json/gunmod_from_json.py msgid "5.45 caliber conversion kit" msgid_plural "5.45 caliber conversion kits" @@ -71214,10 +71214,10 @@ msgstr "無人機操作者" #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "" -"You had a job programming machines like automatic street cleaners, newsbots " -"and pizza delivery drones. Now the all the drones carry guns instead of " -"pizza." -msgstr "你有一份替機器編寫程式的工作,像全自動街道清潔機、售報機器人和外送披薩無人機。現在,所有的無人機都掛著槍支,而非披薩。" +"You had a job programming machines such as automatic street cleaners, " +"newsbots and pizza delivery drones. Now all the drones carry guns instead " +"of pizza." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -71228,10 +71228,10 @@ msgstr "無人機操作者" #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "" -"You had a job programming machines like automatic street cleaners, newsbots " -"and pizza delivery drones. Now the all the drones carry guns instead of " -"pizza." -msgstr "你有一份替機器編寫程式的工作,像全自動街道清潔機、售報機器人和外送披薩無人機。現在,所有的無人機都掛著槍支,而非披薩。" +"You had a job programming machines such as automatic street cleaners, " +"newsbots and pizza delivery drones. Now all the drones carry guns instead " +"of pizza." +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -99308,8 +99308,8 @@ msgstr "Q:我好冷,我沒辦法在晚上入睡!\nA:多收集些衣服並把 #: src/help.cpp msgid "" "Q: I have a question that's not addressed here. How can I get an answer?\n" -"A: Ask the helpful people on the forum at smf.cataclysmdda.com or at the irc channel #CataclysmDDA on freenode." -msgstr "Q:我的問題沒有列在這邊。我要怎樣才能取得解答?\nA:你可以到論壇 smf.cataclysmdda.com 發問,或是上freenode的irc,頻道#CataclysmDDA(英文)。\n(譯註:中文討論區可以到komica、PTT 或是巴哈姆特發問)" +"A: Ask the helpful people on the forum at discourse.cataclysmdda.org or at the irc channel #CataclysmDDA on freenode." +msgstr "" #: src/help.cpp msgid " HELP " @@ -105165,11 +105165,6 @@ msgstr "你不能在這裡使用 %s 。" msgid "The %1$s is too big to put in your %2$s." msgstr "%1$s 太大,無法穩定放好你的 %2$s。" -#: src/iuse.cpp -#, c-format -msgid "Error serializing monster: %s" -msgstr "為怪物序列化時發生錯誤:%s" - #: src/iuse.cpp #, c-format msgid "%s holding %s" @@ -118251,12 +118246,6 @@ msgstr "你的 %s 因為不擊發的子彈而受損!" msgid "'s %s is damaged by the misfired round!" msgstr " 的 %s 因為不擊發的子彈而受損!" -#: src/ranged.cpp -msgid "" -"You'll need to aim at more distant targets to further improve your " -"marksmanship." -msgstr "你需要瞄準更遠的目標,以進一步提高你的射擊技術。" - #: src/ranged.cpp msgid "Recoil" msgstr "後座力" diff --git a/src/advanced_inv.cpp b/src/advanced_inv.cpp index 6791909e8d094..4a5519d1aff44 100644 --- a/src/advanced_inv.cpp +++ b/src/advanced_inv.cpp @@ -737,13 +737,13 @@ void advanced_inventory::init() headstart = 0; //(TERMY>w_height)?(TERMY-w_height)/2:0; colstart = ( TERMX > w_width ) ? ( TERMX - w_width ) / 2 : 0; - head = newwin( head_height, w_width - minimap_width, headstart, colstart ); - mm_border = newwin( minimap_height + 2, minimap_width + 2, headstart, + head = catacurses::newwin( head_height, w_width - minimap_width, headstart, colstart ); + mm_border = catacurses::newwin( minimap_height + 2, minimap_width + 2, headstart, colstart + ( w_width - ( minimap_width + 2 ) ) ); - minimap = newwin( minimap_height, minimap_width, headstart + 1, + minimap = catacurses::newwin( minimap_height, minimap_width, headstart + 1, colstart + ( w_width - ( minimap_width + 1 ) ) ); - left_window = newwin( w_height, w_width / 2, headstart + head_height, colstart ); - right_window = newwin( w_height, w_width / 2, headstart + head_height, + left_window = catacurses::newwin( w_height, w_width / 2, headstart + head_height, colstart ); + right_window = catacurses::newwin( w_height, w_width / 2, headstart + head_height, colstart + w_width / 2 ); itemsPerPage = w_height - 2 - 5; // 2 for the borders, 5 for the header stuff diff --git a/src/armor_layers.cpp b/src/armor_layers.cpp index 4ed7e591a2645..ce31255ea3b88 100644 --- a/src/armor_layers.cpp +++ b/src/armor_layers.cpp @@ -260,15 +260,17 @@ void player::sort_armor() }; // Layout window - WINDOW *w_sort_armor = newwin( win_h, win_w, win_y, win_x ); + catacurses::window w_sort_armor = catacurses::newwin( win_h, win_w, win_y, win_x ); draw_grid( w_sort_armor, left_w, middle_w ); // Subwindows (between lines) - WINDOW *w_sort_cat = newwin( 1, win_w - 4, win_y + 1, win_x + 2 ); - WINDOW *w_sort_left = newwin( cont_h, left_w, win_y + 3, win_x + 1 ); - WINDOW *w_sort_middle = newwin( cont_h - num_bp - 1, middle_w, win_y + 3, win_x + left_w + 2 ); - WINDOW *w_sort_right = newwin( cont_h, right_w, win_y + 3, win_x + left_w + middle_w + 3 ); - WINDOW *w_encumb = newwin( num_bp + 1, middle_w, win_y + 3 + cont_h - num_bp - 1, - win_x + left_w + 2 ); + catacurses::window w_sort_cat = catacurses::newwin( 1, win_w - 4, win_y + 1, win_x + 2 ); + catacurses::window w_sort_left = catacurses::newwin( cont_h, left_w, win_y + 3, win_x + 1 ); + catacurses::window w_sort_middle = catacurses::newwin( cont_h - num_bp - 1, middle_w, win_y + 3, + win_x + left_w + 2 ); + catacurses::window w_sort_right = catacurses::newwin( cont_h, right_w, win_y + 3, + win_x + left_w + middle_w + 3 ); + catacurses::window w_encumb = catacurses::newwin( num_bp + 1, middle_w, + win_y + 3 + cont_h - num_bp - 1, win_x + left_w + 2 ); input_context ctxt( "SORT_ARMOR" ); ctxt.register_cardinal(); diff --git a/src/auto_pickup.cpp b/src/auto_pickup.cpp index a361e0053cdf5..0e6ff267d37f3 100644 --- a/src/auto_pickup.cpp +++ b/src/auto_pickup.cpp @@ -44,16 +44,16 @@ void auto_pickup::show( const std::string &custom_name, bool is_autopickup ) const int iTotalCols = 2; - WINDOW *w_help = newwin((FULL_SCREEN_HEIGHT / 2) - 2, FULL_SCREEN_WIDTH * 3 / 4, + catacurses::window w_help = catacurses::newwin( ( FULL_SCREEN_HEIGHT / 2 ) - 2, FULL_SCREEN_WIDTH * 3 / 4, 7 + iOffsetY + (FULL_SCREEN_HEIGHT / 2) / 2, iOffsetX + 19 / 2); WINDOW_PTR w_helpptr( w_help ); - WINDOW *w_border = newwin(FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, iOffsetY, iOffsetX); + catacurses::window w_border = catacurses::newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, iOffsetY, iOffsetX ); WINDOW_PTR w_borderptr( w_border ); - WINDOW *w_header = newwin(iHeaderHeight, FULL_SCREEN_WIDTH - 2, 1 + iOffsetY, + catacurses::window w_header = catacurses::newwin( iHeaderHeight, FULL_SCREEN_WIDTH - 2, 1 + iOffsetY, 1 + iOffsetX); WINDOW_PTR w_headerptr( w_header ); - WINDOW *w = newwin(iContentHeight, FULL_SCREEN_WIDTH - 2, iHeaderHeight + 1 + iOffsetY, + catacurses::window w = catacurses::newwin( iContentHeight, FULL_SCREEN_WIDTH - 2, iHeaderHeight + 1 + iOffsetY, 1 + iOffsetX); WINDOW_PTR wptr( w ); @@ -397,9 +397,9 @@ void auto_pickup::test_pattern(const int iTab, const int iRow) const int iContentWidth = FULL_SCREEN_WIDTH - 30; std::ostringstream sTemp; - WINDOW *w_test_rule_border = newwin(iContentHeight + 2, iContentWidth, iOffsetY, iOffsetX); + catacurses::window w_test_rule_border = catacurses::newwin( iContentHeight + 2, iContentWidth, iOffsetY, iOffsetX ); WINDOW_PTR w_test_rule_borderptr( w_test_rule_border ); - WINDOW *w_test_rule_content = newwin(iContentHeight, iContentWidth - 2, 1 + iOffsetY, 1 + iOffsetX); + catacurses::window w_test_rule_content = catacurses::newwin( iContentHeight, iContentWidth - 2, 1 + iOffsetY, 1 + iOffsetX ); WINDOW_PTR w_test_rule_contentptr( w_test_rule_content ); draw_border(w_test_rule_border); diff --git a/src/bionics.cpp b/src/bionics.cpp index 3f68afe289e14..57e1c54e1a3e9 100644 --- a/src/bionics.cpp +++ b/src/bionics.cpp @@ -314,7 +314,8 @@ bool player::activate_bionic( int b, bool eff_only ) const size_t win_h = std::min( static_cast( TERMY ), bad.size() + good.size() + 2 ); const int win_w = 46; - WINDOW *w = newwin( win_h, win_w, ( TERMY - win_h ) / 2, ( TERMX - win_w ) / 2 ); + catacurses::window w = catacurses::newwin( win_h, win_w, ( TERMY - win_h ) / 2, + ( TERMX - win_w ) / 2 ); draw_border( w, c_red, string_format( " %s ", _( "Blood Test Results" ) ) ); if( good.empty() && bad.empty() ) { trim_and_print( w, 1, 2, win_w - 3, c_white, _( "No effects." ) ); diff --git a/src/bionics_ui.cpp b/src/bionics_ui.cpp index 6229ab458796e..2d4da6ee1e1be 100644 --- a/src/bionics_ui.cpp +++ b/src/bionics_ui.cpp @@ -32,6 +32,10 @@ enum bionic_menu_mode { bionic *player::bionic_by_invlet( const long ch ) { + if( ch == ' ' ) { // space is a special case for unassigned + return nullptr; + } + for( auto &elem : *my_bionics ) { if( elem.invlet == ch ) { return &elem; @@ -315,7 +319,7 @@ void player::power_bionics() const int START_X = ( TERMX - WIDTH ) / 2; const int START_Y = ( TERMY - HEIGHT ) / 2; //wBio is the entire bionic window - WINDOW *wBio = newwin( HEIGHT, WIDTH, START_Y, START_X ); + catacurses::window wBio = catacurses::newwin( HEIGHT, WIDTH, START_Y, START_X ); WINDOW_PTR wBioptr( wBio ); const int LIST_HEIGHT = HEIGHT - TITLE_HEIGHT - TITLE_TAB_HEIGHT - 2; @@ -324,19 +328,21 @@ void player::power_bionics() const int DESCRIPTION_START_Y = START_Y + TITLE_HEIGHT + TITLE_TAB_HEIGHT + 1; const int DESCRIPTION_START_X = START_X + 1 + 40; //w_description is the description panel that is controlled with ! key - WINDOW *w_description = newwin( LIST_HEIGHT, DESCRIPTION_WIDTH, - DESCRIPTION_START_Y, DESCRIPTION_START_X ); + catacurses::window w_description = catacurses::newwin( LIST_HEIGHT, DESCRIPTION_WIDTH, + DESCRIPTION_START_Y, DESCRIPTION_START_X ); WINDOW_PTR w_descriptionptr( w_description ); // Title window const int TITLE_START_Y = START_Y + 1; const int HEADER_LINE_Y = TITLE_HEIGHT + TITLE_TAB_HEIGHT + 1; - WINDOW *w_title = newwin( TITLE_HEIGHT, WIDTH - 2, TITLE_START_Y, START_X + 1 ); + catacurses::window w_title = catacurses::newwin( TITLE_HEIGHT, WIDTH - 2, TITLE_START_Y, + START_X + 1 ); WINDOW_PTR w_titleptr( w_title ); const int TAB_START_Y = TITLE_START_Y + 2; //w_tabs is the tab bar for passive and active bionic groups - WINDOW *w_tabs = newwin( TITLE_TAB_HEIGHT, WIDTH - 2, TAB_START_Y, START_X + 1 ); + catacurses::window w_tabs = catacurses::newwin( TITLE_TAB_HEIGHT, WIDTH - 2, TAB_START_Y, + START_X + 1 ); WINDOW_PTR w_tabsptr( w_tabs ); int scroll_position = 0; @@ -471,18 +477,60 @@ void player::power_bionics() const long ch = ctxt.get_raw_input().get_first_input(); bionic *tmp = NULL; bool confirmCheck = false; - if( menu_mode == REASSIGNING ) { + + if( action == "DOWN" ) { + redraw = true; + if( static_cast( cursor ) < current_bionic_list->size() - 1 ) { + cursor++; + } else { + cursor = 0; + } + if( scroll_position < max_scroll_position && + cursor - scroll_position > LIST_HEIGHT - half_list_view_location ) { + scroll_position++; + } + if( scroll_position > 0 && cursor - scroll_position < half_list_view_location ) { + scroll_position = std::max( cursor - half_list_view_location, 0 ); + } + } else if( action == "UP" ) { + redraw = true; + if( cursor > 0 ) { + cursor--; + } else { + cursor = current_bionic_list->size() - 1; + } + if( scroll_position > 0 && cursor - scroll_position < half_list_view_location ) { + scroll_position--; + } + if( scroll_position < max_scroll_position && + cursor - scroll_position > LIST_HEIGHT - half_list_view_location ) { + scroll_position = + std::max( std::min( current_bionic_list->size() - LIST_HEIGHT, + cursor - half_list_view_location ), 0 ); + } + } else if( menu_mode == REASSIGNING ) { menu_mode = ACTIVATING; - tmp = bionic_by_invlet( ch ); + + if( action == "CONFIRM" && !current_bionic_list->empty() ) { + auto &bio_list = tab_mode == TAB_ACTIVE ? active : passive; + tmp = bio_list[cursor]; + } else { + tmp = bionic_by_invlet( ch ); + } + if( tmp == nullptr ) { // Selected an non-existing bionic (or escape, or ...) continue; } redraw = true; - const long newch = popup_getkey( _( "%s; enter new letter." ), + const long newch = popup_getkey( _( "%s; enter new letter. Space to clear. Esc to cancel." ), tmp->id->name.c_str() ); wrefresh( wBio ); - if( newch == ch || newch == ' ' || newch == KEY_ESCAPE ) { + if( newch == ch || newch == KEY_ESCAPE ) { + continue; + } + if( newch == ' ' ) { + tmp->invlet = ' '; continue; } if( !bionic_chars.valid( newch ) ) { @@ -515,23 +563,6 @@ void player::power_bionics() } else { tab_mode = TAB_PASSIVE; } - } else if( action == "DOWN" ) { - redraw = true; - if( static_cast( cursor ) < current_bionic_list->size() - 1 ) { - cursor++; - } - if( scroll_position < max_scroll_position && - cursor - scroll_position > LIST_HEIGHT - half_list_view_location ) { - scroll_position++; - } - } else if( action == "UP" ) { - redraw = true; - if( cursor > 0 ) { - cursor--; - } - if( scroll_position > 0 && cursor - scroll_position < half_list_view_location ) { - scroll_position--; - } } else if( action == "REASSIGN" ) { menu_mode = REASSIGNING; } else if( action == "TOGGLE_EXAMINE" ) { // switches between activation and examination diff --git a/src/character.cpp b/src/character.cpp index 7e33a4405c460..df4497eb41086 100644 --- a/src/character.cpp +++ b/src/character.cpp @@ -1889,7 +1889,7 @@ hp_part Character::body_window( const std::string &menu_header, int normal_bonus, int head_bonus, int torso_bonus, bool bleed, bool bite, bool infect ) const { - WINDOW *hp_window = newwin(10, 31, (TERMY - 10) / 2, (TERMX - 31) / 2); + catacurses::window hp_window = catacurses::newwin( 10, 31, ( TERMY - 10 ) / 2, ( TERMX - 31 ) / 2 ); draw_border(hp_window); trim_and_print( hp_window, 1, 1, getmaxx(hp_window) - 2, c_light_red, menu_header.c_str() ); diff --git a/src/color.cpp b/src/color.cpp index ed7e47d815f51..f1d8d2edf54f4 100644 --- a/src/color.cpp +++ b/src/color.cpp @@ -682,17 +682,21 @@ void color_manager::show_gui() const int iTotalCols = vLines.size(); - WINDOW *w_colors_help = newwin( ( FULL_SCREEN_HEIGHT / 2 ) - 2, FULL_SCREEN_WIDTH * 3 / 4, - 7 + iOffsetY + ( FULL_SCREEN_HEIGHT / 2 ) / 2, iOffsetX + 19 / 2 ); + catacurses::window w_colors_help = catacurses::newwin( ( FULL_SCREEN_HEIGHT / 2 ) - 2, + FULL_SCREEN_WIDTH * 3 / 4, + 7 + iOffsetY + ( FULL_SCREEN_HEIGHT / 2 ) / 2, iOffsetX + 19 / 2 ); WINDOW_PTR w_colors_helpptr( w_colors_help ); - WINDOW *w_colors_border = newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, iOffsetY, iOffsetX ); + catacurses::window w_colors_border = catacurses::newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, + iOffsetY, iOffsetX ); WINDOW_PTR w_colors_borderptr( w_colors_border ); - WINDOW *w_colors_header = newwin( iHeaderHeight, FULL_SCREEN_WIDTH - 2, 1 + iOffsetY, - 1 + iOffsetX ); + catacurses::window w_colors_header = catacurses::newwin( iHeaderHeight, FULL_SCREEN_WIDTH - 2, + 1 + iOffsetY, + 1 + iOffsetX ); WINDOW_PTR w_colors_headerptr( w_colors_header ); - WINDOW *w_colors = newwin( iContentHeight, FULL_SCREEN_WIDTH - 2, iHeaderHeight + 1 + iOffsetY, - 1 + iOffsetX ); + catacurses::window w_colors = catacurses::newwin( iContentHeight, FULL_SCREEN_WIDTH - 2, + iHeaderHeight + 1 + iOffsetY, + 1 + iOffsetX ); WINDOW_PTR w_colorsptr( w_colors ); draw_border( w_colors_border, BORDER_COLOR, _( " COLOR MANAGER " ) ); diff --git a/src/computer.cpp b/src/computer.cpp index f31781e05f89c..7421fcd089794 100644 --- a/src/computer.cpp +++ b/src/computer.cpp @@ -122,12 +122,12 @@ void computer::shutdown_terminal() void computer::use() { if (w_border == NULL) { - w_border = newwin(FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, + w_border = catacurses::newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, (TERMY > FULL_SCREEN_HEIGHT) ? (TERMY - FULL_SCREEN_HEIGHT) / 2 : 0, (TERMX > FULL_SCREEN_WIDTH) ? (TERMX - FULL_SCREEN_WIDTH) / 2 : 0); } if (w_terminal == NULL) { - w_terminal = newwin(getmaxy(w_border) - 2, getmaxx(w_border) - 2, + w_terminal = catacurses::newwin( getmaxy( w_border ) - 2, getmaxx( w_border ) - 2, getbegy(w_border) + 1, getbegx(w_border) + 1); } draw_border(w_border); diff --git a/src/construction.cpp b/src/construction.cpp index a323afa27b7e6..88ff90534cc8a 100644 --- a/src/construction.cpp +++ b/src/construction.cpp @@ -197,13 +197,13 @@ void construction_menu() const int w_width = std::max( FULL_SCREEN_WIDTH, TERMX * 2 / 3); const int w_y0 = ( TERMY > w_height ) ? ( TERMY - w_height ) / 2 : 0; const int w_x0 = ( TERMX > w_width ) ? ( TERMX - w_width ) / 2 : 0; - WINDOW_PTR w_con_ptr {newwin( w_height, w_width, w_y0, w_x0 )}; + catacurses::WINDOW_PTR w_con_ptr {catacurses::newwin( w_height, w_width, w_y0, w_x0 )}; WINDOW *const w_con = w_con_ptr.get(); const int w_list_width = int( .375 * w_width ); const int w_list_height = w_height - 4; const int w_list_x0 = 1; - WINDOW_PTR w_list_ptr {newwin( w_list_height, w_list_width, w_y0 + 3, w_x0 + w_list_x0 )}; + catacurses::WINDOW_PTR w_list_ptr {catacurses::newwin( w_list_height, w_list_width, w_y0 + 3, w_x0 + w_list_x0 )}; WINDOW *const w_list = w_list_ptr.get(); draw_grid( w_con, w_list_width + w_list_x0 ); diff --git a/src/crafting_gui.cpp b/src/crafting_gui.cpp index 6caf8e6f6b806..dfdec94384272 100644 --- a/src/crafting_gui.cpp +++ b/src/crafting_gui.cpp @@ -134,11 +134,12 @@ const recipe *select_crafting_recipe( int &batch_size ) const recipe *last_recipe = nullptr; - WINDOW *w_head = newwin( headHeight, width, 0, wStart ); + catacurses::window w_head = catacurses::newwin( headHeight, width, 0, wStart ); WINDOW_PTR w_head_ptr( w_head ); - WINDOW *w_subhead = newwin( subHeadHeight, width, 3, wStart ); + catacurses::window w_subhead = catacurses::newwin( subHeadHeight, width, 3, wStart ); WINDOW_PTR w_subhead_ptr( w_subhead ); - WINDOW *w_data = newwin( dataHeight, width, headHeight + subHeadHeight, wStart ); + catacurses::window w_data = catacurses::newwin( dataHeight, width, headHeight + subHeadHeight, + wStart ); WINDOW_PTR w_data_ptr( w_data ); int item_info_x = infoWidth; @@ -153,7 +154,8 @@ const recipe *select_crafting_recipe( int &batch_size ) item_info_height = 1; } - WINDOW *w_iteminfo = newwin( item_info_y, item_info_x, item_info_height, item_info_width ); + catacurses::window w_iteminfo = catacurses::newwin( item_info_y, item_info_x, item_info_height, + item_info_width ); WINDOW_PTR w_iteminfo_ptr( w_iteminfo ); list_circularizer tab( craft_cat_list ); diff --git a/src/cursesdef.h b/src/cursesdef.h index 1fb5dd96d3626..78a061c8387be 100644 --- a/src/cursesdef.h +++ b/src/cursesdef.h @@ -36,7 +36,7 @@ class nc_color; //Currently this namespace is automatically exported into the global namespace to //allow existing code (that called global ncurses functions) to remain unchanged. //The compiler will translate `WINDOW *win = newwin(...)` into -//`catacurses::WINDWO *win = catacurses::newwin(...)` +//`catacurses::WINDOW *win = catacurses::newwin(...)` namespace catacurses { diff --git a/src/defense.cpp b/src/defense.cpp index ffa73753b2b4f..7eb8d5c9a5863 100644 --- a/src/defense.cpp +++ b/src/defense.cpp @@ -457,7 +457,7 @@ void defense_game::init_to_style(defense_style new_style) void defense_game::setup() { - WINDOW *w = newwin(FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, + catacurses::window w = catacurses::newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, (TERMY > FULL_SCREEN_HEIGHT) ? (TERMY - FULL_SCREEN_HEIGHT) / 2 : 0, (TERMX > FULL_SCREEN_WIDTH) ? (TERMX - FULL_SCREEN_WIDTH) / 2 : 0); WINDOW_PTR wptr( w ); @@ -888,7 +888,7 @@ void defense_game::caravan() unsigned total_price = 0; - WINDOW *w = newwin(FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, 0, 0); + catacurses::window w = catacurses::newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, 0, 0 ); WINDOW_PTR wptr( w ); int offset = 0, item_selected = 0, category_selected = 0; diff --git a/src/descriptions.cpp b/src/descriptions.cpp index 2c78b6fd5ae2d..242e8ed9bf4b2 100644 --- a/src/descriptions.cpp +++ b/src/descriptions.cpp @@ -37,8 +37,8 @@ void game::extended_description( const tripoint &p ) const int bottom = TERMY; const int width = right - left; const int height = bottom - top; - WINDOW *w_head = newwin( top, TERMX, 0, 0 ); - WINDOW *w_main = newwin( height, width, top, left ); + catacurses::window w_head = catacurses::newwin( top, TERMX, 0, 0 ); + catacurses::window w_main = catacurses::newwin( height, width, top, left ); // @todo De-hardcode std::string header_message = _( "\ c to describe creatures, f to describe furniture, t to describe terrain, esc/enter to close." ); diff --git a/src/editmap.cpp b/src/editmap.cpp index 497bcfa6979f4..96e1a23e00ba7 100644 --- a/src/editmap.cpp +++ b/src/editmap.cpp @@ -380,8 +380,8 @@ tripoint editmap::edit() uberdraw = uistate.editmap_nsa_viewmode; infoHeight = 14; - w_info = newwin( infoHeight, width, TERMY - infoHeight, offsetX ); - w_help = newwin( 3, width - 2, TERMY - 3, offsetX + 1 ); + w_info = catacurses::newwin( infoHeight, width, TERMY - infoHeight, offsetX ); + w_help = catacurses::newwin( 3, width - 2, TERMY - 3, offsetX + 1 ); for( int i = 0; i < getmaxx( w_help ); i++ ) { mvwaddch( w_help, 2, i, LINE_OXOX ); } @@ -756,7 +756,7 @@ int editmap::edit_ter() int ret = 0; int pwh = TERMY - 4; - WINDOW *w_pickter = newwin( pwh, width, VIEW_OFFSET_Y, offsetX ); + catacurses::window w_pickter = catacurses::newwin( pwh, width, VIEW_OFFSET_Y, offsetX ); draw_border( w_pickter ); wrefresh( w_pickter ); @@ -1216,7 +1216,7 @@ int editmap::edit_trp() int ret = 0; int pwh = TERMY - infoHeight; - WINDOW *w_picktrap = newwin( pwh, width, VIEW_OFFSET_Y, offsetX ); + catacurses::window w_picktrap = catacurses::newwin( pwh, width, VIEW_OFFSET_Y, offsetX ); draw_border( w_picktrap ); int tmax = pwh - 3; int tshift = 0; @@ -1678,7 +1678,7 @@ int editmap::mapgen_preview( real_coords &tc, uimenu &gmenu ) tmpmap.generate( omt_pos.x * 2, omt_pos.y * 2, target.z, calendar::turn ); tripoint pofs = pos2screen( { target.x - 11, target.y - 11, target.z } ); - WINDOW *w_preview = newwin( 24, 24, pofs.y, pofs.x ); + catacurses::window w_preview = catacurses::newwin( 24, 24, pofs.y, pofs.x ); gmenu.border_color = c_light_gray; gmenu.hilight_color = c_black_white; diff --git a/src/game.cpp b/src/game.cpp index 51c0703269401..1b2cc93061456 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -183,6 +183,7 @@ static const bionic_id bio_remote( "bio_remote" ); static const trait_id trait_GRAZER( "GRAZER" ); static const trait_id trait_HIBERNATE( "HIBERNATE" ); +static const trait_id trait_ILLITERATE( "ILLITERATE" ); static const trait_id trait_INCONSPICUOUS( "INCONSPICUOUS" ); static const trait_id trait_INFIMMUNE( "INFIMMUNE" ); static const trait_id trait_INFRESIST( "INFRESIST" ); @@ -525,7 +526,7 @@ void game::init_ui() POSY = TERRAIN_WINDOW_HEIGHT / 2; // Set up the main UI windows. - w_terrain = newwin(TERRAIN_WINDOW_HEIGHT, TERRAIN_WINDOW_WIDTH, + w_terrain = catacurses::newwin( TERRAIN_WINDOW_HEIGHT, TERRAIN_WINDOW_WIDTH, VIEW_OFFSET_Y, right_sidebar ? VIEW_OFFSET_X : VIEW_OFFSET_X + sidebarWidth); w_terrain_ptr.reset( w_terrain ); @@ -640,23 +641,23 @@ void game::init_ui() int _y = VIEW_OFFSET_Y; int _x = right_sidebar ? TERMX - VIEW_OFFSET_X - sidebarWidth : VIEW_OFFSET_X; - w_minimap = newwin(MINIMAP_HEIGHT, MINIMAP_WIDTH, _y + minimapY, _x + minimapX); + w_minimap = catacurses::newwin( MINIMAP_HEIGHT, MINIMAP_WIDTH, _y + minimapY, _x + minimapX ); w_minimap_ptr.reset( w_minimap ); werase(w_minimap); - w_HP = newwin(hpH, hpW, _y + hpY, _x + hpX); + w_HP = catacurses::newwin( hpH, hpW, _y + hpY, _x + hpX ); w_HP_ptr.reset( w_HP ); werase(w_HP); - w_messages_short = newwin(messHshort, messW, _y + messY, _x + messX); + w_messages_short = catacurses::newwin( messHshort, messW, _y + messY, _x + messX ); w_messages_short_ptr.reset( w_messages_short ); werase(w_messages_short); - w_messages_long = newwin(messHlong, messW, _y + messY, _x + messX); + w_messages_long = catacurses::newwin( messHlong, messW, _y + messY, _x + messX ); w_messages_long_ptr.reset( w_messages_long ); werase(w_messages_long); - w_pixel_minimap = newwin(pixelminimapH, pixelminimapW, _y + pixelminimapY, _x + pixelminimapX); + w_pixel_minimap = catacurses::newwin( pixelminimapH, pixelminimapW, _y + pixelminimapY, _x + pixelminimapX ); w_pixel_minimap_ptr.reset( w_pixel_minimap ); werase(w_pixel_minimap); @@ -665,15 +666,15 @@ void game::init_ui() w_messages = w_messages_long; } - w_location = newwin(locH, locW, _y + locY, _x + locX); + w_location = catacurses::newwin( locH, locW, _y + locY, _x + locX ); w_location_ptr.reset( w_location ); werase(w_location); - w_status = newwin(statH, statW, _y + statY, _x + statX); + w_status = catacurses::newwin( statH, statW, _y + statY, _x + statX ); w_status_ptr.reset( w_status ); werase(w_status); - w_status2 = newwin(stat2H, stat2W, _y + stat2Y, _x + stat2X); + w_status2 = catacurses::newwin( stat2H, stat2W, _y + stat2Y, _x + stat2X ); w_status2_ptr.reset( w_status2 ); werase(w_status2); @@ -1132,7 +1133,7 @@ bool game::cleanup_at_end() const int iOffsetX = (TERMX > FULL_SCREEN_WIDTH) ? (TERMX - FULL_SCREEN_WIDTH) / 2 : 0; const int iOffsetY = (TERMY > FULL_SCREEN_HEIGHT) ? (TERMY - FULL_SCREEN_HEIGHT) / 2 : 0; - WINDOW *w_rip = newwin(FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, iOffsetY, iOffsetX); + catacurses::window w_rip = catacurses::newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, iOffsetY, iOffsetX ); draw_border(w_rip); sfx::do_player_death_hurt( g->u, 1 ); @@ -4404,7 +4405,7 @@ void game::draw_overmap() void game::disp_kills() { - WINDOW *w = newwin(FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, + catacurses::window w = catacurses::newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, std::max(0, (TERMY - FULL_SCREEN_HEIGHT) / 2), std::max(0, (TERMX - FULL_SCREEN_WIDTH) / 2)); @@ -4464,7 +4465,7 @@ void game::disp_kills() void game::disp_NPC_epilogues() { - WINDOW *w = newwin(FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, + catacurses::window w = catacurses::newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, std::max(0, (TERMY - FULL_SCREEN_HEIGHT) / 2), std::max(0, (TERMX - FULL_SCREEN_WIDTH) / 2)); std::vector data; @@ -4493,7 +4494,7 @@ void game::disp_NPC_epilogues() void game::disp_faction_ends() { - WINDOW *w = newwin(FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, + catacurses::window w = catacurses::newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, std::max(0, (TERMY - FULL_SCREEN_HEIGHT) / 2), std::max(0, (TERMX - FULL_SCREEN_WIDTH) / 2)); std::vector data; @@ -4682,7 +4683,7 @@ struct npc_dist_to_player { void game::disp_NPCs() { - WINDOW *w = newwin(FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, + catacurses::window w = catacurses::newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, (TERMY > FULL_SCREEN_HEIGHT) ? (TERMY - FULL_SCREEN_HEIGHT) / 2 : 0, (TERMX > FULL_SCREEN_WIDTH) ? (TERMX - FULL_SCREEN_WIDTH) / 2 : 0); @@ -4723,10 +4724,10 @@ faction *game::list_factions(std::string title) return nullptr; } - WINDOW *w_list = newwin(FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, + catacurses::window w_list = catacurses::newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, ((TERMY > FULL_SCREEN_HEIGHT) ? (TERMY - FULL_SCREEN_HEIGHT) / 2 : 0), (TERMX > FULL_SCREEN_WIDTH) ? (TERMX - FULL_SCREEN_WIDTH) / 2 : 0); - WINDOW *w_info = newwin(FULL_SCREEN_HEIGHT - 2, FULL_SCREEN_WIDTH - 1 - MAX_FAC_NAME_SIZE, + catacurses::window w_info = catacurses::newwin( FULL_SCREEN_HEIGHT - 2, FULL_SCREEN_WIDTH - 1 - MAX_FAC_NAME_SIZE, 1 + ((TERMY > FULL_SCREEN_HEIGHT) ? (TERMY - FULL_SCREEN_HEIGHT) / 2 : 0), MAX_FAC_NAME_SIZE + ((TERMX > FULL_SCREEN_WIDTH) ? (TERMX - FULL_SCREEN_WIDTH) / 2 : 0)); @@ -7853,12 +7854,10 @@ void game::print_terrain_info( const tripoint &lp, WINDOW *w_look, int column, i wprintz(w_look, ll.second, ll.first.c_str()); } - std::string signage = m.get_signage( lp ); - if (!signage.empty() && signage.size() < 36) { - mvwprintw(w_look, ++line, column, _("Sign: %s"), signage.c_str()); - } else if (!signage.empty()) { - // Truncate to width of window as a guesstimate. - mvwprintw(w_look, ++line, column, _("Sign: %s..."), signage.substr(0, 32).c_str()); + const int max_width = getmaxx( w_look ) - column - 1; + std::string signage = u.has_trait( trait_ILLITERATE ) ? _( "???" ) : m.get_signage( lp ); + if( !signage.empty() ) { + trim_and_print( w_look, ++line, column, max_width, c_light_gray, _( "Sign: %s" ), signage.c_str() ); } if( m.has_zlevels() && lp.z > -OVERMAP_DEPTH && !m.has_floor( lp ) ) { @@ -8084,13 +8083,13 @@ void game::zones_manager() const int offsetX = right_sidebar ? TERMX - VIEW_OFFSET_X - width : VIEW_OFFSET_X; - WINDOW *w_zones = newwin(TERMY - 2 - zone_ui_height - VIEW_OFFSET_Y * 2, width - 2, + catacurses::window w_zones = catacurses::newwin( TERMY - 2 - zone_ui_height - VIEW_OFFSET_Y * 2, width - 2, VIEW_OFFSET_Y + 1, offsetX + 1); - WINDOW *w_zones_border = newwin(TERMY - zone_ui_height - VIEW_OFFSET_Y * 2, width, + catacurses::window w_zones_border = catacurses::newwin( TERMY - zone_ui_height - VIEW_OFFSET_Y * 2, width, VIEW_OFFSET_Y, offsetX); - WINDOW *w_zones_info = newwin(zone_ui_height - 1, width - 2, + catacurses::window w_zones_info = catacurses::newwin( zone_ui_height - 1, width - 2, TERMY - zone_ui_height - VIEW_OFFSET_Y, offsetX + 1); - WINDOW *w_zones_info_border = newwin(zone_ui_height, width, + catacurses::window w_zones_info_border = catacurses::newwin( zone_ui_height, width, TERMY - zone_ui_height - VIEW_OFFSET_Y, offsetX); zones_manager_draw_borders(w_zones_border, w_zones_info_border, zone_ui_height, width); @@ -8467,7 +8466,7 @@ tripoint game::look_around( WINDOW *w_info, const tripoint &start_point, bool bNewWindow = false; if (w_info == nullptr) { - w_info = newwin(LOOK_AROUND_HEIGHT, lookWidth, lookY, lookX); + w_info = catacurses::newwin( LOOK_AROUND_HEIGHT, lookWidth, lookY, lookX ); bNewWindow = true; } @@ -8988,13 +8987,13 @@ game::vmenu_ret game::list_items( const std::vector &item_list ) const int width = use_narrow_sidebar() ? 45 : 55; const int offsetX = right_sidebar ? TERMX - VIEW_OFFSET_X - width : VIEW_OFFSET_X; - WINDOW *w_items = newwin(TERMY - 2 - iInfoHeight - VIEW_OFFSET_Y * 2, width - 2,VIEW_OFFSET_Y + 1, offsetX + 1); + catacurses::window w_items = catacurses::newwin( TERMY - 2 - iInfoHeight - VIEW_OFFSET_Y * 2, width - 2,VIEW_OFFSET_Y + 1, offsetX + 1 ); WINDOW_PTR w_itemsptr( w_items ); - WINDOW *w_items_border = newwin(TERMY - iInfoHeight - VIEW_OFFSET_Y * 2, width,VIEW_OFFSET_Y, offsetX); + catacurses::window w_items_border = catacurses::newwin( TERMY - iInfoHeight - VIEW_OFFSET_Y * 2, width,VIEW_OFFSET_Y, offsetX ); WINDOW_PTR w_items_borderptr( w_items_border ); - WINDOW *w_item_info = newwin(iInfoHeight, width, TERMY - iInfoHeight - VIEW_OFFSET_Y, offsetX); + catacurses::window w_item_info = catacurses::newwin( iInfoHeight, width, TERMY - iInfoHeight - VIEW_OFFSET_Y, offsetX ); WINDOW_PTR w_item_infoptr( w_item_info ); // use previously selected sorting method @@ -9355,16 +9354,16 @@ game::vmenu_ret game::list_monsters( const std::vector &monster_list const int offsetX = right_sidebar ? TERMX - VIEW_OFFSET_X - width : VIEW_OFFSET_X; - WINDOW *w_monsters = newwin(TERMY - 2 - iInfoHeight - VIEW_OFFSET_Y * 2, width - 2, + catacurses::window w_monsters = catacurses::newwin( TERMY - 2 - iInfoHeight - VIEW_OFFSET_Y * 2, width - 2, VIEW_OFFSET_Y + 1, offsetX + 1); WINDOW_PTR w_monstersptr( w_monsters ); - WINDOW *w_monsters_border = newwin(TERMY - iInfoHeight - VIEW_OFFSET_Y * 2, width, + catacurses::window w_monsters_border = catacurses::newwin( TERMY - iInfoHeight - VIEW_OFFSET_Y * 2, width, VIEW_OFFSET_Y, offsetX); WINDOW_PTR w_monsters_borderptr( w_monsters_border ); - WINDOW *w_monster_info = newwin(iInfoHeight - 1, width - 2, + catacurses::window w_monster_info = catacurses::newwin( iInfoHeight - 1, width - 2, TERMY - iInfoHeight - VIEW_OFFSET_Y, offsetX + 1); WINDOW_PTR w_monster_infoptr( w_monster_info ); - WINDOW *w_monster_info_border = newwin(iInfoHeight, width, + catacurses::window w_monster_info_border = catacurses::newwin( iInfoHeight, width, TERMY - iInfoHeight - VIEW_OFFSET_Y, offsetX); WINDOW_PTR w_monster_info_borderptr( w_monster_info_border ); @@ -13635,7 +13634,7 @@ void intro() int maxx = getmaxx( stdscr ); const int minHeight = FULL_SCREEN_HEIGHT; const int minWidth = FULL_SCREEN_WIDTH; - WINDOW *tmp = newwin(minHeight, minWidth, 0, 0); + catacurses::window tmp = catacurses::newwin( minHeight, minWidth, 0, 0 ); WINDOW_PTR w_tmpptr( tmp ); while (maxy < minHeight || maxx < minWidth) { diff --git a/src/help.cpp b/src/help.cpp index 8d8fee7774ec2..31a1417da41d5 100644 --- a/src/help.cpp +++ b/src/help.cpp @@ -1035,12 +1035,12 @@ A: Ask the helpful people on the forum at discourse.cataclysmdda.org or at the i void display_help() { - WINDOW *w_help_border = newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, - ( TERMY > FULL_SCREEN_HEIGHT ) ? ( TERMY - FULL_SCREEN_HEIGHT ) / 2 : 0, - ( TERMX > FULL_SCREEN_WIDTH ) ? ( TERMX - FULL_SCREEN_WIDTH ) / 2 : 0 ); - WINDOW *w_help = newwin( FULL_SCREEN_HEIGHT - 2, FULL_SCREEN_WIDTH - 2, - 1 + ( int )( ( TERMY > FULL_SCREEN_HEIGHT ) ? ( TERMY - FULL_SCREEN_HEIGHT ) / 2 : 0 ), - 1 + ( int )( ( TERMX > FULL_SCREEN_WIDTH ) ? ( TERMX - FULL_SCREEN_WIDTH ) / 2 : 0 ) ); + catacurses::window w_help_border = catacurses::newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, + ( TERMY > FULL_SCREEN_HEIGHT ) ? ( TERMY - FULL_SCREEN_HEIGHT ) / 2 : 0, + ( TERMX > FULL_SCREEN_WIDTH ) ? ( TERMX - FULL_SCREEN_WIDTH ) / 2 : 0 ); + catacurses::window w_help = catacurses::newwin( FULL_SCREEN_HEIGHT - 2, FULL_SCREEN_WIDTH - 2, + 1 + ( int )( ( TERMY > FULL_SCREEN_HEIGHT ) ? ( TERMY - FULL_SCREEN_HEIGHT ) / 2 : 0 ), + 1 + ( int )( ( TERMX > FULL_SCREEN_WIDTH ) ? ( TERMX - FULL_SCREEN_WIDTH ) / 2 : 0 ) ); char ch; bool needs_refresh = true; do { diff --git a/src/iexamine.cpp b/src/iexamine.cpp index b3751b38ea1f3..fc05ec8a4d17a 100644 --- a/src/iexamine.cpp +++ b/src/iexamine.cpp @@ -478,9 +478,9 @@ void iexamine::vending(player &p, const tripoint &examp) constexpr int first_item_offset = 3; // header size - WINDOW_PTR const w_ptr {newwin(window_h, w_items_w, padding_y, padding_x)}; - WINDOW_PTR const w_item_info_ptr { - newwin(window_h, w_info_w, padding_y, padding_x + w_items_w + 1)}; + catacurses::WINDOW_PTR const w_ptr {catacurses::newwin( window_h, w_items_w, padding_y, padding_x )}; + catacurses::WINDOW_PTR const w_item_info_ptr { + catacurses::newwin( window_h, w_info_w, padding_y, padding_x + w_items_w + 1 )}; WINDOW *w = w_ptr.get(); WINDOW *w_item_info = w_item_info_ptr.get(); @@ -3048,10 +3048,12 @@ void iexamine::sign(player &p, const tripoint &examp) bool previous_signage_exists = !existing_signage.empty(); // Display existing message, or lack thereof. - if (previous_signage_exists) { - popup(existing_signage.c_str()); + if( p.has_trait( trait_ILLITERATE ) ) { + popup( _( "You're illiterate, and can't read the message on the sign." ) ); + } else if( previous_signage_exists ) { + popup( existing_signage.c_str() ); } else { - p.add_msg_if_player(m_neutral, _("Nothing legible on the sign.")); + p.add_msg_if_player( m_neutral, _( "Nothing legible on the sign." ) ); } // Allow chance to modify message. diff --git a/src/input.cpp b/src/input.cpp index 0ab525fcb8a9d..0838ea8edc6f6 100644 --- a/src/input.cpp +++ b/src/input.cpp @@ -831,9 +831,9 @@ void input_context::display_help() { inp_mngr.reset_timeout(); // Shamelessly stolen from help.cpp - WINDOW *w_help = newwin( FULL_SCREEN_HEIGHT - 2, FULL_SCREEN_WIDTH - 2, - 1 + ( int )( ( TERMY > FULL_SCREEN_HEIGHT ) ? ( TERMY - FULL_SCREEN_HEIGHT ) / 2 : 0 ), - 1 + ( int )( ( TERMX > FULL_SCREEN_WIDTH ) ? ( TERMX - FULL_SCREEN_WIDTH ) / 2 : 0 ) ); + catacurses::window w_help = catacurses::newwin( FULL_SCREEN_HEIGHT - 2, FULL_SCREEN_WIDTH - 2, + 1 + ( int )( ( TERMY > FULL_SCREEN_HEIGHT ) ? ( TERMY - FULL_SCREEN_HEIGHT ) / 2 : 0 ), + 1 + ( int )( ( TERMX > FULL_SCREEN_WIDTH ) ? ( TERMX - FULL_SCREEN_WIDTH ) / 2 : 0 ) ); // has the user changed something? bool changed = false; diff --git a/src/inventory_ui.cpp b/src/inventory_ui.cpp index 0854b3f673d94..350dd2f13d027 100644 --- a/src/inventory_ui.cpp +++ b/src/inventory_ui.cpp @@ -1219,7 +1219,7 @@ std::vector inventory_selector::get_stats() const void inventory_selector::resize_window( int width, int height ) { if( !w_inv || width != getmaxx( w_inv.get() ) || height != getmaxy( w_inv.get() ) ) { - w_inv.reset( newwin( height, width, + w_inv.reset( catacurses::newwin( height, width, VIEW_OFFSET_Y + ( TERMY - height ) / 2, VIEW_OFFSET_X + ( TERMX - width ) / 2 ) ); } diff --git a/src/iuse_software.cpp b/src/iuse_software.cpp index f20b73e8ba973..7648a637e3602 100644 --- a/src/iuse_software.cpp +++ b/src/iuse_software.cpp @@ -20,10 +20,10 @@ bool play_videogame( std::string function_name, std::map FULL_SCREEN_WIDTH) ? (TERMX - FULL_SCREEN_WIDTH) / 2 : 0; const int iCenterY = (TERMY > FULL_SCREEN_HEIGHT) ? (TERMY - FULL_SCREEN_HEIGHT) / 2 : 0; - WINDOW *w_minesweeper_border = newwin(FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, iCenterY, iCenterX); + catacurses::window w_minesweeper_border = catacurses::newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, iCenterY, iCenterX ); WINDOW_PTR w_minesweeper_borderptr( w_minesweeper_border ); - WINDOW *w_minesweeper = newwin(FULL_SCREEN_HEIGHT - 2, FULL_SCREEN_WIDTH - 2, iCenterY + 1, iCenterX + 1); + catacurses::window w_minesweeper = catacurses::newwin( FULL_SCREEN_HEIGHT - 2, FULL_SCREEN_WIDTH - 2, iCenterY + 1, iCenterX + 1 ); WINDOW_PTR w_minesweeperptr( w_minesweeper ); draw_border(w_minesweeper_border); diff --git a/src/iuse_software_snake.cpp b/src/iuse_software_snake.cpp index 43446dfaa2b34..5dd2c63a39731 100644 --- a/src/iuse_software_snake.cpp +++ b/src/iuse_software_snake.cpp @@ -93,7 +93,7 @@ int snake_game::start_game() int iOffsetX = (TERMX > FULL_SCREEN_WIDTH) ? (TERMX - FULL_SCREEN_WIDTH) / 2 : 0; int iOffsetY = (TERMY > FULL_SCREEN_HEIGHT) ? (TERMY - FULL_SCREEN_HEIGHT) / 2 : 0; - WINDOW *w_snake = newwin(FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, iOffsetY, iOffsetX); + catacurses::window w_snake = catacurses::newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, iOffsetY, iOffsetX ); WINDOW_PTR w_snakeptr( w_snake ); print_header(w_snake); diff --git a/src/iuse_software_sokoban.cpp b/src/iuse_software_sokoban.cpp index b2e5f368b2c57..538aa3a9783e7 100644 --- a/src/iuse_software_sokoban.cpp +++ b/src/iuse_software_sokoban.cpp @@ -240,7 +240,7 @@ int sokoban_game::start_game() using namespace std::placeholders; read_from_file( FILENAMES["sokoban"], std::bind( &sokoban_game::parse_level, this, _1 ) ); - WINDOW *w_sokoban = newwin(FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, iOffsetY, iOffsetX); + catacurses::window w_sokoban = catacurses::newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, iOffsetY, iOffsetX ); WINDOW_PTR w_sokobanptr( w_sokoban ); draw_border( w_sokoban, BORDER_COLOR, _( "Sokoban" ), hilite( c_white ) ); input_context ctxt("SOKOBAN"); diff --git a/src/lua_console.cpp b/src/lua_console.cpp index f7770be975e5a..fc5d56acc12b7 100644 --- a/src/lua_console.cpp +++ b/src/lua_console.cpp @@ -7,8 +7,8 @@ #include -lua_console::lua_console() : cWin( newwin( lines, width, 0, 0 ) ), - iWin( newwin( 1, width, lines, 0 ) ) +lua_console::lua_console() : cWin( catacurses::newwin( lines, width, 0, 0 ) ), + iWin( catacurses::newwin( 1, width, lines, 0 ) ) { } diff --git a/src/main_menu.cpp b/src/main_menu.cpp index 237ccfa54d3a0..c1a98f59fb74f 100644 --- a/src/main_menu.cpp +++ b/src/main_menu.cpp @@ -239,12 +239,12 @@ std::vector main_menu::get_hotkeys( const std::string &s ) void main_menu::display_credits() { // astyle got this redundant indent - WINDOW *w_credits_border = newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, - ( TERMY > FULL_SCREEN_HEIGHT ) ? ( TERMY - FULL_SCREEN_HEIGHT ) / 2 : 0, - ( TERMX > FULL_SCREEN_WIDTH ) ? ( TERMX - FULL_SCREEN_WIDTH ) / 2 : 0 ); - WINDOW *w_credits = newwin( FULL_SCREEN_HEIGHT - 2, FULL_SCREEN_WIDTH - 2, - 1 + ( int )( ( TERMY > FULL_SCREEN_HEIGHT ) ? ( TERMY - FULL_SCREEN_HEIGHT ) / 2 : 0 ), - 1 + ( int )( ( TERMX > FULL_SCREEN_WIDTH ) ? ( TERMX - FULL_SCREEN_WIDTH ) / 2 : 0 ) ); + catacurses::window w_credits_border = catacurses::newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, + ( TERMY > FULL_SCREEN_HEIGHT ) ? ( TERMY - FULL_SCREEN_HEIGHT ) / 2 : 0, + ( TERMX > FULL_SCREEN_WIDTH ) ? ( TERMX - FULL_SCREEN_WIDTH ) / 2 : 0 ); + catacurses::window w_credits = catacurses::newwin( FULL_SCREEN_HEIGHT - 2, FULL_SCREEN_WIDTH - 2, + 1 + ( int )( ( TERMY > FULL_SCREEN_HEIGHT ) ? ( TERMY - FULL_SCREEN_HEIGHT ) / 2 : 0 ), + 1 + ( int )( ( TERMX > FULL_SCREEN_WIDTH ) ? ( TERMX - FULL_SCREEN_WIDTH ) / 2 : 0 ) ); draw_border( w_credits_border, BORDER_COLOR, _( " CREDITS " ) ); wrefresh( w_credits_border ); refresh(); @@ -262,7 +262,7 @@ bool main_menu::opening_screen() world_generator->set_active_world( NULL ); world_generator->init(); - w_background = newwin( TERMY, TERMX, 0, 0 ); + w_background = catacurses::newwin( TERMY, TERMX, 0, 0 ); WINDOW_PTR w_backgroundptr( w_background ); werase( w_background ); wrefresh( w_background ); @@ -280,7 +280,7 @@ bool main_menu::opening_screen() const int x0 = ( TERMX - total_w ) / 2; const int y0 = ( TERMY - total_h ) / 2; - w_open = newwin( total_h, total_w, y0, x0 ); + w_open = catacurses::newwin( total_h, total_w, y0, x0 ); WINDOW_PTR w_openptr( w_open ); iMenuOffsetY = total_h - 3; diff --git a/src/messages.cpp b/src/messages.cpp index a05ea9d3fd145..1e0a52803222a 100644 --- a/src/messages.cpp +++ b/src/messages.cpp @@ -241,10 +241,10 @@ bool Messages::has_undisplayed_messages() void Messages::display_messages() { - WINDOW_PTR w_ptr {newwin( - FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, - ( TERMY > FULL_SCREEN_HEIGHT ) ? ( TERMY - FULL_SCREEN_HEIGHT ) / 2 : 0, - ( TERMX > FULL_SCREEN_WIDTH ) ? ( TERMX - FULL_SCREEN_WIDTH ) / 2 : 0 )}; + catacurses::WINDOW_PTR w_ptr {catacurses::newwin( + FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, + ( TERMY > FULL_SCREEN_HEIGHT ) ? ( TERMY - FULL_SCREEN_HEIGHT ) / 2 : 0, + ( TERMX > FULL_SCREEN_WIDTH ) ? ( TERMX - FULL_SCREEN_WIDTH ) / 2 : 0 )}; WINDOW *const w = w_ptr.get(); diff --git a/src/mission_companion.cpp b/src/mission_companion.cpp index 5fe1e5dfe65aa..615ce56ff0aa8 100644 --- a/src/mission_companion.cpp +++ b/src/mission_companion.cpp @@ -363,10 +363,10 @@ bool talk_function::outpost_missions( npc &p, std::string id, std::string title return false; } - WINDOW *w_list = newwin(FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, + catacurses::window w_list = catacurses::newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, ((TERMY > FULL_SCREEN_HEIGHT) ? (TERMY - FULL_SCREEN_HEIGHT) / 2 : 0), (TERMX > FULL_SCREEN_WIDTH) ? (TERMX - FULL_SCREEN_WIDTH) / 2 : 0); - WINDOW *w_info = newwin(FULL_SCREEN_HEIGHT - 2, FULL_SCREEN_WIDTH - 1 - MAX_FAC_NAME_SIZE, + catacurses::window w_info = catacurses::newwin( FULL_SCREEN_HEIGHT - 2, FULL_SCREEN_WIDTH - 1 - MAX_FAC_NAME_SIZE, 1 + ((TERMY > FULL_SCREEN_HEIGHT) ? (TERMY - FULL_SCREEN_HEIGHT) / 2 : 0), MAX_FAC_NAME_SIZE + ((TERMX > FULL_SCREEN_WIDTH) ? (TERMX - FULL_SCREEN_WIDTH) / 2 : 0)); diff --git a/src/mission_ui.cpp b/src/mission_ui.cpp index a461018d3bc3e..74ebd786ec66c 100644 --- a/src/mission_ui.cpp +++ b/src/mission_ui.cpp @@ -15,9 +15,9 @@ void game::list_missions() { - WINDOW *w_missions = newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, - ( TERMY > FULL_SCREEN_HEIGHT ) ? ( TERMY - FULL_SCREEN_HEIGHT ) / 2 : 0, - ( TERMX > FULL_SCREEN_WIDTH ) ? ( TERMX - FULL_SCREEN_WIDTH ) / 2 : 0 ); + catacurses::window w_missions = catacurses::newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, + ( TERMY > FULL_SCREEN_HEIGHT ) ? ( TERMY - FULL_SCREEN_HEIGHT ) / 2 : 0, + ( TERMX > FULL_SCREEN_WIDTH ) ? ( TERMX - FULL_SCREEN_WIDTH ) / 2 : 0 ); enum class tab_mode : int { TAB_ACTIVE = 0, diff --git a/src/monattack.cpp b/src/monattack.cpp index dd77cc8a51403..96da134bd324b 100644 --- a/src/monattack.cpp +++ b/src/monattack.cpp @@ -1077,6 +1077,8 @@ bool mattack::science(monster *const z) // I said SCIENCE again! if (!critial_fail && (is_trivial || dodge_skill > rng(0, att_rad_dodge_diff))) { target->add_msg_player_or_npc(_("You dodge the beam!"), _(" dodges the beam!")); + } else if( g->u.is_rad_immune() ) { + target->add_msg_if_player( m_good, _( "Your armor protects you from the radiation!" ) ); } else if (one_in(att_rad_mutate_chance)) { foe->mutate(); } else { diff --git a/src/monster.cpp b/src/monster.cpp index c7e112c10ce08..f6b465b666677 100644 --- a/src/monster.cpp +++ b/src/monster.cpp @@ -383,7 +383,7 @@ std::pair monster::get_attitude() const { const auto att = attitude_names.at( attitude( &( g->u ) ) ); return { - att.first, + _( att.first.c_str() ), all_colors.get( att.second ) }; } @@ -460,7 +460,7 @@ std::string monster::extended_description() const ss << string_format( "%s", type->get_description().c_str() ) << std::endl; ss << "--" << std::endl; - ss << string_format( _( "It is %s in size." ), size_names.at( get_size() ).c_str() ) << std::endl; + ss << string_format( _( "It is %s in size." ), _( size_names.at( get_size() ).c_str() ) ) << std::endl; std::vector types; if( type->has_flag( MF_ANIMAL ) ) { diff --git a/src/morale.cpp b/src/morale.cpp index 1f43d6bc2b9f0..3493bbaf48cec 100644 --- a/src/morale.cpp +++ b/src/morale.cpp @@ -370,7 +370,7 @@ void player_morale::display( double focus_gain ) const int win_x = ( TERMX - win_w ) / 2; const int win_y = ( TERMY - win_h ) / 2; - WINDOW *w = newwin( win_h, win_w, win_y, win_x ); + catacurses::window w = catacurses::newwin( win_h, win_w, win_y, win_x ); draw_border( w ); diff --git a/src/mutation.cpp b/src/mutation.cpp index 476fe5dad7a9f..9febc8e87a42e 100644 --- a/src/mutation.cpp +++ b/src/mutation.cpp @@ -516,34 +516,6 @@ void player::deactivate_mutation( const trait_id &mut ) recalc_sight_limits(); } -void show_mutations_titlebar(WINDOW *window, player *p, std::string menu_mode) -{ - werase(window); - - std::string caption = _("MUTATIONS -"); - int cap_offset = utf8_width(caption) + 1; - mvwprintz(window, 0, 0, c_blue, "%s", caption.c_str()); - - std::stringstream pwr; - pwr << string_format(_("Power: %d/%d"), int(p->power_level), int(p->max_power_level)); - int pwr_length = utf8_width(pwr.str()) + 1; - - std::string desc; - int desc_length = getmaxx(window) - cap_offset - pwr_length; - - if(menu_mode == "reassigning") { - desc = _("Reassigning.\nSelect a mutation to reassign or press SPACE to cancel."); - } else if(menu_mode == "activating") { - desc = _("Activating ! to examine, = to reassign."); - } else if(menu_mode == "examining") { - desc = _("Examining ! to activate, = to reassign."); - } - fold_and_print(window, 0, cap_offset, desc_length, c_white, desc); - fold_and_print(window, 1, 0, desc_length, c_white, _("Might need to use ? to assign the keys.")); - - wrefresh(window); -} - trait_id Character::trait_by_invlet( const long ch ) const { for( auto &mut : my_mutations ) { diff --git a/src/mutation_ui.cpp b/src/mutation_ui.cpp index 59fbb5fcad091..4d7ebd56c04a3 100644 --- a/src/mutation_ui.cpp +++ b/src/mutation_ui.cpp @@ -103,18 +103,19 @@ void player::power_mutations() int WIDTH = FULL_SCREEN_WIDTH + ( TERMX - FULL_SCREEN_WIDTH ) / 2; int START_X = ( TERMX - WIDTH ) / 2; int START_Y = ( TERMY - HEIGHT ) / 2; - WINDOW *wBio = newwin( HEIGHT, WIDTH, START_Y, START_X ); + catacurses::window wBio = catacurses::newwin( HEIGHT, WIDTH, START_Y, START_X ); // Description window @ the bottom of the bio window int DESCRIPTION_START_Y = START_Y + HEIGHT - DESCRIPTION_HEIGHT - 1; int DESCRIPTION_LINE_Y = DESCRIPTION_START_Y - START_Y - 1; - WINDOW *w_description = newwin( DESCRIPTION_HEIGHT, WIDTH - 2, - DESCRIPTION_START_Y, START_X + 1 ); + catacurses::window w_description = catacurses::newwin( DESCRIPTION_HEIGHT, WIDTH - 2, + DESCRIPTION_START_Y, START_X + 1 ); // Title window int TITLE_START_Y = START_Y + 1; int HEADER_LINE_Y = TITLE_HEIGHT + 1; // + lines with text in titlebar, local - WINDOW *w_title = newwin( TITLE_HEIGHT, WIDTH - 2, TITLE_START_Y, START_X + 1 ); + catacurses::window w_title = catacurses::newwin( TITLE_HEIGHT, WIDTH - 2, TITLE_START_Y, + START_X + 1 ); int scroll_position = 0; int second_column = 32 + ( TERMX - FULL_SCREEN_WIDTH ) / diff --git a/src/newcharacter.cpp b/src/newcharacter.cpp index ac1237c67f9c1..eadab1d03da84 100644 --- a/src/newcharacter.cpp +++ b/src/newcharacter.cpp @@ -423,7 +423,7 @@ bool player::create(character_type type, std::string tempname) WINDOW *w = nullptr; if( type != PLTYPE_NOW ) { - w = newwin( TERMY, TERMX, 0, 0 ); + w = catacurses::newwin( TERMY, TERMX, 0, 0 ); } int tab = 0; @@ -703,7 +703,7 @@ tab_direction set_points( WINDOW *w, player *, points_left &points ) { tab_direction retval = tab_direction::NONE; const int content_height = TERMY - 6; - WINDOW *w_description = newwin( content_height, TERMX - 35, + catacurses::window w_description = catacurses::newwin( content_height, TERMX - 35, 5 + getbegy( w ), 31 + getbegx( w ) ); draw_tabs( w, _("POINTS") ); @@ -805,7 +805,7 @@ tab_direction set_stats(WINDOW *w, player *u, points_left &points) ctxt.register_action("NEXT_TAB"); ctxt.register_action("QUIT"); int read_spd; - WINDOW *w_description = newwin(8, TERMX - iSecondColumn - 1, 6 + getbegy(w), + catacurses::window w_description = catacurses::newwin( 8, TERMX - iSecondColumn - 1, 6 + getbegy( w ), iSecondColumn + getbegx(w)); // There is no map loaded currently, so any access to the map will // fail (player::suffer, called from player::reset_stats), might access @@ -1010,7 +1010,7 @@ tab_direction set_traits(WINDOW *w, player *u, points_left &points) draw_tabs( w, _("TRAITS") ); - WINDOW *w_description = newwin(3, TERMX - 2, TERMY - 4 + getbegy(w), + catacurses::window w_description = catacurses::newwin( 3, TERMX - 2, TERMY - 4 + getbegy( w ), 1 + getbegx(w)); // Track how many good / bad POINTS we have; cap both at MAX_TRAIT_POINTS int num_good = 0, num_bad = 0; @@ -1286,12 +1286,12 @@ tab_direction set_profession(WINDOW *w, player *u, points_left &points) const int iContentHeight = TERMY - 10; int iStartPos = 0; - WINDOW *w_description = newwin(4, TERMX - 2, + catacurses::window w_description = catacurses::newwin( 4, TERMX - 2, TERMY - 5 + getbegy(w), 1 + getbegx(w)); - WINDOW *w_sorting = newwin(1, 55, 5 + getbegy(w), (TERMX / 2) + getbegx(w)); - WINDOW *w_genderswap = newwin(1, 55, 6 + getbegy(w), (TERMX / 2) + getbegx(w)); - WINDOW *w_items = newwin(iContentHeight - 2, 55, 7 + getbegy(w), (TERMX / 2) + getbegx(w)); + catacurses::window w_sorting = catacurses::newwin( 1, 55, 5 + getbegy( w ), ( TERMX / 2 ) + getbegx( w ) ); + catacurses::window w_genderswap = catacurses::newwin( 1, 55, 6 + getbegy( w ), ( TERMX / 2 ) + getbegx( w ) ); + catacurses::window w_items = catacurses::newwin( iContentHeight - 2, 55, 7 + getbegy( w ), ( TERMX / 2 ) + getbegx( w ) ); input_context ctxt("NEW_CHAR_PROFESSIONS"); ctxt.register_cardinal(); @@ -1588,7 +1588,7 @@ tab_direction set_skills(WINDOW *w, player *u, points_left &points) { draw_tabs( w, _("SKILLS") ); const int iContentHeight = TERMY - 6; - WINDOW *w_description = newwin(iContentHeight, TERMX - 35, + catacurses::window w_description = catacurses::newwin( iContentHeight, TERMX - 35, 5 + getbegy(w), 31 + getbegx(w)); auto sorted_skills = Skill::get_skills_sorted_by([](Skill const &a, Skill const &b) { @@ -1807,25 +1807,25 @@ tab_direction set_scenario(WINDOW *w, player *u, points_left &points) const int iContentHeight = TERMY - 10; int iStartPos = 0; - WINDOW *w_description = newwin(4, TERMX - 2, + catacurses::window w_description = catacurses::newwin( 4, TERMX - 2, TERMY - 5 + getbegy(w), 1 + getbegx(w)); WINDOW_PTR w_descriptionptr( w_description ); - WINDOW *w_sorting = newwin(2, (TERMX / 2) - 1, + catacurses::window w_sorting = catacurses::newwin( 2, ( TERMX / 2 ) - 1, 5 + getbegy(w), (TERMX / 2) + getbegx(w)); WINDOW_PTR w_sortingptr( w_sorting ); - WINDOW *w_profession = newwin(4, (TERMX / 2) - 1, + catacurses::window w_profession = catacurses::newwin( 4, ( TERMX / 2 ) - 1, 7 + getbegy(w), (TERMX / 2) + getbegx(w)); WINDOW_PTR w_professionptr( w_profession ); - WINDOW *w_location = newwin(3, (TERMX / 2) - 1, + catacurses::window w_location = catacurses::newwin( 3, ( TERMX / 2 ) - 1, 11 + getbegy(w), (TERMX / 2) + getbegx(w)); WINDOW_PTR w_locationptr( w_location ); // 9 = 2 + 4 + 3, so we use rest of space for flags - WINDOW *w_flags = newwin(iContentHeight - 9, (TERMX / 2) - 1, + catacurses::window w_flags = catacurses::newwin( iContentHeight - 9, ( TERMX / 2 ) - 1, 14 + getbegy(w), (TERMX / 2) + getbegx(w)); WINDOW_PTR w_flagsptr( w_flags ); @@ -2095,23 +2095,23 @@ tab_direction set_description(WINDOW *w, player *u, const bool allow_reroll, poi { draw_tabs( w, _("DESCRIPTION") ); - WINDOW *w_name = newwin(2, 42, getbegy(w) + 5, getbegx(w) + 2); + catacurses::window w_name = catacurses::newwin( 2, 42, getbegy( w ) + 5, getbegx( w ) + 2 ); WINDOW_PTR w_nameptr( w_name ); - WINDOW *w_gender = newwin(2, 33, getbegy(w) + 5, getbegx(w) + 46); + catacurses::window w_gender = catacurses::newwin( 2, 33, getbegy( w ) + 5, getbegx( w ) + 46 ); WINDOW_PTR w_genderptr( w_gender ); - WINDOW *w_location = newwin(1, 76, getbegy(w) + 7, getbegx(w) + 2); + catacurses::window w_location = catacurses::newwin( 1, 76, getbegy( w ) + 7, getbegx( w ) + 2 ); WINDOW_PTR w_locationptr( w_location ); - WINDOW *w_stats = newwin(6, 20, getbegy(w) + 9, getbegx(w) + 2); + catacurses::window w_stats = catacurses::newwin( 6, 20, getbegy( w ) + 9, getbegx( w ) + 2 ); WINDOW_PTR w_statstptr( w_stats ); - WINDOW *w_traits = newwin(13, 24, getbegy(w) + 9, getbegx(w) + 22); + catacurses::window w_traits = catacurses::newwin( 13, 24, getbegy( w ) + 9, getbegx( w ) + 22 ); WINDOW_PTR w_traitsptr( w_traits ); - WINDOW *w_scenario = newwin(1, 33, getbegy(w) + 9, getbegx(w) + 46); + catacurses::window w_scenario = catacurses::newwin( 1, 33, getbegy( w ) + 9, getbegx( w ) + 46 ); WINDOW_PTR w_scenarioptr( w_scenario ); - WINDOW *w_profession = newwin(1, 33, getbegy(w) + 10, getbegx(w) + 46); + catacurses::window w_profession = catacurses::newwin( 1, 33, getbegy( w ) + 10, getbegx( w ) + 46 ); WINDOW_PTR w_professionptr( w_profession ); - WINDOW *w_skills = newwin(9, 33, getbegy(w) + 11, getbegx(w) + 46); + catacurses::window w_skills = catacurses::newwin( 9, 33, getbegy( w ) + 11, getbegx( w ) + 46 ); WINDOW_PTR w_skillsptr( w_skills ); - WINDOW *w_guide = newwin(TERMY - getbegy(w) - 19 - 1, TERMX - 3, getbegy(w) + 19, getbegx(w) + 2); + catacurses::window w_guide = catacurses::newwin( TERMY - getbegy( w ) - 19 - 1, TERMX - 3, getbegy( w ) + 19, getbegx( w ) + 2 ); WINDOW_PTR w_guideptr( w_guide ); draw_points( w, points ); diff --git a/src/npctalk.cpp b/src/npctalk.cpp index 00688aead0e80..137676472a1e9 100644 --- a/src/npctalk.cpp +++ b/src/npctalk.cpp @@ -567,7 +567,7 @@ void npc::talk_to_u() decide_needs(); - d.win = newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, + d.win = catacurses::newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, ( TERMY > FULL_SCREEN_HEIGHT ) ? ( TERMY - FULL_SCREEN_HEIGHT ) / 2 : 0, ( TERMX > FULL_SCREEN_WIDTH ) ? ( TERMX - FULL_SCREEN_WIDTH ) / 2 : 0 ); @@ -3673,10 +3673,10 @@ std::vector init_buying( npc &p, player &u ) bool trade( npc &p, int cost, const std::string &deal ) { - WINDOW *w_head = newwin( 4, TERMX, 0, 0 ); + catacurses::window w_head = catacurses::newwin( 4, TERMX, 0, 0 ); const int win_they_w = TERMX / 2; - WINDOW *w_them = newwin( TERMY - 4, win_they_w, 4, 0 ); - WINDOW *w_you = newwin( TERMY - 4, TERMX - win_they_w, 4, win_they_w ); + catacurses::window w_them = catacurses::newwin( TERMY - 4, win_they_w, 4, 0 ); + catacurses::window w_you = catacurses::newwin( TERMY - 4, TERMX - win_they_w, 4, win_they_w ); WINDOW *w_tmp; std::string header_message = _( "\ TAB key to switch lists, letters to pick items, Enter to finalize, Esc to quit,\n\ @@ -3871,7 +3871,7 @@ TAB key to switch lists, letters to pick items, Enter to finalize, Esc to quit,\ break; case '?': update = true; - w_tmp = newwin( 3, 21, 1 + ( TERMY - FULL_SCREEN_HEIGHT ) / 2, + w_tmp = catacurses::newwin( 3, 21, 1 + ( TERMY - FULL_SCREEN_HEIGHT ) / 2, 30 + ( TERMX - FULL_SCREEN_WIDTH ) / 2 ); mvwprintz( w_tmp, 1, 1, c_red, _( "Examine which item?" ) ); draw_border( w_tmp ); diff --git a/src/options.cpp b/src/options.cpp index d938b76b72b59..fcab5d63da2ac 100644 --- a/src/options.cpp +++ b/src/options.cpp @@ -1612,18 +1612,18 @@ std::string options_manager::show(bool ingame, const bool world_options_only) mapLines[4] = true; mapLines[60] = true; - WINDOW *w_options_border = newwin(FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, iOffsetY - iWorldOffset, iOffsetX); + catacurses::window w_options_border = catacurses::newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, iOffsetY - iWorldOffset, iOffsetX ); WINDOW_PTR w_options_borderptr( w_options_border ); - WINDOW *w_options_tooltip = newwin(iTooltipHeight, FULL_SCREEN_WIDTH - 2, 1 + iOffsetY, + catacurses::window w_options_tooltip = catacurses::newwin( iTooltipHeight, FULL_SCREEN_WIDTH - 2, 1 + iOffsetY, 1 + iOffsetX); WINDOW_PTR w_options_tooltipptr( w_options_tooltip ); - WINDOW *w_options_header = newwin(1, FULL_SCREEN_WIDTH - 2, 1 + iTooltipHeight + iOffsetY, + catacurses::window w_options_header = catacurses::newwin( 1, FULL_SCREEN_WIDTH - 2, 1 + iTooltipHeight + iOffsetY, 1 + iOffsetX); WINDOW_PTR w_options_headerptr( w_options_header ); - WINDOW *w_options = newwin(iContentHeight, FULL_SCREEN_WIDTH - 2, + catacurses::window w_options = catacurses::newwin( iContentHeight, FULL_SCREEN_WIDTH - 2, iTooltipHeight + 2 + iOffsetY, 1 + iOffsetX); WINDOW_PTR w_optionsptr( w_options ); diff --git a/src/output.cpp b/src/output.cpp index 136bc6e650dc6..9a96bc9c04ef1 100644 --- a/src/output.cpp +++ b/src/output.cpp @@ -594,8 +594,8 @@ bool query_yn( const std::string &text ) for( auto &s : textformatted ) { win_width = std::max( win_width, utf8_width( remove_color_tags( s ) ) ); } - w = newwin( textformatted.size() + 2, win_width + 2, ( TERMY - 3 ) / 2, - std::max( TERMX - win_width - 2, 0 ) / 2 ); + w = catacurses::newwin( textformatted.size( ) + 2, win_width + 2, ( TERMY - 3 ) / 2, + std::max( TERMX - win_width - 2, 0 ) / 2 ); draw_border( w ); } fold_and_print( w, 1, 1, win_width, c_light_red, text + query ); @@ -655,19 +655,19 @@ int menu( bool const cancelable, const char *const mes, ... ) static WINDOW_PTR create_popup_window( int width, int height, PopupFlags flags ) { if( ( flags & PF_FULLSCREEN ) != 0 ) { - return WINDOW_PTR( newwin( + return WINDOW_PTR( catacurses::newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, std::max( ( TERMY - FULL_SCREEN_HEIGHT ) / 2, 0 ), std::max( ( TERMX - FULL_SCREEN_WIDTH ) / 2, 0 ) ) ); } else if( ( flags & PF_ON_TOP ) != 0 ) { - return WINDOW_PTR( newwin( + return WINDOW_PTR( catacurses::newwin( height, width, 0, std::max( ( TERMX - width ) / 2, 0 ) ) ); } else { - return WINDOW_PTR( newwin( + return WINDOW_PTR( catacurses::newwin( height, width, std::max( ( TERMY - ( height + 1 ) ) / 2, 0 ), std::max( ( TERMX - width ) / 2, 0 ) @@ -760,7 +760,8 @@ input_event draw_item_info( const int iLeft, const int iWidth, const int iTop, c int &selected, const bool without_getch, const bool without_border, const bool handle_scrolling, const bool scrollbar_left, const bool use_full_win ) { - WINDOW *win = newwin( iHeight, iWidth, iTop + VIEW_OFFSET_Y, iLeft + VIEW_OFFSET_X ); + catacurses::window win = catacurses::newwin( iHeight, iWidth, iTop + VIEW_OFFSET_Y, + iLeft + VIEW_OFFSET_X ); #ifdef TILES clear_window_area( win ); @@ -1304,7 +1305,7 @@ void hit_animation( int iX, int iY, nc_color cColor, const std::string &cTile ) mvwputch(w, iY + VIEW_OFFSET_Y, iX + VIEW_OFFSET_X, cColor, cTile); */ - WINDOW *w_hit = newwin( 1, 1, iY + VIEW_OFFSET_Y, iX + VIEW_OFFSET_X ); + catacurses::window w_hit = catacurses::newwin( 1, 1, iY + VIEW_OFFSET_Y, iX + VIEW_OFFSET_X ); if( w_hit == NULL ) { return; //we passed in negative values (semi-expected), so let's not segfault } diff --git a/src/overmap.cpp b/src/overmap.cpp index ee67aa582f8f2..089f9dbdb72d3 100644 --- a/src/overmap.cpp +++ b/src/overmap.cpp @@ -1389,7 +1389,7 @@ bool overmap::inbounds( int x, int y, int z, int clearance ) point overmap::display_notes(int z) { const overmapbuffer::t_notes_vector notes = overmap_buffer.get_all_notes(z); - WINDOW *w_notes = newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, + catacurses::window w_notes = catacurses::newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, (TERMY > FULL_SCREEN_HEIGHT) ? (TERMY - FULL_SCREEN_HEIGHT) / 2 : 0, (TERMX > FULL_SCREEN_WIDTH) ? (TERMX - FULL_SCREEN_WIDTH) / 2 : 0); @@ -2554,14 +2554,14 @@ tripoint overmap::draw_zones( tripoint const ¢er, tripoint const &select, in tripoint overmap::draw_overmap(const tripoint &orig, const draw_data_t &data) { delwin(g->w_omlegend); - g->w_omlegend = newwin(TERMY, 28, 0, TERMX - 28); + g->w_omlegend = catacurses::newwin( TERMY, 28, 0, TERMX - 28 ); delwin(g->w_overmap); - g->w_overmap = newwin(OVERMAP_WINDOW_HEIGHT, OVERMAP_WINDOW_WIDTH, 0, 0); + g->w_overmap = catacurses::newwin( OVERMAP_WINDOW_HEIGHT, OVERMAP_WINDOW_WIDTH, 0, 0 ); // Draw black padding space to avoid gap between map and legend // also clears the pixel minimap in TILES delwin(g->w_blackspace); - g->w_blackspace = newwin(TERMY, TERMX, 0, 0); + g->w_blackspace = catacurses::newwin( TERMY, TERMX, 0, 0 ); mvwputch(g->w_blackspace, 0, 0, c_black, ' '); wrefresh(g->w_blackspace); @@ -2716,7 +2716,7 @@ tripoint overmap::draw_overmap(const tripoint &orig, const draw_data_t &data) int i = 0; //Navigate through results tripoint tmp = curs; - WINDOW *w_search = newwin(13, 27, 3, TERMX - 27); + catacurses::window w_search = catacurses::newwin( 13, 27, 3, TERMX - 27 ); WINDOW_PTR w_searchptr( w_search ); input_context ctxt("OVERMAP_SEARCH"); @@ -2785,7 +2785,7 @@ tripoint overmap::draw_overmap(const tripoint &orig, const draw_data_t &data) pmenu.query(); if( pmenu.ret >= 0 ) { - WINDOW *w_editor = newwin( 15, 27, 3, TERMX - 27 ); + catacurses::window w_editor = catacurses::newwin( 15, 27, 3, TERMX - 27 ); input_context ctxt( "OVERMAP_EDITOR" ); ctxt.register_directions(); ctxt.register_action( "CONFIRM" ); diff --git a/src/pickup.cpp b/src/pickup.cpp index bda2529d79e28..29324dc52adfd 100644 --- a/src/pickup.cpp +++ b/src/pickup.cpp @@ -712,8 +712,8 @@ void Pickup::pick_up( const tripoint &pos, int min ) int itemsY = sideStyle ? pickupY + pickupH : TERMY - itemsH; int itemsX = pickupX; - WINDOW *w_pickup = newwin( pickupH, pickupW, pickupY, pickupX ); - WINDOW *w_item_info = newwin( itemsH, itemsW, itemsY, itemsX ); + catacurses::window w_pickup = catacurses::newwin( pickupH, pickupW, pickupY, pickupX ); + catacurses::window w_item_info = catacurses::newwin( itemsH, itemsW, itemsY, itemsX ); WINDOW_PTR w_pickupptr( w_pickup ); WINDOW_PTR w_item_infoptr( w_item_info ); diff --git a/src/player.cpp b/src/player.cpp index 57233fa8c0df7..9f7674d0ebbc1 100644 --- a/src/player.cpp +++ b/src/player.cpp @@ -5858,12 +5858,11 @@ void player::suffer() if( item_radiation > 0 || map_radiation > 0 || rad_mut > 0 ) { bool has_helmet = false; const bool power_armored = is_wearing_power_armor(&has_helmet); - const bool rad_immune = (power_armored && has_helmet) || worn_with_flag("RAD_PROOF"); - const bool rad_resist = rad_immune || power_armored || worn_with_flag("RAD_RESIST"); + const bool rad_resist = is_rad_immune() || power_armored || worn_with_flag( "RAD_RESIST" ); float rads; - if( rad_immune ) { - // Power armor protects completely from radiation + if( is_rad_immune() ) { + // Power armor and some high-tech gear protects completely from radiation rads = 0.0f; } else if( rad_resist ) { rads = map_radiation / 400.0f + item_radiation / 40.0f; @@ -5872,7 +5871,7 @@ void player::suffer() } if( rad_mut > 0 ) { - const bool kept_in = rad_immune || (rad_resist && !one_in( 4 )); + const bool kept_in = is_rad_immune() || ( rad_resist && !one_in( 4 ) ); if( kept_in ) { // As if standing on a map tile with radiation level equal to rad_mut rads += rad_mut / 100.0f; @@ -11681,3 +11680,9 @@ std::set player::get_path_avoid() const return ret; } + +bool player::is_rad_immune() const +{ + bool has_helmet = false; + return ( is_wearing_power_armor( &has_helmet ) && has_helmet ) || worn_with_flag( "RAD_PROOF" ); +} diff --git a/src/player.h b/src/player.h index 63985f4bc40f2..2b4c5ba5878c8 100644 --- a/src/player.h +++ b/src/player.h @@ -453,6 +453,8 @@ class player : public Character bool is_immune_effect( const efftype_id& ) const override; /** Returns true if the player is immune to this kind of damage */ bool is_immune_damage( const damage_type ) const override; + /** Returns true if the player is protected from radiation */ + bool is_rad_immune() const; /** Returns true if the player has technique-based miss recovery */ bool has_miss_recovery_tec( const item &weap ) const; diff --git a/src/player_display.cpp b/src/player_display.cpp index 48283a52e334a..b58d869f6aec8 100644 --- a/src/player_display.cpp +++ b/src/player_display.cpp @@ -279,27 +279,28 @@ Strength - 4; Dexterity - 4; Intelligence - 4; Perception - 4" ) ); skill_win_size_y = maxy - infooffsetybottom; } - WINDOW *w_grid_top = newwin( infooffsetybottom, FULL_SCREEN_WIDTH + 1, VIEW_OFFSET_Y, - VIEW_OFFSET_X ); - WINDOW *w_grid_skill = newwin( skill_win_size_y + 1, 27, infooffsetybottom + VIEW_OFFSET_Y, - 0 + VIEW_OFFSET_X ); - WINDOW *w_grid_trait = newwin( trait_win_size_y + 1, 27, infooffsetybottom + VIEW_OFFSET_Y, - 27 + VIEW_OFFSET_X ); - WINDOW *w_grid_effect = newwin( effect_win_size_y + 1, 28, infooffsetybottom + VIEW_OFFSET_Y, - 53 + VIEW_OFFSET_X ); - - WINDOW *w_tip = newwin( 1, FULL_SCREEN_WIDTH, VIEW_OFFSET_Y, 0 + VIEW_OFFSET_X ); - WINDOW *w_stats = newwin( 9, 26, 1 + VIEW_OFFSET_Y, 0 + VIEW_OFFSET_X ); - WINDOW *w_traits = newwin( trait_win_size_y, 26, infooffsetybottom + VIEW_OFFSET_Y, - 27 + VIEW_OFFSET_X ); - WINDOW *w_encumb = newwin( 9, 26, 1 + VIEW_OFFSET_Y, 27 + VIEW_OFFSET_X ); - WINDOW *w_effects = newwin( effect_win_size_y, 26, infooffsetybottom + VIEW_OFFSET_Y, - 54 + VIEW_OFFSET_X ); - WINDOW *w_speed = newwin( 9, 26, 1 + VIEW_OFFSET_Y, 54 + VIEW_OFFSET_X ); - WINDOW *w_skills = newwin( skill_win_size_y, 26, infooffsetybottom + VIEW_OFFSET_Y, - 0 + VIEW_OFFSET_X ); - WINDOW *w_info = newwin( info_win_size_y, FULL_SCREEN_WIDTH, infooffsetytop + VIEW_OFFSET_Y, - 0 + VIEW_OFFSET_X ); + catacurses::window w_grid_top = catacurses::newwin( infooffsetybottom, FULL_SCREEN_WIDTH + 1, + VIEW_OFFSET_Y, VIEW_OFFSET_X ); + catacurses::window w_grid_skill = catacurses::newwin( skill_win_size_y + 1, 27, + infooffsetybottom + VIEW_OFFSET_Y, 0 + VIEW_OFFSET_X ); + catacurses::window w_grid_trait = catacurses::newwin( trait_win_size_y + 1, 27, + infooffsetybottom + VIEW_OFFSET_Y, 27 + VIEW_OFFSET_X ); + catacurses::window w_grid_effect = catacurses::newwin( effect_win_size_y + 1, 28, + infooffsetybottom + VIEW_OFFSET_Y, 53 + VIEW_OFFSET_X ); + + catacurses::window w_tip = catacurses::newwin( 1, FULL_SCREEN_WIDTH, VIEW_OFFSET_Y, + 0 + VIEW_OFFSET_X ); + catacurses::window w_stats = catacurses::newwin( 9, 26, 1 + VIEW_OFFSET_Y, 0 + VIEW_OFFSET_X ); + catacurses::window w_traits = catacurses::newwin( trait_win_size_y, 26, + infooffsetybottom + VIEW_OFFSET_Y, 27 + VIEW_OFFSET_X ); + catacurses::window w_encumb = catacurses::newwin( 9, 26, 1 + VIEW_OFFSET_Y, 27 + VIEW_OFFSET_X ); + catacurses::window w_effects = catacurses::newwin( effect_win_size_y, 26, + infooffsetybottom + VIEW_OFFSET_Y, 54 + VIEW_OFFSET_X ); + catacurses::window w_speed = catacurses::newwin( 9, 26, 1 + VIEW_OFFSET_Y, 54 + VIEW_OFFSET_X ); + catacurses::window w_skills = catacurses::newwin( skill_win_size_y, 26, + infooffsetybottom + VIEW_OFFSET_Y, 0 + VIEW_OFFSET_X ); + catacurses::window w_info = catacurses::newwin( info_win_size_y, FULL_SCREEN_WIDTH, + infooffsetytop + VIEW_OFFSET_Y, 0 + VIEW_OFFSET_X ); unsigned upper_info_border = 10; unsigned lower_info_border = 1 + upper_info_border + info_win_size_y; diff --git a/src/ranged.cpp b/src/ranged.cpp index 49387af34d078..440b043c52af4 100644 --- a/src/ranged.cpp +++ b/src/ranged.cpp @@ -955,7 +955,7 @@ std::vector target_handler::target_ui( player &pc, target_mode mode, top -= 1; } - WINDOW *w_target = newwin( height, getmaxx( g->w_messages ), top, getbegx( g->w_messages ) ); + catacurses::window w_target = catacurses::newwin( height, getmaxx( g->w_messages ), top, getbegx( g->w_messages ) ); input_context ctxt("TARGET"); ctxt.set_iso(true); diff --git a/src/safemode_ui.cpp b/src/safemode_ui.cpp index 679481e4ac5ad..e477f8651b578 100644 --- a/src/safemode_ui.cpp +++ b/src/safemode_ui.cpp @@ -66,17 +66,18 @@ void safemode::show( const std::string &custom_name_in, bool is_safemode_in ) const int num_columns = column_pos.size(); - WINDOW *w_help = newwin( ( FULL_SCREEN_HEIGHT / 2 ) - 2, FULL_SCREEN_WIDTH * 3 / 4, - 7 + offset_y + ( FULL_SCREEN_HEIGHT / 2 ) / 2, offset_x + 19 / 2 ); + catacurses::window w_help = catacurses::newwin( ( FULL_SCREEN_HEIGHT / 2 ) - 2, + FULL_SCREEN_WIDTH * 3 / 4, 7 + offset_y + ( FULL_SCREEN_HEIGHT / 2 ) / 2, offset_x + 19 / 2 ); WINDOW_PTR w_helpptr( w_help ); - WINDOW *w_border = newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, offset_y, offset_x ); + catacurses::window w_border = catacurses::newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, offset_y, + offset_x ); WINDOW_PTR w_borderptr( w_border ); - WINDOW *w_header = newwin( header_height, FULL_SCREEN_WIDTH - 2, 1 + offset_y, - 1 + offset_x ); + catacurses::window w_header = catacurses::newwin( header_height, FULL_SCREEN_WIDTH - 2, + 1 + offset_y, 1 + offset_x ); WINDOW_PTR w_headerptr( w_header ); - WINDOW *w = newwin( content_height, FULL_SCREEN_WIDTH - 2, header_height + 1 + offset_y, - 1 + offset_x ); + catacurses::window w = catacurses::newwin( content_height, FULL_SCREEN_WIDTH - 2, + header_height + 1 + offset_y, 1 + offset_x ); WINDOW_PTR wptr( w ); draw_border( w_border, BORDER_COLOR, custom_name_in ); @@ -435,10 +436,11 @@ void safemode::test_pattern( const int tab_in, const int row_in ) const int content_height = FULL_SCREEN_HEIGHT - 8; const int content_width = FULL_SCREEN_WIDTH - 30; - WINDOW *w_test_rule_border = newwin( content_height + 2, content_width, offset_y, offset_x ); + catacurses::window w_test_rule_border = catacurses::newwin( content_height + 2, content_width, + offset_y, offset_x ); WINDOW_PTR w_test_rule_borderptr( w_test_rule_border ); - WINDOW *w_test_rule_content = newwin( content_height, content_width - 2, 1 + offset_y, - 1 + offset_x ); + catacurses::window w_test_rule_content = catacurses::newwin( content_height, content_width - 2, + 1 + offset_y, 1 + offset_x ); WINDOW_PTR w_test_rule_contentptr( w_test_rule_content ); draw_border( w_test_rule_border ); diff --git a/src/string_input_popup.cpp b/src/string_input_popup.cpp index 6c05731cb757a..952f0f9360d04 100644 --- a/src/string_input_popup.cpp +++ b/src/string_input_popup.cpp @@ -68,7 +68,7 @@ void string_input_popup::create_window() const int w_y = ( TERMY - w_height ) / 2; const int w_x = std::max( ( TERMX - w_width ) / 2, 0 ); - w_ptr.reset( newwin( w_height, w_width, w_y, w_x ) ); + w_ptr.reset( catacurses::newwin( w_height, w_width, w_y, w_x ) ); w = w_ptr.get(); draw_border( w ); diff --git a/src/ui.cpp b/src/ui.cpp index 0ad28f9ce381c..d673f073ca266 100644 --- a/src/ui.cpp +++ b/src/ui.cpp @@ -479,7 +479,7 @@ void uimenu::setup() if ( (int)entries.size() <= vmax ) { scrollbar_auto = false; } - window = newwin(w_height, w_width, w_y, w_x); + window = catacurses::newwin( w_height, w_width, w_y, w_x ); werase(window); draw_border(window, border_color); diff --git a/src/veh_interact.cpp b/src/veh_interact.cpp index 2e29cc6c1f1db..7e7063f716f1f 100644 --- a/src/veh_interact.cpp +++ b/src/veh_interact.cpp @@ -195,7 +195,7 @@ void veh_interact::allocate_windows() // grid window const int grid_w = TERMX - 2; // exterior borders take 2 const int grid_h = TERMY - 2; // exterior borders take 2 - w_grid = newwin(grid_h, grid_w, 1, 1); + w_grid = catacurses::newwin( grid_h, grid_w, 1, 1 ); int mode_h = 1; int name_h = 1; @@ -219,13 +219,13 @@ void veh_interact::allocate_windows() int msg_x = list_x + pane_w + 1; // make the windows - w_mode = newwin( mode_h, grid_w, 1, 1 ); - w_msg = newwin( page_size, pane_w, pane_y, msg_x ); - w_disp = newwin( disp_h, disp_w, pane_y, 1 ); - w_parts = newwin( parts_h, disp_w, parts_y, 1); - w_list = newwin( page_size, pane_w, pane_y, list_x ); - w_stats = newwin( stats_h, grid_w, stats_y, 1 ); - w_name = newwin( name_h, grid_w, name_y, 1 ); + w_mode = catacurses::newwin( mode_h, grid_w, 1, 1 ); + w_msg = catacurses::newwin( page_size, pane_w, pane_y, msg_x ); + w_disp = catacurses::newwin( disp_h, disp_w, pane_y, 1 ); + w_parts = catacurses::newwin( parts_h, disp_w, parts_y, 1 ); + w_list = catacurses::newwin( page_size, pane_w, pane_y, list_x ); + w_stats = catacurses::newwin( stats_h, grid_w, stats_y, 1 ); + w_name = catacurses::newwin( name_h, grid_w, name_y, 1 ); w_details = NULL; // only pops up when in install menu @@ -1636,7 +1636,7 @@ void veh_interact::move_cursor (int dx, int dy) void veh_interact::display_grid() { // border window - WINDOW *w_border = newwin( TERMY, TERMX, 0, 0 ); + catacurses::window w_border = catacurses::newwin( TERMY, TERMX, 0, 0 ); draw_border( w_border ); // match grid lines @@ -2021,7 +2021,7 @@ void veh_interact::display_details( const vpart_info *part ) wrefresh(w_stats); - w_details = newwin(details_h, details_w, details_y, details_x); + w_details = catacurses::newwin( details_h, details_w, details_y, details_x ); } else { werase(w_details); diff --git a/src/wincurse.cpp b/src/wincurse.cpp index 69e9d0e8262b2..d128042562fb0 100644 --- a/src/wincurse.cpp +++ b/src/wincurse.cpp @@ -525,7 +525,7 @@ void catacurses::init_interface() } init_colors(); - stdscr = newwin(get_option( "TERMINAL_Y" ), get_option( "TERMINAL_X" ),0,0); + stdscr = newwin( get_option( "TERMINAL_Y" ), get_option( "TERMINAL_X" ),0,0 ); //newwin calls `new WINDOW`, and that will throw, but not return nullptr. } diff --git a/src/wish.cpp b/src/wish.cpp index fd30d6a19a460..4be2e1ad6ad0c 100644 --- a/src/wish.cpp +++ b/src/wish.cpp @@ -285,8 +285,8 @@ class wish_monster_callback: public uimenu_callback } void setup( uimenu *menu ) { - w_info = newwin( menu->w_height - 2, menu->pad_right, 1, - menu->w_x + menu->w_width - 1 - menu->pad_right ); + w_info = catacurses::newwin( menu->w_height - 2, menu->pad_right, 1, + menu->w_x + menu->w_width - 1 - menu->pad_right ); padding = std::string( getmaxx( w_info ), ' ' ); werase( w_info ); wrefresh( w_info ); diff --git a/src/worldfactory.cpp b/src/worldfactory.cpp index de20118a98c33..05fc94d141aba 100644 --- a/src/worldfactory.cpp +++ b/src/worldfactory.cpp @@ -141,7 +141,7 @@ WORLDPTR worldfactory::make_new_world( bool show_prompt ) const int iOffsetX = (TERMX > FULL_SCREEN_WIDTH) ? (TERMX - FULL_SCREEN_WIDTH) / 2 : 0; const int iOffsetY = (TERMY > FULL_SCREEN_HEIGHT) ? (TERMY - FULL_SCREEN_HEIGHT) / 2 : 0; // set up window - WINDOW *wf_win = newwin(FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, iOffsetY, iOffsetX); + catacurses::window wf_win = catacurses::newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, iOffsetY, iOffsetX ); WINDOW_PTR wf_winptr( wf_win ); int curtab = 0; @@ -432,13 +432,10 @@ WORLDPTR worldfactory::pick_world( bool show_prompt ) } unsigned int sel = 0, selpage = 0; - WINDOW *w_worlds_border = newwin(FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, iOffsetY, iOffsetX); - WINDOW *w_worlds_tooltip = newwin(iTooltipHeight, FULL_SCREEN_WIDTH - 2, 1 + iOffsetY, - 1 + iOffsetX); - WINDOW *w_worlds_header = newwin(1, FULL_SCREEN_WIDTH - 2, 1 + iTooltipHeight + iOffsetY, - 1 + iOffsetX); - WINDOW *w_worlds = newwin(iContentHeight, FULL_SCREEN_WIDTH - 2, - iTooltipHeight + 2 + iOffsetY, 1 + iOffsetX); + catacurses::window w_worlds_border = catacurses::newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, iOffsetY, iOffsetX ); + catacurses::window w_worlds_tooltip = catacurses::newwin( iTooltipHeight, FULL_SCREEN_WIDTH - 2, 1 + iOffsetY, 1 + iOffsetX); + catacurses::window w_worlds_header = catacurses::newwin( 1, FULL_SCREEN_WIDTH - 2, 1 + iTooltipHeight + iOffsetY, 1 + iOffsetX); + catacurses::window w_worlds = catacurses::newwin( iContentHeight, FULL_SCREEN_WIDTH - 2, iTooltipHeight + 2 + iOffsetY, 1 + iOffsetX); draw_border( w_worlds_border, BORDER_COLOR, _( " WORLD SELECTION " ) ); mvwputch(w_worlds_border, 4, 0, BORDER_COLOR, LINE_XXXO); // |- @@ -747,10 +744,10 @@ void worldfactory::show_active_world_mods( const std::vector &world const int iOffsetX = ( TERMX > FULL_SCREEN_WIDTH ) ? ( TERMX - FULL_SCREEN_WIDTH ) / 2 : 0; const int iOffsetY = ( TERMY > FULL_SCREEN_HEIGHT ) ? ( TERMY - FULL_SCREEN_HEIGHT ) / 2 : 0; - WINDOW *w_border = newwin( 13, FULL_SCREEN_WIDTH / 2 - 3, 4 + iOffsetY, iOffsetX ); + catacurses::window w_border = catacurses::newwin( 13, FULL_SCREEN_WIDTH / 2 - 3, 4 + iOffsetY, iOffsetX ); WINDOW_PTR w_borderptr( w_border ); - WINDOW *w_mods = newwin( 11, FULL_SCREEN_WIDTH / 2 - 4, 5 + iOffsetY, iOffsetX ); + catacurses::window w_mods = catacurses::newwin( 11, FULL_SCREEN_WIDTH / 2 - 4, 5 + iOffsetY, iOffsetX ); WINDOW_PTR w_modsptr( w_mods ); int start = 0; @@ -823,14 +820,12 @@ int worldfactory::show_worldgen_tab_modselection(WINDOW *win, WORLDPTR world) // lots of small windows so that each section can be drawn to independently of the others as necessary WINDOW *w_header1, *w_header2, *w_shift, *w_list, *w_active, *w_description; - w_header1 = newwin(1, FULL_SCREEN_WIDTH / 2 - 5, 3 + iOffsetY, 1 + iOffsetX); - w_header2 = newwin(1, FULL_SCREEN_WIDTH / 2 - 4, 3 + iOffsetY, - FULL_SCREEN_WIDTH / 2 + 3 + iOffsetX); - w_shift = newwin(13, 5, 3 + iOffsetY, FULL_SCREEN_WIDTH / 2 - 3 + iOffsetX); - w_list = newwin(11, FULL_SCREEN_WIDTH / 2 - 4, 5 + iOffsetY, iOffsetX); - w_active = newwin(11, FULL_SCREEN_WIDTH / 2 - 4, 5 + iOffsetY, - FULL_SCREEN_WIDTH / 2 + 2 + iOffsetX); - w_description = newwin(4, FULL_SCREEN_WIDTH - 2, 19 + iOffsetY, 1 + iOffsetX); + w_header1 = catacurses::newwin( 1, FULL_SCREEN_WIDTH / 2 - 5, 3 + iOffsetY, 1 + iOffsetX ); + w_header2 = catacurses::newwin( 1, FULL_SCREEN_WIDTH / 2 - 4, 3 + iOffsetY, FULL_SCREEN_WIDTH / 2 + 3 + iOffsetX); + w_shift = catacurses::newwin( 13, 5, 3 + iOffsetY, FULL_SCREEN_WIDTH / 2 - 3 + iOffsetX ); + w_list = catacurses::newwin( 11, FULL_SCREEN_WIDTH / 2 - 4, 5 + iOffsetY, iOffsetX ); + w_active = catacurses::newwin( 11, FULL_SCREEN_WIDTH / 2 - 4, 5 + iOffsetY, FULL_SCREEN_WIDTH / 2 + 2 + iOffsetX); + w_description = catacurses::newwin( 4, FULL_SCREEN_WIDTH - 2, 19 + iOffsetY, 1 + iOffsetX ); draw_modselection_borders(win, &ctxt); std::vector headers; @@ -1114,8 +1109,7 @@ int worldfactory::show_worldgen_tab_confirm(WINDOW *win, WORLDPTR world) const char* line_of_32_underscores = "________________________________"; - WINDOW *w_confirmation = newwin(iContentHeight, FULL_SCREEN_WIDTH - 2, - iTooltipHeight + 2 + iOffsetY, 1 + iOffsetX); + catacurses::window w_confirmation = catacurses::newwin( iContentHeight, FULL_SCREEN_WIDTH - 2, iTooltipHeight + 2 + iOffsetY, 1 + iOffsetX); WINDOW_PTR w_confirmationptr( w_confirmation ); unsigned namebar_y = 1;