quakeforge/tools/Forge/Bundles/MapEdit/DictList.m

71 lines
950 B
Mathematica
Raw Normal View History

#include "DictList.h"
#include "Dict.h"
@implementation DictList
//
// Read in variable # of objects from FILE *
//
- initListFromFile:(FILE *)fp
{
id d;
[super init];
do
{
d = [(Dict *)[Dict alloc] initFromFile:fp];
if (d != NULL)
[self addObject:d];
} while(d != NULL);
[d release];
return self;
}
//
// Write out list file
//
- writeListFile:(char *)filename
{
FILE *fp;
int i;
id obj;
fp = fopen(filename,"w+t");
if (fp == NULL)
return NULL;
fprintf(fp,"// Object List written by QuakeEd\n");
for (i = 0;i < [self count];i++)
{
obj = [self objectAtIndex:i];
[obj writeBlockTo:fp];
}
fclose(fp);
return self;
}
//
// Find the keyword in all the Dict objects
//
- (id) findDictKeyword:(char *)key
{
int i;
dict_t *d;
id dict;
for (i = 0;i < [self count];i++)
{
dict = [self objectAtIndex:i];
d = [(Dict *)dict findKeyword:key];
if (d != NULL)
return dict;
}
return NULL;
}
@end