Files
ent_prop_test/main.cpp
T
Abdelrahman Said 2d99546572 Use printf macros
2026-06-03 06:48:38 +01:00

74 lines
1.7 KiB
C++

// vim:fileencoding=utf-8:foldmethod=marker
#include "entity_id.h"
#include "prop_table.hpp"
#include "wapp/wapp.h"
#include <inttypes.h>
#include <stdio.h>
struct Pos {
f32 x;
f32 y;
f32 z;
};
void print_positions(PropTable<Pos> *positions);
void print_index(PropTable<Pos> *positions);
void print_values(PropTable<Pos> *positions);
i32 main(void) {
Allocator arena = wapp_mem_arena_allocator_init(MiB(64));
EntityID id1 = {1};
EntityID id2 = {2};
EntityID id3 = {3};
EntityID id4 = {4};
EntityID id5 = {5};
PropTable<Pos> positions = {&arena, 8};
print_positions(&positions);
positions.add_prop(id3, Pos{1.0f, 2.0f, 3.0f});
print_positions(&positions);
positions.add_prop(id5, Pos{10.0f, 20.0f, 30.0f});
print_positions(&positions);
positions.add_prop(id1, Pos{100.0f, 200.0f, 300.0f});
print_positions(&positions);
positions.add_prop(id4, Pos{1000.0f, 2000.0f, 3000.0f});
print_positions(&positions);
positions.remove_prop(id5);
print_positions(&positions);
positions.add_prop(id2, Pos{10000.0f, 20000.0f, 30000.0f});
print_positions(&positions);
wapp_mem_arena_allocator_destroy(&arena);
return 0;
}
void print_positions(PropTable<Pos> *positions) {
print_index(positions);
print_values(positions);
}
void print_index(PropTable<Pos> *positions) {
printf("==========INDEX==========\n");
for (u64 i = 0; i < wapp_array_count(positions->index); ++i) {
printf("%" PRIu64 ": %d\n", i, positions->index[i]);
}
}
void print_values(PropTable<Pos> *positions) {
printf("==========VALUES==========\n");
for (u64 i = 0; i < wapp_array_count(positions->values); ++i) {
printf("%" PRIu64 ": (%f, %f, %f)\n", i, positions->values[i].x, positions->values[i].y, positions->values[i].z);
}
printf("\n");
}