Window peep functions

This is not for merging yet. 

I've been playing about with the window.h file I think the variables from 0x480 for 0x0A (possibly more) are different depending on the window type. I've made a bunch of different structs for all there different uses and put a union in. What do you think on the layout its not the prettiest and I think the viewport_focus variables will need to be rethought out as at present it looks bad.