// File: /workspace/github_cpp_makefile_star2_O2/giovifazi[P]knossos-bloodbath/Hud.cpp
// Function: hud_print(Player*&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, int)
void hud_print(Player* &p, std::string cmds, int o)
{  
   std::string name = p->getName();
   std::string shield = p->getShield();
   int hp = p->getHp();
   int atk = p->getAtk();
	
   //spazi da stampare bianchi per il nome
   int blank=20-name.size();
	
   //spazi bianchi da stampare per il simbolo
   int blank_p;
   if (p->getNumPlay()>9&&p->getNumPlay()<100){blank_p=17;}
   else if (p->getNumPlay()<10){blank_p=18;}
   else {blank_p=16;}

   //spazi bianchi da stampare per la vita
   int blank_hp;
   if (hp>9&&hp<100){blank_hp=22;}
   else if (hp<10){blank_hp=23;}
   else {blank_hp=21;}

   //spazi bianchi da stampare per l'attacco
   int blank_atk;
   if (atk>9&&atk<100){blank_atk=22;}
   else if (atk<10){blank_atk=23;}
   else {blank_atk=21;}

   //spazi bianchi da stampare per lo scudo
   int blank_s=22-shield.size();


   
   switch (o){   
   //caso con x=cerca
   case 0:
   std::cout 
  
   << " _____                                _____      \n"
   << "(@___@) Turno di "<< name << std::string(blank,' ') <<"(@___@)\n"
   << " ║ ║ ║╔══════════════════════════════╗║ ║ ║\n" 
   << " ║ ║ ║║ Simbolo [" << p->getNumPlay() <<"]"<< std::string(blank_p,' ') <<"║║ ║ ║\n" 
   << " ║ ║ ║║ HP:  "<< hp << std::string(blank_hp,' ')<<"║║ ║ ║\n"
   << " ║ ║ ║║ ATK: " << atk << std::string(blank_atk,' ')<<"║║ ║ ║\n"
   << " ║ ║ ║║ SCUDO: " << shield << std::string(blank_s,' ') <<"║║ ║ ║\n"
   << " ║ ║ ║╚══════════════════════════════╝║ ║ ║\n"
   << " ║ ║ ║ Cosa vuoi fare?                ║ ║ ║ \n";
   std::cout 
   << " ║ ║ ║╔══════════════════════════════╗║ ║ ║" << std::endl;

   if (c_in_str(cmds, 'n'))
      std::cout << " ║ ║ ║║ Andare a nord----[premere n] ║║ ║ ║\n";
   
   if (c_in_str(cmds, 's'))
      std::cout << " ║ ║ ║║ Andare a sud-----[premere s] ║║ ║ ║\n";
   
   if (c_in_str(cmds, 'e'))
      std::cout << " ║ ║ ║║ Andare a est-----[premere e] ║║ ║ ║\n";
   
   if (c_in_str(cmds, 'o'))  
      std::cout << " ║ ║ ║║ Andare a ovest---[premere o] ║║ ║ ║\n";
   
   if (c_in_str(cmds, 'x'))
      std::cout << " ║ ║ ║║ Cercare oggetti--[premere x] ║║ ║ ║\n";
   
   std::cout << " ║_║_║╚══════════════════════════════╝║_║_║\n";
   std::cout << "(_____)                              (_____) \n";
   break;
   //caso con x=combatti
   case 1:

   std::cout 
  
   << " _____                                _____      \n"
   << "(@___@) Turno di "<< name << std::string(blank,' ') <<"(@___@)\n"
   << " ║ ║ ║╔══════════════════════════════╗║ ║ ║\n" 
   << " ║ ║ ║║ Simbolo [" << p->getNumPlay() <<"]"<< std::string(blank_p,' ') <<"║║ ║ ║\n" 
   << " ║ ║ ║║ HP:  "<< hp << std::string(blank_hp,' ')<<"║║ ║ ║\n"
   << " ║ ║ ║║ ATK: " << atk << std::string(blank_atk,' ')<<"║║ ║ ║\n"
   << " ║ ║ ║║ SCUDO: " << shield << std::string(blank_s,' ') <<"║║ ║ ║\n"
   << " ║ ║ ║╚══════════════════════════════╝║ ║ ║\n"
   << " ║ ║ ║ Cosa vuoi fare?                ║ ║ ║ \n";
   std::cout 
   << " ║ ║ ║╔══════════════════════════════╗║ ║ ║" << std::endl;

   if (c_in_str(cmds, 'n'))
      std::cout << " ║ ║ ║║ Andare a nord----[premere n] ║║ ║ ║\n";
   
   if (c_in_str(cmds, 's'))
      std::cout << " ║ ║ ║║ Andare a sud-----[premere s] ║║ ║ ║\n";
   
   if (c_in_str(cmds, 'e'))
      std::cout << " ║ ║ ║║ Andare a est-----[premere e] ║║ ║ ║\n";
   
   if (c_in_str(cmds, 'o'))  
      std::cout << " ║ ║ ║║ Andare a ovest---[premere o] ║║ ║ ║\n";
   
   if (c_in_str(cmds, 'x'))
      std::cout << " ║ ║ ║║ Combattere-------[premere x] ║║ ║ ║\n";
   
   std::cout << " ║_║_║╚══════════════════════════════╝║_║_║\n";
   std::cout << "(_____)                              (_____) \n";

   break;

}




}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x248, %rsp            # imm = 0x248
movl %edx, %r15d
movq %rsi, -0x30(%rbp)
movq %rdi, %rbx
movq (%rdi), %rsi
leaq -0x130(%rbp), %rdi
callq 0x61a6
movq (%rbx), %rsi
leaq -0x110(%rbp), %rdi
callq 0x618a
movq (%rbx), %rdi
callq 0x61cc
movl %eax, %r13d
movq (%rbx), %rdi
callq 0x61c2
movq %rax, -0x40(%rbp)
pushq $0x14
popq %r12
subl -0x128(%rbp), %r12d
movq (%rbx), %rdi
callq 0x61d4
cmpl $0xa, %eax
jl 0x3984
movq (%rbx), %rdi
callq 0x61d4
cmpl $0x64, %eax
jge 0x3984
pushq $0x11
popq %rax
jmp 0x399c
movq (%rbx), %rdi
callq 0x61d4
xorl %ecx, %ecx
cmpl $0xa, %eax
setl %cl
leaq 0x10(,%rcx,2), %rax
movq %rax, -0x38(%rbp)
leal -0xa(%r13), %eax
xorl %ecx, %ecx
cmpl $0xa, %r13d
setl %cl
cmpl $0x5a, %eax
leaq 0x15(%rcx,%rcx), %r14
pushq $0x16
popq %rax
cmovbq %rax, %r14
movq -0x40(%rbp), %rsi
leal -0xa(%rsi), %ecx
xorl %edx, %edx
cmpl $0xa, %esi
setl %dl
cmpl $0x5a, %ecx
leaq 0x15(%rdx,%rdx), %rcx
cmovbq %rax, %rcx
movq %rcx, -0x50(%rbp)
pushq $0x16
popq %rax
subl -0x108(%rbp), %eax
movslq %r12d, %r12
cltq
movq %rax, -0x48(%rbp)
cmpl $0x1, %r15d
je 0x3dbb
testl %r15d, %r15d
jne 0x419f
movq 0xc5c9(%rip), %rdi      # 0xffd0
leaq 0x47d2(%rip), %rsi      # 0x81e0
callq 0x2120
leaq 0x47f9(%rip), %rsi      # 0x8213
movq %rax, %rdi
callq 0x2120
leaq -0x130(%rbp), %rsi
movq %rax, %rdi
callq 0x20f0
movq %rax, %r15
leaq -0xe0(%rbp), %rax
movq %rax, -0x10(%rax)
leaq -0xf0(%rbp), %rdi
pushq $0x20
popq %rdx
movq %r12, %rsi
callq 0x2150
leaq -0xf0(%rbp), %rsi
movq %r15, %rdi
callq 0x20f0
leaq 0x8f5f(%rip), %rsi      # 0xc9c6
movq %rax, %rdi
callq 0x2120
leaq 0x47af(%rip), %rsi      # 0x8225
movq %rax, %rdi
callq 0x2120
leaq 0x4819(%rip), %rsi      # 0x829e
movq %rax, %rdi
callq 0x2120
movq %rax, %r15
movq (%rbx), %rdi
callq 0x61d4
movq %r15, %rdi
movl %eax, %esi
callq 0x2210
leaq 0x97ab(%rip), %rsi      # 0xd254
movq %rax, %rdi
callq 0x2120
movq %rax, %rbx
leaq -0xc0(%rbp), %rax
movq %rax, -0x10(%rax)
leaq -0xd0(%rbp), %rdi
pushq $0x20
popq %rdx
movq -0x38(%rbp), %rsi
callq 0x2150
leaq -0xd0(%rbp), %rsi
movq %rbx, %rdi
callq 0x20f0
leaq 0x91ee(%rip), %rsi      # 0xccd6
movq %rax, %rdi
callq 0x2120
leaq 0x47c1(%rip), %rsi      # 0x82b8
movq %rax, %rdi
callq 0x2120
movq %rax, %rdi
movl %r13d, %esi
callq 0x2210
movq %rax, %rbx
leaq -0xa0(%rbp), %rax
movq %rax, -0x10(%rax)
leaq -0xb0(%rbp), %rdi
pushq $0x20
popq %rdx
movq %r14, %rsi
callq 0x2150
leaq -0xb0(%rbp), %rsi
movq %rbx, %rdi
callq 0x20f0
leaq 0x9196(%rip), %rsi      # 0xccd6
movq %rax, %rdi
callq 0x2120
leaq 0x477f(%rip), %rsi      # 0x82ce
movq %rax, %rdi
callq 0x2120
movq %rax, %rdi
movq -0x40(%rbp), %rsi
callq 0x2210
movq %rax, %rbx
leaq -0x80(%rbp), %rax
movq %rax, -0x10(%rax)
leaq -0x90(%rbp), %rdi
pushq $0x20
popq %rdx
movq -0x50(%rbp), %rsi
callq 0x2150
leaq -0x90(%rbp), %rsi
movq %rbx, %rdi
callq 0x20f0
leaq 0x913f(%rip), %rsi      # 0xccd6
movq %rax, %rdi
callq 0x2120
leaq 0x473e(%rip), %rsi      # 0x82e4
movq %rax, %rdi
callq 0x2120
leaq -0x110(%rbp), %rsi
movq %rax, %rdi
callq 0x20f0
movq %rax, %rbx
leaq -0x60(%rbp), %rax
movq %rax, -0x10(%rax)
leaq -0x70(%rbp), %rdi
pushq $0x20
popq %rdx
movq -0x48(%rbp), %rsi
callq 0x2150
leaq -0x70(%rbp), %rsi
movq %rbx, %rdi
callq 0x20f0
leaq 0x90eb(%rip), %rsi      # 0xccd6
movq %rax, %rdi
callq 0x2120
leaq 0x4702(%rip), %rsi      # 0x82fc
movq %rax, %rdi
callq 0x2120
leaq 0x476c(%rip), %rsi      # 0x8375
movq %rax, %rdi
callq 0x2120
leaq -0x70(%rbp), %rdi
callq 0x2080
leaq -0x90(%rbp), %rdi
callq 0x2080
leaq -0xb0(%rbp), %rdi
callq 0x2080
leaq -0xd0(%rbp), %rdi
callq 0x2080
leaq -0xf0(%rbp), %rdi
callq 0x2080
movq 0xc37f(%rip), %rdi      # 0xffd0
leaq 0x4757(%rip), %rsi      # 0x83af
callq 0x2120
movq %rax, %rdi
callq 0x2090
leaq -0x270(%rbp), %rdi
movq -0x30(%rbp), %rsi
callq 0x21d0
leaq -0x270(%rbp), %rbx
pushq $0x6e
popq %rsi
movq %rbx, %rdi
callq 0x38e0
movl %eax, %r14d
movq %rbx, %rdi
callq 0x2080
testb %r14b, %r14b
je 0x3caa
movq 0xc332(%rip), %rdi      # 0xffd0
leaq 0x4782(%rip), %rsi      # 0x8427
callq 0x2120
leaq -0x250(%rbp), %rdi
movq -0x30(%rbp), %rsi
callq 0x21d0
leaq -0x250(%rbp), %rbx
pushq $0x73
popq %rsi
movq %rbx, %rdi
callq 0x38e0
movl %eax, %r14d
movq %rbx, %rdi
callq 0x2080
testb %r14b, %r14b
je 0x3cef
movq 0xc2ed(%rip), %rdi      # 0xffd0
leaq 0x477a(%rip), %rsi      # 0x8464
callq 0x2120
leaq -0x230(%rbp), %rdi
movq -0x30(%rbp), %rsi
callq 0x21d0
leaq -0x230(%rbp), %rbx
pushq $0x65
popq %rsi
movq %rbx, %rdi
callq 0x38e0
movl %eax, %r14d
movq %rbx, %rdi
callq 0x2080
testb %r14b, %r14b
je 0x3d34
movq 0xc2a8(%rip), %rdi      # 0xffd0
leaq 0x4772(%rip), %rsi      # 0x84a1
callq 0x2120
leaq -0x210(%rbp), %rdi
movq -0x30(%rbp), %rsi
callq 0x21d0
leaq -0x210(%rbp), %rbx
pushq $0x6f
popq %rsi
movq %rbx, %rdi
callq 0x38e0
movl %eax, %r14d
movq %rbx, %rdi
callq 0x2080
testb %r14b, %r14b
je 0x3d79
movq 0xc263(%rip), %rdi      # 0xffd0
leaq 0x476a(%rip), %rsi      # 0x84de
callq 0x2120
leaq -0x1f0(%rbp), %rdi
movq -0x30(%rbp), %rsi
callq 0x21d0
leaq -0x1f0(%rbp), %rbx
pushq $0x78
popq %rsi
movq %rbx, %rdi
callq 0x38e0
movl %eax, %r14d
movq %rbx, %rdi
callq 0x2080
testb %r14b, %r14b
je 0x4179
leaq 0x4765(%rip), %rsi      # 0x851b
jmp 0x416d
movq 0xc20e(%rip), %rdi      # 0xffd0
leaq 0x4417(%rip), %rsi      # 0x81e0
callq 0x2120
leaq 0x443e(%rip), %rsi      # 0x8213
movq %rax, %rdi
callq 0x2120
leaq -0x130(%rbp), %rsi
movq %rax, %rdi
callq 0x20f0
movq %rax, %r15
leaq -0xe0(%rbp), %rax
movq %rax, -0x10(%rax)
leaq -0xf0(%rbp), %rdi
pushq $0x20
popq %rdx
movq %r12, %rsi
callq 0x2150
leaq -0xf0(%rbp), %rsi
movq %r15, %rdi
callq 0x20f0
leaq 0x8ba4(%rip), %rsi      # 0xc9c6
movq %rax, %rdi
callq 0x2120
leaq 0x43f4(%rip), %rsi      # 0x8225
movq %rax, %rdi
callq 0x2120
leaq 0x445e(%rip), %rsi      # 0x829e
movq %rax, %rdi
callq 0x2120
movq %rax, %r15
movq (%rbx), %rdi
callq 0x61d4
movq %r15, %rdi
movl %eax, %esi
callq 0x2210
leaq 0x93f0(%rip), %rsi      # 0xd254
movq %rax, %rdi
callq 0x2120
movq %rax, %rbx
leaq -0xc0(%rbp), %rax
movq %rax, -0x10(%rax)
leaq -0xd0(%rbp), %rdi
pushq $0x20
popq %rdx
movq -0x38(%rbp), %rsi
callq 0x2150
leaq -0xd0(%rbp), %rsi
movq %rbx, %rdi
callq 0x20f0
leaq 0x8e33(%rip), %rsi      # 0xccd6
movq %rax, %rdi
callq 0x2120
leaq 0x4406(%rip), %rsi      # 0x82b8
movq %rax, %rdi
callq 0x2120
movq %rax, %rdi
movl %r13d, %esi
callq 0x2210
movq %rax, %rbx
leaq -0xa0(%rbp), %rax
movq %rax, -0x10(%rax)
leaq -0xb0(%rbp), %rdi
pushq $0x20
popq %rdx
movq %r14, %rsi
callq 0x2150
leaq -0xb0(%rbp), %rsi
movq %rbx, %rdi
callq 0x20f0
leaq 0x8ddb(%rip), %rsi      # 0xccd6
movq %rax, %rdi
callq 0x2120
leaq 0x43c4(%rip), %rsi      # 0x82ce
movq %rax, %rdi
callq 0x2120
movq %rax, %rdi
movq -0x40(%rbp), %rsi
callq 0x2210
movq %rax, %rbx
leaq -0x80(%rbp), %rax
movq %rax, -0x10(%rax)
leaq -0x90(%rbp), %rdi
pushq $0x20
popq %rdx
movq -0x50(%rbp), %rsi
callq 0x2150
leaq -0x90(%rbp), %rsi
movq %rbx, %rdi
callq 0x20f0
leaq 0x8d84(%rip), %rsi      # 0xccd6
movq %rax, %rdi
callq 0x2120
leaq 0x4383(%rip), %rsi      # 0x82e4
movq %rax, %rdi
callq 0x2120
leaq -0x110(%rbp), %rsi
movq %rax, %rdi
callq 0x20f0
movq %rax, %rbx
leaq -0x60(%rbp), %rax
movq %rax, -0x10(%rax)
leaq -0x70(%rbp), %rdi
pushq $0x20
popq %rdx
movq -0x48(%rbp), %rsi
callq 0x2150
leaq -0x70(%rbp), %rsi
movq %rbx, %rdi
callq 0x20f0
leaq 0x8d30(%rip), %rsi      # 0xccd6
movq %rax, %rdi
callq 0x2120
leaq 0x4347(%rip), %rsi      # 0x82fc
movq %rax, %rdi
callq 0x2120
leaq 0x43b1(%rip), %rsi      # 0x8375
movq %rax, %rdi
callq 0x2120
leaq -0x70(%rbp), %rdi
callq 0x2080
leaq -0x90(%rbp), %rdi
callq 0x2080
leaq -0xb0(%rbp), %rdi
callq 0x2080
leaq -0xd0(%rbp), %rdi
callq 0x2080
leaq -0xf0(%rbp), %rdi
callq 0x2080
movq 0xbfc4(%rip), %rdi      # 0xffd0
leaq 0x439c(%rip), %rsi      # 0x83af
callq 0x2120
movq %rax, %rdi
callq 0x2090
leaq -0x1d0(%rbp), %rdi
movq -0x30(%rbp), %rsi
callq 0x21d0
leaq -0x1d0(%rbp), %rbx
pushq $0x6e
popq %rsi
movq %rbx, %rdi
callq 0x38e0
movl %eax, %r14d
movq %rbx, %rdi
callq 0x2080
testb %r14b, %r14b
je 0x4065
movq 0xbf77(%rip), %rdi      # 0xffd0
leaq 0x43c7(%rip), %rsi      # 0x8427
callq 0x2120
leaq -0x1b0(%rbp), %rdi
movq -0x30(%rbp), %rsi
callq 0x21d0
leaq -0x1b0(%rbp), %rbx
pushq $0x73
popq %rsi
movq %rbx, %rdi
callq 0x38e0
movl %eax, %r14d
movq %rbx, %rdi
callq 0x2080
testb %r14b, %r14b
je 0x40aa
movq 0xbf32(%rip), %rdi      # 0xffd0
leaq 0x43bf(%rip), %rsi      # 0x8464
callq 0x2120
leaq -0x190(%rbp), %rdi
movq -0x30(%rbp), %rsi
callq 0x21d0
leaq -0x190(%rbp), %rbx
pushq $0x65
popq %rsi
movq %rbx, %rdi
callq 0x38e0
movl %eax, %r14d
movq %rbx, %rdi
callq 0x2080
testb %r14b, %r14b
je 0x40ef
movq 0xbeed(%rip), %rdi      # 0xffd0
leaq 0x43b7(%rip), %rsi      # 0x84a1
callq 0x2120
leaq -0x170(%rbp), %rdi
movq -0x30(%rbp), %rsi
callq 0x21d0
leaq -0x170(%rbp), %rbx
pushq $0x6f
popq %rsi
movq %rbx, %rdi
callq 0x38e0
movl %eax, %r14d
movq %rbx, %rdi
callq 0x2080
testb %r14b, %r14b
je 0x4134
movq 0xbea8(%rip), %rdi      # 0xffd0
leaq 0x43af(%rip), %rsi      # 0x84de
callq 0x2120
leaq -0x150(%rbp), %rdi
movq -0x30(%rbp), %rsi
callq 0x21d0
leaq -0x150(%rbp), %rbx
pushq $0x78
popq %rsi
movq %rbx, %rdi
callq 0x38e0
movl %eax, %r14d
movq %rbx, %rdi
callq 0x2080
testb %r14b, %r14b
je 0x4179
leaq 0x4493(%rip), %rsi      # 0x8600
movq 0xbe5c(%rip), %rdi      # 0xffd0
callq 0x2120
movq 0xbe50(%rip), %rdi      # 0xffd0
leaq 0x43d1(%rip), %rsi      # 0x8558
callq 0x2120
movq 0xbe3d(%rip), %rdi      # 0xffd0
leaq 0x4437(%rip), %rsi      # 0x85d1
callq 0x2120
leaq -0x110(%rbp), %rdi
callq 0x2080
leaq -0x130(%rbp), %rdi
callq 0x2080
addq $0x248, %rsp            # imm = 0x248
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x41f8
jmp 0x41f8
jmp 0x420b
jmp 0x420b
jmp 0x421e
jmp 0x421e
jmp 0x4233
jmp 0x4233
jmp 0x4244
jmp 0x4244
jmp 0x4244
jmp 0x4244
movq %rax, %rbx
jmp 0x4253
jmp 0x41e8
movq %rax, %rbx
leaq -0x70(%rbp), %rdi
callq 0x2080
jmp 0x41fb
jmp 0x41f8
movq %rax, %rbx
leaq -0x90(%rbp), %rdi
callq 0x2080
jmp 0x420e
jmp 0x420b
movq %rax, %rbx
leaq -0xb0(%rbp), %rdi
callq 0x2080
jmp 0x4221
jmp 0x421e
movq %rax, %rbx
leaq -0xd0(%rbp), %rdi
callq 0x2080
jmp 0x4236
jmp 0x4244
jmp 0x4233
movq %rax, %rbx
leaq -0xf0(%rbp), %rdi
callq 0x2080
jmp 0x4247
movq %rax, %rbx
leaq -0x110(%rbp), %rdi
callq 0x2080
leaq -0x130(%rbp), %rdi
callq 0x2080
movq %rbx, %rdi
callq 0x2220