tunnelbridge_cmd.c
changeset 497 2d6d31173813
parent 473 0da86c59e3ae
child 507 8aa8100b0b22
equal deleted inserted replaced
496:9aad21a5654f 497:2d6d31173813
   934 	// Draw first piece
   934 	// Draw first piece
   935 	// (necessary for cantilever bridges)
   935 	// (necessary for cantilever bridges)
   936 	image = b[12 + (ti->map5&0x01)];
   936 	image = b[12 + (ti->map5&0x01)];
   937 	piece = _map2[ti->tile]&0xF;
   937 	piece = _map2[ti->tile]&0xF;
   938 	if (image != 0 && piece != 0) {
   938 	if (image != 0 && piece != 0) {
   939 		if (!(_display_opt & DO_TRANS_BUILDINGS)) image = (image & 0x3FFF) | 0x03224000;
   939 		if (_display_opt & DO_TRANS_BUILDINGS) image = (image & 0x3FFF) | 0x03224000;
   940 		DrawGroundSpriteAt(image, x, y, z);
   940 		DrawGroundSpriteAt(image, x, y, z);
   941 	}
   941 	}
   942 
   942 
   943 	image = b[(ti->map5&0x01)*6 + piece];
   943 	image = b[(ti->map5&0x01)*6 + piece];
   944 
   944 
   951 			{1,8,4,2,  11,16,9,0},
   951 			{1,8,4,2,  11,16,9,0},
   952 			{4,8,1,2,  16,11,0,9},
   952 			{4,8,1,2,  16,11,0,9},
   953 			{2,4,8,1,  11,16,9,0},
   953 			{2,4,8,1,  11,16,9,0},
   954 		};
   954 		};
   955 
   955 
   956 		if (!(_display_opt & DO_TRANS_BUILDINGS)) image = (image & 0x3FFF) | 0x03224000;
   956 		if (_display_opt & DO_TRANS_BUILDINGS) image = (image & 0x3FFF) | 0x03224000;
   957 
   957 
   958 		p = _tileh_bits[(image & 1) * 2 + (ti->map5&0x01)];
   958 		p = _tileh_bits[(image & 1) * 2 + (ti->map5&0x01)];
   959 		front_height = ti->z + ((ti->tileh & p[0])?8:0);
   959 		front_height = ti->z + ((ti->tileh & p[0])?8:0);
   960 		back_height = ti->z + ((ti->tileh & p[1])?8:0);
   960 		back_height = ti->z + ((ti->tileh & p[1])?8:0);
   961 		if (ti->tileh & 0x10) {
   961 		if (ti->tileh & 0x10) {
  1045 			} else {
  1045 			} else {
  1046 				DrawGroundSprite(0x11C6 + _tileh_to_sprite[ti->tileh]);
  1046 				DrawGroundSprite(0x11C6 + _tileh_to_sprite[ti->tileh]);
  1047 			}
  1047 			}
  1048 
  1048 
  1049 			// draw ramp
  1049 			// draw ramp
  1050 			if (!(_display_opt & DO_TRANS_BUILDINGS)) image = (image & 0x3FFF) | 0x03224000;
  1050 			if (_display_opt & DO_TRANS_BUILDINGS) image = (image & 0x3FFF) | 0x03224000;
  1051 			AddSortableSpriteToDraw(image, ti->x, ti->y, 16, 16, 7, ti->z);
  1051 			AddSortableSpriteToDraw(image, ti->x, ti->y, 16, 16, 7, ti->z);
  1052 		} else {
  1052 		} else {
  1053 			// bridge middle part.
  1053 			// bridge middle part.
  1054 			uint z;
  1054 			uint z;
  1055 			int x,y;
  1055 			int x,y;
  1092 
  1092 
  1093 			z = GetBridgeHeight(ti) + 5;
  1093 			z = GetBridgeHeight(ti) + 5;
  1094 
  1094 
  1095 			// draw rail
  1095 			// draw rail
  1096 			image = b[0];
  1096 			image = b[0];
  1097 			if (!(_display_opt & DO_TRANS_BUILDINGS)) image = (image & 0x3FFF) | 0x03224000;
  1097 			if (_display_opt & DO_TRANS_BUILDINGS) image = (image & 0x3FFF) | 0x03224000;
  1098 			AddSortableSpriteToDraw(image, ti->x, ti->y, (ti->map5&1)?11:16, (ti->map5&1)?16:11, 1, z);
  1098 			AddSortableSpriteToDraw(image, ti->x, ti->y, (ti->map5&1)?11:16, (ti->map5&1)?16:11, 1, z);
  1099 
  1099 
  1100 			x = ti->x;
  1100 			x = ti->x;
  1101 			y = ti->y;
  1101 			y = ti->y;
  1102 			image = b[1];
  1102 			image = b[1];
  1103 			if (!(_display_opt & DO_TRANS_BUILDINGS)) image = (image & 0x3FFF) | 0x03224000;
  1103 			if (_display_opt & DO_TRANS_BUILDINGS) image = (image & 0x3FFF) | 0x03224000;
  1104 
  1104 
  1105 			// draw roof
  1105 			// draw roof
  1106 			if (ti->map5&1) {
  1106 			if (ti->map5&1) {
  1107 				x += 12;
  1107 				x += 12;
  1108 				if (image&0x3FFF) AddSortableSpriteToDraw(image, x,y, 1, 16, 0x28, z);
  1108 				if (image&0x3FFF) AddSortableSpriteToDraw(image, x,y, 1, 16, 0x28, z);
  1113 
  1113 
  1114 			if (ti->z + 5 == z ) {
  1114 			if (ti->z + 5 == z ) {
  1115 				// draw poles below for small bridges
  1115 				// draw poles below for small bridges
  1116 				image = b[2];
  1116 				image = b[2];
  1117 				if (image) {
  1117 				if (image) {
  1118 					if (!(_display_opt & DO_TRANS_BUILDINGS)) image = (image & 0x3FFF) | 0x03224000;
  1118 					if (_display_opt & DO_TRANS_BUILDINGS) image = (image & 0x3FFF) | 0x03224000;
  1119 					DrawGroundSpriteAt(image, x, y, z);
  1119 					DrawGroundSpriteAt(image, x, y, z);
  1120 				}
  1120 				}
  1121 			} else if (_patches.bridge_pillars) {
  1121 			} else if (_patches.bridge_pillars) {
  1122 				// draw pillars below for high bridges
  1122 				// draw pillars below for high bridges
  1123 				DrawBridgePillars(ti, x, y, z);
  1123 				DrawBridgePillars(ti, x, y, z);