Пример #1
0
void SayA( unsigned char attrib, register char *cp )
{
	unsigned char far *scptr = CurrentPos();
	unsigned char far *scend = ScrPtr( 80, 25 );

	while (*cp) {
		switch( *cp ) {
			case '\n':
				scptr = (unsigned char far *) ((long) scptr + (long) 160 );
			case '\r':
				scptr = (unsigned char far *)
					( ( ( (long) scptr - (long) VIDSEG ) /
						  (long) 160 ) * (long) 160 + (long) VIDSEG );
				cp++;
				break;
			case BELL:
				Beep();
				cp++;
				break;
			case TAB:
				scptr = (unsigned char far *) ( (long) scptr / 16 * 16 );
				cp++;
				break;
			default:
				*scptr++ = *cp++;
				*scptr++ = attrib;
				break;
		}
		if ( scptr > scend ) {
			ScrollUp( 1, 1, 80, 25, 1 );
			scptr -= 160;
		}
	}
	RestoreCurPos( scptr );
}
void RepCharAttr( int times, unsigned char attrib, unsigned char c )
{
	unsigned char far *scptr = CurrentPos();

	while ( times-- ) {
		*scptr++ = c;
		*scptr++ = attrib;
	}
}
Пример #3
0
void CDoor::ResetCollision()
{
	for (int i = 0; i < m_Length - 1; i++)
	{
		vec2 CurrentPos(m_Pos.x + (m_Direction.x * i),
				m_Pos.y + (m_Direction.y * i));
		if (GameServer()->Collision()->CheckPoint(CurrentPos)
				|| GameServer()->Collision()->GetTile(m_Pos.x, m_Pos.y)
				|| GameServer()->Collision()->GetFTile(m_Pos.x, m_Pos.y))
			break;
		else
			GameServer()->Collision()->SetDCollisionAt(
					m_Pos.x + (m_Direction.x * i),
					m_Pos.y + (m_Direction.y * i), TILE_STOPA, 0/*Flags*/,
					m_Number);
	}
}