Changeset 222
- Timestamp:
- 03/16/08 15:06:02 (4 months ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
GtkRadiant/branches/ZeroRadiant/contrib/ufoai/ufoai_filters.cpp
r220 r222 11 11 void UFOAIFilterInit (void) 12 12 { 13 // texture name filters 13 14 filters[FILTER_ACTORCLIP] = FilterAdd(1, 0, "actorclip", 0); 14 15 filters[FILTER_WEAPONCLIP] = FilterAdd(1, 0, "weaponclip", 0); … … 16 17 filters[FILTER_STEPON] = FilterAdd(1, 0, "stepon", 0); 17 18 18 filters[FILTER_LEVEL1] = FilterAdd(2, UFOAI_CONTENTS_LEVEL_1, "level1", 0); 19 filters[FILTER_LEVEL2] = FilterAdd(2, UFOAI_CONTENTS_LEVEL_2, "level2", 0); 20 filters[FILTER_LEVEL3] = FilterAdd(2, UFOAI_CONTENTS_LEVEL_3, "level3", 0); 21 filters[FILTER_LEVEL4] = FilterAdd(2, UFOAI_CONTENTS_LEVEL_4, "level4", 0); 22 filters[FILTER_LEVEL5] = FilterAdd(2, UFOAI_CONTENTS_LEVEL_5, "level5", 0); 23 filters[FILTER_LEVEL6] = FilterAdd(2, UFOAI_CONTENTS_LEVEL_6, "level6", 0); 24 filters[FILTER_LEVEL7] = FilterAdd(2, UFOAI_CONTENTS_LEVEL_7, "level7", 0); 25 filters[FILTER_LEVEL8] = FilterAdd(2, UFOAI_CONTENTS_LEVEL_8, "level8", 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); 26 28 27 29 Sys_Printf("UFO:AI Filters initialized\n"); … … 37 39 if (filters[type]->active) { 38 40 filters[type]->active = false; 39 Sys_Printf("filter %i deactivated\n", type);41 //Sys_Printf("filter %i deactivated (mask %i 0x%x)\n", type, filters[type]->mask, filters[type]->mask); 40 42 } else { 41 43 filters[type]->active = true; 42 Sys_Printf("filter %i activated\n", type);44 //Sys_Printf("filter %i activated (mask %i 0x%x)\n", type, filters[type]->mask, filters[type]->mask); 43 45 } 44 46 GtkRadiant/branches/ZeroRadiant/include/qertypes.h
r183 r222 754 754 // 3=brush->owner->eclass->name 755 755 // 4=brush->owner->eclass->nShowFlags 756 // 5=brush->face->texdef.flags (q2) 757 // 6=brush->face->texdef.contents (q2) 756 758 int mask; 757 759 char *string; GtkRadiant/branches/ZeroRadiant/radiant/filters.cpp
r208 r222 35 35 // type 2 = QER_* shader flags 36 36 // type 4 = entity classes 37 // type 5 = surface flags (q2) 38 // type 6 = content flags (q2) 39 // type 7 = content flags - no match (q2) 37 40 bfilter_t *FilterAdd(bfilter_t *pFilter, int type, int bmask, char *str, int exclude) 38 41 { … … 41 44 pNew->attribute = type; 42 45 if (type == 1 || type == 3) pNew->string = str; 43 if (type == 2 || type == 4 ) pNew->mask = bmask;46 if (type == 2 || type == 4 || type == 5 || type == 6 || type == 7) pNew->mask = bmask; 44 47 if (g_qeglobals.d_savedinfo.exclude & exclude) 45 48 pNew->active = true; … … 165 168 filters = filters->next) 166 169 { 170 if (!filters->active) 171 continue; 167 172 // exclude by attribute 1 brush->face->pShader->getName() 168 if (filters->a ctive && filters->attribute == 1)173 if (filters->attribute == 1) 169 174 { 170 175 if (strstr(f->pShader->getName(),filters->string)) … … 175 180 } 176 181 // exclude by attribute 2 brush->face->pShader->getFlags() 177 else if (filters->active 178 && filters->attribute == 2) 182 else if (filters->attribute == 2) 179 183 { 180 184 if (f->pShader->getFlags() & filters->mask) 185 { 186 filterbrush=true; 187 break; 188 } 189 // quake2 - 5 == surface flags, 6 == content flags 190 } 191 else if (filters->attribute == 5) 192 { 193 if (f->texdef.flags && f->texdef.flags & filters->mask) 194 { 195 filterbrush=true; 196 break; 197 } 198 } 199 else if (filters->attribute == 6) 200 { 201 if (f->texdef.contents && f->texdef.contents & filters->mask) 202 { 203 filterbrush=true; 204 break; 205 } 206 } 207 else if (filters->attribute == 7) 208 { 209 if (f->texdef.contents && !(f->texdef.contents & filters->mask)) 181 210 { 182 211 filterbrush=true;
