Slaughterskeets don't spawn above forcefield/door in E1M1b in Linux build

Issue #263 resolved
Knightmare66 created an issue

On the current Linux 64-bit build, the ambush in e1m1b where the lasers destroy the bridge doesn’t spawn the two columns of slaughterskeets that fly out from the overhead doors. I tested this in both normal and hard difficulties. I still need to test the current 32-bit Linux build.

Looking in e1m1b.map, there are no standard monster_slaughterskeet spawns in the small attic-like area that opens, nor any target_monster_spawns. They are spawned via an AI script instead.

There are 12 trigger_scripts there that are called by a func_event_generator at different timings. The 10 script names for the missing slaughterskeets are “skeet1exit” thru “skeet5exit” and “skeet1path” thru “skeet5path“. There are also two trigger_scripts for the thunderskeet that spawns over the roof, calling scripts named “thunderspawn” and “thunderpath”. These also don’t appear to be working, as the thunderskeet (spawned via a target_monster_spawn) just stays in place instead of flying out over the platform where the player is.

I found all but one these scripts in pak1.pak->cin/aiscripts/e1m1b.sca. The “skeet1exit” thru “skeet5exit” scripts have commands to spawn skeets at specified coordinates. The “thunderspawn” script is missing, as it appears to have been replaced by the target_monster_spawn.

EDIT: I just tested the current 32-bit Linux build as well, and the same problem exists.

Also, I tested e1m3 and e1m4 where there are AI scripts that animate the workers to make them sit and type. etc. and those appear to be working OK.

Comments (9)

  1. Frank Sapone

    Sorry, I’ve been so busy with real life stuff I have had no time to look into this. However, this isn’t some weirdness of case sensitivity in *nix? Have you tested the FreeBSD build as well? If you really want me to look into this, I can but can’t guarantee when it will be resolved.

  2. Knightmare66 reporter

    I compared the script file to the trigger_scripts in the map, and it does appear to be case sensitivity. The script names in the trigger_scripts in question are all lowercase, while the scripts inside the e1m1b.sca file are mostly camel case.

    That doesn’t explain why these scripts work when starting e1m1b directly, and not when the player has transitioned from e1m1a. Maybe the autosave/transition is somehow causing case-sensitive string compares for script names when they should always be case-insensitive?

  3. Frank Sapone

    There was various memory corruption issues that have been fixed recently and I believe this is now resolved, but needs testing on your setup.

  4. Frank Sapone

    Behind the bars, at the bottom of the swamp, if you kill that froginator at (-1695, 1741, 852) it will break the script. For some reason, the func_event_trigger maps uniqueid skeetattack to this entity.

  5. Frank Sapone

    Per IRC conversation: I added info_aiscript entity to code. Grab and compile latest build from repo and copy e1m1b.ent to ‘Documents\My Games\Daikatana\data\maps’ (or the proper directory on linux) directory to test.

  6. Log in to comment