-
Notifications
You must be signed in to change notification settings - Fork 3
/
banksetsymbols.c
72 lines (63 loc) · 2.3 KB
/
banksetsymbols.c
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
68
69
70
71
72
// Provided under the GPL v2 license. See the included LICENSE.txt for details.
/*
banksetsymbols
Parses through banksetrom.symbol.txt. If it finds symbols regarding
inline character strings or map data, it appends them to the
7800basic_variable_redefs.h file.
*/
#define BUFSIZE 1000
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
void prerror (char *format, ...);
int main (int argc, char **argv)
{
FILE *in, *out;
fprintf (stderr, "starting bankset symbol transfer.\n");
in = fopen ("banksetrom.symbol.txt", "rb");
if (in == NULL)
prerror ("couldn't open banksetrom.symbol.txt for reading.");
out = fopen ("7800basic_variable_redefs.h", "a");
if (out == NULL)
prerror ("couldn't open 7800basic_variable_redefs.h for writing.");
char inbuffer[BUFSIZE];
char variable[BUFSIZE];
char value[BUFSIZE];
while (fgets (inbuffer, BUFSIZE, in) != NULL)
{
if (((strncmp (inbuffer, "alphadata", 9) == 0) && (inbuffer[9] >= '0')
&& (inbuffer[9] <= '9'))
|| (strncmp (inbuffer, "highscoredifficulty", 19) == 0)
|| (strncmp (inbuffer, "easylevelname", 13) == 0)
|| (strncmp (inbuffer, "mediumlevelname", 15) == 0)
|| (strncmp (inbuffer, "hardlevelname", 13) == 0)
|| (strncmp (inbuffer, "expertlevelname", 15) == 0)
|| (strncmp (inbuffer, "ranklabel_", 10) == 0)
|| (strncmp (inbuffer, "HSGAMENAMEtable", 15) == 0)
|| (strncmp (inbuffer, "HSHIGHSCOREStext", 16) == 0)
|| (strncmp (inbuffer, "player0label", 12) == 0)
|| (strncmp (inbuffer, "player1label", 12) == 0)
|| (strncmp (inbuffer, "player2label", 12) == 0)
|| (strncmp (inbuffer, "bset_", 5) == 0) || (strncmp (inbuffer, "highscorerank", 13) == 0))
{
sscanf (inbuffer, "%s %s", variable, value);
fprintf (out, "%s = $%s\n", variable, value);
}
}
fclose (in);
fclose (out);
fprintf (stderr, "bankset symbol transfer complete.\n");
return (0);
}
void prerror (char *format, ...)
{
char buffer[1024];
va_list args;
va_start (args, format);
vsnprintf (buffer, 1023, format, args);
fprintf (stderr, "bankset symbol transfer error: %s\n", buffer);
va_end (args);
exit (1);
}