#include #include #include int main() { MtState *state = mt_initialize("Interface Test"); MtEntity *entity_1 = mt_summon(state); mt_tag_i64(entity_1, "some_tag", 3); mt_tag_i64(entity_1, "another_tag", 42); mt_tag_i64(entity_1, "listed_tag", 1337); MtEntity *entity_2 = mt_summon(state); mt_tag_i64(entity_2, "some_tag", 3); mt_tag_i64(entity_2, "another_tag", 42); MtEntity *entity_3 = mt_summon(state); mt_tag_i64(entity_3, "some_tag", 3); mt_tag_i64(entity_3, "another_tag", 42); mt_tag_i64(entity_3, "listed_tag", 236512); const char *tag_list[4] = { "some_tag", "another_tag", "listed_tag", NULL }; usz_t num_matching_entities = mt_query(state, tag_list, NULL, 0); printf("Number of matching entities: %ld\n", num_matching_entities); MtEntity *entities[8]; mt_query(state, tag_list, entities, 8); printf("Entity 1: %p\nEntity 2: %p\nEntity 3: %p\n", (void *) entity_1, (void *) entity_2, (void *) entity_3); usz_t entity_index = 0; while(entity_index < num_matching_entities) { printf("Entity-Pointer: %p\n", (void *) entities[entity_index]); ++entity_index; } mt_drop(entity_1); mt_drop(entity_2); mt_drop(entity_3); mt_cleanup(state); return 0; }