// File: MatthewZMD[P]TetrisDual/concreteboard.cc
// Function: ConcreteBoard::display()
std::vector<std::vector<char>> ConcreteBoard::display() {
	std::vector<std::vector<char>> displayBoard;
	std::vector<char> temp;
	for (int i = 0; i < 18; ++i) {
		for (int j = 0; j < 11; ++j) {
			switch(allCells[i][j].type) {
				case CellType::I:
					temp.emplace_back('I');
					break;
				case CellType::J:
					temp.emplace_back('J');
					break;
				case CellType::L:
					temp.emplace_back('L');
					break;
				case CellType::O:
					temp.emplace_back('O');
					break;
				case CellType::S:
					temp.emplace_back('S');
					break;
				case CellType::Z:
					temp.emplace_back('Z');
					break;
				case CellType::T:
					temp.emplace_back('T');
					break;
				case CellType::E:
					temp.emplace_back(' ');
					break;
				case CellType::Star:
					temp.emplace_back('*');
					break;
			}
		}
		displayBoard.emplace_back(temp);
		temp.clear();
	}
	return displayBoard;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movq %rdi, -0x70(%rbp)
movq %rdi, %rax
movq %rax, -0x68(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x60(%rbp)
movb $0x0, -0x11(%rbp)
callq 0xee90
leaq -0x30(%rbp), %rdi
callq 0x141a0
movl $0x0, -0x34(%rbp)
cmpl $0x12, -0x34(%rbp)
jge 0x137e8
movl $0x0, -0x38(%rbp)
cmpl $0xb, -0x38(%rbp)
jge 0x137c2
movq -0x60(%rbp), %rdi
addq $0x78, %rdi
movslq -0x34(%rbp), %rsi
callq 0x13d50
movq %rax, %rdi
movslq -0x38(%rbp), %rsi
callq 0x13d70
movl 0x64(%rax), %eax
movq %rax, -0x78(%rbp)
subq $0x8, %rax
ja 0x137b2
movq -0x78(%rbp), %rax
leaq 0x19d19(%rip), %rcx     # 0x2d3dc
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movb $0x49, -0x39(%rbp)
leaq -0x30(%rbp), %rdi
leaq -0x39(%rbp), %rsi
callq 0x141c0
jmp 0x136df
jmp 0x137b2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x30(%rbp), %rdi
callq 0xca40
movq -0x70(%rbp), %rdi
callq 0xc240
jmp 0x13811
movb $0x4a, -0x4d(%rbp)
leaq -0x30(%rbp), %rdi
leaq -0x4d(%rbp), %rsi
callq 0x141c0
jmp 0x1371a
jmp 0x137b2
movb $0x4c, -0x4e(%rbp)
leaq -0x30(%rbp), %rdi
leaq -0x4e(%rbp), %rsi
callq 0x141c0
jmp 0x13732
jmp 0x137b2
movb $0x4f, -0x4f(%rbp)
leaq -0x30(%rbp), %rdi
leaq -0x4f(%rbp), %rsi
callq 0x141c0
jmp 0x13747
jmp 0x137b2
movb $0x53, -0x50(%rbp)
leaq -0x30(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x141c0
jmp 0x1375c
jmp 0x137b2
movb $0x5a, -0x51(%rbp)
leaq -0x30(%rbp), %rdi
leaq -0x51(%rbp), %rsi
callq 0x141c0
jmp 0x13771
jmp 0x137b2
movb $0x54, -0x52(%rbp)
leaq -0x30(%rbp), %rdi
leaq -0x52(%rbp), %rsi
callq 0x141c0
jmp 0x13786
jmp 0x137b2
movb $0x20, -0x53(%rbp)
leaq -0x30(%rbp), %rdi
leaq -0x53(%rbp), %rsi
callq 0x141c0
jmp 0x1379b
jmp 0x137b2
movb $0x2a, -0x54(%rbp)
leaq -0x30(%rbp), %rdi
leaq -0x54(%rbp), %rsi
callq 0x141c0
jmp 0x137b0
jmp 0x137b2
jmp 0x137b4
movl -0x38(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x38(%rbp)
jmp 0x13680
movq -0x70(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x14240
jmp 0x137d1
leaq -0x30(%rbp), %rdi
callq 0x142c0
movl -0x34(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
jmp 0x1366f
movb $0x1, -0x11(%rbp)
leaq -0x30(%rbp), %rdi
callq 0xca40
testb $0x1, -0x11(%rbp)
jne 0x13804
movq -0x70(%rbp), %rdi
callq 0xc240
movq -0x68(%rbp), %rax
addq $0x80, %rsp
popq %rbp
retq
movq -0x48(%rbp), %rdi
callq 0x6630
nopw (%rax,%rax)