forked from zrax/tworld
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathseries.h
67 lines (56 loc) · 2.4 KB
/
series.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
/* series.h: Functions for finding and reading the series files.
*
* Copyright (C) 2001-2006 by Brian Raiter, under the GNU General Public
* License. No warranty. See COPYING for details.
*/
#ifndef HEADER_series_h_
#define HEADER_series_h_
#include "defs.h"
/* The directory containing the series files.
*/
extern char *seriesdir;
/* The directory containing the configured data files.
*/
extern char *seriesdatdir;
/* Load all levels of the given series.
*/
extern int readseriesfile(gameseries *series);
/* Release all resources associated with a gameseries structure.
*/
extern void freeseriesdata(gameseries *series);
/* Produce a list all available data files. pserieslist receives the
* location of an array of gameseries structures, one per data file
* successfully found. pcount points to a value that is filled in with
* the number of the data files. table, if it is not NULL, is filled
* in with a tabular representation of the list of data files, showing
* the names of the files and which ruleset each uses, with the first
* row of the table containing column headres. preferredfile
* optionally provides the filename or pathname of a single data file.
* If the preferred data file is found, it will be the only one
* returned. FALSE is returned if no series files are found. An
* unrecoverable error will cause the function to abort the program.
*/
extern int createserieslist(char const *preferredfile, gameseries **pserieslist,
int *pcount, mapfileinfo **pmflist, int *pmfcount,
tablespec *table);
/* Make an independent copy of a single gameseries structure from
* a list obtained from createserieslist().
*/
extern void getseriesfromlist(gameseries *dest,
gameseries const *list, int index);
/* Free the memory used by the table created in createserieslist().
* The pointers can be NULL.
*/
extern void freeserieslist(gameseries *list, int count,
mapfileinfo *mflist, int mfcount,
tablespec *table);
/* A function for looking up a specific level in a series by number
* and/or password. If number is -1, only the password will be
* searched for; if passwd is NULL, only the number will be used. The
* function returns the index of the game in the series, or -1 if the
* data could not be matched, or if it matched more than one level
* (ugh).
*/
extern int findlevelinseries(gameseries const *series,
int number, char const *passwd);
#endif