GmudV33/
GmudV33/player/
GmudV33/public_html/
GmudV33/public_html/IMAGES/_VTI_CNF/
GmudV33/src_linux/Debug/
GmudV33/text/clans/
/*******************************************************************************
 *         _               | File Name:   taka.c
 *        / \      _-'     | Description: work by taka for Feltain
 *      _/|  \-''- _ /     |
 * __-' |          \       |
 *     /              \    |
 *     /       "o.  |o |   |
 *     |            \ ;    |
 *                   ',    |
 *        \_         __\   | (c) 2000-2001 TAKA & Fear_Phantom
 *          ''-_    \.//   | (c) 2000-2001 The GhostMud Project Team
 *            / '-____'    |
 *           /             | You may use this code under GNU license restriction
 *         _'  The Wolf    | 1) This header block remains in the code.
 *       _-'   strikes!    | 2) You email me at a_ghost_dancer@excite.com
 *_________________________|    letting me know you are using this code
 *                              please incluse your name, your mud name
 * All rights reserved          your mud address, your email and this file
 * GhostMud is copyrighted      name.
 * by TAKA (c) 2003          3) In your help files mention me where appropriate
 *                              IE: help snippets.
 *********************************************************************************/

#if defined(macintosh)
#include <types.h>
#else
#include <sys/types.h>
#include <sys/time.h>
#endif
#include <ctype.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
#include "merc.h"
#include "taka.h"
#include "interp.h"

/* Debug information 1108 */
extern char SHOW_RACE;  /* Show Debug Race Information */
extern char SHOW_AREA;	/* Show Debug Area Information */
extern char SHOW_AREAD;	/* Show Debug Area Details */
extern char SHOW_CLASS;	/* Show Debug Class Information */
extern char SHOW_CLAN;		/* Show Debug Clan Information */
extern char SHOW_CSAVES;	/* Show Debug Clan Saves */
extern char SHOW_CONFL;	/* Show Debug Configuration Load */

extern save_debug_info ();

/* Processes for: change log #001 */
int rotate_value (int In, int Factor)
{
	if (Factor < 0 || Factor > 3)
		return In;

	if ((In + Factor) > 3)
		return 0;
	else
		return (In + Factor);

	return In;
}

void read_area(AREA_DATA *pArea, int From, int To)
{
    EXIT_DATA *pexit, *pexithold[6];
	DESCRIPTOR_DATA *d;
	int VNum, door, DOOR;

	if(pArea->age >= BOAT_COUNT)
	{
		pArea->age = 0;
	
		for(VNum = From; VNum != To; VNum++)
		{
	
			ROOM_INDEX_DATA *pRoomIndex;

	        pRoomIndex = get_room_index (VNum);
		    if (pRoomIndex != NULL)
			{
				/* set all hold values to null */
				for (door = 0; door <= 5; door++)
				{	
					pexithold[door] = NULL;
				}

			    /* calculate rotation */
				for (door = 0; door <= 5; door++)
				{	
			        if ((pexit = pRoomIndex->exit[door]) != NULL
						&& pexit->u1.to_room != NULL)
					{
						DOOR = rotate_value(door, FLIP_25);
						pexithold[DOOR] = pRoomIndex->exit[door];
					}
				}

				/* rotate exits */
				for (door = 0; door <= 5; door++)
				{	
					pRoomIndex->exit[door] = pexithold[door];
				}
				
			}
		}

        for (d = descriptor_list; d; d = d->next) 
		{
		    CHAR_DATA *victim;

            if (d->connected == CON_PLAYING
				&& (victim = d->character) != NULL
                && victim->in_room->area == pArea) 
			{
				do_function(victim, &do_look, "auto" );
            }
        }

	}

	return;
}


/**********************************************************************************/
/* change log by Taka
 * #001 - allow rotation of rooms within an area by rotation factor
 *
 */

void do_showset(CHAR_DATA *ch, char *argument)
{
	char arg1[MSL];
	char arg2[MSL];

	if(!IS_IMMORTAL(ch))
		return;

	/*
	 * show debug type to change
	 */
	argument = one_argument(argument,arg1);

	if(arg1[0] == '\0')
	{
		send_to_char("{RYou select a debug type. Use list to see current settings!{x\n\r", ch);
		send_to_char("{WOptions are: SRACE, SAREA, SREAD, SCLAS, SCLAN, SCSAV, SCONF, LIST{x\n\r", ch);
		return;
	}


	/*
	 * do list here
	 */
	if (!str_prefix( arg1, "list"))
	{

		printf_to_char(ch, "(SRACE) - Show races as they are loaded        %c\n\r", SHOW_RACE);
		printf_to_char(ch, "(SAREA) - Show areas as they are loaded        %c\n\r", SHOW_AREA);
		printf_to_char(ch, "(SREAD) - Show area details as they are loaded %c\n\r", SHOW_AREAD);
		printf_to_char(ch, "(SCLAS) - Show classes as they are loaded      %c\n\r", SHOW_CLASS);
		printf_to_char(ch, "(SCLAN) - Show clans as they are loaded        %c\n\r", SHOW_CLAN);
		printf_to_char(ch, "(SCSAV) - Show clans as they are saved         %c\n\r", SHOW_CSAVES);
		printf_to_char(ch, "(SCONF) - Show config file as it is loaded     %c\n\r", SHOW_CONFL);
		return;

	}

	argument = one_argument2(argument,arg2);


	/*
	 * do sets here
	 */
	if (!str_prefix( arg1, "srace"))
	{
		if((arg2[0] == 'N' || arg2[0] == 'Y')
		  || (arg2[0] == 'n' || arg2[0] == 'y'))
		{
			SHOW_RACE = arg2[0];
			save_debug_info();
		}
		else
			send_to_char("{RInvalid use Y or N{x\n\r", ch);	
		return;

	}/* show race loads */

	if (!str_prefix( arg1, "sarea"))
	{
		if((arg2[0] == 'N' || arg2[0] == 'Y')
		  || (arg2[0] == 'n' || arg2[0] == 'y'))
		{
			SHOW_AREA = arg2[0];
			save_debug_info();
		}
		else
			send_to_char("{RInvalid use Y or N{x\n\r", ch);	
		return;

	}/* show areas load */

	if (!str_prefix( arg1, "sread"))
	{
		if((arg2[0] == 'N' || arg2[0] == 'Y')
		  || (arg2[0] == 'n' || arg2[0] == 'y'))
		{
			SHOW_AREAD = arg2[0];
			save_debug_info();
		}
		else
			send_to_char("{RInvalid use Y or N{x\n\r", ch);	
		return;

	}/* show area details loads */

	if (!str_prefix( arg1, "sclas"))
	{
		if((arg2[0] == 'N' || arg2[0] == 'Y')
		  || (arg2[0] == 'n' || arg2[0] == 'y'))
		{
			SHOW_CLASS = arg2[0];
			save_debug_info();
		}
		else
			send_to_char("{RInvalid use Y or N{x\n\r", ch);	
		return;

	}/* show class loads */

	if (!str_prefix( arg1, "sclan"))
	{
		if((arg2[0] == 'N' || arg2[0] == 'Y')
		  || (arg2[0] == 'n' || arg2[0] == 'y'))
		{
			SHOW_CLAN = arg2[0];
			save_debug_info();
		}
		else
			send_to_char("{RInvalid use Y or N{x\n\r", ch);	
		return;

	}/* show clan loads */

	if (!str_prefix( arg1, "scsav"))
	{
		if((arg2[0] == 'N' || arg2[0] == 'Y')
		  || (arg2[0] == 'n' || arg2[0] == 'y'))
		{
			SHOW_CSAVES = arg2[0];
			save_debug_info();
		}
		else
			send_to_char("{RInvalid use Y or N{x\n\r", ch);	
		return;

	}/* show clan saves */

	if (!str_prefix( arg1, "sconfl"))
	{
		if((arg2[0] == 'N' || arg2[0] == 'Y')
		  || (arg2[0] == 'n' || arg2[0] == 'y'))
		{
			SHOW_CONFL = arg2[0];
			save_debug_info();
		}
		else
			send_to_char("{RInvalid use Y or N{x\n\r", ch);	
		return;

	}/* show config file loads */

	send_to_char("{RThat is not an option use list to see valid values{x\n\r", ch);
	return;
}