Separate names with a comma.
Discussion in 'General Modification' started by Sitra Achara, Oct 1, 2020.
Explained a few posts up
Got the RE combat grinder going at last!
Had a little interlude with the gemRB stuff, so it took longer than expected, but I'm sure it'll pay in the long run
I should now be able to make nightly runs with hundreds of combats, map transfers & item respawns each. Let's see how ToEE handles it And if that doesn't cause any crashes, then great! I can rule out at least the basic stuff being wonky...
Edit: now with basic spell casting too and going back to rest in the welcome wench. So far 0 crashes.
I've encountered 2 bugs related to the new option to enforce the tower shield penalty to attack rolls in the builds 3467, 3475 and 3476.
I was playing with Co8 8.1 new content and did the subsequent tests with all the above builds, and therefore the "stricter rules enforcement" option turned on.
The tower shield penalty is being applied correctly while wielding such a shield (Hero's shield).
But if a PC is encumbered and wielding a medium or a light shield, he incorrectly incurs the tower shield penalty too. The level of encumbrance doesn't seem to matter. This bug didn't occurr when I equipped some encumbered PCs with a buckler.
The second thing I noticed is with PCs having the weapon finesse feat. These now incur a malus to their attack roll equal to the Armor Check Penalty of the shield they're equipped with. Should they be encumbered, the incorrect tower shield malus stack with this one.
I attach a savegame as required by Sitra. The PCs in the save are encumbered and have shields in their inventory. One of them has the weapon finesse feat.
Thanks for the report! I will take a look at that one shortly.
Good news, I found a crash issue! Though it's probably a rare specific thing, i.e. not really what I was looking for.
The crash happens when a critter makes a ranged attack against another in the same tile. This creates a null projectile handle, and afterwards it tries to set its z coordinate, causing a crash.
If you're wondering how two creatures can occupy the same tile, it's because one of them was a kobold
Still, it's pretty cool that the testing infrastructure already found something!
Edit: it's actually a bit worse than that - when a projectile misses, the target location is randomly shifted by as much as one tile in each direction, so they don't actually have to be on the same tile (which is still hard to set up, unless it's two kobolds shooting each other maybe)
Autotester now includes
* Basic looting - cycles through corpses after combat, pressing loot all and switching party members when full. No selling yet
* Basic spell casting - single target offensive spells
* Instructions for going to the temple tower, quicksaving, then quickloading after the battle is over (5 times). That fight includes lots of prebuffs, spell casting and readied actions so it's a good test vector (which is perhaps why I've gotten multiple crash reports for it over the years).
Haven't had any crashes so far after fixing that one, but then again I've spent a lot of time getting the above not to get stuck Nevertheless it's encouraging that the game isn't that unstable.
Edit: ok cool, just got another crash while the witch tried to cast silence =D this is starting to really pay off!
Edit2: just got a third crash! This one looks like what I was looking for, the game trying to read data from a seemingly valid object handle yet failing to find its stored data array. Awesome!
Alright, solved that one. It was due to undisposed PySpell objects that were being generated and kept around after loading a save. This would happen if the spell python script threw an error.
In the test example it was the witch trying to cast animate dead without a valid target. For example, it would instantiate spell with ID =19. Then the autotester reloaded after combat was done (or party was dead), and when it tried to instantiate spell ID=19 it would retrieve the cached spell from before the reload, which contained invalid obj handles. That's one sneaky bug!
I think that was the big one, so cross your fingers
The one with silence is more situational I think, will look into it.
So if all goes well, i.e. a week goes by without any crashes, we can finally resume feature releases!
The bug with silence seems to be related to the AI "cast fireball" strategy.tab tactic. For some reason, it seems to try to tweak the fireball position to an extreme value sometimes (quite rare but I've had it happen again one time since the previous occurrence). Not sure what the root cause of that is though :/
The direct effect of that triggers a buffer overflow which overwrites the return address of the calling functions, and thus crash.
Now the funny thing is that it looks like I've encountered this buffer overflow crash before and issued a fix for it, but it was "off by 1" (capped to size 6 instead of 5). It should be ok now.
Another thing I ran into was a weird heap corruption issue in the animation system that seems to have been caused by selling stuff to Brother Smyth. Specifically, I somehow caused the game to move some sold items to his personal inventory rather than the hidden chest (substitute inventory, which is used for his "shop items"), and then further weirdness ensued.
As you might have guessed this was revealed after I added loot selling to the auto tester So while the previous two crashes may be taken care of, I'd like to iron this one out as well before releasing.
This is fascinating.
If you can organise loot selling, how about organising NPC loot selling?
"Hold on there, this person was here first..."
Where have I heard that before...