Is this a known bug/trick?

Discuss PoP1 for DOS here.
Post Reply
dmitry_s
Developer
Developer
Posts: 148
Joined: July 27th, 2021, 7:22 am

Is this a known bug/trick?

Post by dmitry_s »

I know there is already a trick where kid falls straight through a tapestry which has a fix in SDLPoP. But this one is different and it happens in SDLPoP with all the fixes enabled.

The bug happens when prince stands up from a crouch above a wall/tapestry and the distance to the edge (weight) is 0 or 1. The reason for it is the check for the wall/tapestry in the "start_fall" method happens after the sequence fall starts playing. Prince's frame changes to the first "start_fall" frame and "load_fram_det_col" method moves him 1 tile forward so the if statement linked below does not get triggered.

https://github.com/NagyD/SDLPoP/blob/8b ... 06.c#L1124

Even if it was triggered, "Char.x = char_dx_forward(-1);" is not enough if the distance to the edge is 0.



The weird thing is the bug does not get captured in the SDLPoP replay. Prince does not fall when replaying the saved file.
Attachments
fall.p1r
(3.79 KiB) Downloaded 63 times
User avatar
Norbert
The Prince of Persia
The Prince of Persia
Posts: 5745
Joined: April 9th, 2009, 10:58 pm

Re: Is this a known bug/trick?

Post by Norbert »

It reminds me of 97 (and 93, 155):
dmitry_s
Developer
Developer
Posts: 148
Joined: July 27th, 2021, 7:22 am

Re: Is this a known bug/trick?

Post by dmitry_s »

Yes, trick 97 is VERY similar but not exactly the same in terms of frames and positioning. Basically there should be a wall check twice, before and after the sequence starts playing. But the first time it should only check against standing/crouching frames to avoid prince falling straight down during jumps before reaching the wall.

The wall tricks are different and it do not work in SDLPoP if you turn on the fixes.
Post Reply