aboutsummaryrefslogtreecommitdiff
path: root/eng/inc/vtable.h
blob: 8811bcec30f16269d523d8f20f062050a2b384b4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#pragma once

struct Entity;

typedef struct Vtable Vtable;
struct Vtable {
	const char *name;
	const char *parent;
	unsigned long id;
	void (*init)(struct Entity *this);
	void (*deinit)(struct Entity *this);
	void (*update)(struct Entity *this);
	void (*draw)(struct Entity *this);
	Vtable *next;
};

extern Vtable *___vtables;
extern unsigned long ___vtable_i;

Vtable *vtable_get(const char *name);