TLDR: nothing to do with memory management in 469, but because of a modified FlagBase class. Link to one-liner mutator that fixes the issue at the end of the message.
I wanted to post an update to my earlier message because new information has since come to light. I've been operating according to the belief that all of the enhancements to the Unreal Tournament codebase (via the OldUnreal github project) were to the "native" binary files. I had no idea they were also updating the script files. As a result, I'd assumed
that some internal memory management change must have taken place which would account for the different flag behaviour that I was seeing with build 469, and which was opaque to the scripting side of things.
But it has nothing to do with memory management whatsoever
. It's because the FlagBase class has been modified with 469. A new "state" has been introduced to the class which automatically spawns a new flag if any of the slots in the
array are found to be "None" (it tests for this condition once per second).
I only discovered this by accident when working on an unrelated mod. Normally I browse a web hosted version of the - well, let's just call it the UT SDK for the sake of simplicity - but this hosted repository is extracted from version 436. I've been without internet access over almost all of the Christmas and New Year period, so I was forced to use the code browser in UnrealEd to look up class definitions, and by chance I'd recently installed 469 side-by-side with my normal 436 installation. It was while poking around in there I noticed the updated FlagBase class.
Happily, whoever implemented this change also added a new global variable in the CTFGame class called "bAutoRespawnFlags". If this is set to FALSE, then the FlagBase class will NOT try to spawn flags when it finds empty slots in the FlagList array (as previously explained, BTPlusPlus sets all of the values in this array to None to prevent the CTF game type from trying to draw its flag images in the HUD, which would otherwise interfere with BTPP's own HUD flag images).
So, the flag drop problem under 469 can be much more easily solved than I'd thought: you just need a 1 line mutator that sets bAutoRespawnFlags to FALSE. I'm attaching such a mutator to this message for BT server administrators to use if they are running 469 servers.