// Creates a new creature and places it in the maze
void Creature::CBIRTH(dodBYTE typ)
{
	int			u, maz_idx;
	RowCol		rndcell;
	dodBYTE		rw, cl;
	int			TCBindex;

	u = -1;
	do
	{
		++u;
	} while (CCBLND[u].P_CCUSE != 0);
	--CCBLND[u].P_CCUSE;

	CCBLND[u].creature_id = typ;
	CCBLND[u].P_CCPOW = CDBTAB[typ].P_CDPOW;
	CCBLND[u].P_CCMGO = CDBTAB[typ].P_CDMGO;
	CCBLND[u].P_CCMGD = CDBTAB[typ].P_CDMGD;
	CCBLND[u].P_CCPHO = CDBTAB[typ].P_CDPHO;
	CCBLND[u].P_CCPHD = CDBTAB[typ].P_CDPHD;
	CCBLND[u].P_CCTMV = CDBTAB[typ].P_CDTMV;
	CCBLND[u].P_CCTAT = CDBTAB[typ].P_CDTAT;

	do
	{
		do
		{
			cl = (rng.RANDOM() & 31);
			rw = (rng.RANDOM() & 31);
			//printf("          %02X, %02X = %02X\n", rw, cl, dungeon.MAZLND[dungeon.RC2IDX(rw, cl)]);
			rndcell.setRC(rw, cl);
			maz_idx = dungeon.RC2IDX(rw, cl);
		} while (dungeon.MAZLND[maz_idx] == 0xFF);
	} while (CFIND(rw, cl) == false);
	
	//printf("----- %02X: %02X, %02X -----\n", typ, rw, cl);
	CCBLND[u].P_CCROW = rw;
	CCBLND[u].P_CCCOL = cl;

	TCBindex = scheduler.GETTCB();
	scheduler.TCBLND[TCBindex].data = u;
	scheduler.TCBLND[TCBindex].type = Scheduler::TID_CRTMOVE;
	scheduler.TCBLND[TCBindex].frequency = CCBLND[u].P_CCTMV;
}