Example #1
0
	void Map::MakeNormalWall(Position* position, int wallID)
	{
		walls_[position->y_][position->x_][position->facing_] = wallID;
		passibility_[position->y_][position->x_][position->facing_] = false;
		
		Position positionAhead;
		positionAhead.Copy(position->GetPositionAheadOfThis(1));
		if (positionAhead.InBounds(0, 0, width_, height_))
		{
			int newFacing = (position->facing_ + 2) % 4;
			walls_[positionAhead.y_][positionAhead.x_][newFacing] = wallID;
			passibility_[positionAhead.y_][positionAhead.x_][newFacing] = false;
		}
		
		# if 0
		Position* positionAhead = position->GetPositionAheadOfThis(1);
		
		if (
			(positionAhead->x_ >= 0x0 && positionAhead->x_ < width_) &&
			(positionAhead->y_ >= 0x0 && positionAhead->y_ < height_))
		{
			int newFacing = (position->facing_ + 2) % 4;
			walls_[positionAhead->y_][positionAhead->x_][newFacing] = wallID;
			passibility_[positionAhead->y_][positionAhead->x_][newFacing] = false;
		}
		#endif
	}
Example #2
0
	void Map::RemoveWall(Position* position)
	{
		walls_[position->y_][position->x_][position->facing_] = 0;
		passibility_[position->y_][position->x_][position->facing_] = true;
		
		Position positionAhead;
		positionAhead.Copy(position->GetPositionAheadOfThis(1));
		if (positionAhead.InBounds(0, 0, width_, height_))
		{
			int newFacing = (position->facing_ + 2) % 4;
			walls_[positionAhead.y_][positionAhead.x_][newFacing] = 0;
			passibility_[positionAhead.y_][positionAhead.x_][newFacing] = true;
		}
	}