@@ -100,6 +100,9 @@ void CClientPed::Init ( CClientManager* pManager, unsigned long ulModelID, bool
100
100
m_pRequester = pManager->GetModelRequestManager ();
101
101
102
102
m_bisNextAnimationCustom = false ;
103
+ m_bisCurrentAnimationCustom = false ;
104
+ m_strCustomIFPBlockName = " Default" ;
105
+ m_strCustomIFPAnimationName = " Default" ;
103
106
m_iVehicleInOutState = VEHICLE_INOUT_NONE;
104
107
m_pPlayerPed = NULL ;
105
108
m_pTaskManager = NULL ;
@@ -243,11 +246,15 @@ void CClientPed::Init ( CClientManager* pManager, unsigned long ulModelID, bool
243
246
244
247
SetArmor ( 0 .0f );
245
248
}
249
+
250
+ g_pClientGame->InsertPedPointerToMap ( this );
246
251
}
247
252
248
253
249
254
CClientPed::~CClientPed ( void )
250
- {
255
+ {
256
+ g_pClientGame->RemovePedPointerFromMap ( this );
257
+
251
258
// Remove from the ped manager
252
259
m_pManager->GetPedManager ()->RemoveFromList ( this );
253
260
@@ -1032,6 +1039,11 @@ bool CClientPed::SetModel ( unsigned long ulModel, bool bTemp )
1032
1039
// Different model from what we have now?
1033
1040
if ( m_ulModel != ulModel )
1034
1041
{
1042
+ if ( m_bisCurrentAnimationCustom )
1043
+ {
1044
+ m_bisNextAnimationCustom = true ;
1045
+ }
1046
+
1035
1047
if ( bTemp )
1036
1048
m_ulStoredModel = m_ulModel;
1037
1049
@@ -2862,6 +2874,12 @@ void CClientPed::StreamedInPulse ( bool bDoStandardPulses )
2862
2874
// Is it loaded now?
2863
2875
if ( m_pAnimationBlock->IsLoaded () )
2864
2876
{
2877
+ printf (" \n streamed in pulse for ped\n\n " );
2878
+ if ( m_bisCurrentAnimationCustom )
2879
+ {
2880
+ m_bisNextAnimationCustom = true ;
2881
+ }
2882
+
2865
2883
m_bRequestedAnimation = false ;
2866
2884
2867
2885
// Copy our name incase it gets deleted
@@ -3722,6 +3740,11 @@ void CClientPed::_CreateModel ( void )
3722
3740
// Are we still playing a looped animation?
3723
3741
if ( m_bLoopAnimation && m_pAnimationBlock )
3724
3742
{
3743
+ printf (" \n create model for ped\n\n " );
3744
+ if ( m_bisCurrentAnimationCustom )
3745
+ {
3746
+ m_bisNextAnimationCustom = true ;
3747
+ }
3725
3748
// Copy our anim name incase it gets deleted
3726
3749
SString strAnimName = m_strAnimationName;
3727
3750
// Run our animation
@@ -4019,6 +4042,12 @@ void CClientPed::_ChangeModel ( void )
4019
4042
// Are we still playing a looped animation?
4020
4043
if ( m_bLoopAnimation && m_pAnimationBlock )
4021
4044
{
4045
+ printf (" \n change model for ped\n\n " );
4046
+ if ( m_bisCurrentAnimationCustom )
4047
+ {
4048
+ m_bisNextAnimationCustom = true ;
4049
+ }
4050
+
4022
4051
// Copy our anim name incase it gets deleted
4023
4052
SString strAnimName = m_strAnimationName;
4024
4053
// Run our animation
@@ -4074,13 +4103,7 @@ void CClientPed::ReCreateModel ( void )
4074
4103
4075
4104
4076
4105
void CClientPed::ModelRequestCallback ( CModelInfo* pModelInfo )
4077
- {
4078
- RpClump * pOldClump = m_pPlayerPed->GetRpClump ();
4079
-
4080
- printf (" CClientPed::ModelRequestCallback Called! pOldClump: %p\n " , pOldClump);
4081
-
4082
- g_pGame->GetAnimManager ()->RemovePedPointerFromMap ( pOldClump );
4083
-
4106
+ {
4084
4107
// If we have a player loaded
4085
4108
if ( m_pPlayerPed )
4086
4109
{
@@ -4092,11 +4115,6 @@ void CClientPed::ModelRequestCallback ( CModelInfo* pModelInfo )
4092
4115
// If we don't have a player loaded, load it
4093
4116
_CreateModel ();
4094
4117
}
4095
-
4096
- RpClump * pNewClump = m_pPlayerPed->GetRpClump ();
4097
- g_pGame->GetAnimManager ()->InsertPedPointerToMap ( pNewClump, this );
4098
-
4099
- printf (" CClientPed::ModelRequestCallback: Model changed/created | pNewClump: %p\n " , m_pPlayerPed->GetRpClump ());
4100
4118
}
4101
4119
4102
4120
@@ -5262,6 +5280,7 @@ void CClientPed::Respawn ( CVector * pvecPosition, bool bRestoreState, bool bCam
5262
5280
// We must not call CPed::Respawn for remote players
5263
5281
if ( m_bIsLocalPlayer )
5264
5282
{
5283
+ setNextAnimationNormal ( );
5265
5284
SetFrozenWaitingForGroundToLoad ( true );
5266
5285
if ( m_pPlayerPed )
5267
5286
{
@@ -5869,6 +5888,7 @@ void CClientPed::KillAnimation ( void )
5869
5888
m_pAnimationBlock = NULL ;
5870
5889
m_strAnimationName = " " ;
5871
5890
m_bRequestedAnimation = false ;
5891
+ setNextAnimationNormal ( );
5872
5892
}
5873
5893
5874
5894
void CClientPed::PostWeaponFire ( void )
0 commit comments