Plan for increasing available tags
This plan is finished for the beelzebufo release. Yay!
Increasing the number of available tags would be easy, except that tags 1000+ are used for automatically allocated one-time-use tags.
- Move one-time-use tags to a separate memory buffer (done)
Make game store the highest available tag, defaulting to 999
- Update Plot:set tag and plot:check tag to handle tag numbers above the available limit differently, manipulating one-time-tags (done)
- Make new plotscripting commands to get/set one time use tags without using set tag or check tag (done)
- Add a bitset to enable tags higher than 999 (done)
- Increase the number of available NPC onetime use tags (done)
- This will require changes to how onetime use tags are tracked.
- gen(106-170) are bits that indicate whether or not a onetime tag is being used by an npc
- would it be easier to recalculate that information when custom loads a game by checking each NPC record? Would that be too slow? (yes it was and no it wasn't)
would it be easier to continue tracking which bits are used in a persistant cache, and just change how/where it is stored?(bad idea)
Maybe a new lump?
Game authors who already manipulate one-time-tags with "set tag(1000+n, value)" and "check tag(1000+n)" will not need to re-write their scripts unless they choose to increase the available tags in their game