-
Notifications
You must be signed in to change notification settings - Fork 736
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
Frag - Implement Arma v2.18 changes from #10157 #10313
Open
lambdatiger
wants to merge
387
commits into
acemod:master
Choose a base branch
from
lambdatiger:eventHandler-replace-2.18
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
387 commits
Select commit
Hold shift + click to select a range
c4a93c7
Implemented changes discussed here https://github.com/acemod/ACE3/pul…
lambdatiger b2666fc
Config lookup optimization mentioned by johnb432 here: https://github…
lambdatiger b780704
white space/formatting changes
lambdatiger 67e125c
Merge branch 'master' of https://github.com/lambdatiger/ace_frag-over…
lambdatiger 85b566a
removed old parameter changed in https://github.com/acemod/ACE3/pull/…
lambdatiger 67ede76
compacted text a bit
lambdatiger 572f909
formatting whitespace
lambdatiger 7aa17aa
Grammatical erros
lambdatiger 8dd76d1
Changes as discussed here https://github.com/acemod/ACE3/pull/9728#di…
lambdatiger 6dacd38
Few quick optimizations of == to isEqualTo
lambdatiger 9178611
Debug updated to be easier to control
lambdatiger 769bb29
Changed how spall hold off is calculated to avoid repeated unneeded c…
lambdatiger 63cba6b
clarified a hold off variable
lambdatiger 4be8c82
Better approach to ACE_FRAG_RM_EH macro
lambdatiger 4727386
Git rid of superfulous stringtable entries
lambdatiger 16e699e
unneeded parens
lambdatiger cdf1b4d
Clarified arguments
lambdatiger 1b03ef7
getposATL to getPosATL
lambdatiger 0958d6a
Update addons/frag/functions/fnc_dev_addRound.sqf
lambdatiger 1612872
Function header changes
lambdatiger 3cc300a
another great isNotEqualTo opportunity
lambdatiger b6891b7
formatting changes
lambdatiger e5f62c7
unneeded parens
lambdatiger c0c423b
Declared _ammoInfo twice
lambdatiger 5160361
optimized around checking if systems are active and moved debug argum…
lambdatiger 73d0064
Removed white space from removing an if statement in a previous commit
lambdatiger ea15eea
Removed superfulous parenthese
lambdatiger a1c498d
clarified function description and removed unneeded comments
lambdatiger 0321b78
Moved "isServer" check to initRound function
lambdatiger 1f294f5
Merge branch 'master' of https://github.com/lambdatiger/ace_frag-over…
lambdatiger 3f84a45
https://github.com/acemod/ACE3/pull/9728#discussion_r1454832701
lambdatiger da1d184
changed params statement, function header, and propigated doFrag argu…
lambdatiger 183d9f0
capitization from cfg to Cfg in config lookups
lambdatiger df884dc
changed default arguments, check isKindOf to "CAManBase"
lambdatiger 8b45d0a
Updated function headers
lambdatiger 9bcf2b7
white space and define placement changes
lambdatiger 35592fa
removed 2 argument option and removed some defaults
lambdatiger 63d67df
removed spurious commas
lambdatiger c921b1f
removed unused debug GVAR
lambdatiger 13834d7
Switched debug clear traces from addAction to ACE self interact
lambdatiger 85df838
variable names weren't verbose enough
lambdatiger f741737
Mactched format https://github.com/acemod/ACE3/pull/9728#discussion_r…
lambdatiger a4f2ad4
Updated debug settings
lambdatiger 59bf6e3
Shot parent possible fix #1
lambdatiger 722e86a
Removed extra text from CfgAmmoFragParameters
lambdatiger 4ebbc28
Makes sure spall power square root is positive and also we don't prod…
lambdatiger 8b3826a
white space for clarity
lambdatiger 78a15b1
Optimize dev_hitbox deleting
lambdatiger 5f1cf0b
saving people from their own bad testing setup
lambdatiger f3788af
Since the functions always exist, I guess these variables should too
lambdatiger a3efede
Fixe bad search function
lambdatiger 8636926
optimization, see https://github.com/acemod/ACE3/pull/9728#discussion…
lambdatiger 00dc419
changed SPG-9 Fragments
lambdatiger 2d9828d
removed unneeded toLower
lambdatiger 40b9cd3
Merge branch 'master' of https://github.com/lambdatiger/ace_frag-over…
lambdatiger 2e6186c
Changed case output to match config
lambdatiger 33afd8a
Merge branch 'ACE_advancedThrowing-shotParent-issue'
lambdatiger 3540062
Increased relative chance to hit torso/pelvis when fragemnt should hit.
lambdatiger fd6b9bc
Removed double space
lambdatiger 07f055e
updated some round types
lambdatiger f63b408
Added commented 2.18 commands and updated script component
lambdatiger 60543a5
added print incomplete only option to fnc_debugAmmo
lambdatiger 2ad2564
removed all spaces from macros
lambdatiger 49c6187
Sync main repo
lambdatiger a4c88ec
removd unneeded define
lambdatiger 665707b
a Brett (HEMTT) suggested change I miss
lambdatiger 1da1c68
Apply suggestions from code review
lambdatiger fa241ca
Removed doublespace
lambdatiger 61029ba
Update addons/frag/functions/fnc_dev_addRound.sqf
lambdatiger 4d9f61e
Update addons/frag/functions/fnc_dev_drawTrace.sqf
lambdatiger ae116e2
variable name changes
lambdatiger a976b28
magic number clean up and white space
lambdatiger 4ef23df
white space, function headers and variable names
lambdatiger bc2a6bb
small Should spall optimization
lambdatiger 7e54280
Merge branch 'master' of https://github.com/lambdatiger/ace_frag-over…
lambdatiger 668d222
Removed blacklist functions and settings
lambdatiger c09c2a1
reformatted function headers, removed value type checking, and change…
lambdatiger 656fa9f
fixed missing underscore in change from review
lambdatiger 78a27ff
function header, lazy eval, and params list simplifications
lambdatiger dfdea2d
function header and variable name readability
lambdatiger 6cbfe15
changed defaults to make them more clear they're just a default value
lambdatiger 21e7b3d
Updated wiki to be clearer in a few areas, and add some other informa…
lambdatiger 4913887
added MP debug compatability
lambdatiger 66c566b
Possible shouldFrag legibility improvement
lambdatiger a8778a6
added changes to stringtable
lambdatiger f4dc052
Grammar sweep on the wiki, and added some clarifications to config va…
lambdatiger 7248496
optimized dev_trackHitbox and made variables more explicit
lambdatiger 4728a56
Cleaned up documentation and documentation
lambdatiger 008328c
reorganized postInit CBA_settingInitialized EH
lambdatiger dd65fc8
missing underscore in fnc_dev_trackObj
lambdatiger c3470de
stopped adding unneeded extra points
lambdatiger b98aae7
cleaned un-updated stringtable entries
lambdatiger 05dedff
reworked some function headers and deleted whitespace in doFragTargeted
lambdatiger 776c1f7
Merge branch 'acemod:master' into master
lambdatiger fc745e4
Removed outdated code
johnb432 279f2e0
Formatting and header fixes
johnb432 480d2df
Ignore curators and spectators
johnb432 d6c21e0
Made clear traces global again, added interaction condition
johnb432 d6a37f3
Change stringtable entries
johnb432 e3395c5
Removed unused stringtable entries & fixed hitbox description
lambdatiger f57ac94
Small coding standard changes (missing semicolons on non-return valu…
lambdatiger 8a2f40c
Changed sphere size and added return based on usage in dev_trackHitBox
lambdatiger 3cb07e8
removed "_lo" random fragment entries as they are unused
lambdatiger 3e52ce2
doFragRandom was always being called and spawning at least 5 fragment…
lambdatiger 5915d0e
removed unnceassary "disableCollisionWith"
lambdatiger 4c905fe
Clarified trace statements and corrected format and spelling
lambdatiger 9c6a919
Do spall exits for time 90% of the time (round hits multiple walls) a…
lambdatiger fd2c595
Fixed ordering in which frag hold off variables are set to not skip w…
lambdatiger 98caad5
initRound ordering and fixed define names
lambdatiger ff98917
Fixed function header
lambdatiger 4583a0d
reformatted comments and some v2.18 remakrs comments
lambdatiger deecaf9
Removed unneeded ground offset
lambdatiger 448f3e8
Merge remote-tracking branch 'upstream/master'
lambdatiger 9dd45e1
Expanded TRACE
johnb432 ab51d8f
Fix typo
johnb432 04a3ba8
Moved event to preInit
johnb432 786ce92
Updated default fallback frag distance to be less extreme and changed…
lambdatiger 48f96b4
Merge branch 'acemod:master' into master
lambdatiger e1d085c
Merge branch 'acemod:master' into master
lambdatiger eda865f
Randomized random frag directions
lambdatiger 5bab127
removed some magic numbers, and cached numbers from shouldSpall
lambdatiger ef39e78
removed magic numbers and cached values preemptively (normally spallI…
lambdatiger c487f7f
Unify example formatting
lambdatiger 5e41b51
Merge branch 'master' of https://github.com/lambdatiger/ace_frag-over…
lambdatiger bd23b42
cleaned up function examples
lambdatiger a817e5e
removed excess square brackets
lambdatiger 0800205
Final function example reformat
lambdatiger 60d0af8
Update addons/frag/script_component.hpp
johnb432 ecf5dbf
Merge branch 'master' into pr/9728
johnb432 6b82859
Corrected docs
johnb432 e8283c3
Use `getOrDefaultCall`
johnb432 6c53fff
Merge branch 'acemod:master' into master
lambdatiger 2206ef4
Removed unused classes, redefined using macros to minimize error and …
lambdatiger 25f14af
updated debugging output and fixed velocity error
lambdatiger eb24c11
Reformatted for legibility and debug output
lambdatiger 3c2a3c7
caught calc error while answer johnb's question
lambdatiger ce60bd3
Almost finished with compats and I had some changes to align vanilla …
lambdatiger d6c400e
Missed variable when updating
lambdatiger 283b806
Added unneeded class details to make PBOproject happy
lambdatiger 868c613
Forgot to update doFragRandom docs with previous changes
lambdatiger 559c611
and the debug context
lambdatiger afc3b10
Merge branch 'acemod:master' into master
lambdatiger 4f0c167
Merge branch 'master' into pr/9728
johnb432 e2dce5e
Readd blacklist
johnb432 b9aa3cb
Fixed an issue with fragments being created above water for explosion…
lambdatiger eaff498
Exposed projectile event handlers for both blacklist use and other sh…
lambdatiger f1483c5
Revert "Exposed projectile event handlers for both blacklist use and …
lambdatiger 8d071f9
added debug information and folded if statements
lambdatiger 3d6c406
fixed error (if statement with no argument)
lambdatiger 718c3d6
Only send blacklist updates to the server
lambdatiger 130037d
Added default fragCount fallback value based on current ACE frag rang…
lambdatiger 474321b
Converted all positions for doFrag to AGL since we're converting to t…
lambdatiger 60a0dae
removed feet hitpoints & tightened multishot submunitions.
lambdatiger d0df8e5
Merge branch 'acemod:master' into master
lambdatiger eedbb0b
Revert to 60a0dae, merge conflict wasn't resolved properly
lambdatiger 7050afb
Merge branch 'master' of https://github.com/lambdatiger/ace_frag-over…
lambdatiger d6adfb7
Merge remote-tracking branch 'upstream/master'
lambdatiger a6cfcbf
Removed event handlers
lambdatiger cf1860d
Changed blacklist to acting on local projectiles to match initial per…
lambdatiger 9df2e5b
added fired EH and moved projectile tracking to be local to projectile
lambdatiger f65fcbf
updated initialization and should frag to check for submunitions sinc…
lambdatiger cd4d2a9
Fixed calls for shouldFrag and got rid of old initRound.sfq (maybe ba…
lambdatiger 04e844f
fixed small mistakes in names and function calls
lambdatiger 1ae4fc7
fixed frame offset to avoid hitting dead targets
lambdatiger 15d5256
Merge branch 'acemod:master' into master
lambdatiger 32af820
Fixed config path in shouldFrag
lambdatiger 0269039
Didn't know that PBO project needed trailing {} on class inheritance …
lambdatiger 15de0d9
fixed more useless trailing {}
lambdatiger b656ef6
Initial rollback to old frag simulation and spalling simulation. Upda…
lambdatiger 2c5b058
missed comma
lambdatiger 20b1ab7
remove fragCount from config
lambdatiger a20274a
made addBlackList remove projectile EHs
lambdatiger 842b818
updated config path to be relevant to post-EH version
lambdatiger fbca983
All spalling in current version is local
lambdatiger 04c4bd4
updated search pattern to one discussed in PR #9728
lambdatiger 682568f
updated defines to match implementation
lambdatiger 9c8e9e3
removed commented out debug information from nouber
lambdatiger 3fcf6f7
removed magic numbers and code with no effect
lambdatiger 3595f82
removed more magic numbers
lambdatiger 39e7f7f
unfucked a comma
lambdatiger 783c2aa
fixed debug def names
lambdatiger f7d6c78
updated documentation
lambdatiger 8da5e47
changed debug colors
lambdatiger 437f6c1
mass must be in grams in this version I guess
lambdatiger 48e2996
fixed errors in frag with downgrade
lambdatiger 1480715
fixed timing and other spall issues
lambdatiger 4f25176
updated some defne names and usages
lambdatiger c344130
increased code legiblity and optimized some randomizations
lambdatiger f57f6f5
clarified parts of the spall event chain
lambdatiger 2713acd
Optimized loop to find spall position using larger steps and fewer op…
lambdatiger e4d36c6
fixed small errors
lambdatiger 160bb15
Merge remote-tracking branch 'upstream/master' into Event-hanlder-rep…
lambdatiger 3efaef0
removed unused variables & EHs and set defaults in the case debug mod…
lambdatiger 6137849
removed "class eventhandler" references
lambdatiger 5df635c
removed _fragCount reference in newly backported debug functions
lambdatiger 33a0653
fragmenting projectile velocity isn't used anywhere
lambdatiger 72a6cff
removed unused variables, implemented fixes from full rewrite PR, and…
lambdatiger 3659aff
added debug draw mode to DEBUG_ENABLED_FRAG define check
lambdatiger 8b29b86
Merge branch 'acemod:master' into Event-hanlder-replacement
lambdatiger 06d3b23
fix documentation to make units clear on metal and filler quanities
lambdatiger 4d79e93
Merge branch 'Event-hanlder-replacement' of https://github.com/lambda…
lambdatiger 0ef3991
command capitalization
lambdatiger cfdf291
added target point debug spheres
lambdatiger 5745455
fixed target sphere visability
lambdatiger bee8eee
Jank fix so that the unit firing can get hit with it's own fragments
lambdatiger 5059cb2
accidentally committed script_component.hpp w/ debug enabled
lambdatiger ed36b6a
Alternative way to address shot parent self-harm issue
lambdatiger 61a1770
missed comma, going to bed, sorry
lambdatiger 7b282ec
add newline and fix blacklist
lambdatiger 22ca38f
legability formatting
lambdatiger 25cc22b
removed extra newlines and double spaces
lambdatiger 2e67d5d
Updated function documentation
lambdatiger 4092177
Removed unused stringtable items
lambdatiger 8c68f13
Debug sphere conditional was missing in frago
lambdatiger eb04dec
Completed suggested changed by johnb432
lambdatiger 66fce29
Merge branch 'acemod:master' into Event-hanlder-replacement
lambdatiger 5d16ecb
restored 40mm grenade fragmentation
lambdatiger b17ea96
Apply suggestions from code review
lambdatiger 58e021b
Fixed firefist inheritance and order of 125mm shell
lambdatiger 82d9044
Merge branch 'acemod:master' into Event-hanlder-replacement
lambdatiger ea782c1
Wrong order on reflections variables, but it's not like anyone uses that
lambdatiger 9e150e0
Added projectile locality
lambdatiger b9138bd
Added proper projectile locality checks
lambdatiger bd557af
Merge branch 'Event-hanlder-replacement' of https://github.com/lambda…
lambdatiger f485b5a
left some locality debug text
lambdatiger dae81be
This isn't worthy of a warning as most of the time _objectHit is null…
lambdatiger 70606d4
Removed a newlines for code brackets in arrays
lambdatiger 1855441
updated debug functions with some minor optimizations
lambdatiger dfbcd15
Apply suggestions from code review
lambdatiger 5ae31fa
Merge remote-tracking branch 'upstream/master' into Event-hanlder-rep…
lambdatiger 6a51a82
didn't consider someone might use explosion reflections but not frag
lambdatiger 7bbd8a0
addressed future arma v2.18 changes more aptly
lambdatiger c0ea806
Fixed authors line on fired function. Used to make sense different wh…
lambdatiger bdf0854
switch all hash fallbacks to getOrDefaultCall and turned default frag…
lambdatiger f512fab
Merge branch 'acemod:master' into Event-hanlder-replacement
lambdatiger f918816
Transitioned frag system from fired to ace explode event system
lambdatiger 65c0304
decreased chance to hit / fragment inaccuracy.
lambdatiger 18816cf
fixing setShotParents only sometimes setting first argument, not inst…
lambdatiger 6808b81
cleanup
LinkIsGrim 1568dde
Slight optimization of "_vecVar" calculation
lambdatiger 4ec7dfd
removed dev_addRound function
lambdatiger 6c49525
Command changes for Arma 2.18
lambdatiger d70686e
Fixed debug setting changes
lambdatiger 64e44d3
missed exit condition
lambdatiger ee7c28d
removed shot parents due to local creation of spall
lambdatiger 487b987
Merge remote-tracking branch 'upstream/master' into eventHandler-repl…
lambdatiger 5f6bd5b
Merge remote-tracking branch 'upstream/master' into eventHandler-repl…
lambdatiger af575dc
Merge remote-tracking branch 'upstream/master' into eventHandler-repl…
lambdatiger 93892cb
simplified comment
lambdatiger 7c2ded5
Adjusted whitespace for readability
lambdatiger File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change | ||||
---|---|---|---|---|---|---|
|
@@ -39,105 +39,94 @@ _shellType call FUNC(getFragInfo) params ["_fragRange", "_fragVelocity", "_fragT | |||||
|
||||||
private _fragPosAGL = ASLToAGL _fragPosASL; | ||||||
TRACE_5("fragValues",_fragPosASL,_fragPosAGL,_fragRange,_fragVelocity,_metalMassModifier); | ||||||
// Post 2.18 change - uncomment line 43, modify lines 45, and remove lines 44, 51-57, 64-66 | ||||||
// private _targets = [ASLToAGL _fragPosAGL, _fragRange, _fragRange, 0, false, _fragRange] nearEntities [["Car", "Motorcycle", "Tank", "StaticWeapon", "CAManBase", "Air", "Ship"], false, true, true]; | ||||||
private _objects = _fragPosAGL nearEntities [["Car", "Motorcycle", "Tank", "StaticWeapon", "CAManBase", "Air", "Ship"], _fragRange]; | ||||||
if (_objects isEqualTo []) exitWith { | ||||||
|
||||||
// compile possible targets including units, vehicles, and crews | ||||||
private _targets = [_fragPosAGL, _fragRange, _fragRange, 0, false, _fragRange] nearEntities [["Car", "Motorcycle", "Tank", "StaticWeapon", "CAManBase", "Air", "Ship"], false, true, true]; | ||||||
if (_targets isEqualTo []) exitWith { | ||||||
TRACE_2("No nearby targets",_fragPosAGL,_fragRange); | ||||||
0 | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
}; | ||||||
|
||||||
// grab crews and add them in so that targets stay approx. sorted by distance | ||||||
TRACE_1("",_objects); | ||||||
private _targets = []; | ||||||
{ | ||||||
private _crew = crew _x; | ||||||
_crew pushBackUnique _x; | ||||||
_targets append _crew; | ||||||
} forEach _objects; | ||||||
TRACE_2("",_fragRange,count _targets); | ||||||
TRACE_3("",_fragRange,count _targets,_targets); | ||||||
|
||||||
private _fragCount = 0; | ||||||
|
||||||
private _fragArcs = []; | ||||||
_fragArcs set [360, 0]; | ||||||
|
||||||
if (_targets isNotEqualTo []) then { | ||||||
if (GVAR(reflectionsEnabled)) then { | ||||||
[_fragPosASL, _shellType] call FUNC(doReflections); | ||||||
}; | ||||||
{ | ||||||
private _target = _x; | ||||||
if (alive _target && {getNumber ((configOf _target) >> "isPlayableLogic") == 0}) then { | ||||||
(boundingBox _target) params ["_boundingBoxA", "_boundingBoxB"]; | ||||||
|
||||||
private _cubic = ((abs (_boundingBoxA select 0)) + (_boundingBoxB select 0)) * ((abs (_boundingBoxA select 1)) + (_boundingBoxB select 1)) * ((abs (_boundingBoxA select 2)) + (_boundingBoxB select 2)); | ||||||
|
||||||
if (_cubic <= 1) exitWith {}; | ||||||
|
||||||
private _targetVel = velocity _target; | ||||||
private _targetPos = getPosASL _target; | ||||||
private _distance = _target distance _fragPosAGL; | ||||||
private _add = ((_boundingBoxB select 2) / 2) + ((((_distance - (_fragVelocity / 8)) max 0) / _fragVelocity) * 10); | ||||||
|
||||||
_targetPos = _targetPos vectorAdd [ | ||||||
(_targetVel select 0) * (_distance / _fragVelocity), | ||||||
(_targetVel select 1) * (_distance / _fragVelocity), | ||||||
_add | ||||||
]; | ||||||
|
||||||
private _baseVec = _fragPosASL vectorFromTo _targetPos; | ||||||
|
||||||
private _dir = floor (_baseVec call CBA_fnc_vectDir); | ||||||
private _currentCount = RETDEF(_fragArcs select _dir,0); | ||||||
if (_currentCount < 10) then { | ||||||
private _count = ceil (random _metalMassModifier); | ||||||
private _vecVar = FRAG_VEC_VAR; | ||||||
if !(_target isKindOf "CAManBase") then { | ||||||
ADD(_vecVar,(sqrt _cubic) / 2000); | ||||||
if ((crew _target) isEqualTo [] && {_count > 0}) then { | ||||||
_count = 0 max (_count / 2); | ||||||
}; | ||||||
if (GVAR(reflectionsEnabled)) then { | ||||||
[_fragPosASL, _shellType] call FUNC(doReflections); | ||||||
}; | ||||||
{ | ||||||
private _target = _x; | ||||||
if (getNumber ((configOf _target) >> "isPlayableLogic") == 0) then { | ||||||
(boundingBox _target) params ["_boundingBoxA", "_boundingBoxB"]; | ||||||
|
||||||
private _cubic = ((abs (_boundingBoxA select 0)) + (_boundingBoxB select 0)) * ((abs (_boundingBoxA select 1)) + (_boundingBoxB select 1)) * ((abs (_boundingBoxA select 2)) + (_boundingBoxB select 2)); | ||||||
|
||||||
if (_cubic <= 1) exitWith {}; | ||||||
|
||||||
private _targetVel = velocity _target; | ||||||
private _targetPos = getPosASL _target; | ||||||
private _distance = _target distance _fragPosAGL; | ||||||
private _add = ((_boundingBoxB select 2) / 2) + ((((_distance - (_fragVelocity / 8)) max 0) / _fragVelocity) * 10); | ||||||
|
||||||
_targetPos = _targetPos vectorAdd [ | ||||||
(_targetVel select 0) * (_distance / _fragVelocity), | ||||||
(_targetVel select 1) * (_distance / _fragVelocity), | ||||||
_add | ||||||
]; | ||||||
|
||||||
private _baseVec = _fragPosASL vectorFromTo _targetPos; | ||||||
|
||||||
private _dir = floor (_baseVec call CBA_fnc_vectDir); | ||||||
private _currentCount = RETDEF(_fragArcs select _dir,0); | ||||||
if (_currentCount < 10) then { | ||||||
private _count = ceil (random _metalMassModifier); | ||||||
private _vecVar = FRAG_VEC_VAR; | ||||||
if !(_target isKindOf "CAManBase") then { | ||||||
ADD(_vecVar,(sqrt _cubic) / 2000); | ||||||
if ((crew _target) isEqualTo [] && {_count > 0}) then { | ||||||
_count = 0 max (_count / 2); | ||||||
}; | ||||||
private _vecVarHalf = _vecVar / 2; | ||||||
for "_i" from 1 to _count do { | ||||||
private _vectorDir = _baseVec vectorDiff [ | ||||||
_vecVarHalf - (random _vecVar), | ||||||
_vecVarHalf - (random _vecVar), | ||||||
_vecVarHalf - (random _vecVar) | ||||||
]; | ||||||
|
||||||
private _fragObjSpeed = _fragVelocity * (1 - random 0.5); | ||||||
private _fragObjVelocity = _vectorDir vectorMultiply _fragObjSpeed; | ||||||
|
||||||
private _fragObj = createVehicleLocal [selectRandom _fragTypes, _fragPosAGL, [], 0, "CAN_COLLIDE"]; | ||||||
_fragObj setVectorDir _vectorDir; | ||||||
_fragObj setVelocity _fragObjVelocity; | ||||||
#ifdef DEBUG_MODE_DRAW | ||||||
[_fragObj, "green", true] call FUNC(dev_trackObj); | ||||||
if (GVAR(dbgSphere)) then { | ||||||
[_targetPos, "(0.88,0.36,0.92,0.8)"] call FUNC(dev_sphereDraw); | ||||||
}; | ||||||
#endif | ||||||
INC(_fragCount); | ||||||
INC(_currentCount); | ||||||
}; | ||||||
private _vecVarHalf = _vecVar / 2; | ||||||
for "_i" from 1 to _count do { | ||||||
private _vectorDir = _baseVec vectorDiff [ | ||||||
_vecVarHalf - (random _vecVar), | ||||||
_vecVarHalf - (random _vecVar), | ||||||
_vecVarHalf - (random _vecVar) | ||||||
]; | ||||||
|
||||||
private _fragObjSpeed = _fragVelocity * (1 - random 0.5); | ||||||
private _fragObjVelocity = _vectorDir vectorMultiply _fragObjSpeed; | ||||||
|
||||||
private _fragObj = createVehicleLocal [selectRandom _fragTypes, _fragPosAGL, [], 0, "CAN_COLLIDE"]; | ||||||
_fragObj setVectorDir _vectorDir; | ||||||
_fragObj setVelocity _fragObjVelocity; | ||||||
#ifdef DEBUG_MODE_DRAW | ||||||
[_fragObj, "green", true] call FUNC(dev_trackObj); | ||||||
if (GVAR(dbgSphere)) then { | ||||||
[_targetPos, "(0.88,0.36,0.92,0.8)"] call FUNC(dev_sphereDraw); | ||||||
}; | ||||||
_fragArcs set [_dir, _currentCount]; | ||||||
#endif | ||||||
INC(_fragCount); | ||||||
INC(_currentCount); | ||||||
}; | ||||||
_fragArcs set [_dir, _currentCount]; | ||||||
}; | ||||||
if (_fragCount > _maxFrags) exitWith {}; | ||||||
} forEach _targets; | ||||||
TRACE_1("targeted",_fragCount); | ||||||
}; | ||||||
if (_fragCount > _maxFrags) exitWith {}; | ||||||
private _randomCount = ceil ((_maxFrags - _fragCount) * 0.35); | ||||||
TRACE_1("",_randomCount); | ||||||
private _sectorSize = 360 / (_randomCount max 1); | ||||||
|
||||||
for "_i" from 1 to _randomCount do { | ||||||
// Distribute evenly | ||||||
private _sectorOffset = 360 * (_i - 1) / (_randomCount max 1); | ||||||
private _randomDir = random (_sectorSize); | ||||||
private _vectorDir = [cos (_sectorOffset + _randomDir), sin (_sectorOffset + _randomDir), sin (30 - (random 45))]; | ||||||
} forEach _targets; | ||||||
TRACE_1("targeted",_fragCount); | ||||||
if (_fragCount > _maxFrags) exitWith {}; | ||||||
private _randomCount = ceil ((_maxFrags - _fragCount) * 0.35); | ||||||
TRACE_1("",_randomCount); | ||||||
private _sectorSize = 360 / (_randomCount max 1); | ||||||
|
||||||
for "_i" from 1 to _randomCount do { | ||||||
// Distribute evenly | ||||||
private _sectorOffset = 360 * (_i - 1) / (_randomCount max 1); | ||||||
private _randomDir = random (_sectorSize); | ||||||
private _vectorDir = [cos (_sectorOffset + _randomDir), sin (_sectorOffset + _randomDir), sin (30 - (random 45))]; | ||||||
|
||||||
private _fragObjSpeed = _fragVelocity * (1 - random 0.5); | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Correct indentation. |
||||||
private _fragObjVelocity = _vectorDir vectorMultiply _fragObjSpeed; | ||||||
|
@@ -146,13 +135,13 @@ if (_targets isNotEqualTo []) then { | |||||
_fragObj setVectorDir _vectorDir; | ||||||
_fragObj setVelocity _fragObjVelocity; | ||||||
|
||||||
#ifdef DEBUG_MODE_DRAW | ||||||
[_fragObj, "blue", true] call FUNC(dev_trackObj); | ||||||
#endif | ||||||
INC(_fragCount); | ||||||
}; | ||||||
#ifdef DEBUG_MODE_DRAW | ||||||
[_fragObj, "blue", true] call FUNC(dev_trackObj); | ||||||
#endif | ||||||
INC(_fragCount); | ||||||
}; | ||||||
|
||||||
TRACE_1("total created",_fragCount); | ||||||
|
||||||
END_COUNTER(frago); | ||||||
_fragCount | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.