Could you remove the contents of the power_change proc with a more refined refactor:

```C++
..()
ispowered = !(stat & NOPOWER)
if(stat & NOPOWER)
    islocked = 0
    isopen = 0
    dump_everything()
update_icon()
```

Personally I would change it so that you cannot open/close the storage units if there is no power, instead of having it dump everything.