mirror of
https://github.com/ddnet/ddnet.git
synced 2024-11-10 18:18:18 +00:00
The bug still exists but i thought why keep checking for more tees in laser/door wait for 1 tee 1st
Signed-off-by: GreYFoXGTi <GreYFoXGTi@GMaiL.CoM>
This commit is contained in:
parent
15542a6c20
commit
bd90c006e2
|
@ -30,8 +30,13 @@ void CDoor::Close()
|
||||||
|
|
||||||
bool CDoor::HitCharacter()
|
bool CDoor::HitCharacter()
|
||||||
{
|
{
|
||||||
vec2 Points[36];
|
|
||||||
vec2 At;
|
vec2 At;
|
||||||
|
CCharacter *Hit = GameServer()->m_World.IntersectCharacter(m_Pos, m_To, 1.f, At, 0);
|
||||||
|
if(Hit)
|
||||||
|
{
|
||||||
|
vec2 Points[36];
|
||||||
|
Hit->m_Doored = true;
|
||||||
|
Hit = 0;
|
||||||
for(int i=1;i<=36;i++)
|
for(int i=1;i<=36;i++)
|
||||||
{
|
{
|
||||||
Points[i-1].x = m_Pos.x * (1 - i/38.0) + m_To.x * i / 38.0;
|
Points[i-1].x = m_Pos.x * (1 - i/38.0) + m_To.x * i / 38.0;
|
||||||
|
@ -65,6 +70,7 @@ bool CDoor::HitCharacter()
|
||||||
Hit->m_Doored = true;
|
Hit->m_Doored = true;
|
||||||
Hit = 0;
|
Hit = 0;
|
||||||
//hit->reset_pos();
|
//hit->reset_pos();
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -28,13 +28,18 @@ CLight::CLight(CGameWorld *pGameWorld, vec2 Pos, float Rotation, int Length)
|
||||||
bool CLight::HitCharacter()
|
bool CLight::HitCharacter()
|
||||||
{
|
{
|
||||||
vec2 At;
|
vec2 At;
|
||||||
|
CCharacter *Hit = GameServer()->m_World.IntersectCharacter(m_Pos, m_To, 1.f, At, 0);
|
||||||
|
if(Hit)
|
||||||
|
{
|
||||||
vec2 Points[36];
|
vec2 Points[36];
|
||||||
|
Hit->Freeze(Server()->TickSpeed()*3);
|
||||||
|
Hit = 0;
|
||||||
for(int i=1;i<37;i++)
|
for(int i=1;i<37;i++)
|
||||||
{
|
{
|
||||||
Points[i-1].x = m_Pos.x * (1 - i/38.0) + m_To.x * i / 38.0;
|
Points[i-1].x = m_Pos.x * (1 - i/38.0) + m_To.x * i / 38.0;
|
||||||
Points[i-1].y = m_Pos.y * (1 - i/38.0) + m_To.y * i / 38.0;
|
Points[i-1].y = m_Pos.y * (1 - i/38.0) + m_To.y * i / 38.0;
|
||||||
}
|
}
|
||||||
CCharacter *Hit = GameServer()->m_World.IntersectCharacter(m_Pos, Points[0], 1.f, At, 0);
|
Hit = GameServer()->m_World.IntersectCharacter(m_Pos, Points[0], 1.f, At, 0);
|
||||||
if(Hit)
|
if(Hit)
|
||||||
Hit->Freeze(Server()->TickSpeed()*3);
|
Hit->Freeze(Server()->TickSpeed()*3);
|
||||||
Hit = 0;
|
Hit = 0;
|
||||||
|
@ -61,7 +66,7 @@ bool CLight::HitCharacter()
|
||||||
if(Hit)
|
if(Hit)
|
||||||
Hit->Freeze(Server()->TickSpeed()*3);
|
Hit->Freeze(Server()->TickSpeed()*3);
|
||||||
Hit = 0;
|
Hit = 0;
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue