/*
 * main.c
 *
 * This source herein may be modified and/or distributed by anybody who
 * so desires, with the following restrictions:
 *    1.)  No portion of this notice shall be removed.
 *    2.)  Credit shall not be taken for the creation of this source.
 *    3.)  This code is not to be traded, sold, or used for personal
 *         gain or profit.
 *
 */

#include "rogue.h"

extern short party_room;

int saved_uid= -1;
int true_uid= -1;

void turn_into_games()
{
	if(setuid(saved_uid)==-1)
	{
		perror("setuid(restore)");
		clean_up("");
	}
}

void turn_into_user()
{
	if(setuid(true_uid)==-1)
	{
		perror("setuid(restore)");
		clean_up("");
	}
}

main(argc, argv)
int argc;
char *argv[];
{
	/* Save the setuid we have got, then turn back into the player */
	saved_uid=geteuid();
	setuid(true_uid=getuid());

	if (init(argc, argv)) {		/* restored game */
		goto PL;
	}

	for (;;) {
		clear_level();
		make_level();
		put_objects();
		put_stairs();
		add_traps();
		put_mons();
		put_player(party_room);
		print_stats(STAT_ALL);
PL:		
		play_level();
		free_stuff(&level_objects);
		free_stuff(&level_monsters);
	}
}
