package secs @(private) AddComponents1 :: proc(world: ^World, entity: Entity, component: $C) { AddComponent(world, entity, component) } @(private) AddComponents2 :: proc(world: ^World, entity: Entity, c1: $C1, c2: $C2) { AddComponents1(world, entity, c1) AddComponent(world, entity, c2) } @(private) AddComponents3 :: proc(world: ^World, entity: Entity, c1: $C1, c2: $C2, c3: $C3) { AddComponents2(world, entity, c1, c2) AddComponent(world, entity, c3) } @(private) AddComponents4 :: proc(world: ^World, entity: Entity, c1: $C1, c2: $C2, c3: $C3, c4: $C4) { AddComponents3(world, entity, c1, c2, c3) AddComponent(world, entity, c4) } @(private) AddComponents5 :: proc( world: ^World, entity: Entity, c1: $C1, c2: $C2, c3: $C3, c4: $C4, c5: $C5, ) { AddComponents4(world, entity, c1, c2, c3, c4) AddComponent(world, entity, c5) } @(private) AddComponents6 :: proc( world: ^World, entity: Entity, c1: $C1, c2: $C2, c3: $C3, c4: $C4, c5: $C5, c6: $C6, ) { AddComponents5(world, entity, c1, c2, c3, c4, c5) AddComponent(world, entity, c6) } @(private) AddComponents7 :: proc( world: ^World, entity: Entity, c1: $C1, c2: $C2, c3: $C3, c4: $C4, c5: $C5, c6: $C6, c7: $C7, ) { AddComponents6(world, entity, c1, c2, c3, c4, c5, c6) AddComponent(world, entity, c7) } @(private) AddComponents8 :: proc( world: ^World, entity: Entity, c1: $C1, c2: $C2, c3: $C3, c4: $C4, c5: $C5, c6: $C6, c7: $C7, c8: $C8, ) { AddComponents7(world, entity, c1, c2, c3, c4, c5, c6, c7) AddComponent(world, entity, c8) } @(private) AddComponents9 :: proc( world: ^World, entity: Entity, c1: $C1, c2: $C2, c3: $C3, c4: $C4, c5: $C5, c6: $C6, c7: $C7, c8: $C8, c9: $C9, ) { AddComponents8(world, entity, c1, c2, c3, c4, c5, c6, c7, c8) AddComponent(world, entity, c9) } @(private) AddComponents10 :: proc( world: ^World, entity: Entity, c1: $C1, c2: $C2, c3: $C3, c4: $C4, c5: $C5, c6: $C6, c7: $C7, c8: $C8, c9: $C9, c10: $C10, ) { AddComponents9(world, entity, c1, c2, c3, c4, c5, c6, c7, c8, c9) AddComponent(world, entity, c10) } AddComponents :: proc { AddComponents1, AddComponents2, AddComponents3, AddComponents4, AddComponents5, AddComponents6, AddComponents7, AddComponents8, AddComponents9, AddComponents10, }