Simplify flag code a bit

The world event stuff was a big power draw... knock that away except
when needed by slightly misusing the world event system
... also, flag changed 'old_value' was wrong, fixed that.