//
// AIRPORT.C - Source Code Module
//
// (c)Copyright 1995-1998 Steve Eschweiler. All Rights Reserved.
//

#include "fly.h"
#include "tmr_snd.h"

extern void Draw_Hanger(long LTROoffset_x, long LTROoffset_y, long LTROoffset_z, long LTOoffset_x, long LTOoffset_z);
extern void Draw_Hanger_Entrance(long LTOoffset_x, long LTOoffset_z);
extern void Draw_Hanger_45_Degrees(long LTROoffset_x, long LTROoffset_y, long LTROoffset_z);
extern void Draw_Hanger_Entrance_45_Degrees(void);
extern void Draw_Control_Tower(long LTROoffset_x, long LTROoffset_y, long LTROoffset_z, long LTOoffset_x, long LTOoffset_z);
extern void Draw_Building_A(long LTROoffset_x, long LTROoffset_y, long LTROoffset_z, long LTOoffset_x, long LTOoffset_z);

void
Draw_Airport(void)
{
    int reg_count;

    /* Point #1: 0, 0, -2560 */
    LTR[0] = LTRGoffset_x - LRx[68] - LRx[62];
    LTR[1] = LTRGoffset_y - LRy[68] - LRy[62];
    LTR[2] = LTRGoffset_z - LRz[68] - LRz[62];

    /* Point #2: -192, 0, -2496 */
    LTR[3] = LTR[0] - LRx[54] + LRx[53] - LRx[51];
    LTR[4] = LTR[1] - LRy[54] + LRy[53] - LRy[51];
    LTR[5] = LTR[2] - LRz[54] + LRz[53] - LRz[51];

    /* Point #3: -1536, 0, -2496 */
    LTR[6] = LTR[3] - LRx[63] - LRx[57] - LRx[51];
    LTR[7] = LTR[4] - LRy[63] - LRy[57] - LRy[51];
    LTR[8] = LTR[5] - LRz[63] - LRz[57] - LRz[51];

    /* Point #4: -1536, 0, -2560 */
    LTR[9] = LTR[6] - LRx[53];
    LTR[10] = LTR[7] - LRy[53];
    LTR[11] = LTR[8] - LRz[53];

    /* Point #5: -1792, 0, -2304 */
    LTR[12] = LTR[9] + LRx[59] - LRx[57];
    LTR[13] = LTR[10] + LRy[59] - LRy[57];
    LTR[14] = LTR[11] + LRz[59] - LRz[57];

    /* Point #6: -1728, 0, -2304 */
    LTR[15] = LTR[12] + LRx[51];
    LTR[16] = LTR[13] + LRy[51];
    LTR[17] = LTR[14] + LRz[51];

    /* Point #7: -1728, 0, -768 */
    LTR[18] = LTR[15] + LRx[65] + LRx[62];
    LTR[19] = LTR[16] + LRy[65] + LRy[62];
    LTR[20] = LTR[17] + LRz[65] + LRz[62];

    /* Point #8: -1792, 0, -768 */
    LTR[21] = LTR[18] - LRx[51];
    LTR[22] = LTR[19] - LRy[51];
    LTR[23] = LTR[20] - LRz[51];

    /* Point #9: -1024, 0, 0 */
    LTR[24] = LTRGoffset_x - LRx[63];
    LTR[25] = LTRGoffset_y - LRy[63];
    LTR[26] = LTRGoffset_z - LRz[63];

    /* Point #10: -960, 0, 0 */
    LTR[27] = LTR[24] + LRx[51];
    LTR[28] = LTR[25] + LRy[51];
    LTR[29] = LTR[26] + LRz[51];

    /* Point #11: -960, 0, 2304 */
    LTR[30] = LTR[27] + LRx[68] + LRx[59];
    LTR[31] = LTR[28] + LRy[68] + LRy[59];
    LTR[32] = LTR[29] + LRz[68] + LRz[59];

    /* Point #12: -1024, 0, 2304 */
    LTR[33] = LTR[30] - LRx[51];
    LTR[34] = LTR[31] - LRy[51];
    LTR[35] = LTR[32] - LRz[51];

    /* Point #13: -768, 0, 2560 */
    LTR[36] = LTR[33] + LRx[59] + LRx[57];
    LTR[37] = LTR[34] + LRy[59] + LRy[57];
    LTR[38] = LTR[35] + LRz[59] + LRz[57];

    /* Point #14: -768, 0, 2496 */
    LTR[39] = LTR[36] - LRx[53];
    LTR[40] = LTR[37] - LRy[53];
    LTR[41] = LTR[38] - LRz[53];

    /* Point #15: -192, 0, 2496 */
    LTR[42] = LTR[39] + LRx[60] + LRx[51];
    LTR[43] = LTR[40] + LRy[60] + LRy[51];
    LTR[44] = LTR[41] + LRz[60] + LRz[51];

    /* Point #16: 0, 0, 2560 */
    LTR[45] = LTRGoffset_x + LRx[68] + LRx[62];
    LTR[46] = LTRGoffset_y + LRy[68] + LRy[62];
    LTR[47] = LTRGoffset_z + LRz[68] + LRz[62];

    /* Point #17: -64, 0, 2560 */
    LTR[48] = LTR[45] - LRx[51];
    LTR[49] = LTR[46] - LRy[51];
    LTR[50] = LTR[47] - LRz[51];

    /* Point #18: 448, 0, 2048 */
    LTR[51] = LTR[48] - LRx[62] + LRx[60];
    LTR[52] = LTR[49] - LRy[62] + LRy[60];
    LTR[53] = LTR[50] - LRz[62] + LRz[60];

    /* Point #19: 512, 0, 2048 */
    LTR[54] = LTR[51] + LRx[51];
    LTR[55] = LTR[52] + LRy[51];
    LTR[56] = LTR[53] + LRz[51];

    /* Point #20: 512, 0, -256 */
    LTR[57] = LTRGoffset_x + LRx[60] - LRx[59];
    LTR[58] = LTRGoffset_y + LRy[60] - LRy[59];
    LTR[59] = LTRGoffset_z + LRz[60] - LRz[59];

    /* Point #21: 448, 0, -192 */
    LTR[60] = LTR[57] + LRx[53] - LRx[51];
    LTR[61] = LTR[58] + LRy[53] - LRy[51];
    LTR[62] = LTR[59] + LRz[53] - LRz[51];

    /* Point #22: -64, 0, -192 */
    LTR[63] = LTR[60] - LRx[60];
    LTR[64] = LTR[61] - LRy[60];
    LTR[65] = LTR[62] - LRz[60];

    /* Point #23: -64, 0, -256 */
    LTR[66] = LTR[63] - LRx[53];
    LTR[67] = LTR[64] - LRy[53];
    LTR[68] = LTR[65] - LRz[53];

    /* Point #24: -1792, 0, -1536 */
    LTR[69] = LTRGoffset_x - LRx[65] - LRx[63] - LRx[62] - LRx[60] - LRx[57];
    LTR[70] = LTRGoffset_y - LRy[65] - LRy[63] - LRy[62] - LRy[60] - LRy[57];
    LTR[71] = LTRGoffset_z - LRz[65] - LRz[63] - LRz[62] - LRz[60] - LRz[57];

    /* Point #25: -1792, 0, -1472 */
    LTR[72] = LTR[69] + LRx[53];
    LTR[73] = LTR[70] + LRy[53];
    LTR[74] = LTR[71] + LRz[53];

    /* Point #26: -128, 0, -1472 */
    LTR[75] = LTR[72] + LRx[63] + LRx[60] + LRx[54];
    LTR[76] = LTR[73] + LRy[63] + LRy[60] + LRy[54];
    LTR[77] = LTR[74] + LRz[63] + LRz[60] + LRz[54];

    /* Point #27: -128, 0, -1536 */
    LTR[78] = LTR[75] - LRx[53];
    LTR[79] = LTR[76] - LRy[53];
    LTR[80] = LTR[77] - LRz[53];

    /* Point #28: -1024, 0, 64 */
    LTR[81] = LTRGoffset_x - LRx[63] + LRx[53];
    LTR[82] = LTRGoffset_y - LRy[63] + LRy[53];
    LTR[83] = LTRGoffset_z - LRz[63] + LRz[53];

    /* Point #29: 0, 0, 64 */
    LTR[84] = LTRGoffset_x + LRx[53];
    LTR[85] = LTRGoffset_y + LRy[53];
    LTR[86] = LTRGoffset_z + LRz[53];

    /* Point #30: 0, 0, 0 */
    LTR[87] = LTRGoffset_x;
    LTR[88] = LTRGoffset_y;
    LTR[89] = LTRGoffset_z;

    /* Point #31: 512, 0, -192 */
    LTR[90] = LTRGoffset_x + LRx[60] - LRx[56] - LRx[53];
    LTR[91] = LTRGoffset_y + LRy[60] - LRy[56] - LRy[53];
    LTR[92] = LTRGoffset_z + LRz[60] - LRz[56] - LRz[53];

    /* Point #32: 1280, 0, -960 */
    LTR[93] = LTR[90] - LRx[62] + LRx[60] - LRx[59] + LRx[57];
    LTR[94] = LTR[91] - LRy[62] + LRy[60] - LRy[59] + LRy[57];
    LTR[95] = LTR[92] - LRz[62] + LRz[60] - LRz[59] + LRz[57];

    /* Point #33: 1536, 0, -768 */
    LTR[96] = LTR[93] + LRx[57] + LRx[56] + LRx[53];
    LTR[97] = LTR[94] + LRy[57] + LRy[56] + LRy[53];
    LTR[98] = LTR[95] + LRz[57] + LRz[56] + LRz[53];

    /* Point #34: 1792, 0, -768 */
    LTR[99] = LTR[96] + LRx[57];
    LTR[100] = LTR[97] + LRy[57];
    LTR[101] = LTR[98] + LRz[57];

    /* Point #35: 1792, 0, -1280 */
    LTR[102] = LTR[99] - LRx[62];
    LTR[103] = LTR[100] - LRy[62];
    LTR[104] = LTR[101] - LRz[62];

    /* Point #36: 1280, 0, -1280 */
    LTR[105] = LTR[102] - LRx[60];
    LTR[106] = LTR[103] - LRy[60];
    LTR[107] = LTR[104] - LRz[60];

    /* Point #37: 1280, 0, -1024 */
    LTR[108] = LTR[105] + LRx[59];
    LTR[109] = LTR[106] + LRy[59];
    LTR[110] = LTR[107] + LRz[59];

    /* Point #38: 1536, 0, -1024 */
    LTR[111] = LTR[108] + LRx[57];
    LTR[112] = LTR[109] + LRy[57];
    LTR[113] = LTR[110] + LRz[57];

    /* Point #39: 1344, 0, -1024 */
    LTR[114] = LTR[111] - LRx[54] - LRx[51];
    LTR[115] = LTR[112] - LRy[54] - LRy[51];
    LTR[116] = LTR[113] - LRz[54] - LRz[51];

    /* Point #40: 1536, 0, -832 */
    LTR[117] = LTR[114] + LRx[56] + LRx[54] + LRx[53] + LRx[51];
    LTR[118] = LTR[115] + LRy[56] + LRy[54] + LRy[53] + LRy[51];
    LTR[119] = LTR[116] + LRz[56] + LRz[54] + LRz[53] + LRz[51];

    /* Point #41: 1792, 0, -832 */
    LTR[120] = LTR[117] + LRx[57];
    LTR[121] = LTR[118] + LRy[57];
    LTR[122] = LTR[119] + LRz[57];

    /* Point #42: 4096, 0, -32 */
    LTR[123] = LTRGoffset_x + LRx[69] - LRx[50];
    LTR[124] = LTRGoffset_y + LRy[69] - LRy[50];
    LTR[125] = LTRGoffset_z + LRz[69] - LRz[50];

    /* Point #43: 4096, 0, 32 */
    LTR[126] = LTR[123] + LRx[53];
    LTR[127] = LTR[124] + LRy[53];
    LTR[128] = LTR[125] + LRz[53];

    /* runway */
    LTR[150] = LTR[0];
    LTR[151] = LTR[1];
    LTR[152] = LTR[2];
    LTR[153] = LTR[3];
    LTR[154] = LTR[4];
    LTR[155] = LTR[5];
    LTR[156] = LTR[42];
    LTR[157] = LTR[43];
    LTR[158] = LTR[44];
    LTR[159] = LTR[45];
    LTR[160] = LTR[46];
    LTR[161] = LTR[47];
    polyfill_3d(&LTR[150], 4, 44, NO, NO);

    /* taxiway */
    polyfill_3d(&LTR[0], 4, 44, NO, NO);

    /* taxiway */
    polyfill_3d(&LTR[6], 4, 44, NO, NO);

    /* taxiway */
    polyfill_3d(&LTR[12], 4, 44, NO, NO);

    /* taxiway */
    polyfill_3d(&LTR[18], 4, 44, NO, NO);

    /* taxiway */
    polyfill_3d(&LTR[24], 4, 44, NO, NO);

    /* taxiway */
    polyfill_3d(&LTR[30], 4, 44, NO, NO);

    /* taxiway */
    polyfill_3d(&LTR[36], 4, 44, NO, NO);

    /* taxiway */
    polyfill_3d(&LTR[45], 4, 44, NO, NO);

    /* taxiway */
    polyfill_3d(&LTR[51], 4, 44, NO, NO);

    /* taxiway */
    polyfill_3d(&LTR[57], 4, 44, NO, NO);

    /* taxiway */
    polyfill_3d(&LTR[69], 4, 44, NO, NO);

    /* taxiway */
    LTR[150] = LTR[27];
    LTR[151] = LTR[28];
    LTR[152] = LTR[29];
    LTR[153] = LTR[81];
    LTR[154] = LTR[82];
    LTR[155] = LTR[83];
    LTR[156] = LTR[84];
    LTR[157] = LTR[85];
    LTR[158] = LTR[86];
    LTR[159] = LTR[87];
    LTR[160] = LTR[88];
    LTR[161] = LTR[89];
    polyfill_3d(&LTR[150], 4, 44, NO, NO);

    /* taxiway */
    LTR[150] = LTR[108];
    LTR[151] = LTR[109];
    LTR[152] = LTR[110];
    LTR[153] = LTR[57];
    LTR[154] = LTR[58];
    LTR[155] = LTR[59];
    LTR[156] = LTR[90];
    LTR[157] = LTR[91];
    LTR[158] = LTR[92];
    LTR[159] = LTR[93];
    LTR[160] = LTR[94];
    LTR[161] = LTR[95];
    polyfill_3d(&LTR[150], 4, 44, NO, NO);

    /* car_parking_lot */
    polyfill_3d(&LTR[93], 5, 44, NO, NO);

    /* grass_area_of_car_parking_lot */
    polyfill_3d(&LTR[111], 3, 16, NO, NO);

    /* road_to_airport */
    LTR[150] = LTR[120];
    LTR[151] = LTR[121];
    LTR[152] = LTR[122];
    LTR[153] = LTR[123];
    LTR[154] = LTR[124];
    LTR[155] = LTR[125];
    LTR[156] = LTR[126];
    LTR[157] = LTR[127];
    LTR[158] = LTR[128];
    LTR[159] = LTR[99];
    LTR[160] = LTR[100];
    LTR[161] = LTR[101];
    polyfill_3d(&LTR[150], 4, 50, NO, NO);

    /* road_to_airport */
    quick_draw_3D_line(&LTR[120], 50, NO);

    /* taxiway */
    quick_draw_3D_line(&LTR[90], 44, NO);

    /* taxiway */
    quick_draw_3D_line(&LTR[3], 44, NO);

    /* taxiway */
    quick_draw_3D_line(&LTR[9], 44, NO);

    /* taxiway */
    quick_draw_3D_line(&LTR[15], 44, NO);

    /* taxiway */
    quick_draw_3D_line(&LTR[21], 44, NO);

    /* taxiway */
    quick_draw_3D_line(&LTR[27], 44, NO);

    /* taxiway */
    quick_draw_3D_line(&LTR[33], 44, NO);

    /* taxiway */
    quick_draw_3D_line(&LTR[39], 44, NO);

    /* taxiway */
    quick_draw_3D_line(&LTR[48], 44, NO);

    /* taxiway */
    quick_draw_3D_line(&LTR[54], 44, NO);

    /* taxiway */
    quick_draw_3D_line(&LTR[60], 44, NO);

    /* taxiway */
    quick_draw_3D_line(&LTR[72], 44, NO);

    /* taxiway */
    quick_draw_3D_line(&LTR[81], 44, NO);





    /* runway lines */
    LTR[0] = LTRGoffset_x - LRx[56] - LRx[68] - LRx[51] - LRx[48];
    LTR[1] = LTRGoffset_y - LRy[56] - LRy[68] - LRy[51] - LRy[48];
    LTR[2] = LTRGoffset_z - LRz[56] - LRz[68] - LRz[51] - LRz[48];
    LTR[3] = LTR[0] + LRx[59];
    LTR[4] = LTR[1] + LRy[59];
    LTR[5] = LTR[2] + LRz[59];
    draw_3D_line(LTR, 59, NO);
    LTR[0] += LRx[62];
    LTR[1] += LRy[62];
    LTR[2] += LRz[62];
    LTR[3] += LRx[62];
    LTR[4] += LRy[62];
    LTR[5] += LRz[62];
    draw_3D_line(LTR, 59, NO);
    LTR[0] += LRx[62];
    LTR[1] += LRy[62];
    LTR[2] += LRz[62];
    LTR[3] += LRx[62];
    LTR[4] += LRy[62];
    LTR[5] += LRz[62];
    draw_3D_line(LTR, 59, NO);
    LTR[0] += LRx[62];
    LTR[1] += LRy[62];
    LTR[2] += LRz[62];
    LTR[3] += LRx[62];
    LTR[4] += LRy[62];
    LTR[5] += LRz[62];
    draw_3D_line(LTR, 59, NO);
    LTR[0] += LRx[62];
    LTR[1] += LRy[62];
    LTR[2] += LRz[62];
    LTR[3] += LRx[62];
    LTR[4] += LRy[62];
    LTR[5] += LRz[62];
    draw_3D_line(LTR, 59, NO);
    LTR[0] += LRx[62];
    LTR[1] += LRy[62];
    LTR[2] += LRz[62];
    LTR[3] += LRx[62];
    LTR[4] += LRy[62];
    LTR[5] += LRz[62];
    draw_3D_line(LTR, 59, NO);
    LTR[0] += LRx[62];
    LTR[1] += LRy[62];
    LTR[2] += LRz[62];
    LTR[3] += LRx[62];
    LTR[4] += LRy[62];
    LTR[5] += LRz[62];
    draw_3D_line(LTR, 59, NO);
    LTR[0] += LRx[62];
    LTR[1] += LRy[62];
    LTR[2] += LRz[62];
    LTR[3] += LRx[62];
    LTR[4] += LRy[62];
    LTR[5] += LRz[62];
    draw_3D_line(LTR, 59, NO);
    LTR[0] += LRx[62];
    LTR[1] += LRy[62];
    LTR[2] += LRz[62];
    LTR[3] += LRx[62];
    LTR[4] += LRy[62];
    LTR[5] += LRz[62];
    draw_3D_line(LTR, 59, NO);

    /* lines */
    if (detail_level>=2)
    {
        LTR[0] = LTRGoffset_x - LRx[56] - LRx[3] - LRx[68] - LRx[51] - LRx[48];
        LTR[1] = LTRGoffset_y - LRy[56] - LRy[3] - LRy[68] - LRy[51] - LRy[48];
        LTR[2] = LTRGoffset_z - LRz[56] - LRz[3] - LRz[68] - LRz[51] - LRz[48];
        LTR[3] = LTR[0] + LRx[9];
        LTR[4] = LTR[1] + LRy[9];
        LTR[5] = LTR[2] + LRz[9];
        LTR[6] = LTR[3] + LRx[59];
        LTR[7] = LTR[4] + LRy[59];
        LTR[8] = LTR[5] + LRz[59];
        LTR[9] = LTR[6] - LRx[9];
        LTR[10] = LTR[7] - LRy[9];
        LTR[11] = LTR[8] - LRz[9];
        polyfill_3d(LTR, 4, 59, NO, NO);

        LTR[0] += LRx[62];
        LTR[1] += LRy[62];
        LTR[2] += LRz[62];
        LTR[3] += LRx[62];
        LTR[4] += LRy[62];
        LTR[5] += LRz[62];
        LTR[6] += LRx[62];
        LTR[7] += LRy[62];
        LTR[8] += LRz[62];
        LTR[9] += LRx[62];
        LTR[10] += LRy[62];
        LTR[11] += LRz[62];
        polyfill_3d(LTR, 4, 59, NO, NO);

        LTR[0] += LRx[62];
        LTR[1] += LRy[62];
        LTR[2] += LRz[62];
        LTR[3] += LRx[62];
        LTR[4] += LRy[62];
        LTR[5] += LRz[62];
        LTR[6] += LRx[62];
        LTR[7] += LRy[62];
        LTR[8] += LRz[62];
        LTR[9] += LRx[62];
        LTR[10] += LRy[62];
        LTR[11] += LRz[62];
        polyfill_3d(LTR, 4, 59, NO, NO);

        LTR[0] += LRx[62];
        LTR[1] += LRy[62];
        LTR[2] += LRz[62];
        LTR[3] += LRx[62];
        LTR[4] += LRy[62];
        LTR[5] += LRz[62];
        LTR[6] += LRx[62];
        LTR[7] += LRy[62];
        LTR[8] += LRz[62];
        LTR[9] += LRx[62];
        LTR[10] += LRy[62];
        LTR[11] += LRz[62];
        polyfill_3d(LTR, 4, 59, NO, NO);

        LTR[0] += LRx[62];
        LTR[1] += LRy[62];
        LTR[2] += LRz[62];
        LTR[3] += LRx[62];
        LTR[4] += LRy[62];
        LTR[5] += LRz[62];
        LTR[6] += LRx[62];
        LTR[7] += LRy[62];
        LTR[8] += LRz[62];
        LTR[9] += LRx[62];
        LTR[10] += LRy[62];
        LTR[11] += LRz[62];
        polyfill_3d(LTR, 4, 59, NO, NO);

        LTR[0] += LRx[62];
        LTR[1] += LRy[62];
        LTR[2] += LRz[62];
        LTR[3] += LRx[62];
        LTR[4] += LRy[62];
        LTR[5] += LRz[62];
        LTR[6] += LRx[62];
        LTR[7] += LRy[62];
        LTR[8] += LRz[62];
        LTR[9] += LRx[62];
        LTR[10] += LRy[62];
        LTR[11] += LRz[62];
        polyfill_3d(LTR, 4, 59, NO, NO);

        LTR[0] += LRx[62];
        LTR[1] += LRy[62];
        LTR[2] += LRz[62];
        LTR[3] += LRx[62];
        LTR[4] += LRy[62];
        LTR[5] += LRz[62];
        LTR[6] += LRx[62];
        LTR[7] += LRy[62];
        LTR[8] += LRz[62];
        LTR[9] += LRx[62];
        LTR[10] += LRy[62];
        LTR[11] += LRz[62];
        polyfill_3d(LTR, 4, 59, NO, NO);

        LTR[0] += LRx[62];
        LTR[1] += LRy[62];
        LTR[2] += LRz[62];
        LTR[3] += LRx[62];
        LTR[4] += LRy[62];
        LTR[5] += LRz[62];
        LTR[6] += LRx[62];
        LTR[7] += LRy[62];
        LTR[8] += LRz[62];
        LTR[9] += LRx[62];
        LTR[10] += LRy[62];
        LTR[11] += LRz[62];
        polyfill_3d(LTR, 4, 59, NO, NO);

        LTR[0] += LRx[62];
        LTR[1] += LRy[62];
        LTR[2] += LRz[62];
        LTR[3] += LRx[62];
        LTR[4] += LRy[62];
        LTR[5] += LRz[62];
        LTR[6] += LRx[62];
        LTR[7] += LRy[62];
        LTR[8] += LRz[62];
        LTR[9] += LRx[62];
        LTR[10] += LRy[62];
        LTR[11] += LRz[62];
        polyfill_3d(LTR, 4, 59, NO, NO);


        /*
        }
        used to test for detail level 3 here
        {
        */

        /* Yellow lines at end of runway */
        Lxa = LTRGoffset_x - LRx[51] - LRx[48];
        Lya = LTRGoffset_y - LRy[51] - LRy[48];
        Lza = LTRGoffset_z - LRz[51] - LRz[48];
        LTR[0] = Lxa - LRx[45] - LRx[68] - LRx[62] + LRx[50];
        LTR[1] = Lya - LRy[45] - LRy[68] - LRy[62] + LRy[50];
        LTR[2] = Lza - LRz[45] - LRz[68] - LRz[62] + LRz[50];
        LTR[3] = LTR[0] + LRx[48];
        LTR[4] = LTR[1] + LRy[48];
        LTR[5] = LTR[2] + LRz[48];
        LTR[6] = LTR[3] - LRx[45] + LRx[47];
        LTR[7] = LTR[4] - LRy[45] + LRy[47];
        LTR[8] = LTR[5] - LRz[45] + LRz[47];
        polyfill_3d(LTR, 3, 60, NO, NO);

        LTR[0] = -LTR[0] + Lxa + Lxa;
        LTR[1] = -LTR[1] + Lya + Lya;
        LTR[2] = -LTR[2] + Lza + Lza;
        LTR[3] = -LTR[3] + Lxa + Lxa;
        LTR[4] = -LTR[4] + Lya + Lya;
        LTR[5] = -LTR[5] + Lza + Lza;
        LTR[6] = -LTR[6] + Lxa + Lxa;
        LTR[7] = -LTR[7] + Lya + Lya;
        LTR[8] = -LTR[8] + Lza + Lza;
        polyfill_3d(LTR, 3, 60, NO, NO);


        LTR[0] = Lxa + LRx[48] - LRx[68] - LRx[62] + LRx[50];
        LTR[1] = Lya + LRy[48] - LRy[68] - LRy[62] + LRy[50];
        LTR[2] = Lza + LRz[48] - LRz[68] - LRz[62] + LRz[50];
        LTR[3] = LTR[0] + LRx[45];
        LTR[4] = LTR[1] + LRy[45];
        LTR[5] = LTR[2] + LRz[45];
        LTR[6] = LTR[3] - LRx[48] + LRx[50];
        LTR[7] = LTR[4] - LRy[48] + LRy[50];
        LTR[8] = LTR[5] - LRz[48] + LRz[50];
        LTR[9] = LTR[6] - LRx[45];
        LTR[10] = LTR[7] - LRy[45];
        LTR[11] = LTR[8] - LRz[45];
        LTR[12] = LTR[9] - LRx[45];
        LTR[13] = LTR[10] - LRy[45];
        LTR[14] = LTR[11] - LRz[45];
        LTR[15] = LTR[12] - LRx[48] - LRx[50];
        LTR[16] = LTR[13] - LRy[48] - LRy[50];
        LTR[17] = LTR[14] - LRz[48] - LRz[50];
        LTR[18] = LTR[15] + LRx[45];
        LTR[19] = LTR[16] + LRy[45];
        LTR[20] = LTR[17] + LRz[45];
        polyfill_3d(LTR, 4, 60, NO, NO);
        polyfill_3d(&LTR[9], 4, 60, NO, NO);

        LTR[0] = -LTR[0] + Lxa + Lxa;
        LTR[1] = -LTR[1] + Lya + Lya;
        LTR[2] = -LTR[2] + Lza + Lza;
        LTR[3] = -LTR[3] + Lxa + Lxa;
        LTR[4] = -LTR[4] + Lya + Lya;
        LTR[5] = -LTR[5] + Lza + Lza;
        LTR[6] = -LTR[6] + Lxa + Lxa;
        LTR[7] = -LTR[7] + Lya + Lya;
        LTR[8] = -LTR[8] + Lza + Lza;
        LTR[9] = -LTR[9] + Lxa + Lxa;
        LTR[10] = -LTR[10] + Lya + Lya;
        LTR[11] = -LTR[11] + Lza + Lza;
        LTR[12] = -LTR[12] + Lxa + Lxa;
        LTR[13] = -LTR[13] + Lya + Lya;
        LTR[14] = -LTR[14] + Lza + Lza;
        LTR[15] = -LTR[15] + Lxa + Lxa;
        LTR[16] = -LTR[16] + Lya + Lya;
        LTR[17] = -LTR[17] + Lza + Lza;
        LTR[18] = -LTR[18] + Lxa + Lxa;
        LTR[19] = -LTR[19] + Lya + Lya;
        LTR[20] = -LTR[20] + Lza + Lza;
        polyfill_3d(LTR, 4, 60, NO, NO);
        polyfill_3d(&LTR[9], 4, 60, NO, NO);


        LTR[0] = Lxa + LRx[51] - LRx[68] - LRx[62] + LRx[50];
        LTR[1] = Lya + LRy[51] - LRy[68] - LRy[62] + LRy[50];
        LTR[2] = Lza + LRz[51] - LRz[68] - LRz[62] + LRz[50];
        LTR[3] = LTR[0] + LRx[47];
        LTR[4] = LTR[1] + LRy[47];
        LTR[5] = LTR[2] + LRz[47];
        LTR[6] = LTR[3] - LRx[45] + LRx[47];
        LTR[7] = LTR[4] - LRy[45] + LRy[47];
        LTR[8] = LTR[5] - LRz[45] + LRz[47];
        LTR[9] = LTR[6] - LRx[45];
        LTR[10] = LTR[7] - LRy[45];
        LTR[11] = LTR[8] - LRz[45];
        polyfill_3d(LTR, 4, 60, NO, NO);

        LTR[0] = -LTR[0] + Lxa + Lxa;
        LTR[1] = -LTR[1] + Lya + Lya;
        LTR[2] = -LTR[2] + Lza + Lza;
        LTR[3] = -LTR[3] + Lxa + Lxa;
        LTR[4] = -LTR[4] + Lya + Lya;
        LTR[5] = -LTR[5] + Lza + Lza;
        LTR[6] = -LTR[6] + Lxa + Lxa;
        LTR[7] = -LTR[7] + Lya + Lya;
        LTR[8] = -LTR[8] + Lza + Lza;
        LTR[9] = -LTR[9] + Lxa + Lxa;
        LTR[10] = -LTR[10] + Lya + Lya;
        LTR[11] = -LTR[11] + Lza + Lza;
        polyfill_3d(LTR, 4, 60, NO, NO);

        LTR[0] = Lxa - LRx[51] - LRx[68] - LRx[62] + LRx[50];
        LTR[1] = Lya - LRy[51] - LRy[68] - LRy[62] + LRy[50];
        LTR[2] = Lza - LRz[51] - LRz[68] - LRz[62] + LRz[50];
        LTR[3] = LTR[0] + LRx[47];
        LTR[4] = LTR[1] + LRy[47];
        LTR[5] = LTR[2] + LRz[47];
        LTR[6] = LTR[3] + LRx[45] + LRx[47];
        LTR[7] = LTR[4] + LRy[45] + LRy[47];
        LTR[8] = LTR[5] + LRz[45] + LRz[47];
        LTR[9] = LTR[6] + LRx[45];
        LTR[10] = LTR[7] + LRy[45];
        LTR[11] = LTR[8] + LRz[45];
        polyfill_3d(LTR, 4, 60, NO, NO);

        LTR[0] = -LTR[0] + Lxa + Lxa;
        LTR[1] = -LTR[1] + Lya + Lya;
        LTR[2] = -LTR[2] + Lza + Lza;
        LTR[3] = -LTR[3] + Lxa + Lxa;
        LTR[4] = -LTR[4] + Lya + Lya;
        LTR[5] = -LTR[5] + Lza + Lza;
        LTR[6] = -LTR[6] + Lxa + Lxa;
        LTR[7] = -LTR[7] + Lya + Lya;
        LTR[8] = -LTR[8] + Lza + Lza;
        LTR[9] = -LTR[9] + Lxa + Lxa;
        LTR[10] = -LTR[10] + Lya + Lya;
        LTR[11] = -LTR[11] + Lza + Lza;
        polyfill_3d(LTR, 4, 60, NO, NO);

        /* White bars at end of runway */
        LTR[0] = Lxa - LRx[51] + LRx[53] - LRx[68] - LRx[62] + LRx[50];
        LTR[1] = Lya - LRy[51] + LRy[53] - LRy[68] - LRy[62] + LRy[50];
        LTR[2] = Lza - LRz[51] + LRz[53] - LRz[68] - LRz[62] + LRz[50];
        LTR[3] = LTR[0] + LRx[21];
        LTR[4] = LTR[1] + LRy[21];
        LTR[5] = LTR[2] + LRz[21];
        LTR[6] = LTR[3] + LRx[50] + LRx[47];
        LTR[7] = LTR[4] + LRy[50] + LRy[47];
        LTR[8] = LTR[5] + LRz[50] + LRz[47];
        LTR[9] = LTR[6] - LRx[21];
        LTR[10] = LTR[7] - LRy[21];
        LTR[11] = LTR[8] - LRz[21];
        polyfill_3d(LTR, 4, 59, NO, NO);
        LTR[0] += LRx[45];
        LTR[1] += LRy[45];
        LTR[2] += LRz[45];
        LTR[3] += LRx[45];
        LTR[4] += LRy[45];
        LTR[5] += LRz[45];
        LTR[6] += LRx[45];
        LTR[7] += LRy[45];
        LTR[8] += LRz[45];
        LTR[9] += LRx[45];
        LTR[10] += LRy[45];
        LTR[11] += LRz[45];
        polyfill_3d(LTR, 4, 59, NO, NO);
        LTR[0] += LRx[45];
        LTR[1] += LRy[45];
        LTR[2] += LRz[45];
        LTR[3] += LRx[45];
        LTR[4] += LRy[45];
        LTR[5] += LRz[45];
        LTR[6] += LRx[45];
        LTR[7] += LRy[45];
        LTR[8] += LRz[45];
        LTR[9] += LRx[45];
        LTR[10] += LRy[45];
        LTR[11] += LRz[45];
        polyfill_3d(LTR, 4, 59, NO, NO);
        LTR[0] += LRx[45];
        LTR[1] += LRy[45];
        LTR[2] += LRz[45];
        LTR[3] += LRx[45];
        LTR[4] += LRy[45];
        LTR[5] += LRz[45];
        LTR[6] += LRx[45];
        LTR[7] += LRy[45];
        LTR[8] += LRz[45];
        LTR[9] += LRx[45];
        LTR[10] += LRy[45];
        LTR[11] += LRz[45];
        polyfill_3d(LTR, 4, 59, NO, NO);
        LTR[0] += LRx[45] + LRx[21];
        LTR[1] += LRy[45] + LRy[21];
        LTR[2] += LRz[45] + LRz[21];
        LTR[3] += LRx[45] + LRx[21];
        LTR[4] += LRy[45] + LRy[21];
        LTR[5] += LRz[45] + LRz[21];
        LTR[6] += LRx[45] + LRx[21];
        LTR[7] += LRy[45] + LRy[21];
        LTR[8] += LRz[45] + LRz[21];
        LTR[9] += LRx[45] + LRx[21];
        LTR[10] += LRy[45] + LRy[21];
        LTR[11] += LRz[45] + LRz[21];
        polyfill_3d(LTR, 4, 59, NO, NO);
        LTR[0] += LRx[45];
        LTR[1] += LRy[45];
        LTR[2] += LRz[45];
        LTR[3] += LRx[45];
        LTR[4] += LRy[45];
        LTR[5] += LRz[45];
        LTR[6] += LRx[45];
        LTR[7] += LRy[45];
        LTR[8] += LRz[45];
        LTR[9] += LRx[45];
        LTR[10] += LRy[45];
        LTR[11] += LRz[45];
        polyfill_3d(LTR, 4, 59, NO, NO);
        LTR[0] += LRx[45];
        LTR[1] += LRy[45];
        LTR[2] += LRz[45];
        LTR[3] += LRx[45];
        LTR[4] += LRy[45];
        LTR[5] += LRz[45];
        LTR[6] += LRx[45];
        LTR[7] += LRy[45];
        LTR[8] += LRz[45];
        LTR[9] += LRx[45];
        LTR[10] += LRy[45];
        LTR[11] += LRz[45];
        polyfill_3d(LTR, 4, 59, NO, NO);
        LTR[0] += LRx[45];
        LTR[1] += LRy[45];
        LTR[2] += LRz[45];
        LTR[3] += LRx[45];
        LTR[4] += LRy[45];
        LTR[5] += LRz[45];
        LTR[6] += LRx[45];
        LTR[7] += LRy[45];
        LTR[8] += LRz[45];
        LTR[9] += LRx[45];
        LTR[10] += LRy[45];
        LTR[11] += LRz[45];
        polyfill_3d(LTR, 4, 59, NO, NO);

        /* White bars at other end of runway */
        LTR[0] = Lxa - LRx[51] - LRx[53] + LRx[68] + LRx[62] - LRx[50];
        LTR[1] = Lya - LRy[51] - LRy[53] + LRy[68] + LRy[62] - LRy[50];
        LTR[2] = Lza - LRz[51] - LRz[53] + LRz[68] + LRz[62] - LRz[50];
        LTR[3] = LTR[0] + LRx[21];
        LTR[4] = LTR[1] + LRy[21];
        LTR[5] = LTR[2] + LRz[21];
        LTR[6] = LTR[3] - LRx[50] - LRx[47];
        LTR[7] = LTR[4] - LRy[50] - LRy[47];
        LTR[8] = LTR[5] - LRz[50] - LRz[47];
        LTR[9] = LTR[6] - LRx[21];
        LTR[10] = LTR[7] - LRy[21];
        LTR[11] = LTR[8] - LRz[21];
        polyfill_3d(LTR, 4, 59, NO, NO);
        LTR[0] += LRx[45];
        LTR[1] += LRy[45];
        LTR[2] += LRz[45];
        LTR[3] += LRx[45];
        LTR[4] += LRy[45];
        LTR[5] += LRz[45];
        LTR[6] += LRx[45];
        LTR[7] += LRy[45];
        LTR[8] += LRz[45];
        LTR[9] += LRx[45];
        LTR[10] += LRy[45];
        LTR[11] += LRz[45];
        polyfill_3d(LTR, 4, 59, NO, NO);
        LTR[0] += LRx[45];
        LTR[1] += LRy[45];
        LTR[2] += LRz[45];
        LTR[3] += LRx[45];
        LTR[4] += LRy[45];
        LTR[5] += LRz[45];
        LTR[6] += LRx[45];
        LTR[7] += LRy[45];
        LTR[8] += LRz[45];
        LTR[9] += LRx[45];
        LTR[10] += LRy[45];
        LTR[11] += LRz[45];
        polyfill_3d(LTR, 4, 59, NO, NO);
        LTR[0] += LRx[45];
        LTR[1] += LRy[45];
        LTR[2] += LRz[45];
        LTR[3] += LRx[45];
        LTR[4] += LRy[45];
        LTR[5] += LRz[45];
        LTR[6] += LRx[45];
        LTR[7] += LRy[45];
        LTR[8] += LRz[45];
        LTR[9] += LRx[45];
        LTR[10] += LRy[45];
        LTR[11] += LRz[45];
        polyfill_3d(LTR, 4, 59, NO, NO);
        LTR[0] += LRx[45] + LRx[21];
        LTR[1] += LRy[45] + LRy[21];
        LTR[2] += LRz[45] + LRz[21];
        LTR[3] += LRx[45] + LRx[21];
        LTR[4] += LRy[45] + LRy[21];
        LTR[5] += LRz[45] + LRz[21];
        LTR[6] += LRx[45] + LRx[21];
        LTR[7] += LRy[45] + LRy[21];
        LTR[8] += LRz[45] + LRz[21];
        LTR[9] += LRx[45] + LRx[21];
        LTR[10] += LRy[45] + LRy[21];
        LTR[11] += LRz[45] + LRz[21];
        polyfill_3d(LTR, 4, 59, NO, NO);
        LTR[0] += LRx[45];
        LTR[1] += LRy[45];
        LTR[2] += LRz[45];
        LTR[3] += LRx[45];
        LTR[4] += LRy[45];
        LTR[5] += LRz[45];
        LTR[6] += LRx[45];
        LTR[7] += LRy[45];
        LTR[8] += LRz[45];
        LTR[9] += LRx[45];
        LTR[10] += LRy[45];
        LTR[11] += LRz[45];
        polyfill_3d(LTR, 4, 59, NO, NO);
        LTR[0] += LRx[45];
        LTR[1] += LRy[45];
        LTR[2] += LRz[45];
        LTR[3] += LRx[45];
        LTR[4] += LRy[45];
        LTR[5] += LRz[45];
        LTR[6] += LRx[45];
        LTR[7] += LRy[45];
        LTR[8] += LRz[45];
        LTR[9] += LRx[45];
        LTR[10] += LRy[45];
        LTR[11] += LRz[45];
        polyfill_3d(LTR, 4, 59, NO, NO);
        LTR[0] += LRx[45];
        LTR[1] += LRy[45];
        LTR[2] += LRz[45];
        LTR[3] += LRx[45];
        LTR[4] += LRy[45];
        LTR[5] += LRz[45];
        LTR[6] += LRx[45];
        LTR[7] += LRy[45];
        LTR[8] += LRz[45];
        LTR[9] += LRx[45];
        LTR[10] += LRy[45];
        LTR[11] += LRz[45];
        polyfill_3d(LTR, 4, 59, NO, NO);

        /* 0 on the left */
        LTR[0] = Lxa - LRx[45] - LRx[9] - LRx[68] - LRx[62] + LRx[56] + LRx[50];
        LTR[1] = Lya - LRy[45] - LRy[9] - LRy[68] - LRy[62] + LRy[56] + LRy[50];
        LTR[2] = Lza - LRz[45] - LRz[9] - LRz[68] - LRz[62] + LRz[56] + LRz[50];
        LTR[3] = LTR[0] + LRx[45];
        LTR[4] = LTR[1] + LRy[45];
        LTR[5] = LTR[2] + LRz[45];
        LTR[6] = LTR[3] + LRx[50];
        LTR[7] = LTR[4] + LRy[50];
        LTR[8] = LTR[5] + LRz[50];
        LTR[9] = LTR[6] - LRx[45];
        LTR[10] = LTR[7] - LRy[45];
        LTR[11] = LTR[8] - LRz[45];
        LTR[12] = LTR[9] + LRx[9] - LRx[23];
        LTR[13] = LTR[10] + LRy[9] - LRy[23];
        LTR[14] = LTR[11] + LRz[9] - LRz[23];
        LTR[15] = LTR[12] - LRx[47];
        LTR[16] = LTR[13] - LRy[47];
        LTR[17] = LTR[14] - LRz[47];
        LTR[18] = LTR[15] + LRx[21];
        LTR[19] = LTR[16] + LRy[21];
        LTR[20] = LTR[17] + LRz[21];
        LTR[21] = LTR[18] + LRx[47];
        LTR[22] = LTR[19] + LRy[47];
        LTR[23] = LTR[20] + LRz[47];
        polyfill_3d(LTR, 4, 59, NO, NO);
        polyfill_3d(&LTR[12], 4, 43, NO, NO);
        /* 0 on the right */
        Lxc = LRx[45] + LRx[21];
        Lyc = LRy[45] + LRy[21];
        Lzc = LRz[45] + LRz[21];
        LTR[0] += Lxc;
        LTR[1] += Lyc;
        LTR[2] += Lzc;
        LTR[3] += Lxc;
        LTR[4] += Lyc;
        LTR[5] += Lzc;
        LTR[6] += Lxc;
        LTR[7] += Lyc;
        LTR[8] += Lzc;
        LTR[9] += Lxc;
        LTR[10] += Lyc;
        LTR[11] += Lzc;
        LTR[12] += Lxc;
        LTR[13] += Lyc;
        LTR[14] += Lzc;
        LTR[15] += Lxc;
        LTR[16] += Lyc;
        LTR[17] += Lzc;
        LTR[18] += Lxc;
        LTR[19] += Lyc;
        LTR[20] += Lzc;
        LTR[21] += Lxc;
        LTR[22] += Lyc;
        LTR[23] += Lzc;
        /* the ZERO on the right */
        polyfill_3d(LTR, 4, 59, NO, NO);
        polyfill_3d(&LTR[12], 4, 43, NO, NO);

        /* 1 on the left */
        /* vertical line of numeral 1 */
        LTR[0] = Lxa + LRx[39] + LRx[68] + LRx[62] - LRx[56] - LRx[50];
        LTR[1] = Lya + LRy[39] + LRy[68] + LRy[62] - LRy[56] - LRy[50];
        LTR[2] = Lza + LRz[39] + LRz[68] + LRz[62] - LRz[56] - LRz[50];
        LTR[3] = LTR[0] - LRx[9];
        LTR[4] = LTR[1] - LRy[9];
        LTR[5] = LTR[2] - LRz[9];
        LTR[6] = LTR[3] - LRx[50];
        LTR[7] = LTR[4] - LRy[50];
        LTR[8] = LTR[5] - LRz[50];
        LTR[9] = LTR[6] + LRx[9];
        LTR[10] = LTR[7] + LRy[9];
        LTR[11] = LTR[8] + LRz[9];
        polyfill_3d(LTR, 4, 59, NO, NO);
        /* bottom horizontal line of numeral 1 */
        LTR[0] = LTR[0] + LRx[15];
        LTR[1] = LTR[1] + LRy[15];
        LTR[2] = LTR[2] + LRz[15];
        LTR[3] = LTR[3] - LRx[15];
        LTR[4] = LTR[4] - LRy[15];
        LTR[5] = LTR[5] - LRz[15];
        LTR[6] = LTR[3] - LRx[11];
        LTR[7] = LTR[4] - LRy[11];
        LTR[8] = LTR[5] - LRz[11];
        LTR[9] = LTR[0] - LRx[11];
        LTR[10] = LTR[1] - LRy[11];
        LTR[11] = LTR[2] - LRz[11];
        polyfill_3d(LTR, 4, 59, NO, NO);
        /* top left horizontal line of numeral 1 */
        LTR[0] = LTR[0] - LRx[47] - LRx[35];
        LTR[1] = LTR[1] - LRy[47] - LRy[35];
        LTR[2] = LTR[2] - LRz[47] - LRz[35];
        LTR[3] = LTR[0] - LRx[27];
        LTR[4] = LTR[1] - LRy[27];
        LTR[5] = LTR[2] - LRz[27];
        LTR[6] = LTR[3] - LRx[11];
        LTR[7] = LTR[4] - LRy[11];
        LTR[8] = LTR[5] - LRz[11];
        LTR[9] = LTR[0] - LRx[11];
        LTR[10] = LTR[1] - LRy[11];
        LTR[11] = LTR[2] - LRz[11];
        polyfill_3d(LTR, 4, 59, NO, NO);
        /* 8 on the right */
        LTR[0] = Lxa - LRx[9] + LRx[68] + LRx[62] - LRx[56] - LRx[50];
        LTR[1] = Lya - LRy[9] + LRy[68] + LRy[62] - LRy[56] - LRy[50];
        LTR[2] = Lza - LRz[9] + LRz[68] + LRz[62] - LRz[56] - LRz[50];
        LTR[3] = LTR[0] - LRx[45];
        LTR[4] = LTR[1] - LRy[45];
        LTR[5] = LTR[2] - LRz[45];
        LTR[6] = LTR[3] - LRx[50];
        LTR[7] = LTR[4] - LRy[50];
        LTR[8] = LTR[5] - LRz[50];
        LTR[9] = LTR[6] + LRx[45];
        LTR[10] = LTR[7] + LRy[45];
        LTR[11] = LTR[8] + LRz[45];
        polyfill_3d(LTR, 4, 59, NO, NO);
        /* top blacked out portion of the 8 */
        LTR[0] = LTR[9] - LRx[9] + LRx[11];
        LTR[1] = LTR[10] - LRy[9] + LRy[11];
        LTR[2] = LTR[11] - LRz[9] + LRz[11];
        LTR[3] = LTR[0] + LRx[29];
        LTR[4] = LTR[1] + LRy[29];
        LTR[5] = LTR[2] + LRz[29];
        LTR[6] = LTR[3] - LRx[21];
        LTR[7] = LTR[4] - LRy[21];
        LTR[8] = LTR[5] - LRz[21];
        LTR[9] = LTR[6] - LRx[29];
        LTR[10] = LTR[7] - LRy[29];
        LTR[11] = LTR[8] - LRz[29];
        polyfill_3d(LTR, 4, 43, NO, NO);
        /* bottom blacked out portion of the 8 */
        LTR[0] += LRx[41];
        LTR[1] += LRy[41];
        LTR[2] += LRz[41];
        LTR[3] += LRx[41];
        LTR[4] += LRy[41];
        LTR[5] += LRz[41];
        LTR[6] += LRx[41];
        LTR[7] += LRy[41];
        LTR[8] += LRz[41];
        LTR[9] += LRx[41];
        LTR[10] += LRy[41];
        LTR[11] += LRz[41];
        polyfill_3d(LTR, 4, 43, NO, NO);
    }
    /* Runway lights */
    if (lights_and_stars_visible)
    {
        reg_count = 0;

        LTR[0] = LTRGoffset_x - LRx[68] - LRx[62];
        LTR[1] = LTRGoffset_y - LRy[68] - LRy[62];
        LTR[2] = LTRGoffset_z - LRz[68] - LRz[62];
        LTR[3] = LTR[0] - LRx[54] - LRx[51];
        LTR[4] = LTR[1] - LRy[54] - LRy[51];
        LTR[5] = LTR[2] - LRz[54] - LRz[51];

        fg_setcolor(114);

DRAW_AIRPORT_LIGHTS:

        point_3d(LTR[0], LTR[1], LTR[2]);
        point_3d(LTR[3], LTR[4], LTR[5]);
        LTR[0] += LRx[59];
        LTR[1] += LRy[59];
        LTR[2] += LRz[59];
        LTR[3] += LRx[59];
        LTR[4] += LRy[59];
        LTR[5] += LRz[59];

        if ((reg_count++)!=20)
            goto DRAW_AIRPORT_LIGHTS;
    }

    if (LRx[74]<0L)
    {
        /* 1664, 0, -1152 */
        Lxb = LTRGoffset_x - LRx[65] + LRx[63] + LRx[60] - LRx[56] + LRx[54];
        Lyb = LTRGoffset_y - LRy[65] + LRy[63] + LRy[60] - LRy[56] + LRy[54];
        Lzb = LTRGoffset_z - LRz[65] + LRz[63] + LRz[60] - LRz[56] + LRz[54];
        Draw_Building_A(Lxb, Lyb, Lzb, LTGoffset_x + 1664, LTGoffset_z - 1152);

        /* 1536, 0, -1152 */
        Lxb -= LRx[54];
        Lyb -= LRy[54];
        Lzb -= LRz[54];
        Draw_Building_A(Lxb, Lyb, Lzb, LTGoffset_x + 1536, LTGoffset_z - 1152);

        /* 1408, 0, -1152 */
        Lxb -= LRx[54];
        Lyb -= LRy[54];
        Lzb -= LRz[54];
        Draw_Building_A(Lxb, Lyb, Lzb, LTGoffset_x + 1408, LTGoffset_z - 1152);
    }

    if (LRz[74]>=0L)
    {
        /* Point #44: 384, 0, 256 */
        Lxb = LTRGoffset_x + LRx[59] + LRx[57] + LRx[54];
        Lyb = LTRGoffset_y + LRy[59] + LRy[57] + LRy[54];
        Lzb = LTRGoffset_z + LRz[59] + LRz[57] + LRz[54];
        Draw_Control_Tower(Lxb, Lyb, Lzb, LTGoffset_x + 384, LTGoffset_z + 256);

        /* -1280, 0, -504 */
        Lxb = LTRGoffset_x - LRx[63] - LRx[59] - LRx[57] - LRx[56] - LRx[53] - LRx[50] - LRx[47] - LRx[23];
        Lyb = LTRGoffset_y - LRy[63] - LRy[59] - LRy[57] - LRy[56] - LRy[53] - LRy[50] - LRy[47] - LRy[23];
        Lzb = LTRGoffset_z - LRz[63] - LRz[59] - LRz[57] - LRz[56] - LRz[53] - LRz[50] - LRz[47] - LRz[23];
        Draw_Hanger_45_Degrees(Lxb, Lyb, Lzb);

        /* -1472, 0, -696 */
        Lxb = Lxb - LRx[56] - LRx[54] - LRx[53] - LRx[51];
        Lyb = Lyb - LRy[56] - LRy[54] - LRy[53] - LRy[51];
        Lzb = Lzb - LRz[56] - LRz[54] - LRz[53] - LRz[51];
        Draw_Hanger_45_Degrees(Lxb, Lyb, Lzb);

        /* -1600, 0, -896 */
        Lxb = Lxb - LRx[56] - LRx[54] - LRx[53] - LRx[23];
        Lyb = Lyb - LRy[56] - LRy[54] - LRy[53] - LRy[23];
        Lzb = Lzb - LRz[56] - LRz[54] - LRz[53] - LRz[23];
        Draw_Hanger(Lxb, Lyb, Lzb, LTGoffset_x - 1600, LTGoffset_z - 896);

        /* -1600, 0, -1152 */
        Lxb = Lxb - LRx[59];
        Lyb = Lyb - LRy[59];
        Lzb = Lzb - LRz[59];
        Draw_Hanger(Lxb, Lyb, Lzb, LTGoffset_x - 1600, LTGoffset_z - 1152);

        if (detail_level>=2)
        {
            /* -1536, 0, -2304 */
            Lxb = LTRGoffset_x - LRx[68] - LRx[63] - LRx[60] - LRx[59];
            Lyb = LTRGoffset_y - LRy[68] - LRy[63] - LRy[60] - LRy[59];
            Lzb = LTRGoffset_z - LRz[68] - LRz[63] - LRz[60] - LRz[59];
            draw_congregation_of_trees(Lxb, Lyb, Lzb);
        }
        if (detail_level==3)
        {
            Lxb = Lxb - LRx[60] + LRx[59];
            Lyb = Lyb - LRy[60] + LRy[59];
            Lzb = Lzb - LRz[60] + LRz[59];
            draw_congregation_of_trees(Lxb, Lyb, Lzb);
        }
    }
    else
    {
        if (detail_level>=2)
        {
            /* -1536, 0, -2304 */
            Lxb = LTRGoffset_x - LRx[68] - LRx[63] - LRx[60] - LRx[59];
            Lyb = LTRGoffset_y - LRy[68] - LRy[63] - LRy[60] - LRy[59];
            Lzb = LTRGoffset_z - LRz[68] - LRz[63] - LRz[60] - LRz[59];
            draw_congregation_of_trees(Lxb, Lyb, Lzb);
        }
        if (detail_level==3)
        {
            Lxb = Lxb - LRx[60] + LRx[59];
            Lyb = Lyb - LRy[60] + LRy[59];
            Lzb = Lzb - LRz[60] + LRz[59];
            draw_congregation_of_trees(Lxb, Lyb, Lzb);
        }

        /* -1600, 0, -1152 */
        Lxb = LTRGoffset_x - LRx[65] - LRx[63] - LRx[60] - LRx[56] - LRx[51];
        Lyb = LTRGoffset_y - LRy[65] - LRy[63] - LRy[60] - LRy[56] - LRy[51];
        Lzb = LTRGoffset_z - LRz[65] - LRz[63] - LRz[60] - LRz[56] - LRz[51];
        Draw_Hanger(Lxb, Lyb, Lzb, LTGoffset_x - 1600, LTGoffset_z - 1152);

        /* -1600, 0, -896 */
        Lxb = Lxb + LRx[59];
        Lyb = Lyb + LRy[59];
        Lzb = Lzb + LRz[59];
        Draw_Hanger(Lxb, Lyb, Lzb, LTGoffset_x - 1600, LTGoffset_z - 896);

        /* -1472, 0, -696 */
        Lxb = Lxb + LRx[56] + LRx[54] + LRx[53] + LRx[23];
        Lyb = Lyb + LRy[56] + LRy[54] + LRy[53] + LRy[23];
        Lzb = Lzb + LRz[56] + LRz[54] + LRz[53] + LRz[23];
        Draw_Hanger_45_Degrees(Lxb, Lyb, Lzb);

        /* -1280, 0, -504 */
        Lxb = Lxb + LRx[56] + LRx[54] + LRx[53] + LRx[51];
        Lyb = Lyb + LRy[56] + LRy[54] + LRy[53] + LRy[51];
        Lzb = Lzb + LRz[56] + LRz[54] + LRz[53] + LRz[51];
        Draw_Hanger_45_Degrees(Lxb, Lyb, Lzb);

        /* Point#44: 384, 0, 256 */
        Lxb = LTRGoffset_x + LRx[59] + LRx[57] + LRx[54];
        Lyb = LTRGoffset_y + LRy[59] + LRy[57] + LRy[54];
        Lzb = LTRGoffset_z + LRz[59] + LRz[57] + LRz[54];
        Draw_Control_Tower(Lxb, Lyb, Lzb, LTGoffset_x + 384, LTGoffset_z + 256);
    }

    if (LRx[74]>=0L)
    {
        /* 1408, 0, -1152 */
        Lxb = LTRGoffset_x - LRx[65] + LRx[63] + LRx[57] - LRx[56] + LRx[54];
        Lyb = LTRGoffset_y - LRy[65] + LRy[63] + LRy[57] - LRy[56] + LRy[54];
        Lzb = LTRGoffset_z - LRz[65] + LRz[63] + LRz[57] - LRz[56] + LRz[54];
        Draw_Building_A(Lxb, Lyb, Lzb, LTGoffset_x + 1408, LTGoffset_z - 1152);

        /* 1536, 0, -1152 */
        Lxb += LRx[54];
        Lyb += LRy[54];
        Lzb += LRz[54];
        Draw_Building_A(Lxb, Lyb, Lzb, LTGoffset_x + 1536, LTGoffset_z - 1152);

        /* 1664, 0, -1152 */
        Lxb += LRx[54];
        Lyb += LRy[54];
        Lzb += LRz[54];
        Draw_Building_A(Lxb, Lyb, Lzb, LTGoffset_x + 1664, LTGoffset_z - 1152);
    }
}