-
-
Notifications
You must be signed in to change notification settings - Fork 492
Add sound throttling from ID 0008814 #6
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
Merged
Merged
Conversation
This file contains hidden or 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
ccw808
added a commit
that referenced
this pull request
May 10, 2015
Add sound throttling from ID #0008814
Looks good |
qaisjp
pushed a commit
to qaisjp/mtasa-blue
that referenced
this pull request
Jun 7, 2018
Custom ifp animations ( Improved Code Design )
jushar
pushed a commit
that referenced
this pull request
Jun 18, 2018
Squashed commit of the following: commit ae72bbc Author: Jusonex <[email protected]> Date: Sat Jun 16 20:28:58 2018 +0200 Make custom animations work with the EU version too commit 432344f Author: Jusonex <[email protected]> Date: Sat Jun 16 17:28:56 2018 +0200 Fix source formatting in CMultiplayerSA based on the clang-format change commit 44e8167 Merge: 9900349 05fbbfb Author: Jusonex <[email protected]> Date: Sat Jun 16 17:28:33 2018 +0200 Merge remote-tracking branch 'origin/master' into feature/custom-ifp-animations commit 9900349 Merge: d38e68e 9f4d3de Author: saml1er <[email protected]> Date: Mon Jun 11 07:14:24 2018 +0500 Merge pull request #1 from multitheftauto/master Merge master into custom_ifp_animations commit d38e68e Author: Qais Patankar <[email protected]> Date: Wed Jun 6 23:41:34 2018 +0100 Undo whitespace change (test commit) commit 3114067 Author: idanish <[email protected]> Date: Fri May 4 15:37:41 2018 +0500 Added copyright comment, and added #pragma once to header files commit cd5b1cd Author: idanish <[email protected]> Date: Fri May 4 15:36:31 2018 +0500 Added m_ prefix before member names and copyright comment at top. commit a311d8d Author: idanish <[email protected]> Date: Thu Apr 12 01:11:43 2018 +0500 Fix warning c4150 when deleting Game SA interface Visual studio was generating a warning when calling delete operator on hierarchy and sequnece interface in Client Deathmatch, so replaced it with CAnimManager::DeleteCustomAnimHierarchyInterface and CAnimManager::DeleteCustomAnimSequenceInterface in CIFPAnimations::DeleteAnimations and CClientIFP::MoveSequencesWithDummies Also, applied source formatting commit 90ba044 Author: idanish <[email protected]> Date: Wed Apr 11 23:35:59 2018 +0500 Improved custom animation hooks for readability Rewrote HOOK_CAnimBlendAssocGroup_CopyAnimation in C++ for more clarity, it is shorter now, and thus more readable. Moved HOOK_CAnimBlendAssoc_destructor to CMultiplayerSA_HookDestructors.cpp commit db75cd6 Author: idanish <[email protected]> Date: Wed Apr 11 15:39:59 2018 +0500 Removed IFP mutexes from CClientGame and CClientPed They were not needed. I used them because I was in doubt whether GTA:SA is using a secondary thread. I confirmed that it's not using another thread with the help of SharedUtil::IsMainThread() method. - Suggested by Jusonex commit c54b854 Author: idanish <[email protected]> Date: Fri Apr 6 17:19:45 2018 +0500 Removed GameSA includes from Client Deathmatch and minor code improvements Replaced GameSA includes with interfaces - Suggested by Jusonex Removed #pragma from CIFPEngine.h eRestoreType is now passed by const reference in CIFPEngine::EngineRestoreAnimation commit 43f90fe Author: idanish <[email protected]> Date: Thu Apr 5 14:51:55 2018 +0500 Code quality improvements Replaced uint32_t, int32_t, and int16_t with std::* from <cstdint> - Suggested by Necktrox Used std::find_if in CClientIFP::GetAnimationHierarchy & improved iterator loops by using for (auto& Animation : m_pIFPAnimations->vecAnimations) in CClientIFP::ReadIFPVersion2 and CClientIFP::ReadIFPVersion1 - earlier suggested by sbx320 Replaced std::string with SString. Changed CIFPAnimations::SIFPAnimation::pSequencesMemory type to BYTE*. Removed casting where this member of struct was accessed. Used const where applicable in CClientIFP.cpp. Renamed ConvertStringToMapKey to ConvertStringToKey. Applied source formatting again commit 6ec9bcc Author: idanish <[email protected]> Date: Wed Apr 4 16:18:00 2018 +0500 Rewrote CFileReader and some code review improvements CFileReader is using ifstream to load file into std::vector. No more dynamic memory allocation. & replaced std::vector::push_back with std::vector::emplace_back in CElementDeleter::OnClientIFPElementDestroy & Removed empty destructor from CClientIFP and empty constructor from CIFPAnimations - Suggested by Necktrox Used for (auto& pPed : m_setOfPedPointers) for iterating in CClientGame::OnClientIFPUnload. & using std::find_if in CElementDeleter::DeleteIFP with a lambda function - Suggested by sbx320 Removed #pragma once in CClientIFP.h and CIFPAnimations.h - Suggested by sbx320 and Necktrox commit e467f13 Author: idanish <[email protected]> Date: Wed Apr 4 06:15:24 2018 +0500 Restored CStaticFunctionDefinitions::GUIMoveToBack Three lines got removed from this function while solving conflicts, so restored them back. commit a45bf99 Merge: dc8ef5c 554a27d Author: saml1er <[email protected]> Date: Wed Apr 4 04:18:44 2018 +0500 Merge branch 'master' into custom_ifp_animations commit dc8ef5c Author: idanish <[email protected]> Date: Wed Apr 4 03:55:45 2018 +0500 Fix source formatting commit 9a6f6ae Merge: e29b13a d7649ba Author: idanish <[email protected]> Date: Wed Apr 4 03:39:22 2018 +0500 Merge branch 'test_custom_ifp_animations' # Conflicts: # Client/game_sa/CAnimBlendAssocGroupSA.cpp # Client/game_sa/CAnimBlendAssocGroupSA.h # Client/game_sa/CAnimBlendHierarchySA.cpp # Client/game_sa/CAnimBlendHierarchySA.h # Client/game_sa/CAnimBlendSequenceSA.h # Client/game_sa/CAnimBlendStaticAssociationSA.cpp # Client/game_sa/CAnimBlendStaticAssociationSA.h # Client/game_sa/CAnimBlockSA.h # Client/game_sa/CAnimManagerSA.cpp # Client/game_sa/CAnimManagerSA.h # Client/mods/deathmatch/logic/CClientGame.cpp # Client/mods/deathmatch/logic/CClientGame.h # Client/mods/deathmatch/logic/CClientPed.cpp # Client/mods/deathmatch/logic/CClientPed.h # Client/mods/deathmatch/logic/CElementDeleter.cpp # Client/mods/deathmatch/logic/CElementDeleter.h # Client/mods/deathmatch/logic/CResource.cpp # Client/mods/deathmatch/logic/CResource.h # Client/mods/deathmatch/logic/CStaticFunctionDefinitions.cpp # Client/mods/deathmatch/logic/CStaticFunctionDefinitions.h # Client/mods/deathmatch/logic/luadefs/CLuaEngineDefs.cpp # Client/mods/deathmatch/logic/luadefs/CLuaEngineDefs.h # Client/multiplayer_sa/CMultiplayerSA.cpp # Client/multiplayer_sa/CMultiplayerSA.h # Client/multiplayer_sa/CMultiplayerSA_FixBadAnimId.cpp # Client/sdk/game/CAnimBlendAssocGroup.h # Client/sdk/game/CAnimBlendHierarchy.h # Client/sdk/game/CAnimBlock.h # Client/sdk/game/CAnimManager.h # Client/sdk/game/CGame.h # Client/sdk/multiplayer/CMultiplayer.h commit d7649ba Author: idanish <[email protected]> Date: Wed Apr 4 02:50:33 2018 +0500 Fix engineIFPLoad failure on resource multiple restarts IFP was failing to load after restarting resource multiple times, because it was removed from map in CElementDeleter::DeleteIFP which caused a small delay in ms. Now, it will be removed from map when it's added to element deleter list, so engineLoadIFP won't fail because the element with the same block name does not exist in map anymore. commit 79c2463 Merge: e122684 84655ef Author: Code Nulls <[email protected]> Date: Sun Apr 1 19:49:02 2018 +0500 Merge pull request #8 from saml1er/custom_ifp_animations Custom ifp animations ( mergeable to master ) commit 84655ef Author: idanish <[email protected]> Date: Sun Apr 1 19:42:46 2018 +0500 Disabled console and removed printf commit 11fe653 Author: idanish <[email protected]> Date: Sun Apr 1 16:21:26 2018 +0500 Used Hungarian notation for naming structs and enums commit d38b4ec Author: idanish <[email protected]> Date: Sun Apr 1 15:31:49 2018 +0500 [ FIX ] Compiling in release mode caused crash on CAnimBlendAssoc_destructor commit e122684 Merge: 1dfadb5 dae8c85 Author: Code Nulls <[email protected]> Date: Sun Apr 1 14:24:47 2018 +0500 Merge pull request #7 from saml1er/custom_ifp_animations Custom ifp animations ( Everything is complete ) commit dae8c85 Author: idanish <[email protected]> Date: Sun Apr 1 14:16:12 2018 +0500 Removed 2 unused functions in CGame and CGameSA commit 98ccb35 Author: idanish <[email protected]> Date: Sun Apr 1 12:25:25 2018 +0500 Removed unsed GetClientPedByClump from CClientEntity commit 66b9cd1 Author: idanish <[email protected]> Date: Sun Apr 1 11:55:06 2018 +0500 Replaced Animations map is now thread-safe in CClientPed commit a5ddb6e Author: idanish <[email protected]> Date: Sun Apr 1 11:22:09 2018 +0500 Improved code design for CAnimBlendStaticAssociation commit 7be4f2b Author: idanish <[email protected]> Date: Sun Apr 1 09:20:24 2018 +0500 Implemented thread synchronization for maps and set commit ee3b7b1 Author: idanish <[email protected]> Date: Sun Apr 1 09:18:38 2018 +0500 Moved Get functions to header in CAnimManagerSA commit 3f4e394 Author: idanish <[email protected]> Date: Sat Mar 31 18:44:37 2018 +0500 [FIX] Unloading IFP will allow gateway animation to play instead of custom Custom animation was not playing if you unloaded IFP. I used a shared_ptr to fix this problem. Also, unloading IFP resulted in looped animations to play gateway animation instead of custom, so fixed that as well. commit 679982d Author: idanish <[email protected]> Date: Sat Mar 31 18:41:12 2018 +0500 Optimized std::map key for performance. commit 91d3ea8 Author: idanish <[email protected]> Date: Fri Mar 30 09:35:15 2018 +0500 [ FIX ] engineReplaceAnimation fails if block is not loaded commit 5966687 Author: idanish <[email protected]> Date: Fri Mar 30 09:34:37 2018 +0500 Moved raw memory access to Game SA commit a7b1011 Author: idanish <[email protected]> Date: Thu Mar 29 15:20:51 2018 +0500 Code design improvement in CIFPAnimations::DeleteAnimations commit 015fd39 Author: idanish <[email protected]> Date: Thu Mar 29 15:19:48 2018 +0500 Added CIFPEngine which contains most logic for Lua IFP functions commit 1dfadb5 Merge: f4d1c55 8bbd104 Author: Code Nulls <[email protected]> Date: Thu Mar 29 09:18:04 2018 +0500 Merge pull request #6 from saml1er/custom_ifp_animations Custom ifp animations ( Improved Code Design ) commit 8bbd104 Author: idanish <[email protected]> Date: Thu Mar 29 09:01:37 2018 +0500 Added new functions to CAnimManager for CClientIFP commit 1330cb4 Author: idanish <[email protected]> Date: Thu Mar 29 08:58:08 2018 +0500 Improved code design of CFileReader commit 1d9eb2b Author: idanish <[email protected]> Date: Thu Mar 29 08:55:22 2018 +0500 Moved CIFPAnimations to deathmatch/logic commit 63b17a4 Author: idanish <[email protected]> Date: Thu Mar 29 08:54:20 2018 +0500 Removed unused files commit 7f8ace6 Author: idanish <[email protected]> Date: Thu Mar 29 08:53:26 2018 +0500 Removed IFPLoader include commit 997ec7d Author: idanish <[email protected]> Date: Wed Mar 28 10:02:08 2018 +0500 Improved overall code quality. Methods are even more shorter now. commit c2a4195 Author: idanish <[email protected]> Date: Wed Mar 28 03:52:30 2018 +0500 Improved CClientIFP design even more and some optimizations The code design was really bad. Methods were very long which made them hard to understand. Now, they are readable. commit 42e2109 Author: idanish <[email protected]> Date: Tue Mar 27 23:38:29 2018 +0500 Improved IFP Readers, both Version 1 and 2. commit c6e089f Author: idanish <[email protected]> Date: Tue Mar 27 23:08:20 2018 +0500 Added PraseSequenceVersion1 and PraseSequenceVersion2 commit 7dc2f6e Author: idanish <[email protected]> Date: Tue Mar 27 06:36:59 2018 +0500 used iterator in ReadIFPVersion2 instead of C loop commit 5ba567d Author: idanish <[email protected]> Date: Tue Mar 27 06:18:31 2018 +0500 Improved key frames reading logic for IFP Version 2 commit b5caa13 Author: idanish <[email protected]> Date: Tue Mar 27 04:29:46 2018 +0500 Improved code readability. Still more improvement needed. commit 3e25495 Author: idanish <[email protected]> Date: Tue Mar 27 04:28:45 2018 +0500 Moved structs and enums to CClientIFP class commit 412a42a Author: idanish <[email protected]> Date: Tue Mar 27 04:28:01 2018 +0500 Added IFP_Animation struct and removed unused members. commit 7b2394c Author: idanish <[email protected]> Date: Mon Mar 26 10:02:19 2018 +0500 Removed isIFPLoaded checks commit 6243ca4 Author: idanish <[email protected]> Date: Mon Mar 26 10:02:01 2018 +0500 Removed printf commit a64710d Author: idanish <[email protected]> Date: Mon Mar 26 09:24:23 2018 +0500 Removed useless function calls in DeleteElementSpecial commit 7cf982b Author: idanish <[email protected]> Date: Mon Mar 26 06:33:02 2018 +0500 Using shared_ptr for CIFPAnimations commit 63398af Author: idanish <[email protected]> Date: Mon Mar 26 06:31:50 2018 +0500 Created CIFPAnimations class for keeping IFP animations only commit 19f1156 Author: idanish <[email protected]> Date: Sun Mar 25 05:15:54 2018 +0500 Replaced raw pointer with shared_ptr for CClientIFP commit 19aae47 Author: idanish <[email protected]> Date: Sun Mar 25 05:15:07 2018 +0500 Added IS_IFP macro commit 6e80659 Author: idanish <[email protected]> Date: Sat Mar 24 07:53:12 2018 +0500 Added InsertAnimationDummySequence with new parameters commit 85de6ed Author: idanish <[email protected]> Date: Sat Mar 24 07:52:44 2018 +0500 Used factory pattern for Animation hierarchy and sequence commit 2b6170b Author: idanish <[email protected]> Date: Sat Mar 24 07:52:11 2018 +0500 Added GetCustomAnimBlendHierarchy and GetCustomAnimBlendSequence commit 61b6232 Author: idanish <[email protected]> Date: Sat Mar 24 07:51:50 2018 +0500 Added GetCustomAnimBlendHierarchy and GetCustomAnimBlendSequence commit ce30759 Author: idanish <[email protected]> Date: Sat Mar 24 07:51:11 2018 +0500 Removed destructor commit ee23cd9 Author: idanish <[email protected]> Date: Sat Mar 24 07:50:53 2018 +0500 Added animation hierarchy functions commit 7a6146d Author: idanish <[email protected]> Date: Sat Mar 24 04:40:58 2018 +0500 Used Factory pattern for CAnimBlendSequenceSAInterface commit 991df8c Author: idanish <[email protected]> Date: Sat Mar 24 04:39:58 2018 +0500 added GetAnimBlendSequence commit 80638dd Author: idanish <[email protected]> Date: Sat Mar 24 04:39:31 2018 +0500 Added GetAnimBlendSequence commit d5e33c4 Author: idanish <[email protected]> Date: Sat Mar 24 04:39:05 2018 +0500 Added functions for CAnimBlendSequence and SA commit f4d1c55 Merge: cc41b27 cc5b9ed Author: Code Nulls <[email protected]> Date: Thu Mar 22 03:15:13 2018 +0500 Merge pull request #5 from saml1er/custom_ifp_animations Custom ifp animations [Fixed unloading] commit cc5b9ed Author: idanish <[email protected]> Date: Thu Mar 22 03:09:06 2018 +0500 Removed CAnimBlendAssoc_Hierarchy_Constructor hook and handler commit e557b62 Author: idanish <[email protected]> Date: Thu Mar 22 02:43:12 2018 +0500 Completed BlendAnimationHierarchy and CAnimBlendAssoc_Constructor These two hooks are meant to work in the same way. We can use anyone we wish to. BlendAnimationHierarchy is much cleaner and easy to understand, so let's use that one. Keep in mind that these two hooks get triggered for setPedAnimation only. They have nothing to do with AddAnimation and AddAniamtionAndSync commit bb4ed12 Author: idanish <[email protected]> Date: Thu Mar 22 02:40:58 2018 +0500 Removed iAnimationSearchReferences. commit 16ed6f5 Author: idanish <[email protected]> Date: Wed Mar 21 08:04:19 2018 +0500 Fixed unload crash. IFP is unloaded by checking references now. commit c60a3b2 Author: idanish <[email protected]> Date: Wed Mar 21 08:03:15 2018 +0500 UnloadIFP calls DeleteIFPAnimations now and renamed iAnimSearchRef commit 8a67226 Author: idanish <[email protected]> Date: Wed Mar 21 08:01:41 2018 +0500 Removed static for iAnimationSearchReferences commit e127b3c Author: idanish <[email protected]> Date: Wed Mar 21 08:01:12 2018 +0500 ReplaceAnimation checks whether IFP is loaded or not commit 495220b Author: idanish <[email protected]> Date: Wed Mar 21 08:00:01 2018 +0500 changed UnloadIFPAnimations to DeleteIFPAnimations commit a550ae1 Author: idanish <[email protected]> Date: Wed Mar 21 05:07:45 2018 +0500 GetAnimationHierarchy loop breaks after hierarchy is found commit 65fdfe7 Author: idanish <[email protected]> Date: Wed Mar 21 05:01:44 2018 +0500 s_iAnimationSearchReferences is checked before unloading IFP anims commit 44121e8 Author: idanish <[email protected]> Date: Wed Mar 21 05:01:14 2018 +0500 added isIFPLoaded and s_iAnimationSearchReferences to CClientIFP commit 3b1acd7 Author: idanish <[email protected]> Date: Wed Mar 21 02:53:18 2018 +0500 custom animation associations are kept in map for setPedAnimation commit f85b8f5 Author: idanish <[email protected]> Date: Wed Mar 21 02:51:52 2018 +0500 inlined functions and added IFPAnimationsPointer functions commit c5ee5da Author: idanish <[email protected]> Date: Tue Mar 20 21:02:54 2018 +0500 CopyAnimation handler now modifies pOutIFPAnimations. commit 47ea233 Author: idanish <[email protected]> Date: Tue Mar 20 21:01:52 2018 +0500 Fixed CopyAnim hook and added mapOfCustomAnimationAssociations and its functions. commit fee333b Author: idanish <[email protected]> Date: Tue Mar 20 21:00:11 2018 +0500 Changed getReplacedAnimation return type to SReplacedAnimation * commit f4258de Author: idanish <[email protected]> Date: Tue Mar 20 20:59:18 2018 +0500 added GetIFPAnimationsPointer This function will get a pointer to SIFPAnimations struct of the IFP commit cb453c6 Author: idanish <[email protected]> Date: Tue Mar 20 02:04:51 2018 +0500 Added CAnimBlendAssociation Contructor and Destructor handler This is for properly unloading IFP using SIFPAnimations struct. commit aab7940 Author: idanish <[email protected]> Date: Mon Mar 19 21:12:34 2018 +0500 Moved custom animation hooks to a separate file commit 16a9c55 Author: idanish <[email protected]> Date: Mon Mar 19 20:05:31 2018 +0500 [WIP] modifed CopyAnimation hook for SIFPAnimations This is needed for unloading IFP. We'll use this to increment and decrement iReferences in SIFPAnimations when an animation association is created and destroyed respectively. commit 90e784f Author: idanish <[email protected]> Date: Mon Mar 19 20:00:26 2018 +0500 changed CopyAnimation handler prototype and added SIFPAnimatins commit f271bd5 Author: idanish <[email protected]> Date: Mon Mar 19 19:59:36 2018 +0500 Added include guard and removed prototypes with CAnimBlock in them commit 44b516e Author: idanish <[email protected]> Date: Mon Mar 19 19:58:49 2018 +0500 added SIFPAnimations and removed a member from IFP_Animation commit 8c9535e Author: idanish <[email protected]> Date: Mon Mar 19 19:57:48 2018 +0500 Animations are stored in SIFPAnimations struct now commit 10506ea Author: idanish <[email protected]> Date: Mon Mar 19 19:56:37 2018 +0500 added a new parameter and changed return type of AssocGroupCopyAnimation Added SIFPAnimations ** as a new parameter and changed the return type to bool for both ( static and none static ) handlers of AssocGroupCopyAnimation commit d84dc88 Author: idanish <[email protected]> Date: Mon Mar 19 19:48:20 2018 +0500 just added some padding, nothing special commit 3c44bcc Author: idanish <[email protected]> Date: Fri Mar 16 23:30:24 2018 +0500 added a check in GetAnimationHierarchy whether IFP is loaded or not commit cc41b27 Merge: c3fb1aa b8a92b0 Author: Code Nulls <[email protected]> Date: Fri Mar 16 12:02:22 2018 +0500 Merge pull request #4 from saml1er/custom_ifp_animations Custom ifp animations commit b8a92b0 Author: idanish <[email protected]> Date: Fri Mar 16 11:52:57 2018 +0500 engineReplaceAnimation and engineRestoreAnimation is complete commit 54c1a03 Author: idanish <[email protected]> Date: Fri Mar 16 11:51:25 2018 +0500 IFP pointer is removed first from map then onClientIFPUnload is called commit f4691ad Author: idanish <[email protected]> Date: Fri Mar 16 11:49:48 2018 +0500 added GetResourceIFPRoot inline function commit 4ed6ef9 Author: idanish <[email protected]> Date: Fri Mar 16 11:46:00 2018 +0500 added missing member pLinkPtr to Hierarchy interface commit fa75a7b Author: idanish <[email protected]> Date: Fri Mar 16 11:45:35 2018 +0500 Added missing members to CAnimBlockSAInterface commit c3fb1aa Merge: 64ba51c 222bfe9 Author: Code Nulls <[email protected]> Date: Thu Mar 15 01:15:05 2018 +0500 Merge pull request #3 from saml1er/custom_ifp_animations Custom ifp animations commit 222bfe9 Author: idanish <[email protected]> Date: Thu Mar 15 01:09:06 2018 +0500 No longer using global variables in animation hooks commit d9027b5 Author: idanish <[email protected]> Date: Wed Mar 14 22:16:50 2018 +0500 Static association is initialized within AssocGroupCopyAnimationHandler The typedef "hCAnimBlendStaticAssociation_Init" needs to deleted for production code. We need to properly use factory method. commit bd58fa4 Author: idanish <[email protected]> Date: Wed Mar 14 22:14:55 2018 +0500 Static association is created and destroyed within CopyAnimation hook commit 1ad24fe Author: idanish <[email protected]> Date: Wed Mar 14 22:05:24 2018 +0500 added typedef for CAnimBlendStaticAssociation::FreeSequenceArray commit 62b3d09 Author: idanish <[email protected]> Date: Wed Mar 14 14:45:34 2018 +0500 Created a new AssocGroupCopyAnimation handler commit 1694765 Author: idanish <[email protected]> Date: Wed Mar 14 14:43:04 2018 +0500 Added constexpr getAnimAssocGroupInterface function. commit 9b578f9 Author: idanish <[email protected]> Date: Tue Mar 13 23:03:32 2018 +0500 optimized CopyAnimation hook for saving tons of RAM If we created a new static association for every player for every single animation then it means for 1000 players, the memory might exceed 400mb, that's a lot. Why not destroy the static association when we copy the animation from it? That's exactly what's happening in the hook now. commit e17b895 Author: idanish <[email protected]> Date: Tue Mar 13 14:34:02 2018 +0500 Added ability to replace GTA internal animations. Modified AddAnimation, AddAnimationAndSync, and CopyAnimation for replacing GTA internal animations with custom animations. We'll need to create our own static association when engineReplaceAnimation is called and use that static association for a specific ped/player to play our custom animation instead. commit 2600653 Author: idanish <[email protected]> Date: Tue Mar 13 14:29:48 2018 +0500 Removed code from AddAnimationHandler and AddAnimationAndSyncHandler The code worked perfectly except for custom CopyAnimation function, if we tried to rewrite this function, it would crash. commit af38b5f Author: idanish <[email protected]> Date: Tue Mar 13 14:26:51 2018 +0500 Removed CopyAnimation hook in InitHooks_FixBadAnimId commit 5c0f65a Author: idanish <[email protected]> Date: Sat Mar 10 12:17:33 2018 +0500 Rewrote animation hooks properly in CClientGame and CMultiplayerSA I renamed BlendAnimation hook to BlendAnimationHierarchy because now it's hooking a different BlendAnimation function that takes an animation hierarchy as argument. Also, I separated AddAnimation and AddAnimationAndSync hooks and their handlers. Now, they work independently. Also, there was a problem with AddAnimationAndSync hook in CMultiplayerSA.cpp, I fixed the return of the hook. commit 1398945 Author: idanish <[email protected]> Date: Sat Mar 10 08:55:22 2018 +0500 [FIX] Fixed AddAnimation hook and disabled AddAnimationAndSync hook. I used Original code for AddAnimation hook in CClientGame::AddAnimationHandler. It works well. Now, it's time to create our own CAnimBlendAssociationSAInterface instead of using CopyAnimation. I'll need to enable AddAnimationAndSync hook as well because this is called for almost every internal GTA animation. commit 64ba51c Merge: aa722ff 7e4ad6c Author: Code Nulls <[email protected]> Date: Thu Mar 8 16:04:18 2018 +0500 Merge pull request #2 from saml1er/custom_ifp_animations Working custom IFP animations commit 7e4ad6c Author: idanish <[email protected]> Date: Thu Mar 8 15:57:45 2018 +0500 Removed CClient Ped pointer map functions commit 7f18adc Author: idanish <[email protected]> Date: Thu Mar 8 15:57:17 2018 +0500 enabled AddAnimation hook commit b0157a8 Author: idanish <[email protected]> Date: Thu Mar 8 15:57:07 2018 +0500 Animation name is now checked in engineLoadIFP whether the hierarchy exists or not commit d153d3b Author: idanish <[email protected]> Date: Thu Mar 8 15:56:30 2018 +0500 Fixes in ModelRequestCallBack and CClientPed constructor and destructor. Removed code for inserting and remove clump from map in ModelRequestCallBack. Also, CClientPed is inserted into map in constructor call and removed when destructor is called. commit c529467 Author: idanish <[email protected]> Date: Thu Mar 8 15:54:09 2018 +0500 Added new functions for finding CClientPed by clump and used it in BlendAnimationHandler commit f131323 Author: idanish <[email protected]> Date: Thu Mar 8 15:51:13 2018 +0500 [BUGGY] Added a new function GetclientPedByClump, but causes crash sometimes commit ecb3dc5 Author: idanish <[email protected]> Date: Thu Mar 8 15:50:35 2018 +0500 Removed CClientPed pointer map functions commit 2259c87 Author: idanish <[email protected]> Date: Thu Mar 8 06:13:41 2018 +0500 Block name is now checked when loading IFP. Before you could load many IFPs with same block name and it would cause memory leaks, now it's fixed. commit a9a8066 Author: idanish <[email protected]> Date: Thu Mar 8 06:11:31 2018 +0500 [FIX] unloadIFP function works good now. commit 76f2d02 Author: idanish <[email protected]> Date: Tue Mar 6 07:34:47 2018 +0500 setPedAnimation finally works for playing custom animations. Both GTA VC and SA have been tested. commit a467ae9 Author: idanish <[email protected]> Date: Tue Mar 6 07:32:26 2018 +0500 changed BlendAnimationHandler hook resturn type commit c39f14c Author: idanish <[email protected]> Date: Tue Mar 6 07:31:54 2018 +0500 BlendAnimation hook has been changed to BlendAnimation_Hierarchy hook because that is only triggered when setPedAnimation is called. Commented AddAnimation hook for now, it can be used for engineRestoreAnimation and engineReplaceAnimation along with AddAnimationAndSync hook commit 357acfc Author: idanish <[email protected]> Date: Tue Mar 6 07:29:32 2018 +0500 added a Name member to IFP_Animation struct for keeping the animation name commit 05289e1 Author: idanish <[email protected]> Date: Tue Mar 6 07:28:43 2018 +0500 [FIX] Fixed custom animations crashing by changing keyframes memory allocator from malloc to OLD_CMemoryMgr_Malloc which is GTA SA function commit ac2ef96 Author: idanish <[email protected]> Date: Tue Mar 6 07:26:57 2018 +0500 pInterface variable is initialized to nullptr in GetAnimStaticAssociation commit a97d89a Author: idanish <[email protected]> Date: Tue Mar 6 07:26:25 2018 +0500 change pAnimBlendNodesSequenceArray type from int * to DWORD * in CAnimBlendStaticAssociationSA commit 6037280 Author: idanish <[email protected]> Date: Tue Mar 6 07:25:43 2018 +0500 fixed bRunningCompressed in CAnimBlendHierarchySAInterface commit d8337a5 Author: idanish <[email protected]> Date: Sun Mar 4 21:46:07 2018 +0500 changed BlendAnimation hook to BlendAnimation_Hierarchy and hooks works fine. It is called when you execute setPedAnimation from client lua. This is where we can play custom animation commit aa722ff Merge: ceb5663 80aec0e Author: Code Nulls <[email protected]> Date: Sun Mar 4 12:40:39 2018 +0500 Merge pull request #1 from saml1er/custom_ifp_animations Custom ifp animations commit 80aec0e Author: idanish <[email protected]> Date: Sun Mar 4 12:28:59 2018 +0500 added IFP function prototypes and a map container for retrieving IFP pointer by custom IFP block name commit c1d7814 Author: idanish <[email protected]> Date: Sun Mar 4 12:28:10 2018 +0500 added a boolean for checking next animation whether it's custom or not in CClientPed::CClientPed. Renamed PedClump function calls to PedPointer functions commit 333ff15 Author: idanish <[email protected]> Date: Sun Mar 4 12:26:50 2018 +0500 remove PedClump map functions to PedPointer map functions. Also added GetWayBlockName and GetGateWayAnimationName commit 9de0774 Author: idanish <[email protected]> Date: Sun Mar 4 12:25:58 2018 +0500 custom IFP pointer is removed from map container when unloaded. commit 0ba8e13 Author: idanish <[email protected]> Date: Sun Mar 4 12:25:12 2018 +0500 added new functions for adding IFP pointer to map and checks for playing custom animation, not complete though. Custom animation is checked nicely, but isGateWayAnimationHierarchy function is not working properly. commit acf46a7 Author: idanish <[email protected]> Date: Sun Mar 4 12:22:20 2018 +0500 IFP pointer is inserted to map if IFP is loaded sucessfully commit df06f10 Author: idanish <[email protected]> Date: Sun Mar 4 12:21:14 2018 +0500 Modified setPedAnimation to play custom animation commit b44dfc1 Author: idanish <[email protected]> Date: Sun Mar 4 12:20:39 2018 +0500 added new functions isNextAnimationCustom, setNextAnimationCustom, and setNextAnimationNormal commit bf5e7dc Author: idanish <[email protected]> Date: Sun Mar 4 12:14:36 2018 +0500 added GetGateWayAnimationName and GetGateWayBlockName. Renamed PedClump to PedPointer of m_mapofPedPointers' functions commit d4b20dd Author: idanish <[email protected]> Date: Sun Mar 4 06:00:11 2018 +0500 [FIX] Memory of dummy sequences' frames was not being freed for IFP Version 2. Now, it's being freed commit 9af78ea Author: idanish <[email protected]> Date: Sun Mar 4 02:34:08 2018 +0500 [FIX] Memory was not being freed properly for IFP Version 2, fixed it by adding a check. Also the loop for sequences in unloadIFP was incorrect, fixed that as well. Tested by checking the pointers and frees the memory properly now commit d64f8b3 Author: idanish <[email protected]> Date: Sat Mar 3 09:55:42 2018 +0500 [BAD DESIGN] Implemented temporary UnloadIFP function for unloading IFPs while testing. Also, using malloc instead of OLD_CMemoryMgr_Malloc. commit 1983a2a Author: idanish <[email protected]> Date: Sat Mar 3 09:53:54 2018 +0500 [IMPORTANT] Fixed heap corruption by adding int32_t to IFP_ANIM struct and fixed IFP_Animation struct. commit 25e3a3e Author: idanish <[email protected]> Date: Sat Mar 3 09:48:05 2018 +0500 fixed private variables commit e727d19 Author: idanish <[email protected]> Date: Sat Mar 3 04:16:02 2018 +0500 [BAD DESIGN] added IFP loader. It works properly, but the design is horrible. We'll need to properly rewrite it according to MTA's coding guidelines. Also, there is no function for unloading IFP, so yeah there are memory leaks. Dynamic memory allocation is used for sequeneces and key frames only, so freeing this memory is important. commit 556bcec Author: idanish <[email protected]> Date: Sat Mar 3 02:23:08 2018 +0500 commented printf in CClient::LoadIFP and CClient::UnloadIFP commit 6e3d7d1 Author: idanish <[email protected]> Date: Sat Mar 3 02:22:12 2018 +0500 moved GATEWAY_ANIMATION_NAME from global space into CAnimManagerSA class. Also, renamed it to m_kGateWayAnimationName. commit eb23760 Author: idanish <[email protected]> Date: Sat Mar 3 00:22:32 2018 +0500 [NOT TESTED] isGateWayAnimationHierarchy is called in AddAnimationHandler for checking and playing custom animation, but it is not tested because IFP reader needs to be added asap. commit b5a6198 Author: idanish <[email protected]> Date: Sat Mar 3 00:20:58 2018 +0500 added GetAnimStaticAssociation prototype to CAnimManagerSA class and added gateway animation constant, value is set to "run_wuzi" for gateway animation commit 098da77 Author: idanish <[email protected]> Date: Sat Mar 3 00:19:47 2018 +0500 fixed GetAnimAssociation function and renamed it to GetAnimstaticAssociation, also implemented isGateWayAnimationHierarchy commit da68248 Author: idanish <[email protected]> Date: Sat Mar 3 00:16:35 2018 +0500 added isGateWayAnimationHierarchy prototype to class commit e2bf58c Author: idanish <[email protected]> Date: Sat Mar 3 00:14:46 2018 +0500 completed CAnimBlendStaticAssociationSAInterface class members by adding missing vTable, nNumBlendNodes, and pAnimBlendNodesSequeceArray commit 1514322 Author: idanish <[email protected]> Date: Sat Mar 3 00:13:20 2018 +0500 changed iHashKey type from int to unsigned int since it's generated using CKeyGen::GetUpperCaseKey commit f90ff66 Author: idanish <[email protected]> Date: Fri Mar 2 18:50:43 2018 +0500 added CClientIFP class, but the functions in there are pretty much empty commit 1483f61 Author: idanish <[email protected]> Date: Fri Mar 2 18:49:54 2018 +0500 added additional parameter to engineLoadIFP for custom block name commit 4fddf96 Author: idanish <[email protected]> Date: Fri Mar 2 17:07:48 2018 +0500 added scripting function engineLoadIFP for loading IFP on client. CClientIFP::LoadIFP is empty for now. commit 26210bc Author: idanish <[email protected]> Date: Fri Mar 2 17:06:13 2018 +0500 added IFP entity commit ceb5663 Author: idanish <[email protected]> Date: Thu Mar 1 20:56:57 2018 +0500 correct CClientPed * is returned from GetClientPedFromClumpMap to check to whom the clump belongs and what animation to play, it can be a custom animation as well. commit c931b4c Author: idanish <[email protected]> Date: Thu Mar 1 20:54:17 2018 +0500 In ModelRequestCallback, old clump is removed from CAnimManagerSA::m_mapOfPedClumps and new clump is inserted into the map commit 7705414 Author: idanish <[email protected]> Date: Thu Mar 1 20:52:45 2018 +0500 added 3 new functions for finding the correct CClientPed * in a map of Ped clumps. commit ff8e9b9 Author: idanish <[email protected]> Date: Thu Mar 1 20:51:00 2018 +0500 Removed hCAnimBlendAssocGroup_CopyAnimation typedef commit 76940cc Author: idanish <[email protected]> Date: Thu Mar 1 07:38:23 2018 +0500 Using factory method for access association group, instead of ugly direct memory access commit fe9e27b Author: idanish <[email protected]> Date: Thu Mar 1 07:37:06 2018 +0500 added CreateAnimBlendAssocGroup function, also fixed tiny bits of formatting commit d097ada Author: idanish <[email protected]> Date: Thu Mar 1 07:36:14 2018 +0500 added CreateAnimBlendAssocGroup and getAnimAssocGroupInterface functions commit 26dc2b3 Author: idanish <[email protected]> Date: Thu Mar 1 07:35:17 2018 +0500 removed a space, nothing else commit 6b1a4db Author: idanish <[email protected]> Date: Thu Mar 1 02:53:57 2018 +0500 removed 2 instructions in HOOK_CAnimManager_AddAnimation, because they were not needed commit 6b6cff2 Author: idanish <[email protected]> Date: Wed Feb 28 13:50:14 2018 +0500 Modified AddAnimation hook to skip CopyAnimation function call, if m_pAddanimationHandler is nullptr/NULL then normal function flow executes to avoid crash commit 8fe6bc4 Author: idanish <[email protected]> Date: Wed Feb 28 13:48:34 2018 +0500 Aligned all function prototypes properly to match StaticAddAnimationHandler prototype commit 0eb7080 Author: idanish <[email protected]> Date: Wed Feb 28 13:47:04 2018 +0500 changed CAnimBlendAssociation * to CAnimBlendAssociationSAInterface * commit bba1a39 Author: idanish <[email protected]> Date: Wed Feb 28 04:56:08 2018 +0500 added typedef of CAnimBlendAssocGroup::CopyAnimation and changed return type of StaticAddAnimationHandler and AddAnimationHandler to CAnimBlendAssociation * commit d860cb8 Author: idanish <[email protected]> Date: Wed Feb 28 04:54:45 2018 +0500 added CopyAnimation function commit dba18b6 Author: idanish <[email protected]> Date: Wed Feb 28 04:54:11 2018 +0500 Animation is copied using CopyAnimation function and the result is returned by AddAnimationHandler commit 3771953 Author: idanish <[email protected]> Date: Wed Feb 28 04:53:17 2018 +0500 changed return type of AddAnimationHandler to CAnimBlendAssociation * commit 80a7554 Author: idanish <[email protected]> Date: Wed Feb 28 04:52:22 2018 +0500 added CopyAnimation function commit 86d070d Author: idanish <[email protected]> Date: Wed Feb 28 04:49:16 2018 +0500 added a new function "CopyAnimation." commit 894b4f6 Author: idanish <[email protected]> Date: Wed Feb 28 04:48:04 2018 +0500 Displays Console. I'm only using it for testing
Dutchman101
added a commit
that referenced
this pull request
Oct 8, 2025
Dutchman101
added a commit
that referenced
this pull request
Oct 8, 2025
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Edits the following functions:
playSound ( string soundPath, [ bool looped = false, [ bool throttled = true ] ] )
playSound3D ( string soundPath, float x, float y, float z, [ bool looped = false, [ bool throttled = true ] ] )
throttled: A boolean representing whether the sound will be throttled. To throttle the sound, use true. Sounds will be throttled per default and only for URLs.
Throttled graph:
http://1drv.ms/1zUymd8
Not Throttled graph:
http://1drv.ms/1PA6aha