📄 movementchecker.cpp
字号:
#include "StdAfx.h"
#include ".\movementchecker.h"
MovementChecker::MovementChecker(void)
{
Init();
}
MovementChecker::~MovementChecker(void)
{
}
VOID MovementChecker::Init()
{
m_fMoveSpeed = 0.0f;
Reset();
}
VOID MovementChecker::Reset()
{
m_bFirstMove = TRUE;
m_dwFirstMovedTick = 0;
m_dwLastMovedTick = 0;
m_fTotalMovement = 0.f;
SetVector( &m_wvPrevFromPos, 0.0f, 0.0f, 0.0f );
}
VOID MovementChecker::SetMoveSpeed( float fMoveSpeed, WzVector wvCurPos )
{
if( m_fMoveSpeed != fMoveSpeed )
{
Reset();
}
m_fMoveSpeed = fMoveSpeed;
}
// 沥惑 捞悼吝捞搁 TRUE甫 府畔窍绊 秦欧栏肺 魄沥登搁 FALSE甫 府畔茄促.
BOOL MovementChecker::AddMovement( WzVector wvCurPos )
{
DWORD dwCurTick = GetTickCount();
// 10檬悼救 捞悼捞 绝菌促搁 梅何磐 促矫 葛聪磐傅
if( dwCurTick - m_dwLastMovedTick > 10000 )
{
Reset();
}
m_dwLastMovedTick = dwCurTick;
if( m_bFirstMove )
{
m_bFirstMove = FALSE;
m_dwFirstMovedTick = GetTickCount();
}
else
{
// 泅犁狼 捞悼 矫累困摹(wvPosFrom)俊辑 捞傈 捞悼 矫累 困摹(m_wvPrevFromPos) 荤捞狼 芭府甫 穿利矫挪促.
m_fTotalMovement += VectorLength( &(wvCurPos - m_wvPrevFromPos) );;
//printf( "捞悼芭府: %f", VectorLength( &(wvCurPos - m_wvPrevFromPos) ) );
}
m_wvPrevFromPos = wvCurPos;
m_dwPrevTickCount = dwCurTick;
/*
// for debug
if( GetTotalTick() > 0 )
{
printf( "芭府: %1.1fm/%1.1fm 醚矫埃: %04d 加档: %1.1f/%1.1f 芭府厚啦: %1.2f",
m_fTotalMovement, GetMaxDistance(), GetTotalTick(), m_fTotalMovement / ( GetTotalTick() * 0.001 ), m_fMoveSpeed, m_fTotalMovement / GetMaxDistance() );
}
*/
return IsLegal();
}
BOOL MovementChecker::IsLegal()
{
// 捞悼 芭府啊 10m 固父捞搁 魄窜窍瘤 臼绰促.
if( m_fTotalMovement < 30.0f ) return TRUE;
// 10% 坷瞒 倾侩
return m_fTotalMovement <= GetMaxDistance() * 1.10f;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -