package secs @(private) RemoveComponents1 :: proc(world: ^World, entity: Entity, $C: typeid) { RemoveComponent(world, entity, C) } @(private) RemoveComponents2 :: proc(world: ^World, entity: Entity, $C1: typeid, $C2: typeid) { RemoveComponents1(world, entity, C1) RemoveComponent(world, entity, C2) } @(private) RemoveComponents3 :: proc(world: ^World, entity: Entity, $C1: typeid, $C2: typeid, $C3: typeid) { RemoveComponents2(world, entity, C1, C2) RemoveComponent(world, entity, C3) } @(private) RemoveComponents4 :: proc( world: ^World, entity: Entity, $C1: typeid, $C2: typeid, $C3: typeid, $C4: typeid, ) { RemoveComponents3(world, entity, C1, C2, C3) RemoveComponent(world, entity, C4) } @(private) RemoveComponents5 :: proc( world: ^World, entity: Entity, $C1: typeid, $C2: typeid, $C3: typeid, $C4: typeid, $C5: typeid, ) { RemoveComponents4(world, entity, C1, C2, C3, C4) RemoveComponent(world, entity, C5) } @(private) RemoveComponents6 :: proc( world: ^World, entity: Entity, $C1: typeid, $C2: typeid, $C3: typeid, $C4: typeid, $C5: typeid, $C6: typeid, ) { RemoveComponents5(world, entity, C1, C2, C3, C4, C5) RemoveComponent(world, entity, C6) } @(private) RemoveComponents7 :: proc( world: ^World, entity: Entity, $C1: typeid, $C2: typeid, $C3: typeid, $C4: typeid, $C5: typeid, $C6: typeid, $C7: typeid, ) { RemoveComponents6(world, entity, C1, C2, C3, C4, C5, C6) RemoveComponent(world, entity, C7) } @(private) RemoveComponents8 :: proc( world: ^World, entity: Entity, $C1: typeid, $C2: typeid, $C3: typeid, $C4: typeid, $C5: typeid, $C6: typeid, $C7: typeid, $C8: typeid, ) { RemoveComponents7(world, entity, C1, C2, C3, C4, C5, C6, C7) RemoveComponent(world, entity, C8) } @(private) RemoveComponents9 :: proc( world: ^World, entity: Entity, $C1: typeid, $C2: typeid, $C3: typeid, $C4: typeid, $C5: typeid, $C6: typeid, $C7: typeid, $C8: typeid, $C9: typeid, ) { RemoveComponents8(world, entity, C1, C2, C3, C4, C5, C6, C7, C8) RemoveComponent(world, entity, C9) } @(private) RemoveComponents10 :: proc( world: ^World, entity: Entity, $C1: typeid, $C2: typeid, $C3: typeid, $C4: typeid, $C5: typeid, $C6: typeid, $C7: typeid, $C8: typeid, $C9: typeid, $C10: typeid, ) { RemoveComponents9(world, entity, C1, C2, C3, C4, C5, C6, C7, C8, C9) RemoveComponent(world, entity, C10) } RemoveComponents :: proc { RemoveComponents1, RemoveComponents2, RemoveComponents3, RemoveComponents4, RemoveComponents5, RemoveComponents6, RemoveComponents7, RemoveComponents8, RemoveComponents9, RemoveComponents10, }