summaryrefslogtreecommitdiff
path: root/src/main.cpp
blob: d1e16cd09b5a0a6d8701ab88f247b88d06a97630 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38

#include <csignal>
#include <pke/pke.hpp>

#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");
	{
		pke_at_settings.mem.bkt           = pk_mem_bucket_create("pke-at main", PK_MEM_DEFAULT_BUCKET_SIZE, PK_MEMBUCKET_FLAG_NONE);
		pke_at_settings.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(pke_at_settings.mem.bkt);
		pk_arr_append_t(&LoadedPkePlugins, pke_at_plugin);
	}
	PkeArgs_Parse(argc, argv);
	Game_Main({}, argv[0]);
	pk_mem_bucket_destroy(pke_at_settings.mem.bkt_transient);
	pk_mem_bucket_destroy(pke_at_settings.mem.bkt);
	fprintf(stdout, "PKE_AT EXITING\n");
	return 0;
}