* Fixed edge case where a garage that contained only banned vehicles would show if the user was using Spawn Clone.
Refactored a large portion of the garage code to be production ready.
Formatting changes.
* Added singular garage items to the m_garage setter like the Terrorbyte.
* Fixed is_blacklisted_vehicle returning an inverted condition.
Fixed Garage drop-down not updating properly.
* Separated out m_garage's setter into a ctor function.
Replaced the 4 singular garages that use an overloaded index with a define to be able to shift them easier when new properties are added.
* Removed obsolete and incorrect player.character_slot config entry.
Removed deprecated local_player.hpp.
Added self::char_slot that is guaranteed to be correct.
* Removed extraneous semi-colon.
* Added more stuff to fillsnacks.
Removed more extraneous usages of MPPLY_LAST_MP_CHAR.
* Added the vehicle's name to player info.
* Fixed get_property_garage_size returning the incorrect size for the facility.
Fixed get_static_property_name returning the Nightclub's name instead of Nightclub Service Entrance to maintain consistency with the Mechanic.
Fixed garage_slot_iterator not starting and ending at the correct indexes.
* Shifted the singular properties down one to compensate for the new math.
* Fixed backwards math on Terrorbyte and Nightclub B1.
* Fixed garage not being updated when the player moved the vehicle.
* Fixed backwards comments.
* Reduces natives called in hotkey_service::wndproc to prevent collisions.
* Removed debug code from carmod_shop::STAT_GET_INT
* Fixed#2152.
* Added sanity check to script thread in hotkey_service::wndproc.
Made is_mp_chat_active atomic to ensure cache coherence.
* Closes#2164
* Keep Vehicle Repaired now uses CDecalManager to remove damage decals which allows it to ignore clan and livery decals.
* Added more conditions to call SET_VEHICLE_FIXED to fix things like the R88 breaking its shell off.
Fixed Seatbelt having inverted conditions.
* Fixed keep_vehicle_repaired repairing things it doesn't need to repair if godmode/always clean is on already.
Fixed spawn_vehicle_json not applying the radio station.
* Consolidated signature for CDecalMgr::ClearDecals and its static instance.
* Fixed self_persist_outfit checking if the player was in a cutscene instead of if the player was dead.
1st attempt to fix the player trying to take off his helmet if it was added by persist outfit.
* Fixed Persist Outfit not saving persist_outfits_mis.
* Refactored Allow All Weapons In Vehicle to force all vehicles to use all GROUPs.
* Refactored project to not depend on src/gta files that already exist in the GTA-V-Classes project.
* feat(cmake): bump GTAV-Classes
* Fixed#1690.
* Added Hold For Boost to Boost Behavior.
* Added Teleport into Personal Vehicle and Toggle Vehicle Fly Mode as hotkeys.
* Fixed pvtp command not working if you were inside a building.
* fix(script-mgr / lua): first kill all scripts, then unload lua modules: because the lua scripts depend on lua state (which is stored inside lua module instance), killing the lua module first would not allow proper cleaning because of the lua state getting destroyed while the lua script might still be running.
* fix(unloading): Why even reset the fiber pool here?
* fix(lua): don't allow for io / os lua lib to be accessed for security reasons.
* fix(lua): Potential fix for C stack overflow error by using lua coroutine yielding instead of calling fiber yield directly from lua functions.
* feat(unloading): allow to unload in the main title screen. Also revert 309c374602 due to fiber pool being potentially exhausted, we want commands to have their cleanup code ran in priority.
* feat(vscode): added launch.json to dbg
* feat(file_manager): Make use of a global instance
* feat(file_manager): Allow for file and folder instances to be empty
* refactor(GlobalsService): Update code of global service (untested)
* Refactored weapons.bin into weapons.json for extensibility and human readability.
Added weapon attachments scraping from the meta files (currently is missing a lot of attachments, more than half, requires RPF reading refactoring to fix.)
Added Ammunation to Self -> Weapons, because it's vital you protect yourself, the patriotic way.
* Fixed weapons.xml not properly populating all the components.
Refactored buttons to use components::button.
* Refactored the Attachments code to implicitly trust that the attachments will be there now.
Added proper versioning to the weapons.json file.
Removed debug logging from gta_data_service.cpp.
* Fixed Ammunation buttons.
Added loading message for the new weapons.json system.
Fixed a bug where two components shared the same name, the user could not select the 2nd component.
Fixed Attachments displaying an attachment from a previous weapon if the user changed weapons.
* Fixed Tint Apply button not using the components::button template.