Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fdf #18

Merged
merged 1,077 commits into from
Sep 15, 2021
Merged

fdf #18

merged 1,077 commits into from
Sep 15, 2021

Conversation

faefux
Copy link
Owner

@faefux faefux commented Sep 15, 2021

Summary

Category "Brief description"

Purpose of change

Describe the solution

Describe alternatives you've considered

Testing

Additional context

Termineitor244 and others added 30 commits September 5, 2021 11:54
)

* Plumb hit source into the weakpoint hit_chance calculation

* Make absorb_hit return the name of the weakpoint, if any

* Add weakpoint printing to ranged attacks

* Add message to non-tech melee attacks

* Run astyle

* style json

* Add messages for weakspots and melee techniques.

* Add translator comments

* Convert string_format to positional and modify translator comments.

* Adjust weak point technique message

* Adjust technique message again.
For inventory collapsing/expanding
Add `sold` to NPC `op_of_u`
Add dialog support for reading/writing this value through `"u_val":
"sold"`
* Add steeltoed shoes

I've added a new foot option and made it an option alongside steeltoed boots where appropriate. I set up one of the two NPCs that have pre-set clothing options to have steeltoed sneakers instead of boots.

* Fix Minor Lint Errors

Fixes three minor lint issues
Added getglobal() convert a local tripoint to tripoint_abs_ms
The following can take tripoint_abs_ms:
getlocal(), veh_at(), inbounds()
Also change callers to not assign the result to a reference.
Although lifetime extension will generally make that work, it is safer
to not rely on it and there's no loss of performance due to RVO and/or
the tiny amount of data in tripoint.
Also refactor creature_tracker to take both old and new position
The new field has type tripoint_abs_ms.
Adds a getter, get_location(), replacing global_square_location() --
it's shorter.
Adds a public method move_to() for changing the location. This has the
side effect of calling on_move(), which was introduced in the previous
commit.
Adds a protected method set_location() for changing the location value
without side-effects.
Removes submap shifting for npc and monster position (no longer needed,
and actually a bug now).
Including:
- Character::can_interface_armor
- Character::mutation_armor (x3)
- Character::get_armor_bash
- Character::get_armor_cut
- Character::get_armor_bullet
- Character::get_armor_type
- Character::get_all_armor_type
- Character::get_armor_bash_base
- Character::get_armor_cut_base
- Character::get_armor_bullet_base
- Character::get_armor_acid
- Character::get_env_resist
- Character::get_armor_fire
- static destroyed_armor_msg
- static item_armor_enchantment_adjust
- static armor_enchantment_adjust
- Character::absorb_hit
- Character::armor_absorb
Also simplify the spawn code since monster coordinates don't need to be
re-calculated when they enter the reality bubble.
Converted to cata::optional<tripoint_abs_ms>:
last_player_seen_pos
guard_pos
pulp_location
chair_pos
wander_pos
Some were already absolute, just not strongly typed.
Change to tripoint_abs_ms:
- goal [was map-relative]
- wander_pos [was map-relative]
- patrol_route [was absolute but not typed]
Remove serialization for path.
Invalidate path on map shift.
Made goal optional, unset when reached.
Rename goal-related functions for consistency/readability.
Meatarian and vegetarian hobbies update.json
Added Sweets cookbook to various itemgroups
Aftershock: Stratoscomm Relay Station
akrieger and others added 29 commits September 14, 2021 11:52
- vcpkg's 'manifest mode' integrates with MSBuild which lets us skip the
  out-of-band install path. This also helps save on dev disk space by
  interning the cost into the repo instead of invisibly out of repo.
- Set a minimum vcpkg hash so that we avoid the x86-yasm-tool problem
  where 64 bit packages required the 32 bit yasm tool as a helper tool.
  this was fixed as of vcpkg commit
  `49b67d9cb856424ff69f10e7721aec5299624268` and we can have vcpkg
  enforce that with the `builtin-baseline` attribyte in `vcpkg.json`.
- Insert `--clean-after-build` to save even more disk space after the
  first install. This does slow down cold builds because vcpkg cleans
  after _each_ package and not after each install command, so it has to
  redownload some shared tools, but I don't think this is a significant
  hit to the total time.
- Cleaned up / corrected `VcpkgUserTriplet` definitions in project
  files to properly be the `-static` versions we want.
- Fix ObjectCreator build with correctly named libs for debug and
  release and proper lib paths. Unfortunately debug is still broken with
  a missing qt symbol, but at least release works.
This is a pretty bog standard looking windows workflow. The special
sauce is apparently in the `run-vcpkg` action, which has some magic in
it to cache the resulting built artifacts and automatically restore them
in subsequent runs. This is good, because the vcpkg build is very slow.
There's some subtleties in it though. We have to manually add the
msbuild integration's output paths to the list of cached folders. The
cache also includes pretty much _all_ of the vcpkg folder except build
outputs, which is problematic because it means we can't modify the
builtin triplets on the fly.

Why do we want to modify the builtin triplets? What are the triplets,
even? Triplets are basically short descriptive strings which tell vcpkg
what 'kind' of build you want - eg. `x86-windows`, `x64-windows`,
`x64-windows-static`, whatever. We want `x64-windows-static`, because
dll deployment is a cluster. Regardless, what these triplets map to are
essentially tiny CMake files which set some common configuration for all
the deps that vcpkg builds. These CMake files are usually checked into
vcpkg's repo. If we wanted to set some configuration 'globally' for all
deps, we'd have to insert it into the triplet files directly if there
wasn't some command line argument or environment variable we could use.

So why do we care? By default, vcpkg will build both debug and release
versions of all deps, and this takes a large amount of disk space. Too
much disk space, in fact, for the workers to still complete successfully
(and upload to cache if needed). One way to work around this would be to
insert `set(VCPKG_BUILD_TYPE release)` into every triplet file. This
works, but it breaks `run-vcpkg`'s caching. More specifically, because
`run-vcpkg` caches the entire vcpkg checkout including the triplets, on
subsequent runs if we were to naively insert `set(VCPKG_BUILD_TYPE release)`
again it would simply append after the entry we already had. vcpkg
itself though has extra checks to detect if packages need to be rebuilt,
including hashing the triplet files. If we just keep appending the
setting we will keep changing the triplets and busting vcpkg's cache.
Instead we use 'triplet overlays' which are essentially 'triplet include
paths' that tell vcpkg where to look for triplet files. We'll point
vcpkg at a folder in our repo where we've checked in shadow copies of
the triplets we care about which include the setting automatically, and
will thus be consistent on every run, and no one's cache will be busted.
Co-authored-by: Saicchi <Saicchi@users.noreply.github.com>
* Add map extras for exodii crashes, and items to populate them with
* Add more variety to wreckages including crashed version
also touches up item groups and terrain appearance
* Create exo_safehouse.json
all data in this file for now, for easier rebasing later.

Co-authored-by: anothersimulacrum <anothersimulacrum@gmail.com>
Remove legacy code handling z-levels-off
Add the no_fungal_growth mod by default
The previous attempt to fix the rare anthill placement errors did not
work.  I now know this was due to a simple typo, but tracking down the
issue took a lot of refactoring.  That refactoring improved the code, so
I'm including it here.

Changes include:
* The previous fix was that new unresolved joins that might conflict
  with postponed joins would themselves be automatically postponed.  We
  have now reversed this logic so the postponed joins are restored.
  This allows another chance for the current phase to satisfy the joins,
  now that might be possible.
* Postponed joins now need to have their positions indexed for efficient
  access, so I factored out that indexing capability into a new struct
  indexed_joins.
* Removed the list of orphaned joins.  They should no longer ever occur.
* Added a bunch of calls to a consistency_check function that verifies
  the class invariants (except it's disabled for now, with the code left
  in case it's useful for future debugging).
* The order of unresolved joins used to depend on their addresses in
  memory, which made the tests non-reproducible.  Change that to be
  deterministic.
* Add unit test which places ~100k anthills to more easily observe
  placement errors.
* Improve the debugging output for failed placements to make it easier
  to see what happened (add phase boundary markers and capitalize
  FAILED).
This is supposed to give a helpful error message when devs have a
too-old copy of vcpkg, but for cataclysm it seems to barf in a very
odd way complaining about some yasm-tool-helper version unavailable
and otherwise not being friendly. Even if not, people might need to
rebootstrap because the versions feature is not default until some
newer time period. Regardless, we can just remove this field and
allow existing devs to keep working, and new devs will clone vcpkg
at a new enough rev that things should work fine.
Co-authored-by: Saicchi <Saicchi@users.noreply.github.com>
Co-authored-by: Kevin Granade <kevin.granade@gmail.com>
Remove builtin-baseline from vcpkg.json
Update Tilesets 2021-09-14
don't load body part drench_capacity twice
Update the table of contents in doc/JSON_INFO.md
@faefux faefux merged commit db244df into faefux:master Sep 15, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.