// File: nickgammon[P]tinymudserver/commands.cpp
// Function: DoGoTo(tPlayer*, std::istream&)
void DoGoTo (tPlayer * p, istream & sArgs)
  {
  p->NeedFlag ("can_goto");

  int room;
  sArgs >> room;
  
  // check room number supplied OK
  if (sArgs.fail ())
    throw runtime_error ("Go to which room?");

  NoMore (p, sArgs);  // check no more input

  // move player
  PlayerToRoom (p, room,
                MAKE_STRING ("You go to room " << room << "\n"),
                p->playername + " disappears in a puff of smoke!\n",
                p->playername + " appears in a puff of smoke!\n");
  
  }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x270, %rsp            # imm = 0x270
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x230(%rbp)
leaq -0x31(%rbp), %rdi
movq %rdi, -0x228(%rbp)
callq 0x46e0
movq -0x228(%rbp), %rdx
leaq 0xa018(%rip), %rsi      # 0x1c5a4
leaq -0x30(%rbp), %rdi
callq 0x67d0
jmp 0x12597
movq -0x230(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x82b0
jmp 0x125a9
leaq -0x30(%rbp), %rdi
callq 0x47d8
leaq -0x31(%rbp), %rdi
callq 0x44a0
movq -0x10(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0x42d0
movq -0x10(%rbp), %rdi
movq (%rdi), %rax
addq -0x18(%rax), %rdi
callq 0x4030
testb $0x1, %al
jne 0x125e1
jmp 0x1266e
movl $0x10, %edi
callq 0x4250
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x238(%rbp)
leaq 0x9fae(%rip), %rsi      # 0x1c5ad
callq 0x41c0
jmp 0x12606
movq -0x238(%rbp), %rdi
movq 0x169dc(%rip), %rsi     # 0x28ff0
movq 0x1699d(%rip), %rdx     # 0x28fb8
callq 0x46a0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x12643
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x47d8
leaq -0x31(%rbp), %rdi
callq 0x44a0
jmp 0x12815
movq -0x238(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
callq 0x4350
jmp 0x12815
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x10580
movq -0x8(%rbp), %rax
movq %rax, -0x250(%rbp)
leaq -0x1e0(%rbp), %rdi
movq %rdi, -0x248(%rbp)
callq 0x4590
movq -0x248(%rbp), %rdi
leaq -0x9a97(%rip), %rsi     # 0x8c10
callq 0x8be0
movq %rax, -0x240(%rbp)
jmp 0x126b5
movq -0x240(%rbp), %rdi
leaq 0x9efc(%rip), %rsi      # 0x1c5bf
callq 0x148f0
movq %rax, -0x258(%rbp)
jmp 0x126d1
movq -0x258(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0x148c0
movq %rax, -0x260(%rbp)
jmp 0x126ea
movq -0x260(%rbp), %rdi
leaq 0x99dc(%rip), %rsi      # 0x1c0d4
callq 0x14890
movq %rax, -0x268(%rbp)
jmp 0x12706
movq -0x268(%rbp), %rsi
leaq -0x68(%rbp), %rdi
callq 0x4440
jmp 0x12718
movq -0x8(%rbp), %rsi
addq $0x90, %rsi
leaq 0x9ea5(%rip), %rdx      # 0x1c5cf
leaq -0x200(%rbp), %rdi
callq 0x138e0
jmp 0x12738
movq -0x8(%rbp), %rsi
addq $0x90, %rsi
leaq 0x9ea6(%rip), %rdx      # 0x1c5f0
leaq -0x220(%rbp), %rdi
callq 0x138e0
jmp 0x12758
movq -0x250(%rbp), %rdi
leaq -0x48(%rbp), %rsi
leaq -0x68(%rbp), %rdx
leaq -0x200(%rbp), %rcx
leaq -0x220(%rbp), %r8
callq 0x108d0
jmp 0x1277c
leaq -0x220(%rbp), %rdi
callq 0x47d8
leaq -0x200(%rbp), %rdi
callq 0x47d8
leaq -0x68(%rbp), %rdi
callq 0x47d8
leaq -0x1e0(%rbp), %rdi
callq 0x4100
addq $0x270, %rsp            # imm = 0x270
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x12809
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x12800
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x127f4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x220(%rbp), %rdi
callq 0x47d8
leaq -0x200(%rbp), %rdi
callq 0x47d8
leaq -0x68(%rbp), %rdi
callq 0x47d8
leaq -0x1e0(%rbp), %rdi
callq 0x4100
movq -0x40(%rbp), %rdi
callq 0x46d0
nop