summaryrefslogtreecommitdiff
path: root/lib/core/gods.lua
blob: 77e0aad5c08881f23f8dc8b17e4bbdfd0a47d8c9 (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
39
40
-- Gods helper files

-- Gods structs

__gods_hook = {}
__gods_callbacks = {}
__gods_callbacks_max = 0

function add_god(q)
	local i, index, d, z, qq
	
	assert(q.name, "No god name")
	assert(q.desc, "No god desc")
	assert(q.hooks, "No god hooks")
	
	i = add_new_gods(q.name);

	z = 0
	for index, d in q.desc do
		desc_god(i, z, d);
		z = z + 1
	end

	__gods_hook[i] = q.hooks
	for index, d in q.hooks do
		add_hook_script(index, "__lua__gods_callback"..__gods_callbacks_max, "__lua__gods_callback"..__gods_callbacks_max)
		setglobal("__lua__gods_callback"..__gods_callbacks_max, d)
		__gods_callbacks_max = __gods_callbacks_max + 1
	end
	if q.data then
		for index, d in q.data do
			-- Besure it exists
			setglobal(index, d)

			-- Make it save & load
	     		add_loadsave(index, d)
		end
	end
	return i
end