Add equipment slots to the companion loot screen.
Items can be equipped directly from player or companion inventory. This also allows switching between party members so you can manage all companion's inventories easily. Does not allow equipping items that would otherwise be disallowed.
Also:
Calls HOOK_UNWIELD when adding/removing equipment, meaning mods like npc armor work
Uses HOOK_CANUSE for weapon use checks
Ctrl-click to equip is not implemented since it already transfers items between the two inventories. I tried making it work only for equippable items (and otherwise transfer), but that felt awkward and random. Ctrl-click unequip is implemented.
* Bundle Sfall's gl_highlight.ssl
Most mods/distributions assume this is exists since it is bundled with Sfall. It's also a highly requested feature
I decided to merge this as a first-class game config instead of continuing to read mods/sfall-mods.ini. I think most people to this to be a default capability that can be toggled in-engine. Open to other thoughts on the matter. Lost of people will already have sfall-mods.ini configured, which is a reason to keep it the way it was.
* PR feedback
* Add "trade/loot" context menu for party members.
This was an idea I saw listed on NMA. Veterans of classic Fallout know you can trade with your companions much more easily using the steal skill, But this would be difficult for most new players to discover. This replaces the dialogue option in the long press (which is redundant since it is the default action) with the hand, which is normally used to loot from containers and corpses.
This does introduce a slight inconsistency in the default action, not being present when you long press. how almost everyone will be single-clicking to talk to NPCs.
Also, "you plant..." and "you steal..." messages when trading with companions this way. Put this behind the same flag in case someone wants the original experience.
* Full context menu
* container -> target
* PR feedback
* rebase on main
* rename function
* Expanded barter window from sfall
* Refactor: FrmImage class to lock based on file name, refactor code from last commit
* Soft limit on named art cache size
* Support localized paths for art loaded by name
* Fix visual issue from original sfall implementation where barter window were scrolling down incorrectly + bufToBuf const correctness
* Fix build error and extra destructor call when adding NamedCacheEntry
* Review fixes
* Update src/art.cc
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Review issues fixed, window made transparent to remove black area below the overlap during scroll down
* chore: auto-format with clang-format
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* Extended AP bar from sfall
* Rewrote using new Buffer2D and blitBuffer2D + code review fixes
* chore: auto-format with clang-format
* Add ConstBuffer2D + other fixes
* chore: auto-format with clang-format
* Linux build fix attempt
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* Add basic content config structure
* Moved non-file related settings from ddraw.ini to game.cfg
* Various fixes from self review
* Moved remaining worldmap settings to game.cfg
* Migrate character and text related settings
* Update docs
* chore: auto-format with clang-format
* Add hard-coded foce_base.dat to have reliable location to load CE-provided content from
* Move game.cfg to new base mod
* Automatic migration from ddraw.ini
* chore: auto-format with clang-format
* Removed option to disable cities limit fix
* Minor review comment fixes
* Migrate to /data instead of CE dat
* Migrate to local game#patch.cfg and skip fields with default values
- This was if some mod modifies/overwrites game.cfg later, only fields that user cares about will be loaded from user's override, and said mod is less likely to break
* Fix potential issue when "master_patches" is an absolute path and move recursive mkdir into a helper function
* Refactor code and fix some edge cases: data folder not exists when migrating, ddraw.ini doesn't exist
* Rename face_base.dat -> ce.dat
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>