OpenXcom Forum

OpenXcom Forks => OpenXcom Extended (OXCE) => OXCE Suggestions DONE => Topic started by: zRrr on March 01, 2024, 10:14:03 pm

Title: [DONE] Support for HWPs without fixed ammo (+ auto-recovery of non-fixed ammo)
Post by: zRrr on March 01, 2024, 10:14:03 pm
Currently debriefing screen handles recovery of HWP ammo in separate branch of code. That branch does not work with multiple ammo slots, or other fixed weapons, that may be built-in in hwp armor, so any clips loaded are lost, even if they were not used.

This is an issue for Piratez. Piratez use hwps for special characters, because they can be used as research prerequisite, event triggers, etc. Recent updates introduced two characters (Lady Gudrun The Sorceress and Red Mage Ascendant) that shoot bunch of spells, using several ammo slots and action to slot mapping. Ammo for them is expensive and losing it just because it was loaded is a bit sad.

Reproduction: make HWP with several ammo slots and access to inventory. Go to battle, load all extra ammo, abort. Observe loss of clips in base inventory. I've attached mod with multiple hwps that take HC-AP, AC-AP and pistol clips for built-in second weapon.

I've tried to fix it, by moving recovery code into DebriefingState::recoverItems, and I think it works, as in 'game does not crash and I get expected number of clips back after mission'. Patch also enables merge of used hwp clips, which is difference from OXC, but does not affect unmodded games.

https://github.com/zrrr111/oxce-hwp-ammo-recovery/commit/0530b1ed822725741992f46383c2a4f062e249c3

edit 2024/04/21: moved some comments into github comments, added more testcases for multistage missions.
Title: Re: Improve ammo recovery for HWPs during debriefing
Post by: Meridian on August 15, 2024, 05:26:20 pm
Your commit is probably OK, but:

1/ there are a lot of cases to re-test... and from previous painful experience I know that any change in DebriefingState (or DogfightState) creates twice as many bugs as it solves

-> I'll try to rework your commit to be even smaller, so that I don't have to re-test so many cases.

2/ I want to be backwards-compatible not only with OXC and xcom1/xcom2 ruleset; but wherever possible also with older versions of OXCE and any existing mods for OXC/OXCE

-> I'll try to keep the primary HWP ammo recovery code unchanged.


PS: thanks for making a test mod and for all the comments in the code... both did help.
Title: Re: Improve ammo recovery for HWPs during debriefing
Post by: zRrr on August 15, 2024, 09:52:24 pm
Thanks for looking into this
Title: Re: [DONE] Support for HWPs without fixed ammo (+ auto-recovery of non-fixed ammo)
Post by: Meridian on August 16, 2024, 04:56:37 pm
Done.
https://github.com/MeridianOXC/OpenXcom/commit/88e5a812b90d32cf40518b3ef1a8753131e38d30

At the end, I decided to recover fixed ammo and non-fixed ammo in different ways.
This should be the least invasive way.

As a bonus, you can now have HWPs without any fixed ammo (`vehicleFixedAmmoSlot: -1`).

Piratez's Lady Gudrun The Sorceress and Red Mage Ascendant should use that option for equipment and recovery to work correctly:

Code: [Select]
items:
  - type: STR_RED_MAGE_ASC_30
    vehicleFixedAmmoSlot: -1
  - type: STR_DOCTOR_X_A70
    vehicleFixedAmmoSlot: -1


@zRrr: I have tested it on those 2 piratez units, and on all xcom1/xcom2 HWPs, so far so good... when/if you have time, please retest also on your test data
Title: Re: [DONE] Support for HWPs without fixed ammo (+ auto-recovery of non-fixed ammo)
Post by: zRrr on August 17, 2024, 12:14:21 am
Ran my tests, everything worked as expected.