]> de.git.xonotic.org Git - xonotic/netradiant.git/blob - contrib/ufoai/ufoai_filters.cpp
merge branch work back into trunk
[xonotic/netradiant.git] / contrib / ufoai / ufoai_filters.cpp
1
2 #include "plugin.h"
3 #include "ufoai_filters.h"
4 #include "ifilters.h"
5
6 #define FilterAdd g_FuncTable.m_pfnFilterAdd
7 #define FiltersActivate g_FuncTable.m_pfnFiltersActivate
8
9 static bfilter_t* filters[FILTER_MAX];
10
11 void UFOAIFilterInit (void)
12 {
13         // texture name filters
14         filters[FILTER_ACTORCLIP] = FilterAdd(1, 0, "actorclip", 0);
15         filters[FILTER_WEAPONCLIP] = FilterAdd(1, 0, "weaponclip", 0);
16         filters[FILTER_NODRAW] = FilterAdd(1, 0, "nodraw", 0);
17         filters[FILTER_STEPON] = FilterAdd(1, 0, "stepon", 0);
18
19         // content flag filters
20         filters[FILTER_LEVEL1] = FilterAdd(7, UFOAI_CONTENTS_LEVEL_1, "level1", 0);
21         filters[FILTER_LEVEL2] = FilterAdd(7, UFOAI_CONTENTS_LEVEL_2, "level2", 0);
22         filters[FILTER_LEVEL3] = FilterAdd(7, UFOAI_CONTENTS_LEVEL_3, "level3", 0);
23         filters[FILTER_LEVEL4] = FilterAdd(7, UFOAI_CONTENTS_LEVEL_4, "level4", 0);
24         filters[FILTER_LEVEL5] = FilterAdd(7, UFOAI_CONTENTS_LEVEL_5, "level5", 0);
25         filters[FILTER_LEVEL6] = FilterAdd(7, UFOAI_CONTENTS_LEVEL_6, "level6", 0);
26         filters[FILTER_LEVEL7] = FilterAdd(7, UFOAI_CONTENTS_LEVEL_7, "level7", 0);
27         filters[FILTER_LEVEL8] = FilterAdd(7, UFOAI_CONTENTS_LEVEL_8, "level8", 0);
28
29         Sys_Printf("UFO:AI Filters initialized\n");
30 }
31
32 void PerformFiltering (int type)
33 {
34         if (!filters[type]) {
35                 Sys_Printf("filters are not yet initialized\n");
36                 return;
37         }
38
39         if (filters[type]->active) {
40                 filters[type]->active = false;
41                 //Sys_Printf("filter %i deactivated (mask %i 0x%x)\n", type, filters[type]->mask, filters[type]->mask);
42         } else {
43                 filters[type]->active = true;
44                 //Sys_Printf("filter %i activated (mask %i 0x%x)\n", type, filters[type]->mask, filters[type]->mask);
45         }
46
47         FiltersActivate();
48 }
49
50 void DoSteponFiltering(void)
51 {
52         PerformFiltering(FILTER_STEPON);
53 }
54
55 void DoWeaponClipFiltering(void)
56 {
57         PerformFiltering(FILTER_WEAPONCLIP);
58 }
59
60 void DoActorClipFiltering(void)
61 {
62         PerformFiltering(FILTER_ACTORCLIP);
63 }
64
65 void DoNoDrawFiltering(void)
66 {
67         PerformFiltering(FILTER_NODRAW);
68 }
69
70 void DoLevel1Filtering(void)
71 {
72         PerformFiltering(FILTER_LEVEL1);
73 }
74
75 void DoLevel2Filtering(void)
76 {
77         PerformFiltering(FILTER_LEVEL2);
78 }
79
80 void DoLevel3Filtering(void)
81 {
82         PerformFiltering(FILTER_LEVEL3);
83 }
84
85 void DoLevel4Filtering(void)
86 {
87         PerformFiltering(FILTER_LEVEL4);
88 }
89
90 void DoLevel5Filtering(void)
91 {
92         PerformFiltering(FILTER_LEVEL5);
93 }
94
95 void DoLevel6Filtering(void)
96 {
97         PerformFiltering(FILTER_LEVEL6);
98 }
99
100 void DoLevel7Filtering(void)
101 {
102         PerformFiltering(FILTER_LEVEL7);
103 }
104
105 void DoLevel8Filtering(void)
106 {
107         PerformFiltering(FILTER_LEVEL8);
108 }