pingus-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Basher fix problem


From: Gervase Lam
Subject: Re: Basher fix problem
Date: Sat, 5 Oct 2002 13:10:25 +0100

On Tuesday 01 October 2002 11:32 am, you wrote:
> > Subject: Re: Pingu stuck and collision code
> > From: Ingo Ruhnke <address@hidden>
> > Date: 30 Sep 2002 18:47:32 +0200
> >
> > The basher code current checks the wrong pixel, picking a check range
> > that is closer to the bash-radius and to the pingus height might help.
>
> As mentioned in a previous post, this won't work.  If I did this, I
> would re-introduce a problem that I solved.  Simplified, I think the
> problem went like this:
>
> (1) Basher bashes a circular hole.  Therefore there is now no ground in
> the circular hole.
>
> (2) The Basher then checks to see if there is any ground WITHIN the hole
> (i.e. within Basher reach).  As there now isn't any (!!), the Basher
> stops bashing immediately.
>
> It didn't happen all of the time but definitely far too often.
>
> The fix I've done is to make the bash area checked include the Bash
> Height.  Since anything below the Bash Height is not checked, a Pingu
> could walk on to it and have a head collision.  This caused a problem
> because previously the Bash Height was excluded from the bash
> "calculation", which already inlcuded the Pingu Height.

Ingo,

Bashers STILL have the problems of not Bashing for long enough.  I've 
attached two jpegs that illustrate the problem.  One of them I've posted 
before.

(1) basher_short.jpeg is of the right-most pillar in the "Evil in the 
Dark" level.  It shows a tunnel that a Basher has done.  However, the 
Walker that bashed the hole can't walk through the end of the bashed out 
tunnel.  The Basher should bash for longer.

(2) basher_short2.jpeg is of the "cliff" to the left of the entrance in 
"Alone in the Desert".  It shows a Walker walking away from a tunnel it 
has bashed.  However, it should have bashed for longer.

I noticed that a diff of my patch to basher.cxx for this problem and the 
previous version of basher.cxx got accidentally committed to CVS.  But 
what is there now does not include my patch.

Probably the best thing to do is to apply the following diff.

address@hidden actions]$ diff basher.cxx.04.bak basher.cxx
117c117
<   for(int x = 0; x < 16; ++x)
---
>   for(int x = 0; x <= 16; ++x)
122c122
<       for (int y = bash_height + 1; y <= 26; ++y)
---
>       for (int y = bash_height + 1; y <= pingu_height + bash_height + 1; 
++y)
address@hidden actions]$

Thanks,
Gervase.

Attachment: basher_short.jpeg
Description: JPEG image

Attachment: basher_short2.jpeg
Description: JPEG image


reply via email to

[Prev in Thread] Current Thread [Next in Thread]