Commits on Jan 11, 2019
  1. game: adjust vehicle driving offset based on the new speeds

    mlangsdorf committed Jan 11, 2019
    Adjust the driving view offset calculation to deal with the new
    vehicle speeds.
  2. npcs: warn about unseen speakers but not ambient noise

    mlangsdorf committed Jan 11, 2019
    Prevent NPCs from warning about ambient noise, but start processing
    speach category sounds by warning about unseen speakers.  Also,
    correctly pass movement_noise instead of footsteps to warn_about when
    complaining about movement noise.
  3. npcs: stop complaining while asleep

    mlangsdorf committed Jan 11, 2019
    NPCs that are asleep shouldn't complain.
  4. Update src/morale_types.cpp

    mlangsdorf and davidpwbrown committed Jan 11, 2019
    Co-Authored-By: davidpwbrown <>
  5. sounds: make ambient sounds provide a category

    mlangsdorf committed Jan 11, 2019
    Ambient sounds are sounds that don't interrupt player activity, not
    sounds in the background.  Change the function definition for
    ambient_sounds to include a category and process it appropriately.
    Add explicit sound messages to a couple of events that would
    otherwise not have sounds because they are ambient events happening
    at the player position, and remove sound messages from the engine
    start code and replace them with sound events.
  6. sounds: provide description for completely muffled shouts

    mlangsdorf committed Jan 11, 2019
    Provide a description for completely muffled shouts, since the
    sound code now requires a description and people with super enhanced
    hearing might hear muffled shouts anyway.
  7. game: add a debug option to spawn map extras (#27525)

    mlangsdorf authored and kevingranade committed Jan 11, 2019
    now you can spawn crashed helicopters instead of having to roam around
    the map looking for the things.
Commits on Jan 10, 2019
  1. vehicles: improve split logic

    mlangsdorf committed Jan 9, 2019
    Adjust the mount point of the partsof forcibly split vehicles.  This
    seems to keep their global pos3 where it should be instead of having
    them jump around the map and ending up partially under the vehicle
    they split off from.
    Beef up the vehicle split test to check that the tripoints of all the
    parts of the new vehicles are the same as the tripoints of the parts
    of the original vehicle, and that no new vehicle shares a tripoint
    with any other vehicle.
Commits on Jan 8, 2019
  1. npctalk: redo u_sell_item and u_has_item using has_amount/has_charges

    mlangsdorf committed Jan 8, 2019
    Use the slightly more flexible has_amount/has_charges and use_amount/
    use_charges instead of searching for position by type.  Adjust the test
    case to have the player wielding a bottle that will be sold to make
    sure that u_has_item finds item the player is wielding.
  2. npctalk: keep track of player basecamps and add u_has_camps condition

    mlangsdorf committed Jan 7, 2019
    Add a set of containing the overmap pos3 of every basecamp that the
    player has.  Each basecamp is added to the set every time the player
    talks to a camp manager, and removed when the basecamp is abandoned.
    The new u_has_camps conditional returns true if the player has 1 or
    more basecamps.
  3. NPCs: add a hidden trait to starting and statically spawned NPCs

    mlangsdorf committed Jan 6, 2019
    Add NPC_STATIC_NPC and NPC_STARTING_NPC traits and automatically
    assign them to statically spawned and starting NPCs.
  4. npctalk: add MUTATION_THRESHOLD pseudo-trait flag

    mlangsdorf committed Jan 6, 2019
    "u_has_trait_flag": "MUTATION_THRESHOLD" returns g->u.crossed_threshold(),
    and similarly for NPCs.
Commits on Jan 7, 2019
  1. npctalk: add a simple pseudo-switch for responses

    mlangsdorf committed Jan 5, 2019
    Add two new keywords, "switch" and "default".  All responses with the
    "switch" keyword are evaluated in order until one of them has a valid
    condition, after which no other responses with the "switch" keyword
    are displayed.  Reponses with "switch" and "default" are displayed
    if no response with "switch" and without "default" are displayed,
    assuming the response's condition allows it to be displayed.
    A couple of existing dialogues are rewritten to use switch and
  2. npctalk: clean up the code a little more

    mlangsdorf committed Jan 5, 2019
    get rid of some now unncessary c_strs and make sure almost everything
    is 100 characters per line.
  3. npctalk: add u_sell_item effect

    mlangsdorf committed Jan 6, 2019
    Add an effect that removes an item from the player's inventory and
    adds it to the NPC's inventory.
Commits on Jan 6, 2019
  1. vehicles: don't let drag stop vehicles in active cruise control

    mlangsdorf committed Jan 6, 2019
    The current vehicle model has all the drag deceleration applied
    at once at the start of each turn.  Vehicles that have more drag
    deceleration than speed will stop, aligning their turn direction
    with their facing.
    This normally works fine, but some boats and amphibious vehicles
    will have enough water drag deceleration to stop them every turn,
    even if they have enough acceleration to return back to their
    cruise control set speed.  Under those conditions, the vehicles
    will move apparently normally across water, but cannot turn.
    Give vehicles that are under cruise control with a non-zero
    cruise control target velocity a nominal velocity if the drag
    slowdown exceeds the vehicle's current speed, which seems to
    resolve the problem.
Commits on Jan 4, 2019
  1. npc: remove hardcoded mutation modifiers to opinions and use JSON values

    mlangsdorf committed Jan 4, 2019
    let NPCs form opinions of players based on the total ugliness of all the
    player's traits, not just select traits.  Replace hardcoded modifiers to
    intimidate and persuade with the existing social_modifiers JSON
    information.  Adjust the social modifiers for a few traits, including
    moving the previous hardcoded values into JSON.
  2. Update data/json/npcs/Backgrounds/criminal_2.json

    mlangsdorf and I-am-Erk committed Jan 4, 2019
    Co-Authored-By: I-am-Erk <>
  3. traits: hide survivor stories and NPC only traits

    mlangsdorf committed Jan 4, 2019
    Hide the NPC only traits and the survivor story traits.
  4. player display: allow for hidden traits

    mlangsdorf committed Jan 4, 2019
    Add support for hidden traits that are not displayed in the '@' menu.
  5. doc: use C++ highlighting instead of JSON highlighting in

    mlangsdorf committed Jan 4, 2019
    Change the syntax highlighting to C++, since that produces more
    attractive results with the inline comments.
  6. npctalk: add more conditions and dynamic line options

    mlangsdorf committed Jan 2, 2019
    add options to generate dynamic lines and responses based on
    whether the player has an item, the season of the year, whether
    it is day or not, and the elapsed time since the cataclysm.
Commits on Jan 3, 2019
  1. Update src/bionics_ui.cpp

    mlangsdorf and Pupsi-Mupsi committed Jan 3, 2019
    Co-Authored-By: Pupsi-Mupsi <>
Commits on Jan 2, 2019
  1. translations: translate C++ std::strings

    mlangsdorf committed Jan 2, 2019
    Overload _() to take std::strings instead of requiring everyone to
    pass .c_str().
  2. Boats: add more boat hulls, sample boats, amphibious truck

    mlangsdorf committed Dec 28, 2018
    Add plastic, metal, and carbon fiber boat hulls.
    Add a plastic hulled kayak and a carbon fiber hulled racing kayak.
    Add an amphibious truck (aka DUKW) using metal hulls and demonstrating
    an amphibious vehicle.
  3. Boats: use more compact parts notation

    mlangsdorf committed Dec 28, 2018
    Shorten the vehicle prototypes in Boats by using parts notation.
  4. Boats: clean up and consolidate files

    mlangsdorf committed Dec 28, 2018
    Merge the mulitple vehicles, vehicle parts, and vehicle base items JSON
    files from Boats into 4 clearly named files.
  5. vehicles: enable amphibious vehicles

    mlangsdorf committed Dec 22, 2018
    stop treating boat boards as wheels and doing weird things with wheel
    area traction calculations.  Instead, check if a vehicle is mostly in
    the water, and if it is, whether it can float, or if it isn't, whether
    it has sufficient wheels.  Now that these are entirely separate concepts,
    a vehicle can be amphibious by giving it wheels and enough boat boards.
    Revise the drag test to consistently give correct results and include
    water drag numbers.
  6. vehicles: call act_on_map() on stopped vehicles

    mlangsdorf committed Dec 22, 2018
    Give all vehicles a minimum amount of moves in gain_moves(), so that
    act_on_map() will be called for every vehicle on the map.
  7. tests: fix vehicle efficiency test

    mlangsdorf committed Dec 23, 2018
    don't test mass when doing make_vehicle_efficiency_case.
    Make the tests a little more robust and catch some possible
    corner cases.
Commits on Dec 31, 2018
  1. monster: display monster difficulty

    mlangsdorf committed Dec 27, 2018
    Display a rough estimate of monster difficulty, or if debug mode
    is enabled, the exact difficulty.
    Estimate it shown when examining the monster, while the exact
    value is shown in multiple places when debug mode is enabled.
  2. NPCs: more variation in NPCs warning about monsters

    mlangsdorf committed Dec 26, 2018
    Change NPCs warning about monsters with difficulty > 10 to warning
    about monsters with difficulty >  ( 8 + NPC bravery + random number
    between 0 and 5 ).  There shouldn't be much change for most NPCs
    but brave NPCs will warn about fewer types of monsters and all NPCs
    will sometimes skip warnings about some monsters.
  3. monsters: autocalculate monster difficulty

    mlangsdorf committed Dec 26, 2018
    Automate calculation of monster difficulty, based on melee damage,
    emited fields, defenses, HP, speed, aggression and morale, vision
    range, and a special attack fudge factor stored in the "diff" field.
    Update data/json and data/mods/ to use the new values.
  4. vehicles: enable functional boats phase 1

    mlangsdorf committed Dec 21, 2018
    add a function vehicle::is_in_water() and an underlying variable
    is_floating to replace ad-hoc calls to !floating.empty (with the long
    term plan of dynamically determining if a vehicle is in water to allow
    amphibious vehicles).
    rework the boat movement equations to use the same kind of math as the
    ground vehicle movement equations.  Approximate boat draft and freeboard
    based on vehicle weight and percentage of structure that have boat boards.
    Add two more lines to the stats pane in the vehicle interaction menu and
    use the extra space to display water speed and acceleration and draft.
    Rework that section of the code to be more C++ and less C.