-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathencounters.c
53 lines (42 loc) · 1.32 KB
/
encounters.c
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
41
42
43
44
45
46
47
48
49
50
51
52
53
#include "encounters.h"
#include <stdlib.h>
#include "enc_tree.h"
#include "enc_lightning.h"
#include "enc_goat.h"
#include "enc_core.h"
int encounter_list_len;
encounter_t **encounter_list;
static void add_encounter(encounter_t *encounter)
{
encounter_list = (encounter_t **) realloc(encounter_list, (encounter_list_len + 1) * sizeof(encounter_t*));
encounter_list[encounter_list_len++] = encounter;
}
static encounter_t *create_encounter()
{
encounter_t *encounter = (encounter_t *) malloc(sizeof(encounter_t));
encounter->choice_len = 0;
encounter->custom_scene_change[0] = 0;
encounter->custom_scene_change[1] = 0;
encounter->custom_scene_change[2] = 0;
encounter->custom_scene_change[3] = 0;
return encounter;
}
void encounters_init()
{
encounter_list = NULL;
encounter_list_len = 0;
add_encounter(encounter_create_tree(create_encounter()));
add_encounter(encounter_create_lightning(create_encounter()));
add_encounter(encounter_create_goat(create_encounter()));
add_encounter(encounter_create_core(create_encounter()));
}
encounter_t *get_random_encounter()
{
float r = ((float) rand()) / ((float) RAND_MAX);
int index = (int) (r * ((float) encounter_list_len));
if (index < encounter_list_len)
{
return encounter_list[index];
}
return NULL;
}