bridge_cmd.c
branchcustombridgeheads
changeset 5612 5e103bb5236d
parent 5611 11da6bafbfb9
child 5613 8b68de175f44
equal deleted inserted replaced
5611:11da6bafbfb9 5612:5e103bb5236d
   983 }
   983 }
   984 
   984 
   985 uint32 VehicleEnter_Railway_Bridge(Vehicle *v, TileIndex tile, int x, int y)
   985 uint32 VehicleEnter_Railway_Bridge(Vehicle *v, TileIndex tile, int x, int y)
   986 {
   986 {
   987 	DiagDirection dir;
   987 	DiagDirection dir;
       
   988 	uint8 dxy;
   988 	assert(IsBridgeTile(v->tile));
   989 	assert(IsBridgeTile(v->tile));
   989 	dir = GetBridgeRampDirection(v->tile);
   990 	dir = GetBridgeRampDirection(v->tile);
   990 	v->u.rail.track = 0x40;
   991 	v->u.rail.track = 0x40;
   991 	v->direction = DiagDirToDir(dir);
   992 	v->direction = DiagDirToDir(dir);
   992 	CLRBIT(v->u.rail.flags, VRF_GOINGUP);
   993 	CLRBIT(v->u.rail.flags, VRF_GOINGUP);
   993 	CLRBIT(v->u.rail.flags, VRF_GOINGDOWN);
   994 	CLRBIT(v->u.rail.flags, VRF_GOINGDOWN);
       
   995 
       
   996 	switch (dir) {
       
   997 		default: NOT_REACHED();
       
   998 		case DIAGDIR_NE: dxy = 0xF8; break;
       
   999 		case DIAGDIR_SE: dxy = 0x80; break;
       
  1000 		case DIAGDIR_SW: dxy = 0x08; break;
       
  1001 		case DIAGDIR_NW: dxy = 0x8F; break;
       
  1002 	}
       
  1003 	SB(x, 0, 4, GB(dxy, 4, 4));
       
  1004 	SB(y, 0, 4, GB(dxy, 0, 4));
       
  1005 	v->x_pos = x;
       
  1006 	v->y_pos = y;
   994 	return 0;
  1007 	return 0;
   995 }
  1008 }
   996 
  1009 
   997 static uint32 VehicleEnter_Railway_BridgeRamp(Vehicle *v, TileIndex tile, int x, int y)
  1010 static uint32 VehicleEnter_Railway_BridgeRamp(Vehicle *v, TileIndex tile, int x, int y)
   998 {
  1011 {