[Top][All Lists]
[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.
basher_short.jpeg
Description: JPEG image
basher_short2.jpeg
Description: JPEG image
- Re: Basher fix problem,
Gervase Lam <=