// File: /workspace/github_cpp_makefile_star2_O2/dnegovan[P]Intruder-On-Donnar-V/Game.cpp
// Function: Game::printShip()
void Game::printShip()
{
    //print Map, indicate location with color of room name
    //names are red if occupant is dead
    //Stats are printed after the map, see below
    std::cout << MAP_COLOR << std::endl <<

    "                      MAP OF STARSHIP DONNAR V                       \n"
    "+-------------------------------------------------------------------+\n"
    "|                              ";

    if (currentSpace == bridge)
    {
        std::cout << LOCATION_COLOR << "BRIDGE";
    }
    else
    {
        std::cout << MAP_COLOR << "BRIDGE";
    }

    std::cout << MAP_COLOR <<  "                               |\n"
    "|                                                  ";

    if(bridge->getOccupant()->getAlive())
    {
        std::cout << bridge->getOccupant()->getName();
    }
    else
    {
        std::cout << RED << bridge->getOccupant()->getName() << MAP_COLOR;
    }

    std::cout << MAP_COLOR << "           |\n"
    "|                                                                   |\n"
    "+------------------------+-------+     +------+---------------------+\n"
    "|   ";

    if (currentSpace == captainsQ)
    {
        std::cout << LOCATION_COLOR << "CAPTAIN'S QUARTERS";
    }
    else
    {
        std::cout << MAP_COLOR << "CAPTAIN'S QUARTERS";
    }

    std::cout << MAP_COLOR << "   |    ";

    if (currentSpace == corridor)
    {
        std::cout << LOCATION_COLOR << "MAIN CORRIDOR";
    }
    else
    {
        std::cout << MAP_COLOR << "MAIN CORRIDOR";
    }

    std::cout << MAP_COLOR <<  "   |        ";

    if (currentSpace == lounge)
    {
        std::cout << LOCATION_COLOR << "LOUNGE";
    }
    else
    {
        std::cout << MAP_COLOR << "LOUNGE";
    }

    std::cout <<  MAP_COLOR << "       |\n"
    "|                        +                    +                     |\n"
    "|                                                                   |\n"
    "|                        +                    +                     |\n"
    "|         ";

    if(captainsQ->getOccupant()->getAlive())
    {
        std::cout << captainsQ->getOccupant()->getName();
    }
    else
    {
        std::cout << RED << captainsQ->getOccupant()->getName() << MAP_COLOR;
    }

    std::cout << "          |                    |               ";

    if(lounge->getOccupant()->getAlive())
    {
        std::cout << lounge->getOccupant()->getName();
    }
    else
    {
        std::cout << RED << lounge->getOccupant()->getName() << MAP_COLOR;
    }

    std::cout << " |\n"
    "+------------------------+---+  +--+----------+--------+    +-------|\n"
    "|        ";

    if (currentSpace == lab)
    {
        std::cout << LOCATION_COLOR << "MEDICAL LAB";
    }
    else
    {
        std::cout << MAP_COLOR << "MEDICAL LAB";
    }

    std::cout << MAP_COLOR << "               |      ";

    if (currentSpace == crewQ)
    {
        std::cout << LOCATION_COLOR << "CREW QUARTERS";
    }
    else
    {
        std::cout << MAP_COLOR << "CREW QUARTERS";
    }

    std::cout << MAP_COLOR << "             |\n"
    "|                                  |                                |\n"
    "|                                  |                                |\n"
    "|                                  |      ";

    if(crewQ->getOccupant()->getAlive())
    {
        std::cout << crewQ->getOccupant()->getName();
    }
    else
    {
        std::cout << RED << crewQ->getOccupant()->getName() << MAP_COLOR;
    }

    std::cout << "                      |\n"
    "+-----------+     +----------------+--------------------------------+\n"
    "|                           ";

    if (currentSpace == engineering)
    {
        std::cout << LOCATION_COLOR << "ENGINEERING";
    }
    else
    {
        std::cout << MAP_COLOR << "ENGINEERING";
    }


    std::cout << MAP_COLOR << "                             |\n"
    "|                                                   ";

    if(engineering->getOccupant()->getAlive())
    {
        std::cout << engineering->getOccupant()->getName();
    }
    else
    {
        std::cout << RED << engineering->getOccupant()->getName() << MAP_COLOR;
    }

    std::cout << "          |\n"
    "|                                                                   |\n"
    "+-------------------------------------------------------------------+"
    << RESET << std::endl;


    //print time left
    printTime();

    //print crew stats
    if (markNelson.crewDead > 0)
    {
        std::cout << RED << "                            CREW DEAD: "
                  << markNelson.crewDead
                  << RESET << std::endl;
    }
    std::cout << MAP_COLOR << "                          CREW INFECTED: "
              << markNelson.crewInfected
              <<  "\n";

    //print ingredients found
    if (markNelson.ingredientsFound > 0 && !markNelson.pack.checkFor(compound))
    {
    std::cout << MAP_COLOR << "                       INGREDIENTS FOUND: "
              << markNelson.ingredientsFound << "/5"
              << RESET << std::endl;
    }

    //print objectives
    std::cout << MAP_COLOR << "CURRENT OBJECTIVES \n"
              << objective1 << std::endl
              << objective2;
    if (markNelson.pack.checkFor(compound))
    {
        std::cout << " - COMPLETE";
    }
    std::cout << std::endl << objective3 << RESET << "\n" << std::endl;

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x68, %rsp
movq %rdi, %rbx
movq 0x98f7(%rip), %r12      # 0x15fc8
leaq 0x4451(%rip), %r14      # 0x10b29
movq %r12, %rdi
movq %r14, %rsi
callq 0x31d0
movq %rax, %rdi
callq 0x30f0
leaq 0x443f(%rip), %rsi      # 0x10b31
movq %rax, %rdi
callq 0x31d0
movq 0xc0(%rbx), %rax
cmpq 0xc8(%rbx), %rax
leaq 0x3cfd(%rip), %r15      # 0x1040c
movq %r14, %rsi
cmoveq %r15, %rsi
movq %r12, %rdi
callq 0x31d0
leaq 0x44b8(%rip), %rsi      # 0x10bdd
movq %rax, %rdi
callq 0x31d0
movq %r12, %rdi
movq %r14, %rsi
callq 0x31d0
leaq 0x44a5(%rip), %rsi      # 0x10be4
movq %rax, %rdi
callq 0x31d0
movq 0xc8(%rbx), %rdi
callq 0xe36a
movq %rax, %rdi
callq 0xa5da
testb %al, %al
je 0xc78b
movq 0xc8(%rbx), %rdi
callq 0xe36a
leaq -0x48(%rbp), %r12
movq %r12, %rdi
movq %rax, %rsi
callq 0xa5b4
movq 0x9847(%rip), %rdi      # 0x15fc8
movq %r12, %rsi
callq 0x31b0
jmp 0xc7d6
movq 0x9836(%rip), %rdi      # 0x15fc8
leaq 0x420a(%rip), %rsi      # 0x109a3
callq 0x31d0
movq %rax, %r12
movq 0xc8(%rbx), %rdi
callq 0xe36a
leaq -0x48(%rbp), %r13
movq %r13, %rdi
movq %rax, %rsi
callq 0xa5b4
movq %r12, %rdi
movq %r13, %rsi
callq 0x31b0
leaq 0x435b(%rip), %rsi      # 0x10b29
movq %rax, %rdi
callq 0x31d0
leaq -0x48(%rbp), %rdi
callq 0x3368
movq 0x97e2(%rip), %r12      # 0x15fc8
movq %r12, %rdi
movq %r14, %rsi
callq 0x31d0
leaq 0x4441(%rip), %rsi      # 0x10c39
movq %rax, %rdi
callq 0x31d0
movq 0xc0(%rbx), %rax
cmpq 0xe0(%rbx), %rax
movq %r14, %rsi
cmoveq %r15, %rsi
movq %r12, %rdi
callq 0x31d0
leaq 0x44b3(%rip), %rsi      # 0x10cd7
movq %rax, %rdi
callq 0x31d0
movq %r12, %rdi
movq %r14, %rsi
callq 0x31d0
leaq 0x44ac(%rip), %rsi      # 0x10cea
movq %rax, %rdi
callq 0x31d0
movq 0xc0(%rbx), %rax
cmpq 0xf8(%rbx), %rax
movq %r14, %rsi
cmoveq %r15, %rsi
movq %r12, %rdi
callq 0x31d0
leaq 0x4489(%rip), %rsi      # 0x10cf3
movq %rax, %rdi
callq 0x31d0
movq %r12, %rdi
movq %r14, %rsi
callq 0x31d0
leaq 0x447d(%rip), %rsi      # 0x10d01
movq %rax, %rdi
callq 0x31d0
movq 0xc0(%rbx), %rax
cmpq 0xd8(%rbx), %rax
movq %r14, %rsi
cmoveq %r15, %rsi
movq %r12, %rdi
callq 0x31d0
leaq 0x445e(%rip), %rsi      # 0x10d0e
movq %rax, %rdi
callq 0x31d0
movq %r12, %rdi
movq %r14, %rsi
callq 0x31d0
leaq 0x444b(%rip), %rsi      # 0x10d15
movq %rax, %rdi
callq 0x31d0
movq 0xe0(%rbx), %rdi
callq 0xe36a
movq %rax, %rdi
callq 0xa5da
testb %al, %al
je 0xc916
movq 0xe0(%rbx), %rdi
callq 0xe36a
leaq -0x48(%rbp), %r12
movq %r12, %rdi
movq %rax, %rsi
callq 0xa5b4
movq 0x96bc(%rip), %rdi      # 0x15fc8
movq %r12, %rsi
callq 0x31b0
jmp 0xc961
movq 0x96ab(%rip), %rdi      # 0x15fc8
leaq 0x407f(%rip), %rsi      # 0x109a3
callq 0x31d0
movq %rax, %r12
movq 0xe0(%rbx), %rdi
callq 0xe36a
leaq -0x48(%rbp), %r13
movq %r13, %rdi
movq %rax, %rsi
callq 0xa5b4
movq %r12, %rdi
movq %r13, %rsi
callq 0x31b0
leaq 0x41d0(%rip), %rsi      # 0x10b29
movq %rax, %rdi
callq 0x31d0
leaq -0x48(%rbp), %rdi
callq 0x3368
movq 0x9657(%rip), %rdi      # 0x15fc8
leaq 0x4483(%rip), %rsi      # 0x10dfb
callq 0x31d0
movq 0xd8(%rbx), %rdi
callq 0xe36a
movq %rax, %rdi
callq 0xa5da
testb %al, %al
je 0xc9c1
movq 0xd8(%rbx), %rdi
callq 0xe36a
leaq -0x48(%rbp), %r12
movq %r12, %rdi
movq %rax, %rsi
callq 0xa5b4
movq 0x9611(%rip), %rdi      # 0x15fc8
movq %r12, %rsi
callq 0x31b0
jmp 0xca0c
movq 0x9600(%rip), %rdi      # 0x15fc8
leaq 0x3fd4(%rip), %rsi      # 0x109a3
callq 0x31d0
movq %rax, %r12
movq 0xd8(%rbx), %rdi
callq 0xe36a
leaq -0x48(%rbp), %r13
movq %r13, %rdi
movq %rax, %rsi
callq 0xa5b4
movq %r12, %rdi
movq %r13, %rsi
callq 0x31b0
leaq 0x4125(%rip), %rsi      # 0x10b29
movq %rax, %rdi
callq 0x31d0
leaq -0x48(%rbp), %rdi
callq 0x3368
movq 0x95ac(%rip), %r12      # 0x15fc8
leaq 0x4408(%rip), %rsi      # 0x10e2b
movq %r12, %rdi
callq 0x31d0
movq 0xc0(%rbx), %rax
cmpq 0xd0(%rbx), %rax
movq %r14, %rsi
cmoveq %r15, %rsi
movq %r12, %rdi
callq 0x31d0
leaq 0x442f(%rip), %rsi      # 0x10e7e
movq %rax, %rdi
callq 0x31d0
movq %r12, %rdi
movq %r14, %rsi
callq 0x31d0
leaq 0x44de(%rip), %rsi      # 0x10f47
movq %rax, %rdi
callq 0x31d0
movq 0xc0(%rbx), %rax
cmpq 0xe8(%rbx), %rax
movq %r14, %rsi
cmoveq %r15, %rsi
movq %r12, %rdi
callq 0x31d0
leaq 0x43f5(%rip), %rsi      # 0x10e8a
movq %rax, %rdi
callq 0x31d0
movq %r12, %rdi
movq %r14, %rsi
callq 0x31d0
leaq 0x43e9(%rip), %rsi      # 0x10e98
movq %rax, %rdi
callq 0x31d0
movq 0xe8(%rbx), %rdi
callq 0xe36a
movq %rax, %rdi
callq 0xa5da
testb %al, %al
je 0xcafb
movq 0xe8(%rbx), %rdi
callq 0xe36a
leaq -0x48(%rbp), %r12
movq %r12, %rdi
movq %rax, %rsi
callq 0xa5b4
movq 0x94d7(%rip), %rdi      # 0x15fc8
movq %r12, %rsi
callq 0x31b0
jmp 0xcb46
movq 0x94c6(%rip), %rdi      # 0x15fc8
leaq 0x3e9a(%rip), %rsi      # 0x109a3
callq 0x31d0
movq %rax, %r12
movq 0xe8(%rbx), %rdi
callq 0xe36a
leaq -0x48(%rbp), %r13
movq %r13, %rdi
movq %rax, %rsi
callq 0xa5b4
movq %r12, %rdi
movq %r13, %rsi
callq 0x31b0
leaq 0x3feb(%rip), %rsi      # 0x10b29
movq %rax, %rdi
callq 0x31d0
leaq -0x48(%rbp), %rdi
callq 0x3368
movq 0x9472(%rip), %r12      # 0x15fc8
leaq 0x4401(%rip), %rsi      # 0x10f5e
movq %r12, %rdi
callq 0x31d0
movq 0xc0(%rbx), %rax
cmpq 0xf0(%rbx), %rax
cmovneq %r14, %r15
movq %r12, %rdi
movq %r15, %rsi
callq 0x31d0
leaq 0x4450(%rip), %rsi      # 0x10fd9
movq %rax, %rdi
callq 0x31d0
movq %r12, %rdi
movq %r14, %rsi
callq 0x31d0
leaq 0x4442(%rip), %rsi      # 0x10fe5
movq %rax, %rdi
callq 0x31d0
movq 0xf0(%rbx), %rdi
callq 0xe36a
movq %rax, %rdi
callq 0xa5da
testb %al, %al
je 0xcbef
movq 0xf0(%rbx), %rdi
callq 0xe36a
leaq -0x48(%rbp), %r14
movq %r14, %rdi
movq %rax, %rsi
callq 0xa5b4
movq 0x93e3(%rip), %rdi      # 0x15fc8
movq %r14, %rsi
callq 0x31b0
jmp 0xcc3a
movq 0x93d2(%rip), %rdi      # 0x15fc8
leaq 0x3da6(%rip), %rsi      # 0x109a3
callq 0x31d0
movq %rax, %r14
movq 0xf0(%rbx), %rdi
callq 0xe36a
leaq -0x48(%rbp), %r15
movq %r15, %rdi
movq %rax, %rsi
callq 0xa5b4
movq %r14, %rdi
movq %r15, %rsi
callq 0x31b0
leaq 0x3ef7(%rip), %rsi      # 0x10b29
movq %rax, %rdi
callq 0x31d0
leaq -0x48(%rbp), %rdi
callq 0x3368
movq 0x937e(%rip), %rdi      # 0x15fc8
leaq 0x43e8(%rip), %rsi      # 0x11039
callq 0x31d0
leaq 0x3456(%rip), %rsi      # 0x100b3
movq %rax, %rdi
callq 0x31d0
movq %rax, %rdi
callq 0x30f0
movq %rbx, %rdi
callq 0xd8ea
cmpl $0x0, 0x20(%rbx)
jle 0xccbf
movq 0x9346(%rip), %rdi      # 0x15fc8
leaq 0x3d1a(%rip), %rsi      # 0x109a3
callq 0x31d0
leaq 0x443c(%rip), %rsi      # 0x110d1
movq %rax, %rdi
callq 0x31d0
movl 0x20(%rbx), %esi
movq %rax, %rdi
callq 0x32f0
leaq 0x3404(%rip), %rsi      # 0x100b3
movq %rax, %rdi
callq 0x31d0
movq %rax, %rdi
callq 0x30f0
movq 0x9302(%rip), %rdi      # 0x15fc8
leaq 0x3e5c(%rip), %rsi      # 0x10b29
callq 0x31d0
leaq 0x4420(%rip), %rsi      # 0x110f9
movq %rax, %rdi
callq 0x31d0
movl 0x24(%rbx), %esi
movq %rax, %rdi
callq 0x32f0
leaq 0x3c31(%rip), %rsi      # 0x10924
movq %rax, %rdi
callq 0x31d0
cmpl $0x0, 0x1c(%rbx)
jle 0xcd8d
leaq 0x9fdc(%rip), %rsi      # 0x16ce8
leaq -0x88(%rbp), %r14
movq %r14, %rdi
callq 0x3250
movq %rbx, %rdi
movq %r14, %rsi
callq 0x970a
movl %eax, %r14d
leaq -0x88(%rbp), %rdi
callq 0x3368
testb %r14b, %r14b
jne 0xcd8d
movq 0x9287(%rip), %rdi      # 0x15fc8
leaq 0x3de1(%rip), %rsi      # 0x10b29
callq 0x31d0
leaq 0x43cf(%rip), %rsi      # 0x11123
movq %rax, %rdi
callq 0x31d0
movl 0x1c(%rbx), %esi
movq %rax, %rdi
callq 0x32f0
leaq 0x43e0(%rip), %rsi      # 0x1114e
movq %rax, %rdi
callq 0x31d0
leaq 0x3336(%rip), %rsi      # 0x100b3
movq %rax, %rdi
callq 0x31d0
movq %rax, %rdi
callq 0x30f0
movq 0x9234(%rip), %rdi      # 0x15fc8
leaq 0x3d8e(%rip), %rsi      # 0x10b29
callq 0x31d0
leaq 0x43aa(%rip), %rsi      # 0x11151
movq %rax, %rdi
callq 0x31d0
leaq 0x60(%rbx), %rsi
movq %rax, %rdi
callq 0x31b0
movq %rax, %rdi
callq 0x30f0
leaq 0x80(%rbx), %rsi
movq %rax, %rdi
callq 0x31b0
leaq 0x9f0f(%rip), %rsi      # 0x16ce8
leaq -0x68(%rbp), %r14
movq %r14, %rdi
callq 0x3250
movq %rbx, %rdi
movq %r14, %rsi
callq 0x970a
movl %eax, %r14d
leaq -0x68(%rbp), %rdi
callq 0x3368
testb %r14b, %r14b
je 0xce14
movq 0x91c0(%rip), %rdi      # 0x15fc8
leaq 0x4357(%rip), %rsi      # 0x11166
callq 0x31d0
movq 0x91ad(%rip), %rdi      # 0x15fc8
callq 0x30f0
addq $0xa0, %rbx
movq %rax, %rdi
movq %rbx, %rsi
callq 0x31b0
leaq 0x327a(%rip), %rsi      # 0x100b3
movq %rax, %rdi
callq 0x31d0
leaq 0x3adc(%rip), %rsi      # 0x10924
movq %rax, %rdi
callq 0x31d0
movq %rax, %rdi
callq 0x30f0
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0xce8e
jmp 0xce8e
jmp 0xce8e
jmp 0xce8e
jmp 0xce8e
movq %rax, %rbx
leaq -0x88(%rbp), %rdi
jmp 0xce95
movq %rax, %rbx
leaq -0x68(%rbp), %rdi
jmp 0xce95
jmp 0xce8e
jmp 0xce8e
jmp 0xce8e
jmp 0xce8e
movq %rax, %rbx
leaq -0x48(%rbp), %rdi
callq 0x3368
movq %rbx, %rdi
callq 0x3300