Opened 11 months ago

Last modified 3 weeks ago

#11227 new defect

SCUMM: Indy3 - Fighting with Keypad keys doesn't work correctly

Reported by: rsn8887 Owned by:
Priority: normal Component: Engine: SCUMM
Keywords: Cc:
Game: Indiana Jones 3

Description

Indy 3 should allow fighting with KP_1 to KP_9 keys, but doesn't.

I suspect the offending code is some kind of partial hard-mapping of some keys like KEYCODE_KP4, KEYCODE_4 etc. in the file script_v6.cpp, line 2786
https://github.com/scummvm/scummvm/blob/ee2aa6160cdd393f15253ee564252f486d4f03bd/engines/scumm/script_v6.cpp#L2786

in the function ScummEngine::getKeyState

How has this gone unnoticed?

This affects gamepads too because dpad and R+dpad is mapped to keypad, which works for walking in Sierra games, but apparently not for fighting in Indy 3.

Change History (7)

comment:1 by rsn8887, 11 months ago

Tested on Linux and Switch

comment:2 by rsn8887, 11 months ago

Priority: highblocker

comment:3 by rsn8887, 11 months ago

It seems to work with number row keys, but not with keypad keys.

comment:4 by raziel-, 2 months ago

Summary: Fighting in Indy 3 with Keypad keys doesn't work correctlySCUMM: Indy3 - Fighting with Keypad keys doesn't work correctly

@rsn8887

Are the Linux and Switch platforms based on the SDL backend?
If yes, please take a look here #10558, as it sounds like the exact same problem, i was having on AmigaOS4.
If it is, it should be fairly easy to fix...

comment:5 by sev-, 5 weeks ago

Priority: blockernormal

comment:6 by rsn8887, 3 weeks ago

Why is the workaround https://bugs.scummvm.org/changeset/ce8227323b3fa658cdfb2f1e3de9b2fbca783c5a
that seems to fix this on Amiga platform not used for all platforms?

Does numpad fighting work on any platform (apart from Amiga, which was fixed by above commit) as it is currently?

Last edited 3 weeks ago by rsn8887 (previous) (diff)

comment:7 by raziel-, 3 weeks ago

@rsn8887

Iirc the fix was limited to Amigaos4 back then because other platforms didn't suffer from the problem.

At least there was never any feedback from other sdl-based platforms or other bug items regarding this.

Also, since I'm only able to test Amigaos4 I'd never assume that the bug would be more than "my platform only".

Note: See TracTickets for help on using tickets.