How to make IDA properly generate array offsets?

i used to think that way, but then i would get conflicting data layout that overlaps and impossible to work out

the thing is though is that v6 (or similar pre-calculated variables) would never be used to directly access anything. It always used as an offset to an address, that just happens to be an array