Commit graph

3722 commits

Author SHA1 Message Date
Eugene Sandulenko
b34411bc23
ENGINES: [a-k]*: Switched Debug Channels from bitfield to sequential enum 2025-02-22 15:51:24 +01:00
Eugene Sandulenko
879eba5c32
CONFIGURE: Replace mt32emu component with 'midi'
This component disables all MIDI-related things when unused,
including MT-32 emulator, Fluidsynth, TiMidity and Sonivox
2024-12-26 22:54:56 +01:00
Eugene Sandulenko
4a70b3507f
CONFIGURE: Added fmtowns_pc98_audio as a component 2024-12-26 19:18:49 +01:00
Eugene Sandulenko
d780708c96 ENGINES: Add mt32emu as a feature and component
Add it to engines that have MIDI playback.

This essentially compiles the emulator only when an engine that
can potentially use it (e.g. MIDI) is enabled
2024-12-25 00:34:39 +01:00
Eugene Sandulenko
fdecb6afca ENGINES: Add components to configure.engine's explanatory comment 2024-12-25 00:34:39 +01:00
athrxx
ae11e8f1d9 KYRA: fix bug no. 15555
(KYRA1 - misaligned options text and buttons)

Partial revert of pr 4798 which broke not only the button mentioned in
the bug report but also other gui elements. Some examples can be seen
in the screenshots posted in the pr.

Since the idea behind the PR (make the dialogs look like in the original
interpreters) was good, maybe it can be redone some day (preferably
by extracting all gui elements coordinates from the executables and
stuff them into kyra.dat).
2024-12-05 14:09:06 +01:00
athrxx
7bfbc85cb5 KYRA: (EOB) - prevent invalid graphics mode settings
(This could happen e. g. when selecting Amiga rendering
from the global menu)
2024-11-28 01:50:50 +01:00
athrxx
d69a62e4e5 KYRA: (EOB) - make item table size dynamic
The original item table can overflow when playing long
enough. This code change prevents that....
2024-11-28 01:50:42 +01:00
athrxx
5109cd081f KYRA: minor cleanup
(add/rename some constants, whitespace)
2024-11-24 17:06:32 +01:00
athrxx
38a25cc521 KYRA: (EOB) - fix Ring of Wizardry effect 2024-11-22 00:10:00 +01:00
athrxx
7dea98e89c KYRA: (EOB) - remove unnecessary comments
I verified some code parts from disasm at the request of
contributor vrza. The double-checked code turned out to
be correct for EOB I and EOB II. This commit just removes
the comments telling me what to check.
2024-10-31 01:48:30 +01:00
athrxx
27e9d1d5dc KYRA: (EOB) - fix scripted direction change for flying objects 2024-10-28 00:02:11 +01:00
athrxx
ff237e81e1 KYRA: (EOB) - fix invalid mem access
This is an original bug which is present like that in all versions,
including SegaCD. The script processor passes the monster pos
as a direction argument which is nonsense and can also be out
of range.
2024-10-26 02:25:15 +02:00
Vladimir Vrzić
e31c7ff1d4 KYRA: (EOB) - Fix projectile weapon damage
Note: All changes are behind the "Faithful AD&D rules" flag.

Fix a bug in the original gmaes, where projectiles would deal
an incorrect amount of damage (always 1d1):

- projectile weapon id is attached to a FlyingObject and checked
  when FlyingObject hits a monster or the party

- bump the save format version to add a new field to FlyingObject
  (the new 16 bit field replaces the existing unused 8 bit field)

- fix a bug in the original code where a projectile weapon thrown into
  the 3D view would inflict projectile damage (should be 1d1)

- patch EotB 1 Bow and Sling damage according to AD&D 2nd Ed rules

Elves get +1 to hit bonus with bows and swords, according to manual

Patch EotB 1 NPCs Beohram (paladin) and Ileria (female)
2024-10-23 21:58:38 +02:00
athrxx
66c4c8648c KYRA: (EOB) - fix true seeing spell
The spell effect was restored after loading a savegame
even when it shouldn't. The bug is actually caused by
a bug fix I made to fix an original bug (the original
never restores the true seeing effect, even when the
spell is still supposed to be active).
2024-10-23 21:47:43 +02:00
sluicebox
4200d6575c ALL: Return result from MetaEngine::removeSaveState 2024-10-18 09:41:03 +03:00
Eugene Sandulenko
f35a538d4f
I18N: Unified "Move Backwards" keymapper key caption 2024-10-10 14:43:55 +02:00
Hubert Maier
e84c6751fb JANITORIAL: KYRA: Fix typos 2024-09-11 11:57:08 +03:00
athrxx
292e8891c3 KYRA: fix signed/unsigned warning for certain backends 2024-08-07 22:47:31 +02:00
athrxx
0aca97d8f5 COMMON: add PC-98 8-color render mode to launcher 2024-08-06 08:47:25 +03:00
Vladimir Vrzić
4d43273197 KYRA: (EOB) - More Hit Point code refactoring
- extracted method shouldRollHitDieAtCurrentLevel
- extacted method getStaticHitPointBonus.
2024-07-23 23:48:00 +02:00
Vladimir Vrzić
46c194001d KYRA: (EOB) - Hit Point rule enahncements
For accurate HP calculation, we track the HP dividend.
When leveling up, we divide the dividend by the number
of character subclasses to get the total Hit Points.

- Added field hitPointsDividend
- Cleaned up and refactored HP calculation code
- Extracted method rollHitDie
- Updated character generation to use enhanced rules
2024-07-23 23:48:00 +02:00
athrxx
f80a82ed13 KYRA: (EOB) - add some optional add rule enhancements
(suggestions from @vrza
https://github.com/scummvm/scummvm/pull/5946 )
2024-07-22 15:10:15 +02:00
athrxx
29cafca8bf KYRA: (EOB) - add launcher checkbox for more faithful AD&D rules
(community suggestion)

I have been told that the implementation is  not always in line with the
AD&D 2nd edition handbook. This switch allows to have more faithful
rules if we implement them as an alternative.
2024-07-22 15:09:44 +02:00
athrxx
165a231d4c KYRA: (EOB) - formatting 2024-07-22 15:06:55 +02:00
athrxx
9d0d57a353 KYRA: (EOB) - prevent invalid mem access
The return from getCharacterClassType() can be -1. I don't
think it really happens but it will for sure trigger the static
analyzers
2024-07-20 20:30:29 +02:00
Vladimir Vrzić
4e54b5cdb9 Fixed _hpIncrPerLevel table lookup 2024-07-20 20:13:21 +02:00
sluicebox
27a97db805 KYRA: Fix memory leak
CID 1551876
2024-07-19 23:33:20 -07:00
athrxx
50fe417e13 KYRA: fix bug no. 15270 ("Crash in Alpinia") 2024-07-17 17:44:04 +02:00
Cameron Cawley
ed04942d9b KYRA: Remove engine dependencies from the Halestorm driver 2024-07-12 22:51:03 +02:00
athrxx
94bb74000f KYRA: (LOK) - minor text speed fix adjustment
(ignore chat text display duration when speech is enabled)
2024-07-05 14:39:42 +02:00
Alexander Korotkov
fd97ca71f0 KYRA: LoK - Fix chat duration
When both subtitles and voice are enabled use voice duration as in
the original game.
2024-07-05 14:08:18 +02:00
Cameron Cawley
441b02d057 DETECTION: Use uint32 for ADGameFileDescription file size 2024-06-30 19:13:41 +02:00
Le Philousophe
7e0048b4a3 ENGINES: Add ADDynamicGameDescription class
This class manages a buffer where all data usually stored in detection
plugin will get copied before unloading the plugin and starting the
game.

This class expects that two functions are present in every
GameDescription: sizeBuffer which calculates how many bytes we will need
to store the entry in RAM and toBuffer which copies the data in the
buffer and fix the pointers in the class.
At the end, it is expected that an ADDynamicGameDescription doesn't
depend anymore on data stored in the detection plugin.

The AD_GAME_DESCRIPTION_HELPERS macro allow to implement these functions
in all GameDescription which don't have any pointer except those in
ADGameDescription.
2024-06-30 18:39:06 +02:00
Le Philousophe
b61bd3ff85 ENGINES: Create a type aware advanced meta engine 2024-06-30 18:39:06 +02:00
Le Philousophe
90b886097f ENGINES: Create a type aware advanced detector 2024-06-30 18:39:06 +02:00
athrxx
6b7f6869c2 KYRA: fix coverity warning 2024-05-20 15:32:14 +02:00
Filippos Karapetis
6625df5ac4 KYRA: Use true/false keywords for boolean variables 2024-05-13 09:47:29 +03:00
Tarek Soliman
ea5ccff782 KYRA: Fix building lol without eob 2024-05-03 13:02:14 +02:00
athrxx
901aec72bd KYRA: (LOL) - fix bug no. 15074
(Game Crash after getting Paulson's key in Mines l.4)

It its possible to still have Lora in the party when meeting
Paulson which the game is not prepared for. There is no
mechanism to handle a new party member when there
are already 3 members present. The game simply expects
that the scripts handle this flawlessly by removing a certain
member before adding a new one. I have now added a
workaround to remove Lora from the group if she is still
there when Paulson is supposed to join.
2024-04-17 22:46:25 +02:00
athrxx
0997875399 KYRA: (LOK/Mac) - minor audio code cleanup 2024-04-08 17:56:43 +02:00
athrxx
c7d4c9d559 KYRA: (LOK/Mac) - minor audio code cleanup 2024-04-07 22:28:13 +02:00
sluicebox
98db6aa402 KYRA: Remove delete nullptr. PVS-Studio V575
`releaseShpArr` deletes the pointer and sets it to nullptr
2024-03-20 17:26:47 -07:00
Matthew Jimenez
5219c99400 GRAPHICS: Move PaletteManager definition to a separate header 2024-03-12 12:24:00 +02:00
athrxx
634d29fb01 KYRA: (LOL) - fix bug no. 14990
("Crash when going up in the Draracle's cave")
2024-02-29 21:29:44 +01:00
athrxx
ea81d7855a KYRA: (EOB) - fix clang and msvc warnings 2024-02-29 16:22:21 +01:00
athrxx
bf04727a30 KYRA: coverity fixes 2024-01-30 00:35:39 +01:00
Torbjörn Andersson
a1c8db3201 JANITORIAL: Clean up some whitespace and double semicolons 2024-01-29 19:32:00 +01:00
athrxx
b5fa1e3efd KYRA: (EOB) - improve spell anim performance
(for fireball, ice storm, lightning bolt, cone of cold, etc)

The current code seems to misbehave on platforms with
slow graphics updates (whether related to our backend,
to SDL or the actual graphics drivers or hardware). This
patch allows frame drops if necessary.
2024-01-03 20:26:32 +01:00
Le Philousophe
abfc953046 KYRA: Migrate engine to Path 2023-12-24 13:19:25 +01:00