рдмрд╛рдп-рдкреНрд░реЛрдбрдХреНрдЯ: рд╣рдо PVS-Studio рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ CryEngine 3 SDK рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ


рд╣рдордиреЗ Cppcheck рдХреЗ рд╕реНрдерд┐рд░ рдХреЛрдб рдПрдирд╛рд▓рд╛рдЗрдЬрд╝рд░, PVS-Studio рдФрд░ рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ 2013 рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреА рддреБрд▓рдирд╛ рдХрд░рдирд╛ рд╕рдорд╛рдкреНрдд рдХрд░ рд▓рд┐рдпрд╛ рд╣реИред рдЗрд╕ рджреМрд░рд╛рди 10 рд╕реЗ рдЕрдзрд┐рдХ рдУрдкрди рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдк рд▓реЗрдЦ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред рдХреНрд░рд╛рдпрдЬрд╛рдЗрди 3 рдПрд╕рдбреАрдХреЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╕рддреНрдпрд╛рдкрди рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдкрд░ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдПрдХ рдФрд░ рд▓реЗрдЦ рд╣реИред

рдХреНрд░рд╛рдпрдВрдЧреЗрди 3 рдПрд╕рдбреАрдХреЗ


CryEngine 3 SDK - CryEngine 3 рдЧреЗрдо рдЗрдВрдЬрди рдкрд░ рдХрдВрдкреНрдпреВрдЯрд░ рдЧреЗрдо рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдЯреВрд▓реНрд╕ рдХрд╛ рдПрдХ рд╕реЗрдЯред CryEngine 3 SDK, CryEngine 3 рдХреА рддрд░рд╣, рдЬрд░реНрдорди рдХрдВрдкрдиреА рдХреНрд░рд╛рдпрдЯреЗрдХ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд рдФрд░ рд╕рдорд░реНрдерд┐рдд рдерд╛ред CryEngine 3 рдПрд╕рдбреАрдХреЗ рдПрдХ рд╡рд┐рдХрд╛рд╕ рдЙрдкрдХрд░рдг рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ, рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рд▓рд┐рдХрд╛рдирд╛ рдлреНрд░реАрд╡реЗрдпрд░ рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдХреЛрдИ рднреА рдХрдВрдкреНрдпреВрдЯрд░ рдЧреЗрдо рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдореБрдлреНрдд рдореЗрдВ рд╡рд┐рддрд░рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред CryEngine 3 SDK рдкрд░ рд╡рд┐рдХрд╕рд┐рдд рдЦреЗрд▓реЛрдВ рдХреЗ рд╡рд╛рдгрд┐рдЬреНрдпрд┐рдХ рд╡рд┐рддрд░рдг (рдмрд┐рдХреНрд░реА) рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ Crytek рдХреЛ рд░реЙрдпрд▓реНрдЯреА рдмрдирд╛рдиреА рд╣реЛрдЧреАред

рдкреА рд╡реА рдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ


рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдХреНрдпрд╛ рджрд┐рд▓рдЪрд╕реНрдк рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдпрджрд┐ рдЖрдк рд╕реНрддрд░ 3 рдЕрд▓рд░реНрдЯ рд╕рдХреНрд╖рдо рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдкрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореИрдВ рдЗрд╕реЗ рдЧрдВрднреАрд░ рджреЛрд╖ рдирд╣реАрдВ рдХрд╣ рд╕рдХрддрд╛ред рдПрдХ рдЙрджрд╛рд╣рд░рдг:
static void GetNameForFile( const char* baseFileName, const uint32 fileIdx, char outputName[512] ) { assert(baseFileName != NULL); sprintf( outputName, "%s_%d", baseFileName, fileIdx ); } 

V576 рдЧрд▓рдд рдкреНрд░рд╛рд░реВрдкред 'рд╕реНрдкреНрд░рд┐рдВрдЯрдл' рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЪреМрдереЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рддрд░реНрдХ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдкреВрд░реНрдгрд╛рдВрдХ рдкреНрд░рдХрд╛рд░ рддрд░реНрдХ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реИред igame.h 66

рдФрдкрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ, рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдЪрд░ 'fileIdx' рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ "% u" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рд╕рдВрджрд┐рдЧреНрдз рд╣реИ рдХрд┐ рдпрд╣ рдЪрд░ INT_MAX рд╕реЗ рдЕрдзрд┐рдХ рдореВрд▓реНрдп рддрдХ рдкрд╣реБрдВрдЪ рдЬрд╛рдПрдЧрд╛ред рддреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рддреНрд░реБрдЯрд┐ рд╕реНрд╡рдпрдВ рдкреНрд░рдХрдЯ рдирд╣реАрдВ рд╣реЛрдЧреАред

рдорд╛рдиреНрдпрддрд╛ рдкрд░рд┐рдгрд╛рдо


рд▓рдШреБ рдкрд░рд┐рдгрд╛рдо - рдЖрдкрдХреЛ рд╕реНрдерд┐рд░ рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдФрд░ рдлрд┐рд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдХрдо рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реЛрдВрдЧреА рдФрд░ рдореИрдВ рдХрд┐рд╕реА рднреА рдЪреАрдЬ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓реЗрдЦ рдирд╣реАрдВ рд▓рд┐рдЦреВрдВрдЧрд╛ред

рдбрдмрд▓ рдЪреЗрдХ


 void CVehicleMovementArcadeWheeled::InternalPhysicsTick(float dt) { .... if (fabsf(m_movementAction.rotateYaw)>0.05f || vel.GetLengthSquared()>0.001f || m_chassis.vel.GetLengthSquared()>0.001f || angVel.GetLengthSquared()>0.001f || angVel.GetLengthSquared()>0.001f) .... } 

V501 рд╕рдорд╛рди рдЙрдк-рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпрд╛рдБ рд╣реИрдВ 'angVel.GetLengthSquared ()> 0.001f' рдмрд╛рдИрдВ рдФрд░ рджрд╛рдИрдВ рдУрд░ '' || рдСрдкрд░реЗрдЯрд░ред vehiclemovementarcadewheeled.cpp 3300

рдЪреЗрдХ "angVel.GetLengthSquared ()> 0.001f" рджреЛ рдмрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рдЪреЗрдХ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╣реИред рдпрд╛ рдпрд╣ рдПрдХ рдЯрд╛рдЗрдкреЛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдореВрд▓реНрдп рдХреА рдЬрд╛рдВрдЪ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИред

рд╡рд┐рднрд┐рдиреНрди рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдПрдХ рд╣реА рдХрд╛рд░реНрд░рд╡рд╛рдИ


рдЯреБрдХрдбрд╝реЗ рдЯреБрдХрдбрд╝реЗ рдХрд░рдирд╛ N резред
 void CVicinityDependentObjectMover::HandleEvent(....) { .... else if ( strcmp(szEventName, "ForceToTargetPos") == 0 ) { SetState(eObjectRangeMoverState_MovingTo); SetState(eObjectRangeMoverState_Moved); ActivateOutputPortBool( "OnForceToTargetPos" ); } else if ( strcmp(szEventName, "ForceToTargetPos") == 0 ) { SetState(eObjectRangeMoverState_MovingTo); SetState(eObjectRangeMoverState_Moved); ActivateOutputPortBool( "OnForceToTargetPos" ); } .... } 

V517 'if (A) {...} рдХрд╛ рдЙрдкрдпреЛрдЧ if (A) {...}' рдкреИрдЯрд░реНрди рдХрд╛ рдкрддрд╛ рдЪрд▓рд╛ред рддрд╛рд░реНрдХрд┐рдХ рддреНрд░реБрдЯрд┐ рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред рдЪреЗрдХ рд▓рд╛рдЗрдиреЗрдВ: 255, 261. vicinitydependentobjectmover.cpp 255

рдпрд╣ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреЛрдб рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдФрд░ рдореБрдЭреЗ рдпрд╣ рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдирдХрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╡реЗ рдЗрд╕ рдХреЛрдб рдореЗрдВ рдХреБрдЫ рддрдп рдХрд░рдирд╛ рднреВрд▓ рдЧрдПред

рдЯреБрдХрдбрд╝рд╛ рдХрд░рдирд╛ N2ред рдмрд╣реБрдд рд╣реА рдЕрдЬреАрдм рддрд░реАрдХреЗ рд╕реЗ, ShouldGiveLocalPlayerHitableFeedbackOnCrosshairHoverForEntityClass () рдлрд╝рдВрдХреНрд╢рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдореИрдВ NAME рдХреЛ рд╕рдордЭрддрд╛ рд╣реВрдБ!
 bool CGameRules:: ShouldGiveLocalPlayerHitableFeedbackOnCrosshairHoverForEntityClass (const IEntityClass* pEntityClass) const { assert(pEntityClass != NULL); if(gEnv->bMultiplayer) { return (pEntityClass == s_pSmartMineClass) || (pEntityClass == s_pTurretClass) || (pEntityClass == s_pC4Explosive); } else { return (pEntityClass == s_pSmartMineClass) || (pEntityClass == s_pTurretClass) || (pEntityClass == s_pC4Explosive); } } 

V523 'рддрддреНрдХрд╛рд▓реАрди' рдХрдерди 'рдФрд░' рдХрдерди рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред рдЧреЗрдорд░реБрд▓реНрд╕.рдХреЙрдк 5401

рдРрд╕реА рд╣реА рдмреЗрд╣рдж рд╕рдВрджрд┐рдЧреНрдз рдЬрдЧрд╣реЗрдВ:

Uninitialized рд╕рд░рдгреА рд╕реЗрд▓


 TDestructionEventId destructionEvents[2]; SDestructibleBodyPart() : hashId(0) , healthRatio(0.0f) , minHealthToDestroyOnDeathRatio(0.0f) { destructionEvents[0] = -1; destructionEvents[0] = -1; } 

V519 'рд╡рд┐рдирд╛рд╢ Events [0]' рдЪрд░ рдХреЛ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рджреЛ рдмрд╛рд░ рдорд╛рди рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╢рд╛рдпрдж рдпрд╣ рдПрдХ рдЧрд▓рддреА рд╣реИред рдЬрд╛рдБрдЪ рд▓рд╛рдЗрдиреЗрдВ: 75, 76. bodydestruction.h 76

рдПрд░реЗ 'рд╡рд┐рдирд╛рд╢Events' рдореЗрдВ рджреЛ рддрддреНрд╡ рд╣реЛрддреЗ рд╣реИрдВред рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ, рд╡реЗ рд╕рд░рдгреА рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗред рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред

рдмреНрд░реИрдХреЗрдЯ рдХреЛ рдЧрд▓рдд рдЬрдЧрд╣ рдкрд░ рд░рдЦреЗрдВ


 bool ShouldRecordEvent(size_t eventID, IActor* pActor=NULL) const; void CActorTelemetry::SubscribeToWeapon(EntityId weaponId) { .... else if(pMgr->ShouldRecordEvent(eSE_Weapon), pOwnerRaw) .... } 

V639 'ShouldRecordEvent' рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рд╕рдорд╛рдкрди ') рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛрд╖реНрдардХ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред actortelemetry.cpp 288

рдПрдХ рджреБрд░реНрд▓рдн рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рдЧрд▓рддреАред рд╕рдорд╛рдкрди рдмреНрд░реИрдХреЗрдЯ рд╡рд╣рд╛рдВ рдирд╣реАрдВ рд▓рдЧрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ ShouldRecordEvent () рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рджреВрд╕рд░рд╛ рддрд░реНрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рд╢реБрд░реБрдЖрдд рдореЗрдВ ShouldRecordEvent () рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдлрд┐рд░, рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рдСрдкрд░реЗрдЯрд░ ',' рджрд╛рдИрдВ рдУрд░ рдЦрдбрд╝рд╛ рдорд╛рди рд▓реМрдЯрд╛рддрд╛ рд╣реИред рд╕реНрдерд┐рддрд┐ рдХреЗрд╡рд▓ рдЪрд░ 'pOwnerRaw' рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИред

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдирд░рдХ рдХреНрдпрд╛ рд╣реБрдЖред

рдлрдВрдХреНрд╢рди рдХрд╛ рдирд╛рдо рд▓рд┐рдЦрдирд╛ рднреВрд▓ рдЧрдП


 virtual void ProcessEvent(....) { .... string pMessage = ("%s:", currentSeat->GetSeatName()); .... } 

V521 ',' рдСрдкрд░реЗрдЯрд░ рдХреЗ рдкреНрд░рдпреЛрдЧ рд╕реЗ рдРрд╕реЗ рднрд╛рд╡ рдЦрддрд░рдирд╛рдХ рд╣реИрдВред рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ ""% s: ", currentSeat-> GetSeatName ()) рд╕рд╣реА рд╣реИред flowvehiclenodes.cpp 662

рдЗрд╕ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдореЗрдВ, pMessage currentSeat-> GetSeatName () рдкрд░ рд╕реЗрдЯ рд╣реИред рдХреЛрдИ рд╕реНрд╡рд░реВрдкрдг рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдирддреАрдЬрддрди, рдмреГрд╣рджрд╛рдиреНрддреНрд░ ':' рд▓рд╛рдЗрди рдореЗрдВ рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдПрдХ рддрд┐рдкрд╣рд┐рдпрд╛, рд▓реЗрдХрд┐рди рдПрдХ рдЧрд▓рддреАред

рдпрд╣ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛:
 string pMessage = string().Format("%s:", currentSeat->GetSeatName()); 

рдЕрд░реНрдерд╣реАрди рдФрд░ рдирд┐рд░реНрджрдпреА рдЬрд╛рдБрдЪ


рдЯреБрдХрдбрд╝реЗ рдЯреБрдХрдбрд╝реЗ рдХрд░рдирд╛ N резред
 inline bool operator != (const SEfResTexture &m) const { if (stricmp(m_Name.c_str(), m_Name.c_str()) != 0 || m_TexFlags != m.m_TexFlags || m_bUTile != m.m_bUTile || m_bVTile != m.m_bVTile || m_Filter != m.m_Filter || m_Ext != m.m_Ext || m_Sampler != m.m_Sampler) return true; return false; } 

V549 'рд╕реНрдЯреНрд░рд┐рдХрдореНрдк' рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкрд╣рд▓рд╛ рддрд░реНрдХ рджреВрд╕рд░реЗ рддрд░реНрдХ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред ishader.h 2089

рдпрджрд┐ рдЖрдкрдиреЗ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рджреЗрдЦреА, рддреЛ рдореИрдВ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВред рд╕реНрдЯреНрд░рд┐рдВрдЧ m_Name.c_str () рдХреА рддреБрд▓рдирд╛ рдЦреБрдж рд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИред рдпрд╣ рд▓рд┐рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:
 stricmp(m_Name.c_str(), m.m_Name.c_str()) 

рдЯреБрдХрдбрд╝рд╛ рдХрд░рдирд╛ N2ред рдЕрдм рдПрдХ рддрд╛рд░реНрдХрд┐рдХ рддреНрд░реБрдЯрд┐:
 SearchSpotStatus GetStatus() const { return m_status; } SearchSpot* SearchGroup::FindBestSearchSpot(....) { .... if(searchSpot.GetStatus() != Unreachable || searchSpot.GetStatus() != BeingSearchedRightAboutNow) .... } 

V547 рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╣рдореЗрд╢рд╛ рд╕рдЪ рд╣реИред рд╕рдВрднрд╡рддрдГ '&&' рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣рд╛рдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред searchmodule.cpp 469

рдЗрд╕ рдХреЛрдб рдореЗрдВ рд╕рддреНрдпрд╛рдкрди рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред рдореИрдВ рдПрдХ рд╕рд╛рджреГрд╢реНрдп рджреВрдВрдЧрд╛:
 if (A != 1 || A != 2) 

рд╣рд╛рд▓рдд рд╣рдореЗрд╢рд╛ рд╕рдВрддреБрд╖реНрдЯ рд╣реИред

рдЯреБрдХрдбрд╝рд╛ рдХрд░рдирд╛ N3ред
 const CCircularBufferTimeline * CCircularBufferStatsContainer::GetTimeline( size_t inTimelineId) const { .... if (inTimelineId >= 0 && (int)inTimelineId < m_numTimelines) { tl = &m_timelines[inTimelineId]; } else { CryWarning(VALIDATOR_MODULE_GAME,VALIDATOR_ERROR, "Statistics event %" PRISIZE_T " is larger than the max registered of %" PRISIZE_T ", event ignored", inTimelineId,m_numTimelines); } .... } 

V547 рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ 'inTimelineId> = 0' рд╣рдореЗрд╢рд╛ рд╕рддреНрдп рд╣реЛрддрд╛ рд╣реИред рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдкреНрд░рдХрд╛рд░ рдХрд╛ рдорд╛рди рд╣рдореЗрд╢рд╛> = 0. рдЧреЛрд▓рд╛рдХрд╛рд░ рд╣реЛрддрд╛ рд╣реИред рд╕реАрдкреАрд╕реА 31

рдЯреБрдХрдбрд╝рд╛ рдХрд░рдирд╛ N4ред
 inline typename CryStringT<T>::size_type CryStringT<T>::rfind( value_type ch,size_type pos ) const { const_str str; if (pos == npos) { .... } else { if (pos == npos) pos = length(); .... } 

V571 рдЖрд╡рд░реНрддреА рдЬрд╛рдБрдЪред 'If (pos == npos)' рд╕реНрдерд┐рддрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓рд╛рдЗрди 1447 рдореЗрдВ рд╕рддреНрдпрд╛рдкрд┐рдд рдереАред рдХреНрд░рд┐рд╕реНрдЯрд▓рд┐рдВрдЧред 1453

рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ "pos = length ()" рдХреЛ рдХрднреА рднреА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рд╕рдорд╛рди рдХреЛрдб рдпрд╣рд╛рдБ: cryfixedstring.h 1297

рд╕рдВрдХреЗрдд


рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдкреЙрдЗрдВрдЯрд░ рдХреЛ рд╢реВрдиреНрдп рдХреА рд╕рдорд╛рдирддрд╛ рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪрдиреЗ рдХреЗ рдмрд╣реБрдд рд╢реМрдХреАрди рд╣реИрдВред рдЕрдм, рдЕрдЧрд░ рдЙрдиреНрд╣реЗрдВ рдЕрднреА рднреА рдкрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдХрд┐рддрдиреА рдмрд╛рд░ рдЧрд▓рдд рдХрд░рддреЗ рд╣реИрдВред рдмрд╣реБрдд рджреЗрд░ рд╣реЛ рдЪреБрдХреА рд╣реИ рдЬрдм рдЬрд╛рдБрдЪ рдХрд░реЗрдВред

рдореИрдВ рдЖрдкрдХреЛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреВрдВрдЧрд╛, рдмрд╛рдХреА рдХреЛ рдореИрдВ рдПрдХ рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рд╕реВрдЪреАрдмрджреНрдз рдХрд░реВрдВрдЧрд╛ред
 IScriptTable *p; bool Create( IScriptSystem *pSS, bool bCreateEmpty=false ) { if (p) p->Release(); p = pSS->CreateTable(bCreateEmpty); p->AddRef(); return (p)?true:false; } 

N5ptr рдХреЗ рдЦрд┐рд▓рд╛рдл рд╕рддреНрдпрд╛рдкрд┐рдд рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ V595 'рдкреА' рдкреЙрдЗрдВрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЪреЗрдХ рд▓рд╛рдЗрдиреЗрдВ: 325, 326. рд╕реНрдХреНрд░рд┐рдкреНрдЯреЗрд▓рдкрд░реНрд╕ред 325

35 рдкрджреЛрдВ рдХреА рд╕рдВрд╢реЛрдзрд┐рдд рд╕реВрдЪреА: CryEngineSDK-595.txt

рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░


 void AddSample( T x ) { m_index = ++m_index % N; .... } 

V567 рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ред рдЕрдиреБрдХреНрд░рдо рдмрд┐рдВрджреБрдУрдВ рдХреЗ рдмреАрдЪ рджреЛ рдмрд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рджреМрд░рд╛рди 'm_index' рдЪрд░ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред in Network.h 2303

тАЬрдПрдХ рдмрд╛рд░ рдореИрдВ рд╕рд╛рдЗрдХрд┐рд▓ рдЪрд▓рд╛ рд▓реВрдВ


 void CWeapon::AccessoriesChanged(bool initialLoadoutSetup) { .... for (int i = 0; i < numZoommodes; i++) { CIronSight* pZoomMode = .... const SZoomModeParams* pCurrentParams = .... const SZoomModeParams* pNewParams = .... if(pNewParams != pCurrentParams) { pZoomMode->ResetSharedParams(pNewParams); } break; } .... } 

V612 рд▓реВрдк рдХреЗ рднреАрддрд░ рдмрд┐рдирд╛ рд╢рд░реНрдд 'рдмреНрд░реЗрдХ'ред рд╣рдерд┐рдпрд╛рд░

рд▓реВрдк рдХрд╛ рд╢рд░реАрд░ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдЧрд╛ред рдХрд╛рд░рдг рдмрд┐рдирд╛ рд╢рд░реНрдд ond рд╡рд┐рд░рд╛рдо тАЩрдХрдерди рд╣реИред рдЗрд╕реА рд╕рдордп, рд▓реВрдк рдореЗрдВ рдХреЛрдИ 'рдЬрд╛рд░реА' рдмрдпрд╛рди рдирд╣реАрдВ рд╣реИрдВред

рдЗрди рд╕рдВрджрд┐рдЧреНрдз рдЪрдХреНрд░реЛрдВ рдореЗрдВ рд╕реЗ рдХрдИ рдФрд░ рд╣реИрдВ :

рдЕрдЬреАрдм рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ


рдЯреБрдХрдбрд╝реЗ рдЯреБрдХрдбрд╝реЗ рдХрд░рдирд╛ N резред
 void CPlayerStateGround::OnPrePhysicsUpdate(....) { .... modifiedSlopeNormal.z = modifiedSlopeNormal.z; .... } 

V570 'рд╕рдВрд╢реЛрдзрд┐рдд SlopeNormal.z ' рдЪрд░ рдЦреБрдж рдХреЛ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИред playerstateground.cpp 227

рдЯреБрдХрдбрд╝рд╛ рдХрд░рдирд╛ N2ред
 const SRWIParams& Init(....) { .... objtypes=ent_all; flags=rwi_stop_at_pierceable; org=_org; dir=_dir; objtypes=_objtypes; .... } 

V519 'objtypes' рдЪрд░ рдХреЛ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рджреЛ рдмрд╛рд░ рдорд╛рди рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╢рд╛рдпрдж рдпрд╣ рдПрдХ рдЧрд▓рддреА рд╣реИред рдЬрд╛рдБрдЪ рд░реЗрдЦрд╛рдПрдБ: 2807, 2808. Physinterface.h 2808

рд╡рд░реНрдЧ рд╕рджрд╕реНрдп 'objtypes' рдХреЛ рджреЛ рдмрд╛рд░ рдПрдХ рдорд╛рди рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЯреБрдХрдбрд╝рд╛ рдХрд░рдирд╛ N3ред
 void SPickAndThrowParams::SThrowParams::SetDefaultValues() { .... maxChargedThrowSpeed = 20.0f; maxChargedThrowSpeed = 15.0f; } 

V519 'maxChargedThrowSpeed' рдЪрд░ рдХреЛ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рджреЛ рдмрд╛рд░ рдорд╛рди рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╢рд╛рдпрдж рдпрд╣ рдПрдХ рдЧрд▓рддреА рд╣реИред рдЪреЗрдХ рд▓рд╛рдЗрдиреЗрдВ: 1284, 1285

рдФрд░ рдЗрди рдЕрд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдп рдХреЗ рдХреБрдЫ рдФрд░ :

рдЖрдкрдХреЛ рдЗрдХрд╛рдИ рдирд╛рдореЛрдВ рд╕реЗ рд╕рд╛рд╡рдзрд╛рди рд░рд╣рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред


 void CGamePhysicsSettings::Debug(....) const { .... sprintf_s(buf, bufLen, pEntity->GetName()); .... } 

V618 'рд╕реНрдкреНрд░рд┐рдВрдЯрдлрд╝реНрд╕' рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХреЙрд▓ рдХрд░рдирд╛ рдЦрддрд░рдирд╛рдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЬреЛ рд▓рд╛рдЗрди рдкрд╛рд╕ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИ, рдЙрд╕рдореЗрдВ рдкреНрд░рд╛рд░реВрдк рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рд╕реБрд░рдХреНрд╖рд┐рдд рдХреЛрдб рдХрд╛ рдЙрджрд╛рд╣рд░рдг: рдкреНрд░рд┐рдВрдЯрдл ("% s", str); gamephysicssettings.cpp 174

рд╢рд╛рдпрдж рдпрд╣ рдЧрд▓рддреА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдЦрддрд░рдирд╛рдХ рдХреЛрдб рд╣реИред рдпрджрд┐ рдЕрдЪрд╛рдирдХ рдкреНрд░рддреАрдХ '%' рдЗрдХрд╛рдИ рдХреЗ рдирд╛рдо рд╕реЗ рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдкрд░рд┐рдгрд╛рдо рдмрд╣реБрдд рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

рдЕрдХреЗрд▓рд╛ рднрдЯрдХрдиреЗ рд╡рд╛рд▓рд╛


 CPersistantStats::SEnemyTeamMemberInfo *CPersistantStats::GetEnemyTeamMemberInfo(EntityId inEntityId) { .... insertResult.first->second.m_entityId; .... } 

V607 рдорд╛рд▓рд┐рдХрд╛рдирд╛ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ 'InsertResult.first-> second.m_entityId'ред persistantstats.cpp 4814

рдПрдХ рдЕрдХреЗрд▓реА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдЬреЛ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рддреА рд╣реИред рддреНрд░реБрдЯрд┐? рдЕрдзреВрд░рд╛ рдХреЛрдб?

рдХреЛрдб рдореЗрдВ рдПрдХ рдФрд░ рд╕реНрдерд╛рди: рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧрд╕рд┐рд╕реНрдЯрдо .pp 2671

рдирдпрд╛ рд╕рдВрдЪрд╛рд▓рдХ


 bool CreateWriteBuffer(uint32 bufferSize) { FreeWriteBuffer(); m_pWriteBuffer = new uint8[bufferSize]; if (m_pWriteBuffer) { m_bufferSize = bufferSize; m_bufferPos = 0; m_allocated = true; return true; } return false; } 

V668 рдирд▓ рдХреЗ рдЦрд┐рд▓рд╛рдл 'm_pWriteBuffer' рдкреЙрдЗрдВрдЯрд░ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдХреЛрдИ рд╕рдордЭрджрд╛рд░реА рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕реНрдореГрддрд┐ рдХреЛ 'рдирдП' рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрди рддреНрд░реБрдЯрд┐ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЕрдкрд╡рд╛рдж рдЙрддреНрдкрдиреНрди рд╣реЛрдЧрд╛ред crylobbypacket.h 88

рдХреЛрдб рдкреБрд░рд╛рдирд╛ рд╣реИред рд╕реНрдореГрддрд┐ рдЖрдмрдВрдЯрди рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде, 'рдирдпрд╛' рдСрдкрд░реЗрдЯрд░ рдЕрдкрд╡рд╛рдж рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИред

рдЕрдиреНрдп рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ :

рдирд┐рд╖реНрдХрд░реНрд╖


рдореЗрд░рд╛ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдореИрдВ рдХрд▓реНрдкрдирд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдХреНрд░рд╛рдЗрдВрдЧрд╕реНрдЯрд╛рдЗрди 3 рдПрд╕рдбреАрдХреЗ рдореЗрдВ рди рдХреЗрд╡рд▓ рдХрд┐рддрдиреА рджрд┐рд▓рдЪрд╕реНрдк рдЪреАрдЬреЗрдВ рдорд┐рд▓ рд╕рдХрддреА рд╣реИрдВ, рдмрд▓реНрдХрд┐ рдХреНрд░рд╛рдЗрдВрдЧрдЬрд╛рдЗрди 3 рдЗрдВрдЬрди рдореЗрдВ рд╣реАред

рдореИрдВ рдЖрдк рд╕рднреА рдХреЛ рдПрдХ рдХреЛрдбрд▓реЗрд╕ рдХреЛрдб рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ!

рдкреБрдирд╢реНрдЪ


рдХреЛрдИ рд▓рдЧрд╛рддрд╛рд░ рд╡рд┐рджреЗрд╢рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд░реВрд╕реА рд▓реЗрдЦ рдХрд╛ рд▓рд┐рдВрдХ рднреЗрдЬрддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдЕрдиреБрд╡рд╛рдж рд╣реИ: рдПрдХ рд╕реНрдкрд┐рди-рдСрдл: рдХреНрд░рд╛рдпрд╕рд╛рдЗрди 3 рдПрд╕рдбреАрдХреЗ рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рд╕рд╛рде рдЬрд╛рдВрдЪрд╛ рдЧрдпрд╛ ред

рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдм

рдкреА рдкреА рдПрд╕


рдЕрдХреНрд╕рд░ рд╣рдорд╛рд░реЗ рд▓реЗрдЦреЛрдВ рд╕реЗ рд╡рд╣реА рдкреНрд░рд╢реНрди рдкреВрдЫреЗ рдЬрд╛рддреЗ рд╣реИрдВред рд╣рдордиреЗ рдпрд╣рд╛рдВ рдЙрдирдХреЗ рдЙрддреНрддрд░ рдПрдХрддреНрд░ рдХрд┐рдП рд╣реИрдВ: рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдФрд░ рдХреИрдкреНрдкрдХреИрдЯ, рд╕рдВрд╕реНрдХрд░рдг 2014 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓реЗрдЦреЛрдВ рдХреЗ рдкрд╛рдардХреЛрдВ рдХреЗ рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдм ред

Source: https://habr.com/ru/post/In215199/


All Articles