Commit Graph

4 Commits

Author SHA1 Message Date
johnb432
c8404f496e
Arsenal - Add/Fix/Improve/Change numerous aspects (#9040)
* Arsenal update

* Fixes

* Update fnc_onSelChangedLeft.sqf

* Update fnc_updateUniqueItemsList.sqf

* Header fixes

* Fix for defines.hpp

Co-authored-by: Dystopian <sddex@ya.ru>

* Moved fnc_baseWeapon, filtered invalid items

* Update addons/arsenal/functions/fnc_scanConfig.sqf

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

* Fixes and tweaks

- Sorting is guaranteed to give a fixed order
- Dog tags no longer throw errors when reloading the ACE arsenal mission when you had some saved in your loadout before quitting the last time you played.

* Cleanup, bug fixes and additions

- Added the ability to add items from "CfgMagazines" into the "Misc. items" or custom tabs.
- Added "baseWeapon" class support for weapon attachments. If a weapon attachment has the config property "baseWeapon" defined, it will take that item and show that in the arsenal.
- Added stronger filtering on item scopes (scope > 0 at least for every item)
- Added "descending" (default, as it is now) and "ascending" sort order as a drop down menu,
- Unique backpacks in containers can now be removed with either the "-" or "clear all items" button.
- When sorting by a number, 2 decimal points have been added, so that when you sort by weight it returns the correct order.

* More fixes and tweaks

- Converted the arsenal to partially work with hashmaps instead of arrays (for configItems and virtualItems, currentItems is still an array).
- Because of the above, performance of FUNC(addVirtualItems) and FUNC(removeVirtualItems) has improved immensely.
- Sorting now caches results, reducing repeated sorting times drastically.
- CBA disposable launchers are handled differently now: Within the arsenal, you can change weapon attachments on disposable launchers, but you can't change their magazines (primary or secondary). Item info on the right and the stats show correct information.
- FUNC(addSort) now checks if the new sorting method already exists and doesn't add it if it does.
- FUNC(removeSort) now exists. You can't remove the default sort type (alphabetically) to avoid problems with the arsenal.
- Both FUNC(addStat) and FUNC(compileStats) actually taken priority into account now. Because of that priority on several stats needed to be tweaked.
- FUNC(removeStat) ensures that there are no gaps within the stat array (so if there is an empty spot in the stats page, it's because there is a stat, but the condition for it being shown hasn't been met).

* Update fnc_replaceUniqueItemsLoadout.sqf

* Update fnc_onSelChangedLeft.sqf

* Update fnc_scanConfig.sqf

* Update docs/wiki/framework/arsenal-framework.md

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

* Minor cleanup

* Baseweapon filtering

* Improvements + better unique items support

* Update fnc_fillRightPanel.sqf

* Update fnc_onSelChangedLeft.sqf

Fixed: Switching between weapons with incompatible primary magazines while a compatible secondary magazine is loaded doesn't equip the new weapon's primary magazine.

* Update addons/common/functions/fnc_uniqueUnitItems.sqf

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

* undefined variable

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

* fix undefined loadout var

* Update fnc_fillLoadoutsList.sqf

---------

Co-authored-by: Dystopian <sddex@ya.ru>
Co-authored-by: Grim <69561145+LinkIsGrim@users.noreply.github.com>
Co-authored-by: PabstMirror <pabstmirror@gmail.com>
2023-07-21 21:25:25 +03:00
PabstMirror
f70dfaf160
Arsenal - Compile stats on first use (#6159)
* Arsenal - Compile stats on first use

* fix )
2018-02-23 23:30:15 -06:00
Josuan Albin
1d6e07d18f Add ACE Arsenal stats (#6110)
* Add test class

* Add stats mockup

* Merge branch 'master' of https://github.com/acemod/ACE3 into arsenalStats

* Finish mockup, add basic hide/show logic

* Add base for stats

* Use CBA EHs for stats to allow 3rd party mods of it

* Add handleStats and most of the UI behaviors for stats

* Continue work on stats

* Add container stats

* Add page support for stats

* Add text for the ROF stat

* Add accuracy in MOA for the accuracy stat

* Change accuracy shown number to 1 decimal instead of 2

* Add MIL in the dispersion stat text

* Change stats layout, remove dummy text strings

* Add some AB stats

* Remove last test string

* Replace configExtremes by normal lookup where it's relevant

* Add "undefined value" string when AB stat isn't present

Mostly for laucnhers

* Fix typo in preInit

* Change drag model stat to ballistic coef

* Fix issue with unused stats, change text to white when bar is present

* Rewrite some part of handleStats

Reason: add support for conditions, less redundant code, less reasons for dedmen to emasculate me

* Re-add _hideUnusedFnc, handle empty stats arrays

* Pass args to stat conditions, add test condition stat

* Add hearing related stats

* Remove the padding between stats and the stat bar / text

* Add strings for stats

* Change stats window to fit baer's suggestion

* Algin the close stats button, add missing strings

* Finish code review

* Add missing newline

* Remove duplicate strings

* Add explosive range stat

* Use proper string for the explo range stat

* Fix capitalization for ctrlParent

* Fix conditional stats blocking other stats

* Add better integration for ballistics, hearing and explosive stats

* Replace the private array in handleStat by params

* Add backblast stats

* Add backblast stat strings

* Add flashlight map color and g-force reduction stats

* Shorten preInit

* Change stats close button to fit arsenal design

* Improve stats page indicator look

* Rework how stats are stored and retrieved

* Remove args config entry, add priority entry, add vanilla weapon stats

* Add vanilla container stats

* Remove some lines in preInit

* Add ballistics stats

* Add hearing stats

* Remove uneeded config entries

* Add explosive range stat

* Add backblast stats

* Add spaces after semicolons in statements

To make JJ happy because I don't care.

* Add flashlights map color stat

* Add gforce reduction stat

FINALLY FUCKING DONE

* Fix headers for the new stats funcs

* Add add / remove stat API

* Fix typo in removeStat header

* Remove uneeded inline func

* Clean up add / remove stat

* Move all CfgACEArsenalStats entries to their own file

* Replace STR_ACE_Ballistics_statAmmo by a BI string

* Add script profiler related macro and code

* Use the highest ballistic coef instead of first one defined

* Add support for future ammo displayname

* Add ACE_standardAtmosphere for ballistic coef

* Add mag muzzle velocity stat

* Add weapon muzzle velocity stat

* Add comment explaining the ENABLE_PERF_PROFILING macro

* Change cfgACEArsenalStats to ACE_Arsenal_Stats

* Make JJ less pissy about spaces around =

* Fix indentation in weaponMuzzleVelocity, use param

* Use GVAR and EGVAR when appropriate

* Prefix all stats except the base class

* Fix Merge

* Fix aspect ratio scaling of stats panel

* Minor fixes
2018-02-15 10:03:22 -06:00
Josuan Albin
2bde515aaa Add ACE_Arsenal (#5734)
* Add CBA setting for modIcons

* Add CBA settings for camera control

* Merge the 2 inverted settings into one

There's no man crazy enough to need one inverted and the other normal

* Add back missing newline

* Change rscCommon, don't redefine base classes

* Change anim to "civil" when not in a weapon or special tab

* Fix current handgun ending up in launchers tab and vice versa

* Change back virtualItems first index to primary secondary handgun

* Add ace_arsenal_hide config check and config entry

* Add dogtags handling in postInit

* Add CBA setting for fontHeight for left and right panel

* magazineGroups

* Add base layout for loadouts GUI

* Prepare the SQF base for the loadouts display

* Continue laying the base for the SQF of the loadouts display

* Add CBA settings for the loadouts display

* Implement button logic for loadouts display

* Finish button logic, start adding filling and button funcs

* Add editBox for loadout names

* Add loadout saving and deleting

* Add loadouts loading

* Add select current after list is refreshed after saving

* Redo button layout, Add rename button, Add messages

* Add double click loading

* Fix loadout deleting not triggering curSel change

* Keep cursor at same index when deleting loadouts

Woops

* Reload pictures when saving over old loadout

* Fix loadout save not updating the pictures properly (again)

* Add close button for loadouts dialog

* Fix weight not updating when using arrows to add / remove items

* Make the arsenal layout a bit prettier

* Start adding non available items and missing mods for loadouts

* Remove useless lines in fillLoadouts

* Move buttonHide above panel fill in loadoutsClose

* Change the way weapons are checked in fillLoadoutsList

* Add weapon in container support for fillLoadoutsList

* Add mag in container check for fillLoadoutsList

* Add item check for containers in fillLoadoutsList

* Fix item duplication when loadout loadouts

* Switch anim to civil for the rest of the tabs that need it

* Make extra sure item duplication won't happen

* Fix right panel hiding issues

* Fix remove all button, use QGVAR for EHs names, add isMP check to share tab

* Fix initBox erroring out if the object is null

* Move loadout checking to it's own func

* Force panel reload every time loadoutList change

I'm forced to do this, I can't save arrays in listnboxes

* Change how loadouts are retrived from the listnbox

* Fix save overwriting existing loadout not updating right row

* Fix indentation in buttonLoadoutsSave

* Fix reserved var error

* Fix fillLoadoutlist tab check

* Fix accessories in containers not being checked properly via verifyLoadout

* Fix binos not being detected properly by verifyLoadout

* Fix pre-filled backpacks not behaving properly

* Add mine detector check in configScan and onArsenalOpen

* Add extra traces

* Add mine detector check in non cached part of addVirtualItems

* Move right panel greying to it's own func

* Fix right panel listnbox for items with mass under 1

* Redo unique items sorting in onArsenalOpen

* Add loadoutSaved EH, handle empty name box for loadout saving

* Reapply inisgnia after loadout is loaded

* Change LoadoutSaved to loadoutSaved

* Rename savedLoadout to onLoadoutSave

* Change buttonLoadoutsSave layout to prepare base weapon saving

* Save base class for weapons when saving loadouts

* Remove unused profiling code related code

* Add not implemented warning messages for export and import

* Fix error when saving with a container or weapon slot being empty

* Remove dogtags from loadout upon loadout saving

* Change how misc item mass is retrieved

* Remove vanilla "NoVoice" from voices to avoid an error related to it

* Use tolower for currentData and itemsToCheck in fillLeftPanel

Avoid camelCase issues with the commands that don't fucking respect it.

* Remove redundant check in postInit

* Fix sharedLoadouts condition in onArsenalOpen, Fix save button logic

* Prepare sharedLoadouts addition

* Add loadout sharing

* Add proper saving and loading for shared loadouts

* Change loadout deleted / unshared EH name, add said EH to unsharing

* Remove shared loadouts from disconnected players

* Fix error in buttonLoadoutsSave, add row when other share a loadout

* Change sharedLoadouts tab curSel selection to lnbData instead of lnbText

* Add data when adding a new row via CBA EH

* Remove mode, add arg to openBox to have arsenal prefilled

* Cleanup buttonClearAll code

* Fix itemInfo behavior when switching between items that don't have logos

Fix #23

* Add copy paste and arrow key support for searchbars

Close #22

* Add back newline at EOF for onKeyDown

* Change default camera setting from non inverted to inverted

* Fix import and export "not implemented" message

* Rename share button to Unshare when loadout selected is shared

* Improve missing items logging, cache verifyLoadout check

* Remove unused var

* Add full 3DEN support

* Remove 3DEN sphere and grid, set helper center dir properly

* Change 3DEN lightsource intensity

* Save 3DEN inventory properly

* Rewrite onArsenalClose 3DEN comment

* Fix sharedLoadouts check

* Add 3DEN support for defaultTab

* Add new event for 3rd parties in buttonCargo

* Move weight update to updateRightPanel for buttonCargo and selChangedListnBox

* Fix defaultLoadout save button

* Remove unallowed command

* Fix arsenal messages not working in 3DEN

* Add export current loadout, Add export defaultLoadoutsList

Signed-off-by: Josuan Albin <josuanalbin@outlook.fr>

* Add import button functionality

* Change export / import messages

* Change message to use scheduled only

* Attempt to sanitize data in import func

* Add a 3DEN attribute to save defaultLoadoutsList, fix shared loadout check

* Replace 2 last traces in verifyLoadout

* Change defaultLoadoutsList export format and add a 3DEN check for it's default value

* Fix original array being modified in fillLoadoutsList

* Improve shared loadout check

* Fix removeVirtualItems not removing Accs, nil virtualItems var in removeBox

* Add zeus support for arsenal rewrite, fix openBox camera check

* Add isPlayer check to arsenal rewrite part of bi module

Arsenal rewrite does not seem to work on remote players, welp, I tried at least

* Fix shared loadouts loadout index being null

Forgot to change that one getVar

* Hide shared column if sharing is disabled on My loadouts tab

* Remove trace from loadoutsLoad, add trace to shared and unshared EHs

* Fix postInit trace

* Fix sharing EHs being broken, remove traces in them, prevent possible issue

yeah, _x params doesn't work there :p

* Fix fillLoadoutsList error

* Start translating and code reviewing

* Add editing vehicle crew loadout support for arsenal

* Move left panel filling above 3DEN handling to avoid float crew members

* Fix onArsenalClose EOF, add header for it

* Move onButton EHs to config, remove placeholder stats func

* Add headers for onLoadouts funcs and verifyLoadout

* Clean up buttonClearAll

* Fix assigned items not being added properly to currentItems on loadout load

* Add more function headers

* Make rename work in default loadouts tab in 3DEN

* Add more functions headers, continue code review

* Add more functions headers, finish code review

* Fix loadout saving to profile from an other tab than my loadouts

* Fix loadout saving even more

* Attempt to fix loadouts handling

From totally broken to somewhat usable.

* Even more fixing

* Add back onLoadoutSave EH

* Add back author message in loadoutSave

* Add back EOF newline

* Add back loadout caching

* Remove unique items from saved and loaded loadouts

* Add unique item support for the remaining container tabs

* Fix mag check for magazine type in container

* Add support for CfgVehicles and CfgGlasses in miscItems

* Add button highlighting for loadouts display, fix mag put and throw check

* Change shared column to show a proper icon

* Revert "Move onButton EHs to config, remove placeholder stats func"

This reverts commit 1be5d92426.

* Add back EOL newline in prep, remove stats placeholder again

* Add part of the german translation

* Add more translations, change how shared button text is managed

* Add scheduled check in openBox to avoid issues with people using addaction

Because you know they will.

* Add translations for import and export messages

* Fix comms tab defaulting to empty

* Align buttons perfectly for loadouts display, translation for delete action

* Add loadout saved translations

* Add load and rename messages translations

* localized interaction name in initBox

* Fix issue when admins deleted a loadout didn't change the icon status for authors

* Fix loadout import, update unique items list after import / loadout load

* Beautify UI a bit

* Add setting to toggle missing / unavailable items RPT logging

* Add settings strings

* Increase button size for main display

* Change DLC logo side in infoBox

* Change loadouts display buttons spacing, change deleteLoadout button active color

* Remove camera rotation limit

* Add polish translation

* German translation by @bux

* Order

* Fix typo in buttonExport, add credits in handleMouse

* Fix right panel item count not updating properly in certain scenarios

* Add loadoutName check when importing default loadouts, change assignedItems check

* Improve onSelChangedRight, fix typos in onSelChangedLeft and handleSearchbar

* Fix syntax check in removeVirtualItems count

* Shorten onSelChangedRightListnbox by improving current tab check

* Improve fillLeftPanel weapon tab filling

* Move lnbSetPicture occurences for the loadouts display to a define

* scan config opti

* Fix RPT logging check in fillLoadoutsList, use picture macro for shared tab

* Fix sharing and RPT logging settings having the same var

* Add newline at EOF for funcs that are missing it

* Move GVAR(sharedLoadoutsVars) to sharedLoadoutsNamespace

* newline eof

commy contributed too!

* Fix delete button not working as intended in public tab

* Replace bis_fnc_baseWeapon with CBA equivalent everywhere outisde of scanConfig

* Revert "Replace bis_fnc_baseWeapon with CBA equivalent everywhere outisde of scanConfig"

This reverts commit 496e6f8223.

* Add new Cfg entry for handling unique items saving, add entry to chemlight shields

* Fix currentMag tab not detecting current mag properly (still experimental)

* Improve left and right filled EHs, add "Dog Tags:" for dogtag uniques

* Change how the right panel first update works

* Fix updateRightPanel very obscure bug and header typo

* Move postInit EHs for medical and dogtags to their respective postInit

* Fix medical postInit typo

* Add currentMag tabs for primary and secondary muzzles properly

* Fix container compatible mags tab not showing anything

* Replace an inline if to select in fillRightPanel

* Attempt to fix accs recognition when switching weapons

* Improve currentMag2 tab show / hide logic

Secondary and handguns can't have a secondary mauzzle

* Add strings for currentMag and currentMag2 tabs

* Readd strings that tabler accidentally removed

* Make sorting for the right panel stay the same when switching items / tabs

* Replace bis_fnc_addWeapon by the addWeapon command

bis_fnc_addWeapon failed when a weapon with the same classname was in one of the player's containers
Add mag for primary muzzle after the weapon is added, is possibly replaced by current mag(s) saved in curentItems

* Replace BIS_fnc_overviewAuthor in itemInfo

It works better

* Display itemInfo box properly for currentMag1 and 2 tabs

* Don't reset arsenal vision mode after quitting arsenal

* Improve showItem

* Remove trace from showItem

* Move getWeight and weight string from movement to common

* Fix typos in addVirtualItems

* Comment back compile cache for common

(Not yet for arsenal, not until it's validated for a merge)

* Replace secondaryMuzzleMag tab icon by @Max255PL 's

* Update @Max255PL 's icon

* Add missing author strings

* Add debug trace for a specific issue

* Add more traces in loadoutsSave

* Fix bug in loadoutsSave, remove debug traces

* Fix typo in loadoutsSave

* Fix uniqueBase cfg check for all cases in loadoutsSave

* Improve whitelisting for current weapon accs and mags

* Update CBA settings strings, change RPT logging to be turned off by default

* Update polish translation by @max255PL

* Fix saving loadouts when no loadout has ever been saved

* Make loadout screen lighter

* Save camera position and view mode for ace arsenal

* Improve loadouts screen presentation

* Improve loadouts screen readability

* Improve camera angle in loadout screen

* Improve loadout renaming, Fix bug linked to renaming

* Fix wrong loadout being used while renaming and color not being reapplied

* Fix other possible issue with renaming

* Change missing items color to be more colorblind friendly

* Fix typo and improve return check in getWeight

* Disable debug and re-enable compile cache for common and arsenal

* Remove uneccessary newline in arsenal's script_component.hpp
2017-12-07 08:48:10 +01:00