Commit Graph
3047 Commits
Author SHA1 Message Date
Anders Jenbo 2c9815c5e8 Infinit loop bug in catacombs
Halls will ignore upper left corners of room when entering from above. This can cause infinite loops and probably also invalid layouts. See seed 606 with no quests.
2022-09-15 17:46:44 +02:00
Robin Eklind aa2ab57539 items: add BUGFIX for SpawnItem, uninitialized use of onlygood 2022-08-06 00:57:25 +02:00
Anders Jenbo e60d490bc9 Document bug in DRLG_WillThemeRoomFit (#2277) 2022-08-04 22:49:01 +02:00
Anders Jenbo f06427a1eb drlg_l1 bugfix notes (#2276) 2022-08-04 22:47:51 +02:00
Robin b86b8fd7c4 msg: add BUGFIX for delta_kill_monster (#2261)
The monster direction is synced even if the receiving player is not
on the same dungeon level as the player killing the monster.

Note, this happens, even if one player is in town, and the other
kills a monster at e.g. dlvl=1. Then the code will check the
monster at index mi even for the player in town, so it will just
read garbage data from memory.
2022-05-14 02:40:18 +02:00
qndel ab9b61626f add hellfire rune dmg calc (#2270) 2022-05-14 02:39:40 +02:00
Robin Eklind bc0488382a missiles: add BUGFIX for SetMissAnim
A buffer overflow is triggered when casting Identify (or any other
spell which has mFileNum set to 255).
2022-05-09 02:43:55 +02:00
Robin f074a33cc1 objects: add BUGFIX for AddShrine (#2272) 2022-03-23 21:51:47 -05:00
DakkJaniels a44cb36af6 Fix mlSFX miSFX labeling
swapped labels to match structure definition
2022-02-21 01:46:23 +01:00
Robin a401471daf diablo: add BUGFIX for PressChar; out-of-bounds access to dungeon (#2266)
* diablo: add BUGFIX for PressChar; out-of-bounds access to dungeon

* diablo: update BUGFIX comment of PressChar, should be dPiece not dungeon

Pointed out by @galaxyhaxz in https://github.com/diasurgical/devilution/pull/2266#discussion_r786302976
2022-01-17 18:38:37 -06:00
Anders Jenbo 3fd926d544 BUGFIX: check for dObject OOB 2021-11-26 17:16:37 +01:00
qndel 3df3a81f50 golem addmonster bugfix 2021-11-26 17:16:13 +01:00
Robin Eklind 0db71a1975 monster: add BUGFIX for MAI_Fallen, invalid out-of-bounds check
The out-of-bounds check in MAI_Fallen checks whether the relative
offset coordinates (x, y) are out of bounds, rather than the
absoulte coordinate (xpos, ypos) which is used for array access
into dMonster.
2021-11-15 01:48:36 +01:00
qndel de6154094d fix class sounds 2021-10-25 18:13:42 +02:00
qndel 5c6b1693b4 OOB bugfix 2021-10-24 16:28:55 +02:00
Anders Jenbo 4c0a4317f0 Document causing of Scavenger leader getting stuck (#2256) 2021-10-16 08:25:15 +02:00
Robin Eklind 721460e375 missiles: add BUGFIX for PutMissile
Prior to this commit, if the player was standing on coodinate with
x=0 or y=0, no missile would be created when casting a spell. This
is due to an off-by-one when doing bounds-checking.
2021-09-01 19:46:47 +02:00
Robin Eklind 3626759011 gendung: update out-of-bounds BUGFIX comment of DRLG_WillThemeRoomFit 2021-09-01 19:43:40 +02:00
Robin Eklind 82133085fc themes: add BUGFIX for Theme_Treasure 2021-09-01 19:42:50 +02:00
Robin Eklind 045cb90dbf items: add BUGFIX for GetItemRecord when handling quest items
When spawing quest items (e.g. blood stone), no unique seed is set
for the item. Therefor two quest items may share the same seed, this
happens deterministically for the Valor quest, since three blood stones
are spawned, each with item seed 0x00000000.

For this reason, if two or more such quest items with identical seed are
looted within less than 6 seconds, the 2nd, 3rd, etc loot actions are
ignored.
2021-09-01 08:05:56 +02:00
Robin Eklind 56fefc89e9 objects: add BUGFIX for holy shrine
If the random number generator ends up giving X-Y coordinate pairs
that always are on bad tiles (e.g. solid, with object or with monster)
then after a total of MAXDUNX * MAXDUNY tries, it will still cast
phasing to teleport to the bad tile.
2021-08-26 01:55:17 +02:00
Robin Eklind 0c50c87cf5 items: add BUGFIX, item get records not reset when resetting items
The item get record array tracks items being recently looted in an
effort to prevent the same item from being looted more than once.
Prior to this commit, the item get record array (and corresponding
item get record array length) variables were not cleared when
creating a new game. Therefore, the item get record array of a
previous game could remain in between games and prevent an item
from being looted (if it was looted in a previous), even if it was
never looted in the current game. In practice this almost never
shows up, since each item get record is valid for a total of 6
seconds before being cleared. So, you would either have to save
a game, quickly loot an item, when load the game and try to loot
the same item before 6 seconds pass. OR, you could use the demo
replay functionality to run test cases, and speed up execution to
run e.g. 10'000'000 logic ticks per second. Both would exhibit the
bug and prevent the item from being looted.

ref: diasurgical/devilutionX#2691
2021-08-24 12:56:48 +02:00
qndel d76d58bcc2 fix wrong cleanup of farmer value (#2250) 2021-08-21 12:10:23 +02:00
qndel 1c9256d5d5 rename SetDead (#2249)
* rename SetDead

* rename in comparer
2021-08-21 03:04:37 -05:00
qndel 7bcea607bc golem bugfix 2021-08-19 01:34:33 +02:00
Robin da7ea7b593 items: add BUGFIX for PrintItemPower (#2241) 2021-08-04 18:45:40 -05:00
qndel d68181fd91 _pIEnAc bugfix 2021-08-05 00:01:47 +02:00
Robin Eklind 8f936de2c5 missiles: add BUGFIXes for MI_LArrow, MI_Arrow, MI_Lightctrl and MI_Weapexp
These bugs are related to time of access, where fields of e.g. a
player or monster struct is accessed upon missile impact (instead
of missile launch), and at this point, the monster may be dead, or
the player may have left the game, resulting in accessing garbage
data that may have been overwritten by other data (e.g. new monster
spawn or new player joining).

One way to resolve this issue is to store e.g. the damage in the
missile struct when lanuching the missing. This way, the missile
would have all information required to know its damage on imact
instead of having to rely on outside sources that may no longer
be present.
2021-08-04 20:48:06 +02:00
Robin Eklind 27df8f7aef monsters: add BUGFIXes for ProcessMonsters, PosOkMonst, PosOkMonst2, PosOkMonst3
Incorrect firewall check and time of access bug related to
monster enemy targets.
2021-08-04 16:11:49 +02:00
Robin Eklind 7d536834ce inv: add incorrect enum/off-by-one BUGFIX for UseInvItem 2021-08-04 16:08:10 +02:00
qndel 7263aa5f74 bugfix for loading/saving dLight 2021-08-04 12:03:31 +02:00
Robin Eklind b2e94e2d8a towners: add BUGFIX for Griswold custom towner order animation
Issue located by Andi and Anders if my memory serves me right.
2021-08-04 12:00:44 +02:00
qndel dfcaf3a032 code fix 2021-08-04 11:50:05 +02:00
Anders Jenbo 1b6196f39b Correct missile ring offset
Without this the
2021-08-04 11:47:36 +02:00
Robin Eklind b13c002c14 control: add BUGFIX for loop termination in DrawGoldSplit 2021-08-03 07:14:53 +02:00
Anders Jenbo e426c38adb Correct AddInitItems 2021-07-02 23:08:43 +02:00
Anders Jenbo d835d0d783 Correct hellfire/spawn Elemental spell levels 2021-06-06 00:31:31 +02:00
Anders Jenbo 35a766dcbb [hellfire] Correct bard animations 2021-05-07 21:01:39 +02:00
Anders Jenbo 48da58669d Golden elixir remains usable in new games (#2234) 2021-05-06 16:20:01 +02:00
Andi 2bf6eeb125 Merge pull request #2232 from mewpull/bugfix-MI_Apoca
missiles: add BUGFIX for MI_Apoca when handling golems
2021-04-26 15:26:52 -05:00
Robin Eklind 64ea9a5ec2 missiles: add BUGFIX for MI_Apoca when handling golems
Prior to this fix, the apocalypse spell would hit the golem of the
4th player (i.e. plr[3]), since dMonster stores monster number + 1.
2021-04-25 18:30:16 +02:00
Robin Eklind 4610915124 player: add BUGFIX for CheckNewPath
Without this BUGFIX, pathing towards and attacking a hostile
player with player index 0 (through 3) would trigger the speech
dialogue of a corresponding monster 0 (through 3), should they
have speeches activated. Given that the first 4 monster indices
are reserved for Golems, this BUG would trigger if a golem was
killed, and given the incorrect implementation of pseudo delete
of golems in DeleteMonsterList failing to reserve the golem
monster indices, and a new monster was spawned (e.g. by King
Leoric) thus taking a "golem" monster index. Given this scenario,
attacking a player could trigger a speech dialogue (well, that is
if the spawned monsters had speech dialogues activated).
2021-04-24 06:26:40 +02:00
qndel f1b85a5cd3 cleanup 2021-04-20 22:26:55 +02:00
qndel a178483382 codefix 2021-04-19 11:56:55 +02:00
qndel 8aecfc9f6f bugfix comment 2021-04-18 20:50:38 +02:00
qndel ade4d1fb64 codefix in resurrect 2021-04-18 20:50:13 +02:00
qndel ab0ef9b582 apply enums 2021-04-17 03:26:21 +02:00
qndel 3254ee7434 automap bugfix 2021-04-15 19:11:52 +02:00
Robin Eklind 9e489df41d monster: add BUGFIX for DeleteMonsterList
Golems should only be pseudo deleted, as their monster array
indices are special and should not appear in the available
monster index list.
2021-04-02 01:43:26 +02:00
Anders Jenbo 4419635fcc BUGFIX wrong itype in InitItems 2021-04-02 01:32:37 +02:00