Opened 7 months ago

Closed 7 months ago

Last modified 7 months ago

#13359 closed defect (fixed)

REMORSE: Prism puzzle not working correctly at Mission 03

Reported by: ParovozNFF Owned by: mduggan
Priority: normal Component: Engine: Ultima
Version: Keywords: gameplay, behavior
Cc: ParovozNFF Game: Crusader: No Remorse

Description

There is a puzzle at Mission 03 where you need to operate two prisms to change the direction of a light beam. Instead of sending the beam in the different direction, the first prism reflects it back, making it impossible to progress.

I am using 2.5.1 stable build of ScummVM in Russian on Windows 10 x64 build 10.0.19044

Attachments (1)

remorse.003 (132.6 KB ) - added by ParovozNFF 7 months ago.

Download all attachments as: .zip

Change History (6)

by ParovozNFF, 7 months ago

Attachment: remorse.003 added

comment:1 by mduggan, 7 months ago

Thanks for the report and adding a save for repro. This used to work, or at least I got past it in my playthrough originally. But, then I made a bunch of changes afterward so I guess I probably broke it again. I'll have to go back and see why it's broken.

comment:2 by mduggan, 7 months ago

The reason it's not working is the hit and gotHit events are not being triggered. Notes for myself:

  • Reference playthrough of original showing how it should behave
  • The BOUNCBOX::gotHit event should change a BLASERNS to a BLASEREW, and vice-versa
  • The BLASER repeatedly uses I_legalMoveToPoint without the move_if_blocked flag set. When the move fails, it reverses direction
  • This suggests that even when move_if_blocked is *not* set, we should still call the hit / gotHit events - otherwise there is no way for BOUNCBOX::gotHit to ever get called in this case (the laser's move just fails and it reverses direction)

I can put calling the events in before the early return in Item::I_legalMoveToPoint and it should fix this problem. I hope it doesn't cause any other problems? The current behaviour was set in revision cbcebce55ddf to make spiderbombs work right. I need to go back and compare to the behaviour before that too to be sure.

Last edited 7 months ago by mduggan (previous) (diff)

comment:3 by mduggan, 7 months ago

Owner: set to mduggan
Resolution: fixed
Status: newclosed

Pushed a fix for this in 3698340e3ab. Thanks again for the report, it revealed a subtle error in my logic on the flag for the I_legalMoveToPoint intrinsic that almost never made a difference.. until it did.

comment:4 by mduggan, 7 months ago

Summary: Prism puzzle not working correctly at Mission 03CRUSADER: Prism puzzle not working correctly at Mission 03

comment:5 by mduggan, 7 months ago

Summary: CRUSADER: Prism puzzle not working correctly at Mission 03REMORSE: Prism puzzle not working correctly at Mission 03
Note: See TracTickets for help on using tickets.