mirror of
https://github.com/GTAmodding/re3.git
synced 2024-11-16 03:29:02 +00:00
Fix unlimited rotation in Phnom Penh '86
This commit is contained in:
parent
33f467453e
commit
1efbd7ead2
2 changed files with 8 additions and 5 deletions
|
@ -1191,7 +1191,7 @@ int8 CRunningScript::ProcessCommands1100To1199(int32 command)
|
||||||
CollectParameters(&m_nIp, 8);
|
CollectParameters(&m_nIp, 8);
|
||||||
CPed *pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]);
|
CPed *pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]);
|
||||||
CVehicle *pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[1]);
|
CVehicle *pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[1]);
|
||||||
pPed->AttachPedToEntity(pVehicle, *(CVector*)&ScriptParams[2], ScriptParams[5], DEGTORAD(ScriptParams[6]), (eWeaponType)ScriptParams[7]);
|
pPed->AttachPedToEntity(pVehicle, *(CVector*)&ScriptParams[2], ScriptParams[5], DEGTORAD(*(float*)&ScriptParams[6]), (eWeaponType)ScriptParams[7]);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
case COMMAND_DETACH_CHAR_FROM_CAR:
|
case COMMAND_DETACH_CHAR_FROM_CAR:
|
||||||
|
|
|
@ -2370,8 +2370,10 @@ CCam::Process_M16_1stPerson(const CVector &CameraTarget, float, float, float)
|
||||||
Beta += SQR(LookLeftRight/100.0f)*xdir*0.8f/14.0f * FOV/80.0f * CTimer::GetTimeStep();
|
Beta += SQR(LookLeftRight/100.0f)*xdir*0.8f/14.0f * FOV/80.0f * CTimer::GetTimeStep();
|
||||||
Alpha += SQR(LookUpDown/150.0f)*ydir*1.0f/14.0f * FOV/80.0f * CTimer::GetTimeStep();
|
Alpha += SQR(LookUpDown/150.0f)*ydir*1.0f/14.0f * FOV/80.0f * CTimer::GetTimeStep();
|
||||||
}
|
}
|
||||||
while(Beta >= PI) Beta -= 2*PI;
|
if (!isAttached) {
|
||||||
while(Beta < -PI) Beta += 2*PI;
|
while(Beta >= TWOPI) Beta -= TWOPI;
|
||||||
|
while(Beta < 0) Beta += TWOPI;
|
||||||
|
}
|
||||||
if(Alpha > DEGTORAD(60.0f)) Alpha = DEGTORAD(60.0f);
|
if(Alpha > DEGTORAD(60.0f)) Alpha = DEGTORAD(60.0f);
|
||||||
else if(Alpha < -DEGTORAD(89.5f)) Alpha = -DEGTORAD(89.5f);
|
else if(Alpha < -DEGTORAD(89.5f)) Alpha = -DEGTORAD(89.5f);
|
||||||
|
|
||||||
|
@ -2414,13 +2416,14 @@ CCam::Process_M16_1stPerson(const CVector &CameraTarget, float, float, float)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
while(Beta < -PI) Beta += 2*PI;
|
while(Beta < -PI) Beta += TWOPI;
|
||||||
while(Beta >= PI) Beta -= 2*PI;
|
while(Beta >= PI) Beta -= TWOPI;
|
||||||
}
|
}
|
||||||
|
|
||||||
mat = TargetPed->m_attachedTo->GetMatrix();
|
mat = TargetPed->m_attachedTo->GetMatrix();
|
||||||
rot.SetRotateX(Alpha);
|
rot.SetRotateX(Alpha);
|
||||||
switch(TargetPed->m_attachType){
|
switch(TargetPed->m_attachType){
|
||||||
|
case 0: rot.RotateZ(Beta); break;
|
||||||
case 1: rot.RotateZ(Beta + HALFPI); break;
|
case 1: rot.RotateZ(Beta + HALFPI); break;
|
||||||
case 2: rot.RotateZ(Beta + PI); break;
|
case 2: rot.RotateZ(Beta + PI); break;
|
||||||
case 3: rot.RotateZ(Beta - HALFPI); break;
|
case 3: rot.RotateZ(Beta - HALFPI); break;
|
||||||
|
|
Loading…
Reference in a new issue