// File: wrighteagle2d[P]wrighteaglebase/Debug/../src/WorldState.cpp
// Function: WorldState::WorldState(HistoryState*)
WorldState::WorldState(HistoryState *history_state)
    : mpHistory(history_state), mCurrentTime(Time(-3, 0)),
      mPlayMode(PM_No_Mode), mPlayModeTime(Time(-3, 0)), mIsBallDropped(false),
      mTeammateGoalieUnum(0), mOpponentGoalieUnum(0), mTeammateScore(0),
      mOpponentScore(0), mIsCycleStopped(false) {
  //为各个球员分配号码
  for (Unum i = 1; i <= TEAMSIZE; i++) {
    mTeammate[i].UpdateUnum(i);
    mOpponent[i].UpdateUnum(-i);

    mPlayerList.push_back(&mTeammate[i]);
    mPlayerList.push_back(&mOpponent[i]);
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x90, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x40(%rbp)
leaq 0x52a46(%rip), %rax     # 0xfdd78
movq %rax, (%rdi)
movq -0x10(%rbp), %rax
movq %rax, 0x8(%rdi)
addq $0x10, %rdi
movl $0xfffffffd, %esi       # imm = 0xFFFFFFFD
movl %esi, -0x50(%rbp)
xorl %edx, %edx
movl %edx, -0x4c(%rbp)
callq 0x13c70
movl -0x50(%rbp), %esi
movl -0x4c(%rbp), %edx
movq -0x40(%rbp), %rdi
movl $0x0, 0x1c(%rdi)
addq $0x24, %rdi
callq 0x13c70
movq -0x40(%rbp), %rdi
movb $0x0, 0x2c(%rdi)
addq $0x30, %rdi
movq %rdi, -0x48(%rbp)
callq 0x6e0c0
movq -0x40(%rbp), %rdi
addq $0xa8, %rdi
movq %rdi, -0x38(%rbp)
callq 0x6e130
jmp 0xab398
movq -0x40(%rbp), %rdi
addq $0x10d0, %rdi           # imm = 0x10D0
movq %rdi, -0x58(%rbp)
callq 0x6e130
jmp 0xab3ae
movq -0x40(%rbp), %rdi
addq $0x20f8, %rdi           # imm = 0x20F8
movq %rdi, -0x60(%rbp)
callq 0xbc4c0
movq -0x40(%rbp), %rax
movl $0x0, 0x2110(%rax)
movl $0x0, 0x2114(%rax)
movl $0x0, 0x2118(%rax)
movl $0x0, 0x211c(%rax)
movb $0x0, 0x2120(%rax)
movl $0x1, -0x20(%rbp)
cmpl $0xb, -0x20(%rbp)
jg 0xab52c
movq -0x40(%rbp), %rdi
addq $0xa8, %rdi
leaq -0x20(%rbp), %rsi
callq 0x1aa00
movq %rax, -0x68(%rbp)
jmp 0xab420
movq -0x68(%rbp), %rdi
movl -0x20(%rbp), %esi
callq 0xbc4e0
jmp 0xab42e
movq -0x40(%rbp), %rdi
addq $0x10d0, %rdi           # imm = 0x10D0
leaq -0x20(%rbp), %rsi
callq 0x1aa00
movq %rax, -0x70(%rbp)
jmp 0xab448
movq -0x70(%rbp), %rdi
movl -0x20(%rbp), %esi
negl %esi
callq 0xbc4e0
jmp 0xab458
movq -0x40(%rbp), %rdi
movq %rdi, %rax
addq $0x20f8, %rax           # imm = 0x20F8
movq %rax, -0x80(%rbp)
addq $0xa8, %rdi
leaq -0x20(%rbp), %rsi
callq 0x1aa00
movq %rax, -0x78(%rbp)
jmp 0xab47f
movq -0x80(%rbp), %rdi
movq -0x78(%rbp), %rax
movq %rax, -0x28(%rbp)
leaq -0x28(%rbp), %rsi
callq 0xbc500
jmp 0xab496
movq -0x40(%rbp), %rdi
movq %rdi, %rax
addq $0x20f8, %rax           # imm = 0x20F8
movq %rax, -0x90(%rbp)
addq $0x10d0, %rdi           # imm = 0x10D0
leaq -0x20(%rbp), %rsi
callq 0x1aa00
movq %rax, -0x88(%rbp)
jmp 0xab4c3
movq -0x90(%rbp), %rdi
movq -0x88(%rbp), %rax
movq %rax, -0x30(%rbp)
leaq -0x30(%rbp), %rsi
callq 0xbc500
jmp 0xab4e0
jmp 0xab4e2
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
jmp 0xab3fc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0xab53e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0xab535
movq -0x60(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
callq 0xab080
movq -0x58(%rbp), %rdi
callq 0x6e150
jmp 0xab535
addq $0x90, %rsp
popq %rbp
retq
movq -0x38(%rbp), %rdi
callq 0x6e150
movq -0x48(%rbp), %rdi
callq 0x23f80
movq -0x18(%rbp), %rdi
callq 0xaa60