// File: rcolomina[P]the_charmed_house/src/operaciones.cpp
// Function: Coger::execute()
void Coger::execute()
{

//	  cout<<(*escenario)->Name()<<endl;
//	  cout<<"Parametro "<<parametro<<endl;
    // Existe el objeto especificado en parametro 1
    if((*scene)->get_existe_objeto_escenario(parametro))
    {			 
        Objeto *objeto=(*scene)->get_objeto(parametro);
        //Si se puede tirar del objeto pasado por parametro
        if(!objeto->get_value<bool>("fix"))
        {
            if(objeto->get_value<bool>("alcanzable"))
            {
                inventario.insertar_objeto(objeto);
                (*scene)->eliminar(objeto);
                cout<<Color::yellow<<"Has cogido "<<parametro<<Color::def<<endl;
            }
            else
                cout<<Color::red<<"No se puedes coger porque no es alcanzable "<<Color::def<<endl;
        }
        else
            cout<<Color::red<<"No puedes cogerlo porque esta fijado."<<parametro<<Color::def<<endl;			 
    }
    else
    {
        if(parametro!="")
            cout<<""<<parametro<<" no se puede coger."<<endl;
        else
            cout<<Color::magenta<<"Coger que?"<<Color::def<<endl;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rcx
movq %rcx, -0x80(%rbp)
movq 0x28(%rcx), %rax
movq 0x38(%rcx), %rsi
movq (%rax), %rax
movq %rax, -0x78(%rbp)
leaq -0x28(%rbp), %rdi
movq %rdi, -0x70(%rbp)
callq 0x5180
movq -0x78(%rbp), %rdi
movq -0x70(%rbp), %rsi
callq 0x2c800
movb %al, -0x61(%rbp)
jmp 0x458b5
leaq -0x28(%rbp), %rdi
callq 0x5748
movb -0x61(%rbp), %al
testb $0x1, %al
jne 0x458ca
jmp 0x45a93
movq -0x80(%rbp), %rcx
movq 0x28(%rcx), %rax
movq 0x38(%rcx), %rsi
movq (%rax), %rax
movq %rax, -0x98(%rbp)
leaq -0x60(%rbp), %rdi
movq %rdi, -0x90(%rbp)
callq 0x5180
movq -0x98(%rbp), %rdi
movq -0x90(%rbp), %rsi
callq 0x466d0
movq %rax, -0x88(%rbp)
jmp 0x4590c
leaq -0x60(%rbp), %rdi
callq 0x5748
movq -0x88(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rdi
leaq 0xa78a(%rip), %rsi      # 0x500b5
callq 0x41690
testb $0x1, %al
jne 0x45a3e
movq -0x40(%rbp), %rdi
leaq 0xb43c(%rip), %rsi      # 0x50d7f
callq 0x41690
testb $0x1, %al
jne 0x45951
jmp 0x459fc
movq -0x80(%rbp), %rax
movq 0x30(%rax), %rdi
movq -0x40(%rbp), %rsi
callq 0x388b0
movq -0x80(%rbp), %rax
movq 0x28(%rax), %rax
movq (%rax), %rdi
movq -0x40(%rbp), %rsi
callq 0x2caf0
movq 0x2b63b(%rip), %rdi     # 0x70fb8
leaq 0x32dfc(%rip), %rsi     # 0x78780
callq 0x46680
movq %rax, %rdi
leaq 0xb5dd(%rip), %rsi      # 0x50f70
callq 0x53a0
movq %rax, %rdi
movq -0x80(%rbp), %rax
movq 0x38(%rax), %rsi
callq 0x5350
movq %rax, %rdi
leaq 0x32dbe(%rip), %rsi     # 0x78770
callq 0x46680
movq %rax, %rdi
movq 0x2b5cf(%rip), %rsi     # 0x70f90
callq 0x5400
jmp 0x45a3c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x5748
jmp 0x45b3b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x60(%rbp), %rdi
callq 0x5748
jmp 0x45b3b
movq 0x2b5b5(%rip), %rdi     # 0x70fb8
leaq 0x32d6e(%rip), %rsi     # 0x78778
callq 0x46680
movq %rax, %rdi
leaq 0xb563(%rip), %rsi      # 0x50f7c
callq 0x53a0
movq %rax, %rdi
leaq 0x32d48(%rip), %rsi     # 0x78770
callq 0x46680
movq %rax, %rdi
movq 0x2b559(%rip), %rsi     # 0x70f90
callq 0x5400
jmp 0x45a8e
movq 0x2b573(%rip), %rdi     # 0x70fb8
leaq 0x32d2c(%rip), %rsi     # 0x78778
callq 0x46680
movq %rax, %rdi
leaq 0xb54d(%rip), %rsi      # 0x50fa8
callq 0x53a0
movq %rax, %rdi
movq -0x80(%rbp), %rax
movq 0x38(%rax), %rsi
callq 0x5350
movq %rax, %rdi
leaq 0x32cf6(%rip), %rsi     # 0x78770
callq 0x46680
movq %rax, %rdi
movq 0x2b507(%rip), %rsi     # 0x70f90
callq 0x5400
jmp 0x45b32
movq -0x80(%rbp), %rax
movq 0x38(%rax), %rdi
leaq 0xab99(%rip), %rsi      # 0x5063b
callq 0x2d830
testb $0x1, %al
jne 0x45aad
jmp 0x45af0
movq 0x2b504(%rip), %rdi     # 0x70fb8
leaq 0xab80(%rip), %rsi      # 0x5063b
callq 0x53a0
movq %rax, %rdi
movq -0x80(%rbp), %rax
movq 0x38(%rax), %rsi
callq 0x5350
movq %rax, %rdi
leaq 0xb4f4(%rip), %rsi      # 0x50fce
callq 0x53a0
movq %rax, %rdi
movq 0x2b4a7(%rip), %rsi     # 0x70f90
callq 0x5400
jmp 0x45b30
movq 0x2b4c1(%rip), %rdi     # 0x70fb8
leaq 0x32c8a(%rip), %rsi     # 0x78788
callq 0x46680
movq %rax, %rdi
leaq 0xb4d5(%rip), %rsi      # 0x50fe2
callq 0x53a0
movq %rax, %rdi
leaq 0x32c54(%rip), %rsi     # 0x78770
callq 0x46680
movq %rax, %rdi
movq 0x2b465(%rip), %rsi     # 0x70f90
callq 0x5400
jmp 0x45b32
addq $0xa0, %rsp
popq %rbp
retq
movq -0x30(%rbp), %rdi
callq 0x56c0
nopw %cs:(%rax,%rax)