The main goal was improving the readability of the original code however some ugliness remains.
- Swapped from pointer singleton to instance singleton
- Actually make use of the alpha logic that used to be present
- Added a counter to notifications to indicate if something is being spammed
- Notification timeouts reset if they're sent to the queue again
Why? Shorter to write and removes the macro usage
I used the following regex to find all occurrences:
```r
RAGE_JOAAT\("(.*?)"\)
```
then the following to replace it all:
```r
"$1"_J
```
* Added more spam messages to the filter.
* Removed duplicate remote control vehicle button from the player vehicle menu.
* Added heuristical spam detector.
* Fixed clock in spam logger.
* Added date output to the chat logger.
* Added a message to show the user when someone is spamming.
More static text translations.
* Removed redundant mobile global in scr_globals.hpp.
* Added a spam reason to the spam logger.
* Added team/all to the chat logger.
Added a logger call for the user's chats.
Vehicle table:
-Copy vehicle
-Boost
-Launch
-Eject
Ped table:
-Disarm
-Ragdoll
-Dance
Player table:
-Breakup kick
-Kick
-Disarm
-Ragdoll
Shared table:
-Enflame
These additions required some other tools and fixes such as:
-Remove weapons command fix.
-Ped animation player tool in ped.hpp
-get player from ped tool in ped.hpp.
-A fiber pool queue on execution of Context menu operations.