diff options
Diffstat (limited to 'src/tool/mapfrob.c')
-rw-r--r-- | src/tool/mapfrob.c | 129 |
1 files changed, 0 insertions, 129 deletions
diff --git a/src/tool/mapfrob.c b/src/tool/mapfrob.c deleted file mode 100644 index 9dc1a5b..0000000 --- a/src/tool/mapfrob.c +++ /dev/null @@ -1,129 +0,0 @@ -// Compile with -// gcc -m32 -I src/char -I src/common charfrob.c -o charfrob src/common/timer.o src/common/malloc.o src/common/socket.o src/common/lock.o src/common/db.o src/char/int_pet.o src/char/int_storage.o src/char/inter.o src/char/int_party.o src/char/int_guild.o - -#include <stdio.h> -#include <stdlib.h> -#include "../common/mmo.h" -// Yes, this is intentional -#include "../char/char.c" - -// Well, this is not terribly elegant, but I don't have that much time. -#define MAX_MAP 1024 -#define MAP_NAME_SIZE 32 -int maps_nr = 0; -struct -{ - char old[MAP_NAME_SIZE], new[MAP_NAME_SIZE]; -} maps[MAX_MAP]; - -void transform_point (struct point *p) -{ - int k; - - if (!p->map[0]) - return; - - for (k = 0; k < maps_nr; k++) - if (!strcmp (p->map, maps[k].old)) - { - strcpy (p->map, maps[k].new); - return; - } - - fprintf (stderr, "Warning: untranslated map `%s'\n", p->map); -} - -void transform_char (struct mmo_charstatus *p) -{ - int i; - - transform_point (&p->last_point); - transform_point (&p->save_point); - - for (i = 0; i < 10; i++) - transform_point (&p->memo_point[i]); -} - -int mmo_char_convert () -{ - char line[965536]; - int ret; - struct mmo_charstatus char_dat; - FILE *ifp, *ofp; - - ifp = stdin; - ofp = stdout; - while (fgets (line, 65535, ifp)) - { - memset (&char_dat, 0, sizeof (struct mmo_charstatus)); - ret = mmo_char_fromstr (line, &char_dat); - if (ret) - { - transform_char (&char_dat); - mmo_char_tostr (line, &char_dat); - fprintf (ofp, "%s\n", line); - } - } - return 0; -} - -#define PARSE_MODE_NEXTNUM 0 -#define PARSE_MODE_RANGE 1 - -int init (int count, char **translates) -{ - int i; - char *suffix = ".gat"; - - for (i = 0; i < count; i++) - { - char *src = translates[i]; - char *dest = strchr (src, ':'); - - if (!dest) - { - fprintf (stderr, "Missing colon in: `%s'\n", src); - return 1; - } - - *dest++ = 0; - - if (strlen (src) + strlen (suffix) >= MAP_NAME_SIZE) - { - fprintf (stderr, "Map name prefix too long: `%s'\n", src); - return 1; - } - - if (strlen (dest) + strlen (suffix) >= MAP_NAME_SIZE) - { - fprintf (stderr, "Map name prefix too long: `%s'\n", dest); - return 1; - } - - strncpy (maps[maps_nr].old, src, MAP_NAME_SIZE); - strcat (maps[maps_nr].old, suffix); - strncpy (maps[maps_nr].new, dest, MAP_NAME_SIZE); - strcat (maps[maps_nr].new, suffix); - - ++maps_nr; - } - - return 0; -} - -int main (int argc, char *argv[]) -{ - if (argc < 2) - { - printf ("Usage: %s oldmap0:newmap0 oldmap1:newmap1 ...\n", argv[0]); - printf ("e.g., %s new_1-1:001-2 new_2-1:001-1\n", argv[0]); - puts ("The extension `.gat' is appended implicitly."); - exit (0); - } - if (init (argc - 1, argv + 1)) - return 1; - - mmo_char_convert (); - - return 0; -} |