3 #include "ufoai_filters.h"
6 #define FilterAdd g_FuncTable.m_pfnFilterAdd
7 #define FiltersActivate g_FuncTable.m_pfnFiltersActivate
9 static bfilter_t* filters[FILTER_MAX];
11 void UFOAIFilterInit (void)
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);
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);
29 Sys_Printf("UFO:AI Filters initialized\n");
32 void PerformFiltering (int type)
35 Sys_Printf("filters are not yet initialized\n");
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);
43 filters[type]->active = true;
44 //Sys_Printf("filter %i activated (mask %i 0x%x)\n", type, filters[type]->mask, filters[type]->mask);
50 void DoSteponFiltering(void)
52 PerformFiltering(FILTER_STEPON);
55 void DoWeaponClipFiltering(void)
57 PerformFiltering(FILTER_WEAPONCLIP);
60 void DoActorClipFiltering(void)
62 PerformFiltering(FILTER_ACTORCLIP);
65 void DoNoDrawFiltering(void)
67 PerformFiltering(FILTER_NODRAW);
70 void DoLevel1Filtering(void)
72 PerformFiltering(FILTER_LEVEL1);
75 void DoLevel2Filtering(void)
77 PerformFiltering(FILTER_LEVEL2);
80 void DoLevel3Filtering(void)
82 PerformFiltering(FILTER_LEVEL3);
85 void DoLevel4Filtering(void)
87 PerformFiltering(FILTER_LEVEL4);
90 void DoLevel5Filtering(void)
92 PerformFiltering(FILTER_LEVEL5);
95 void DoLevel6Filtering(void)
97 PerformFiltering(FILTER_LEVEL6);
100 void DoLevel7Filtering(void)
102 PerformFiltering(FILTER_LEVEL7);
105 void DoLevel8Filtering(void)
107 PerformFiltering(FILTER_LEVEL8);