// File: /workspace/github_cpp_makefile_star2_O1/wrighteagle2d[P]wrighteaglebase/Debug/../src/Observer.cpp
// Function: Observer::Observer()
Observer::Observer() {
  mCurrentTime = Time(-1, 0);
  mOurInitSide = '?';
  mOurSide = '?';
  mOppSide = '?';
  mSelfUnum = 0;
  mOppGoalieUnum = 0;
  mOurScore = 0;
  mOppScore = 0;

  mPlayMode = PM_Before_Kick_Off;

  mLastCycleBeginRealTime = RealTime(0, 0);
  mLastSightRealTime = RealTime(0, 0);

  Reset();

  mIsBeginDecision = false;
  mSenseArrived = false;
  mSightArrived = false;
  mThinkArrived = false;

  mBallKickTime = Time(-3, 0);
  mBallPosByKick = Vector(0.0, 0.0);
  mBallVelByKick = Vector(0.0, 0.0);

  mPlayerMoveTime = Time(-3, 0);
  mPlayerPosByMove = Vector(0.0, 0.0);
  mPlayerVelByMove = Vector(0.0, 0.0);

  mPlayerDashTime = Time(-3, 0);
  mPlayerPosByDash = Vector(0.0, 0.0);
  mPlayerVelByDash = Vector(0.0, 0.0);

  mPlayerTurnTime = Time(-3, 0);
  mPlayerBodyDirByTurn = 0.0;

  mPlayerTurnNeckTime = Time(-3, 0);
  mPlayerNeckDirByTurnNeck = 0.0; // 脖子角度，绝对量

  mIsNewOppType = false;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rdi, %r14
leaq 0x4b631(%rip), %rax     # 0x869c0
movq %rax, (%rdi)
movaps 0x31bd7(%rip), %xmm0    # 0x6cf70
movups %xmm0, 0xc(%rdi)
addq $0x3c, %rdi
leaq 0x120(%r14), %rbx
xorl %r15d, %r15d
movl $0xdc, %edx
xorl %esi, %esi
callq 0x92b0
movq %rbx, %rdi
callq 0x3d4f2
leaq 0x1c0(%r14), %r12
movq %r12, %rdi
callq 0x3d574
movl $0x598, %eax            # imm = 0x598
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
xorps %xmm0, %xmm0
movabsq $0x3800000000, %rdx     # imm = 0x3800000000
movq %r15, -0x50(%r14,%rax)
movq %rcx, -0x48(%r14,%rax)
movq %r15, -0x40(%r14,%rax)
movq %rcx, -0x38(%r14,%rax)
movq %r15, -0x30(%r14,%rax)
movq %rcx, -0x28(%r14,%rax)
movq %r15, -0x20(%r14,%rax)
movl $0xffffffff, -0x18(%r14,%rax) # imm = 0xFFFFFFFF
movups %xmm0, -0x14(%r14,%rax)
movq %rdx, -0x4(%r14,%rax)
addq $0x58, %rax
cmpq $0x1880, %rax           # imm = 0x1880
jne 0x3b3e5
xorl %eax, %eax
movq %rax, 0x1830(%r14)
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
movq %rcx, 0x1838(%r14)
movq %rax, 0x1840(%r14)
movq %rcx, 0x1848(%r14)
movq %rax, 0x1850(%r14)
movq %rcx, 0x1858(%r14)
movq %rax, 0x1860(%r14)
movq %rcx, 0x1868(%r14)
movl $0x1870, %ebx           # imm = 0x1870
leaq (%r14,%rbx), %rdi
callq 0x3d6c6
addq $0xa8, %rbx
cmpq $0x1fa8, %rbx           # imm = 0x1FA8
jne 0x3b46c
movl $0x1fa8, %ebx           # imm = 0x1FA8
leaq (%r14,%rbx), %rdi
callq 0x3d6c6
addq $0xa8, %rbx
cmpq $0x26e0, %rbx           # imm = 0x26E0
jne 0x3b48a
movl $0x26e0, %eax           # imm = 0x26E0
xorl %ecx, %ecx
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
xorps %xmm0, %xmm0
movabsq $0x500000000, %rsi      # imm = 0x500000000
movq %rcx, (%r14,%rax)
movq %rdx, 0x8(%r14,%rax)
movq %rcx, 0x10(%r14,%rax)
movq %rdx, 0x18(%r14,%rax)
movq %rcx, 0x20(%r14,%rax)
movq %rdx, 0x28(%r14,%rax)
movq %rcx, 0x30(%r14,%rax)
movl $0xffffffff, 0x38(%r14,%rax) # imm = 0xFFFFFFFF
movups %xmm0, 0x3c(%r14,%rax)
movq %rsi, 0x4c(%r14,%rax)
addq $0x58, %rax
cmpq $0x2840, %rax           # imm = 0x2840
jne 0x3b4bc
movl $0x2840, %ebx           # imm = 0x2840
leaq (%r14,%rbx), %rdi
callq 0x3d844
addq $0x70, %rbx
cmpq $0x31e0, %rbx           # imm = 0x31E0
jne 0x3b503
movl $0x31f0, %eax           # imm = 0x31F0
movb $0x6c, -0xc(%r14,%rax)
movl $0x1, -0x8(%r14,%rax)
movb $0x72, -0x4(%r14,%rax)
movl $0xb, (%r14,%rax)
addq $0x10, %rax
cmpq $0x3350, %rax           # imm = 0x3350
jne 0x3b51e
movb $0x6c, 0x3344(%r14)
movl $0x1, 0x3348(%r14)
movb $0x72, 0x334c(%r14)
movl $0xb, 0x3350(%r14)
leaq 0x3390(%r14), %rbx
xorps %xmm0, %xmm0
movups %xmm0, 0x3360(%r14)
movups %xmm0, 0x3370(%r14)
movq %rbx, %rdi
callq 0x4f54c
leaq 0x33e8(%r14), %r15
movq %r15, %rdi
movq %r12, -0x48(%rbp)
movq %rbx, -0x40(%rbp)
callq 0x4f54c
leaq 0x3440(%r14), %r13
movq %r13, %rdi
movq %r15, -0x38(%rbp)
callq 0x4f54c
leaq 0x3498(%r14), %rbx
movq %rbx, %rdi
callq 0x4f54c
leaq 0x34f0(%r14), %r15
movq %r15, %rdi
callq 0x4f54c
leaq 0x3548(%r14), %r12
movq %r12, %rdi
callq 0x4f670
leaq 0x3570(%r14), %rdi
callq 0x3d64c
leaq 0x35e8(%r14), %rdi
callq 0x3d7f2
leaq 0x4610(%r14), %rdi
callq 0x3d7f2
leaq 0x3360(%r14), %rdx
movl $0xfffffffd, 0x5638(%r14) # imm = 0xFFFFFFFD
xorps %xmm0, %xmm0
movups %xmm0, 0x563c(%r14)
movups %xmm0, 0x564c(%r14)
movabsq $-0x300000000, %rax     # imm = 0xFFFFFFFD00000000
movq %rax, 0x565c(%r14)
movups %xmm0, 0x5664(%r14)
movups %xmm0, 0x5674(%r14)
movq %rax, 0x5684(%r14)
movups %xmm0, 0x568c(%r14)
movups %xmm0, 0x569c(%r14)
xorl %eax, %eax
movl %eax, 0x56ac(%r14)
movl $0xfffffffd, %ecx       # imm = 0xFFFFFFFD
movq %rcx, 0x56b0(%r14)
movq %rcx, 0x56c0(%r14)
leaq 0x2(%rcx), %rsi
movq %rsi, 0xc(%r14)
movw $0x3f3f, 0x28(%r14)     # imm = 0x3F3F
movb $0x3f, 0x2a(%r14)
movups %xmm0, 0x2c(%r14)
movl $0x16, 0x1c(%r14)
movb %al, 0x3386(%r14)
movl %eax, 0x31e0(%r14)
movl %eax, 0x3354(%r14)
movl %eax, 0x3381(%r14)
movups %xmm0, 0x10(%rdx)
movups %xmm0, (%rdx)
movq $-0x1, 0x3358(%r14)
movl $0x1, 0x3348(%r14)
movb $0x6c, 0x3344(%r14)
movb $0x72, 0x334c(%r14)
movl $0xb, 0x3350(%r14)
movq %rax, 0x538(%r14)
movl %eax, 0x540(%r14)
movb %al, 0x118(%r14)
movb %al, 0x3385(%r14)
movb %al, 0x8(%r14)
movb %al, 0x3380(%r14)
movw $0x0, 0x3387(%r14)
movb %al, 0x3389(%r14)
movq %rcx, 0x5638(%r14)
movups %xmm0, 0x5640(%r14)
movups %xmm0, 0x5650(%r14)
movq %rcx, 0x5688(%r14)
movups %xmm0, 0x56a0(%r14)
movups %xmm0, 0x5690(%r14)
movq %rcx, 0x5660(%r14)
movups %xmm0, 0x5678(%r14)
movups %xmm0, 0x5668(%r14)
movq %rcx, 0x56b0(%r14)
movq %rax, 0x56b8(%r14)
movq %rcx, 0x56c0(%r14)
movq %rax, 0x56c8(%r14)
movb %al, 0x119(%r14)
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, -0x30(%rbp)
leaq -0x110(%r14), %rsi
movq %r14, %rdi
callq 0xa00e
jmp 0x3b7c0
movq %rax, -0x30(%rbp)
leaq 0x49ae9(%rip), %rax     # 0x852b0
movq %rax, 0x3570(%r14)
movq 0x35d8(%r14), %rdi
testq %rdi, %rdi
je 0x3b7ea
movl $0x670, %esi            # imm = 0x670
callq 0x94e0
jmp 0x3b7ea
movq %rax, -0x30(%rbp)
movq %r12, %rdi
callq 0x4f67c
jmp 0x3b7f8
movq %rax, -0x30(%rbp)
movq %r15, %rdi
callq 0x4f570
jmp 0x3b806
movq %rax, -0x30(%rbp)
movq %rbx, %rdi
callq 0x4f570
movq %r13, %rdi
callq 0x4f570
movq -0x38(%rbp), %rdi
callq 0x4f570
movq -0x40(%rbp), %rdi
callq 0x4f570
movq -0x48(%rbp), %r12
movq -0x30(%rbp), %rbx
jmp 0x3b84d
movq %rax, -0x30(%rbp)
jmp 0x3b80e
movq %rax, -0x30(%rbp)
jmp 0x3b816
movq %rax, -0x30(%rbp)
jmp 0x3b81f
jmp 0x3b84a
jmp 0x3b84a
jmp 0x3b84a
movq %rax, %rbx
movq %r12, %rdi
callq 0x3d692
movq %rbx, %rdi
callq 0x98b0
nop