#include #include #include "pke-at-settings.hpp" #include "pke-at.hpp" #include "pke/pk.h" struct PKEPluginInterface pke_at_plugin { .OnInit = pke_at_init, .OnTick = pke_at_tick, .OnTeardown = pke_at_teardown, .OnImGuiRender = nullptr, .PkeEntityInterface = nullptr, .PkeEntityInterfaceCount = 0, }; void signal_handler(int signal_num) { fprintf(stdout, "Received signal: %d - shutting down\n", signal_num); pkeSettings.isGameRunning = false; } int main(int argc, char *argv[]) { signal(SIGTERM, signal_handler); fprintf(stdout, "PKE_AT ENTERING\n"); { g_at.mem.bkt = pk_mem_bucket_create("pke-at main", PK_MEM_DEFAULT_BUCKET_SIZE, PK_MEMBUCKET_FLAG_NONE); g_at.mem.bkt_transient = pk_mem_bucket_create("pke-at transient", PK_MEM_DEFAULT_BUCKET_SIZE, PK_MEMBUCKET_FLAG_TRANSIENT); pk_mem_bucket_set_client_mem_bucket(g_at.mem.bkt); pk_arr_append_t(&LoadedPkePlugins, pke_at_plugin); } PkeArgs_Parse(argc, argv); Game_Main({}, argv[0]); pk_mem_bucket_destroy(g_at.mem.bkt_transient); pk_mem_bucket_destroy(g_at.mem.bkt); fprintf(stdout, "PKE_AT EXITING\n"); return 0; }