// File: wrighteagle2d[P]wrighteaglebase/Debug/../src/WorldState.cpp
// Function: WorldStateUpdater::EstimatePlayers()
void WorldStateUpdater::EstimatePlayers() {
  //看到速度的下一周期预测队员将按照前一周期的速度继续运行
  for (Unum i = 1; i <= TEAMSIZE; i++) {
    if (i != mSelfUnum) {

      if (Teammate(i).GetVelDelay() <= 1) {
        Teammate(i).UpdateVel(
            Teammate(i).GetVel() / Teammate(i).GetPlayerDecay(),
            Teammate(i).GetVelDelay(), Teammate(i).GetVelConf());
      }
      ComputeNextCycle(Teammate(i),
                       PlayerParam::instance()
                           .HeteroPlayer(Teammate(i).GetPlayerType())
                           .playerDecay());
    }

    if (Opponent(i).GetVelDelay() <= 1) {
      Opponent(i).UpdateVel(Opponent(i).GetVel() / Opponent(i).GetPlayerDecay(),
                            Opponent(i).GetVelDelay(),
                            Opponent(i).GetVelConf());
    }
    ComputeNextCycle(Opponent(i), PlayerParam::instance()
                                      .HeteroPlayer(Opponent(i).GetPlayerType())
                                      .playerDecay());
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x48(%rbp)
movl $0x1, -0xc(%rbp)
cmpl $0xb, -0xc(%rbp)
jg 0xbb2a2
movq -0x48(%rbp), %rcx
movl -0xc(%rbp), %eax
cmpl 0x14(%rcx), %eax
je 0xbb17d
movq -0x48(%rbp), %rdi
movl -0xc(%rbp), %esi
callq 0xbc780
movq %rax, %rdi
callq 0x28a30
cmpl $0x1, %eax
jg 0xbb127
movq -0x48(%rbp), %rdi
movl -0xc(%rbp), %esi
callq 0xbc780
movq -0x48(%rbp), %rdi
movq %rax, -0x58(%rbp)
movl -0xc(%rbp), %esi
callq 0xbc780
movq %rax, %rdi
callq 0x10a80
movq -0x48(%rbp), %rdi
movq %rax, -0x60(%rbp)
movl -0xc(%rbp), %esi
callq 0xbc780
movq %rax, %rdi
callq 0x11740
movq -0x60(%rbp), %rdi
movsd (%rax), %xmm0
callq 0x1eef0
movq -0x48(%rbp), %rdi
movsd %xmm0, -0x20(%rbp)
movsd %xmm1, -0x18(%rbp)
movl -0xc(%rbp), %esi
callq 0xbc780
movq %rax, %rdi
callq 0x28a30
movq -0x48(%rbp), %rdi
movl %eax, -0x4c(%rbp)
movl -0xc(%rbp), %esi
callq 0xbc780
movq %rax, %rdi
callq 0x32aa0
movq -0x58(%rbp), %rdi
movl -0x4c(%rbp), %edx
movsd (%rax), %xmm0
leaq -0x20(%rbp), %rsi
callq 0x142a0
movq -0x48(%rbp), %rdi
movl -0xc(%rbp), %esi
callq 0xbc780
movq %rax, -0x68(%rbp)
callq 0x798a0
movq -0x48(%rbp), %rdi
movq %rax, -0x70(%rbp)
movl -0xc(%rbp), %esi
callq 0xbc780
movq %rax, %rdi
callq 0x10a60
movq -0x70(%rbp), %rdi
movl %eax, -0x24(%rbp)
leaq -0x24(%rbp), %rsi
callq 0x129d0
movq %rax, %rdi
callq 0x12fe0
movq -0x48(%rbp), %rdi
movq -0x68(%rbp), %rsi
movsd (%rax), %xmm0
callq 0xbb2b0
movq -0x48(%rbp), %rdi
movl -0xc(%rbp), %esi
callq 0xbc7e0
movq %rax, %rdi
callq 0x28a30
cmpl $0x1, %eax
jg 0xbb232
movq -0x48(%rbp), %rdi
movl -0xc(%rbp), %esi
callq 0xbc7e0
movq -0x48(%rbp), %rdi
movq %rax, -0x80(%rbp)
movl -0xc(%rbp), %esi
callq 0xbc7e0
movq %rax, %rdi
callq 0x10a80
movq -0x48(%rbp), %rdi
movq %rax, -0x88(%rbp)
movl -0xc(%rbp), %esi
callq 0xbc7e0
movq %rax, %rdi
callq 0x11740
movq -0x88(%rbp), %rdi
movsd (%rax), %xmm0
callq 0x1eef0
movq -0x48(%rbp), %rdi
movsd %xmm0, -0x38(%rbp)
movsd %xmm1, -0x30(%rbp)
movl -0xc(%rbp), %esi
callq 0xbc7e0
movq %rax, %rdi
callq 0x28a30
movq -0x48(%rbp), %rdi
movl %eax, -0x74(%rbp)
movl -0xc(%rbp), %esi
callq 0xbc7e0
movq %rax, %rdi
callq 0x32aa0
movq -0x80(%rbp), %rdi
movl -0x74(%rbp), %edx
movsd (%rax), %xmm0
leaq -0x38(%rbp), %rsi
callq 0x142a0
movq -0x48(%rbp), %rdi
movl -0xc(%rbp), %esi
callq 0xbc7e0
movq %rax, -0x90(%rbp)
callq 0x798a0
movq -0x48(%rbp), %rdi
movq %rax, -0x98(%rbp)
movl -0xc(%rbp), %esi
callq 0xbc7e0
movq %rax, %rdi
callq 0x10a60
movq -0x98(%rbp), %rdi
movl %eax, -0x3c(%rbp)
leaq -0x3c(%rbp), %rsi
callq 0x129d0
movq %rax, %rdi
callq 0x12fe0
movq -0x48(%rbp), %rdi
movq -0x90(%rbp), %rsi
movsd (%rax), %xmm0
callq 0xbb2b0
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0xbb05e
addq $0xa0, %rsp
popq %rbp
retq
nopl (%rax,%rax)