#include <stdlib.h>
#include <stdio.h>
#include "cartograph.h"
#include "utils.h"
#include "tokendb.h"
#include "parse.h"


void input_params(int argc, char *argv[], struct argrec *arg)
{
    char buf[100];

    if (argc > 1)
	strcpy(arg->mapfile, argv[1]);
    else {
	printf("Please enter the name of the drawing file:\n");
	gets(arg->mapfile);
    }
    if (argc > 2)
	arg->start_room = atol(argv[2]);
    else {
	printf("Please enter the virtual number of the first room:\n");
	scanf("%ld", &arg->start_room);
    }
    if (argc > 3)
	strcpy(buf, argv[3]);
    else {
	printf("Please enter the default room flag value:\n");
	scanf("%s", buf);
    }
    if ((arg->default_flags = decipher_flag_text(buf)) < 0) {
	error("Illegal default room flag\n");
	exit(1);
    }
}


void init(int argc, char *argv[], struct argrec *arg)
{

    init_tokendb(argv[0]);
    input_params(argc, argv, arg);
    init_map(arg->mapfile);
}


void shutdown()
{
/*    print_token_list();   */
    free_all_tokens();
}


int main(int argc, char *argv[])
{
    struct argrec arg;

    init(argc, argv, &arg);
    parse_map(arg.default_flags);
    save_map(arg.mapfile, arg.start_room);
    shutdown();
    return(0);
}