// File: kongrigoriou[P]Text-Based-RPG/src/Grid.cpp
// Function: Grid::enter_battle()
void Grid::enter_battle(){

    int BattleFlag = 0;
    string input;
    list <Monster*>::iterator mit;

    while(BattleFlag == 0){
        cout << "You are about to fight with monsters" << endl;
        cout << "Choose your next move!" << endl;
        cout << "1: display your teams' stats \n"
            << "2: display monsters stats \n" 
            << "3: to start the battle " << endl;
        
        cin >> input;

        if(input == "1"){
            team->display_myHeroes();
        }else if(input == "2"){
            for(mit = Monsters.begin(); mit != Monsters.end(); ++mit){
                (*mit)->display_stats();
            }
        }else if(input == "3"){
            BattleFlag = battle();
            BattleFlag = 1;
        }else{
            cout << "Wrong input. Try again" << endl;
        }
    }

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x60(%rbp)
movl $0x0, -0xc(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x32c0
leaq -0x38(%rbp), %rdi
callq 0x117a0
cmpl $0x0, -0xc(%rbp)
jne 0xf937
movq 0xf8af(%rip), %rdi      # 0x1efd0
leaq 0x63e4(%rip), %rsi      # 0x15b0c
callq 0x31e0
movq %rax, -0x68(%rbp)
jmp 0xf733
movq -0x68(%rbp), %rdi
movq 0xf882(%rip), %rsi      # 0x1efc0
callq 0x3210
jmp 0xf745
movq 0xf884(%rip), %rdi      # 0x1efd0
leaq 0x63de(%rip), %rsi      # 0x15b31
callq 0x31e0
movq %rax, -0x70(%rbp)
jmp 0xf75e
movq -0x70(%rbp), %rdi
movq 0xf857(%rip), %rsi      # 0x1efc0
callq 0x3210
jmp 0xf770
movq 0xf859(%rip), %rdi      # 0x1efd0
leaq 0x63ca(%rip), %rsi      # 0x15b48
callq 0x31e0
movq %rax, -0x78(%rbp)
jmp 0xf789
movq -0x78(%rbp), %rdi
leaq 0x63d3(%rip), %rsi      # 0x15b67
callq 0x31e0
movq %rax, -0x80(%rbp)
jmp 0xf79f
movq -0x80(%rbp), %rdi
leaq 0x63d9(%rip), %rsi      # 0x15b83
callq 0x31e0
movq %rax, -0x88(%rbp)
jmp 0xf7b8
movq -0x88(%rbp), %rdi
movq 0xf7fa(%rip), %rsi      # 0x1efc0
callq 0x3210
jmp 0xf7cd
movq 0xf80c(%rip), %rdi      # 0x1efe0
leaq -0x30(%rbp), %rsi
callq 0x32a0
jmp 0xf7df
leaq 0x5ed9(%rip), %rsi      # 0x156bf
leaq -0x30(%rbp), %rdi
callq 0x7f70
movb %al, -0x89(%rbp)
jmp 0xf7f7
movb -0x89(%rbp), %al
testb $0x1, %al
jne 0xf803
jmp 0xf831
movq -0x60(%rbp), %rax
movq 0x70(%rax), %rdi
callq 0x139c0
jmp 0xf812
jmp 0xf932
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x3120
jmp 0xf949
leaq 0x5e89(%rip), %rsi      # 0x156c1
leaq -0x30(%rbp), %rdi
callq 0x7f70
movb %al, -0x8a(%rbp)
jmp 0xf849
movb -0x8a(%rbp), %al
testb $0x1, %al
jne 0xf855
jmp 0xf8b4
movq -0x60(%rbp), %rdi
addq $0x48, %rdi
callq 0x117c0
movq %rax, -0x50(%rbp)
movq -0x50(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x60(%rbp), %rdi
addq $0x48, %rdi
callq 0x11820
movq %rax, -0x58(%rbp)
leaq -0x38(%rbp), %rdi
leaq -0x58(%rbp), %rsi
callq 0x117f0
testb $0x1, %al
jne 0xf892
jmp 0xf8b2
leaq -0x38(%rbp), %rdi
callq 0x11850
movq (%rax), %rdi
callq 0xb080
jmp 0xf8a5
jmp 0xf8a7
leaq -0x38(%rbp), %rdi
callq 0x118b0
jmp 0xf86e
jmp 0xf930
leaq 0x5ea9(%rip), %rsi      # 0x15764
leaq -0x30(%rbp), %rdi
callq 0x7f70
movb %al, -0x8b(%rbp)
jmp 0xf8cc
movb -0x8b(%rbp), %al
testb $0x1, %al
jne 0xf8d8
jmp 0xf8fb
movq -0x60(%rbp), %rdi
callq 0xf960
movl %eax, -0x90(%rbp)
jmp 0xf8e9
movl -0x90(%rbp), %eax
movl %eax, -0xc(%rbp)
movl $0x1, -0xc(%rbp)
jmp 0xf92e
movq 0xf6ce(%rip), %rdi      # 0x1efd0
leaq 0x6292(%rip), %rsi      # 0x15b9b
callq 0x31e0
movq %rax, -0x98(%rbp)
jmp 0xf917
movq -0x98(%rbp), %rdi
movq 0xf69b(%rip), %rsi      # 0x1efc0
callq 0x3210
jmp 0xf92c
jmp 0xf92e
jmp 0xf930
jmp 0xf932
jmp 0xf710
leaq -0x30(%rbp), %rdi
callq 0x3120
addq $0xa0, %rsp
popq %rbp
retq
movq -0x40(%rbp), %rdi
callq 0x3330
nopw %cs:(%rax,%rax)