Skip to content

Frag - Implement Arma v2.18 changes from #10157#10313

Merged
johnb432 merged 390 commits intoacemod:masterfrom
lambdatiger:eventHandler-replace-2.18
Oct 25, 2024
Merged

Frag - Implement Arma v2.18 changes from #10157#10313
johnb432 merged 390 commits intoacemod:masterfrom
lambdatiger:eventHandler-replace-2.18

Conversation

@lambdatiger
Copy link
Contributor

@lambdatiger lambdatiger commented Sep 12, 2024

This PR requires #10157 to be merged.
When merged this pull request will:

  • Use _instigator projectile "HitPart" event handler argument instead of retrieving shotParents.
  • Use new syntax of nearEntities to avoid needing to sort/filter the fragment target arrays.

IMPORTANT

  • If the contribution affects the documentation, please include your changes in this pull request so the documentation will appear on the website.
  • Development Guidelines are read, understood and applied.
  • Title of this PR uses our standard template Component - Add|Fix|Improve|Change|Make|Remove {changes}.

lambdatiger and others added 30 commits January 15, 2024 18:50
Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com>
Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com>
Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com>
Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com>
Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com>
Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com>
Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com>
Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com>
Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com>
Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com>
@lambdatiger lambdatiger marked this pull request as ready for review September 12, 2024 21:23
@PabstMirror
Copy link
Contributor

Readable diff (I think) - lambdatiger/ace_frag-overhaul@lambdatiger:ace_frag-overhaul:Event-hanlder-replacement...eventHandler-replace-2.18

@johnb432
Copy link
Contributor

@lambdatiger Can you handle the merge conflicts?

@johnb432 johnb432 added the kind/optimization Release Notes: **IMPROVED:** label Sep 22, 2024
@johnb432 johnb432 added this to the Ongoing milestone Sep 22, 2024
@johnb432 johnb432 added the 2.18 label Sep 22, 2024
@lambdatiger
Copy link
Contributor Author

There's one more 2.18 change that came from #10247 that isn't present in this PR yet. I'll test it again later this week before I commit it.

@johnb432
Copy link
Contributor

There's one more 2.18 change that came from #10247 that isn't present in this PR yet. I'll test it again later this week before I commit it.

There's no hurry, given that 2.18 won't release until sometime in october (and I doubt we will release a day 1 patch).

@johnb432
Copy link
Contributor

There's no hurry, given that 2.18 won't release until sometime in october (and I doubt we will release a day 1 patch).

That aged like milk...

@lambdatiger
Copy link
Contributor Author

I'll run through it tomorrow and let you know if it's good to go.

@lambdatiger
Copy link
Contributor Author

lambdatiger commented Oct 13, 2024

Alright, new feature isn't easily added. I'll address any other changes in #9728.

Testing seems to work like it should, no issues and the new nearEntities syntax does what it took us the command and a loop to do. If anyone has specific testing they want lmk, but I ran through in single player using the new syntax and formatting.

Copy link
Contributor

@johnb432 johnb432 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Other than that, LGTM

@johnb432 johnb432 removed the 2.18 label Oct 19, 2024
@johnb432 johnb432 modified the milestones: Ongoing, 3.18.2 Oct 19, 2024
@johnb432 johnb432 merged commit cd72fab into acemod:master Oct 25, 2024
LinkIsGrim added a commit that referenced this pull request Nov 2, 2024
* removed old parameter changed in f28d5d2

* compacted text a bit

* formatting whitespace

* Grammatical erros

* Changes as discussed here #9728 (comment)

* Few quick optimizations of == to isEqualTo

* Debug updated to be easier to control

* Changed how spall hold off is calculated to avoid repeated unneeded computations

* clarified a hold off variable

* Better approach to ACE_FRAG_RM_EH macro

* Git rid of superfulous stringtable entries

Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com>

* unneeded parens

Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com>

* Clarified arguments

Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com>

* getposATL to getPosATL

Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com>

* Update addons/frag/functions/fnc_dev_addRound.sqf

Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com>

* Function header changes

Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com>

* another great isNotEqualTo opportunity

Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com>

* formatting changes

Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com>

* unneeded parens

Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com>

* Declared _ammoInfo twice

* optimized around checking if systems are active and moved debug arguments to an ifdef

* Removed white space from removing an if statement in a previous commit

* Removed superfulous parenthese

Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com>

* clarified function description and removed unneeded comments

* Moved "isServer" check to initRound function

* #9728 (comment)

* changed params statement, function header, and propigated doFrag argument changes

* capitization from cfg to Cfg in config lookups

* changed default arguments, check isKindOf to "CAManBase"

* Updated function headers

* white space and define placement changes

* removed 2 argument option and removed some defaults

* removed spurious commas

* removed unused debug GVAR

* Switched debug clear traces from addAction to ACE self interact

* variable names weren't verbose enough

* Mactched format #9728 (comment)

* Updated debug settings

* Shot parent possible fix #1

* Removed extra text from CfgAmmoFragParameters

* Makes sure spall power square root is positive and also we don't produce fragments when for some reason the round accelerates.

* white space for clarity

Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com>

* Optimize dev_hitbox deleting

Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com>

* saving people from their own bad testing setup

* Since the functions always exist, I guess these variables should too

* Fixe bad search function

* optimization, see #9728 (comment)

* changed SPG-9 Fragments

* removed unneeded toLower

* Changed case output to match config

* Increased relative chance to hit torso/pelvis when fragemnt should hit.

* Removed double space

* updated some round types

* Added commented 2.18 commands and updated script component

* added print incomplete only option to fnc_debugAmmo

* removed all spaces from macros

* removd unneeded define

* a Brett (HEMTT) suggested change I miss

* Apply suggestions from code review

Small formatting changes and small errors

Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com>

* Removed doublespace

Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com>

* Update addons/frag/functions/fnc_dev_addRound.sqf

If the round isn't in the hashmap anymore, we have to stop the PFH.
Brought code up to same standard as used in FUNC(dev_trackObj). - johnb432

Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com>

* Update addons/frag/functions/fnc_dev_drawTrace.sqf

Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com>

* variable name changes

* magic number clean up and white space

* white space, function headers and variable names

* small Should spall optimization

Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com>

* Removed blacklist functions and settings

* reformatted function headers, removed value type checking, and changed lazy eval.

* fixed missing underscore in change from review

* function header, lazy eval,  and params list simplifications

* function header and variable name readability

* changed defaults to make them more clear they're just a default value

* Updated wiki to be clearer in a few areas, and add some other information I've found working on this

* added MP debug compatability

* Possible shouldFrag legibility improvement

* added changes to stringtable

* Grammar sweep on the wiki, and added some clarifications to config values

* optimized dev_trackHitbox and made variables more explicit

* Cleaned up documentation and documentation

* reorganized postInit CBA_settingInitialized EH

* missing underscore in fnc_dev_trackObj

Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com>

* stopped adding unneeded extra points

Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com>

* cleaned un-updated stringtable entries

* reworked some function headers and deleted whitespace in doFragTargeted

* Removed outdated code

* Formatting and header fixes

* Ignore curators and spectators

* Made clear traces global again, added interaction condition

* Change stringtable entries

* Removed unused stringtable entries & fixed hitbox description

* Small coding standard changes (missing semicolons on  non-return values, extra parenthesis)

* Changed sphere size and added return based on usage in dev_trackHitBox

* removed "_lo" random fragment entries as they are unused

* doFragRandom was always being called and spawning at least 5 fragments even when the fragment budget of 50 was reached. Fixed variable name (AGL instead of ATL).

* removed unnceassary "disableCollisionWith"

* Clarified trace statements and corrected format and spelling

* Do spall exits for time 90% of the time (round hits multiple walls) and should exit on "hitting ground since no spalling is generated

* Fixed ordering in which frag hold off variables are set to not skip when unneeded

* initRound ordering and fixed define names

* Fixed function header

* reformatted comments and some v2.18 remakrs comments

* Removed unneeded ground offset

* Expanded TRACE

* Fix typo

* Moved event to preInit

* Updated default fallback frag distance to be less extreme and changed fixed a magic number

* Randomized random frag directions

* removed some magic numbers, and cached numbers from shouldSpall

* removed magic numbers and cached values preemptively (normally spallInfoCache is called later, but we pull the right config parameters so we might as well store them)

* Unify example formatting

Co-authored-by: Grim <69561145+LinkIsGrim@users.noreply.github.com>

* cleaned up function examples

* removed excess square brackets

* Final function example reformat

* Update addons/frag/script_component.hpp

* Corrected docs

* Use `getOrDefaultCall`

* Removed unused classes, redefined using macros to minimize error and make review easier

* updated debugging output and fixed velocity error

* Reformatted for legibility and debug output

* caught calc error while answer johnb's question

* Almost finished with compats and I had some changes to align vanilla as well

* Missed variable when updating

* Added unneeded class details to make PBOproject happy

* Forgot to update doFragRandom docs with previous changes

* and the debug context

* Readd blacklist

* Fixed an issue with fragments being created above water for explosions below the surface

* Exposed projectile event handlers for both blacklist use and other shenanigans.

* Revert "Exposed projectile event handlers for both blacklist use and other shenanigans."

This reverts commit eaff498.

* added debug information and folded if statements

* fixed error (if statement with no argument)

* Only send blacklist updates to the server

* Added default fragCount fallback value based on current ACE frag range calculation

* Converted all positions for doFrag to AGL since we're converting to that now

* removed feet hitpoints & tightened multishot submunitions.
Feet hitpoitns aren't used since calculation for trajectory doesn't account for drag, fragments aimed at feet won't hit

* Merge branch 'acemod:master' into master

* Revert to 60a0dae, merge conflict wasn't resolved properly

* Removed event handlers

* Changed blacklist to acting on local projectiles to match initial performance

* added fired EH and moved projectile tracking to be local to projectile

* updated initialization and should frag to check for submunitions since we no longer rely on init EH

* Fixed calls for shouldFrag and got rid of old initRound.sfq (maybe back after 2.18)

* fixed small mistakes in names and function calls

* fixed frame offset to avoid hitting dead targets

* Fixed config path in shouldFrag

* Didn't know that PBO project needed trailing {} on class inheritance structures

* fixed more useless trailing {}

* Initial rollback to old frag simulation and spalling simulation. Updated spall to function and helpter functions as well

* missed comma

* remove fragCount from config

* made addBlackList remove projectile EHs

* updated config path to be relevant to post-EH version

* All spalling in current version is local

* updated search pattern to one discussed in PR #9728

* updated defines to match implementation

* removed commented out debug information from nouber

* removed magic numbers and code with no effect

* removed more magic numbers

* unfucked a comma

* fixed debug def names

* updated documentation

* changed debug colors

* mass must be in grams in this version I guess

* fixed errors in frag with downgrade

* fixed timing and other spall issues

* updated some defne names and usages

* increased code legiblity and optimized some randomizations

* clarified parts of the spall event chain

* Optimized loop to find spall position using larger steps and fewer operations per loop

* fixed small errors

* removed unused variables & EHs and set defaults in the case debug mode draw isn't used

* removed "class eventhandler" references

* removed _fragCount reference in newly backported debug functions

* fragmenting projectile velocity isn't used anywhere

* removed unused variables, implemented fixes from full rewrite PR, and fixed math errors

* added debug draw mode to DEBUG_ENABLED_FRAG define check

* fix documentation to make units clear on metal and filler quanities

* command capitalization

* added target point debug spheres

* fixed target sphere visability

* Jank fix so that the unit firing can get hit with it's own fragments

* accidentally committed script_component.hpp w/ debug enabled

* Alternative way to address shot parent self-harm issue

* missed comma, going to bed, sorry

* add newline and fix blacklist

* legability formatting

* removed extra newlines and double spaces

* Updated function documentation

* Removed unused stringtable items

* Debug sphere conditional was missing in frago

* Completed suggested changed by johnb432

* restored 40mm grenade fragmentation

* Apply suggestions from code review

Fixed a number of config errors

Co-authored-by: PabstMirror <pabstmirror@gmail.com>

* Fixed firefist inheritance and order of 125mm shell

* Wrong order on reflections variables, but it's not like anyone uses that

* Added projectile locality

* Added proper projectile locality checks

* left some locality debug text

* This isn't worthy of a warning as most of the time _objectHit is null is due to the projectile hitting the ground

* Removed a newlines for code brackets in arrays

* updated debug functions with some minor optimizations

* Apply suggestions from code review

Grammar and spelling corrections

Co-authored-by: Jouni Järvinen <rautamiekka@users.noreply.github.com>

* didn't consider someone might use explosion reflections but not frag

* addressed future arma v2.18 changes more aptly

* Fixed authors line on fired function. Used to make sense different when it was an init function based on ammunition extended eventhandlers, missed the revert.

* switch all hash fallbacks to getOrDefaultCall and turned default fragments array into a define

* Transitioned frag system from fired to ace explode event system

* decreased chance to hit / fragment inaccuracy.

* fixing setShotParents only sometimes setting first argument, not instigator

* cleanup

* Slight optimization of "_vecVar" calculation

* removed dev_addRound function

* Command changes for Arma 2.18

* Fixed debug setting changes

* missed exit condition

* removed shot parents due to local creation of spall

* simplified comment

* Adjusted whitespace for readability

* Reformatted comments per Johnb432's suggestions

Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com>

* one more indent fix

---------

Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com>
Co-authored-by: Grim <69561145+LinkIsGrim@users.noreply.github.com>
Co-authored-by: PabstMirror <pabstmirror@gmail.com>
Co-authored-by: Jouni Järvinen <rautamiekka@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

kind/optimization Release Notes: **IMPROVED:**

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants