JassHelper Help

Structs with more index space

We got a struct X:

struct X integer a integer b endstruct

For some reason, the 8190 instances limit is not enough for us, we need 10000 instances ! so:

struct X[10000] integer a integer b endstruct

Not to be confused with an instance limit improvement, it is an improvement for index space, both terms are usually equivalent unless there are array members involved:

struct X[10000] integer a[2] integer b[5] endstruct

This struct got a maximum instance count of 2000.

You cannot specify index space enhancers on structs that extend other structs or interfaces.

struct X[10000] extends Y //bad integer a[2] integer b[5] endstruct interface A[20000] //good method a takes nothing returns nothing endinterface struct B extends A method a takes nothing returns nothing call BJDebugMsg("...") endmethod endstruct struct C[20000] //good integer x endstruct struct D extends C integer y endstruct

Notice that A, B, C and D got a limit of 20000 indexes.

It is a little different for array structs, since as you can see, you cannot use the [] storage size specifier and extends at the same time. Since 0.9.E.1, it is possible to use array structs with enhanced storage specifying the size after the array keyword:

struct aBigOne extends array [20000] integer a integer b integer c endstruct function meh takes nothing returns nothing set aBigOne[19990].a = 12 endfunction
Last modified: 16 October 2024