mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2024-11-07 13:41:32 +00:00
70 lines
914 B
Mathematica
70 lines
914 B
Mathematica
|
|
||
|
#import "qedefs.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 free];
|
||
|
|
||
|
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 < maxElements;i++)
|
||
|
{
|
||
|
obj = [self objectAt: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 < maxElements;i++)
|
||
|
{
|
||
|
dict = [self objectAt:i];
|
||
|
d = [(Dict *)dict findKeyword:key];
|
||
|
if (d != NULL)
|
||
|
return dict;
|
||
|
}
|
||
|
return NULL;
|
||
|
}
|
||
|
|
||
|
@end
|