// File: /workspace/github_cpp_makefile_star2_O2/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 0x44f55(%rip), %rax     # 0x769d0
movq %rax, (%rdi)
movaps 0x2749b(%rip), %xmm0    # 0x58f20
movups %xmm0, 0xc(%rdi)
addq $0x3c, %rdi
leaq 0x120(%r14), %rbx
movl $0xdc, %edx
xorl %esi, %esi
callq 0x92c0
movq %rbx, %rdi
callq 0x33686
leaq 0x1c0(%r14), %rbx
movq %rbx, %rdi
callq 0x33706
leaq 0x548(%r14), %rdi
movq %rbx, -0x50(%rbp)
callq 0x337d0
leaq 0x1830(%r14), %rdi
callq 0x33994
leaq 0x1870(%r14), %rdi
callq 0x339c2
leaq 0x1fa8(%r14), %rdi
callq 0x339c2
leaq 0x26e0(%r14), %rdi
callq 0x337f8
leaq 0x2840(%r14), %rdi
callq 0x33820
leaq 0x31e4(%r14), %rdi
callq 0x33848
movb $0x6c, 0x3344(%r14)
movl $0x1, 0x3348(%r14)
movb $0x72, 0x334c(%r14)
movl $0xb, 0x3350(%r14)
leaq 0x3390(%r14), %r12
xorps %xmm0, %xmm0
movups %xmm0, 0x3360(%r14)
movups %xmm0, 0x3370(%r14)
movq %r12, %rdi
callq 0x41f34
leaq 0x33e8(%r14), %r13
movq %r13, %rdi
movq %r12, -0x48(%rbp)
callq 0x41f34
leaq 0x3440(%r14), %r15
movq %r15, %rdi
movq %r13, -0x40(%rbp)
callq 0x41f34
movq %r15, -0x38(%rbp)
leaq 0x3498(%r14), %rdi
movq %rdi, -0x30(%rbp)
callq 0x41f34
leaq 0x34f0(%r14), %r15
movq %r15, %rdi
callq 0x41f34
leaq 0x3548(%r14), %r12
movq %r12, %rdi
callq 0x42058
leaq 0x3570(%r14), %r13
movq %r13, %rdi
callq 0x3387e
leaq 0x35e8(%r14), %rbx
movq %rbx, %rdi
callq 0x33afe
leaq 0x4610(%r14), %rdi
callq 0x33afe
leaq 0x3360(%r14), %rax
movl $0xfffffffd, %ebx       # imm = 0xFFFFFFFD
leaq 0x2(%rbx), %rcx
movq %rcx, 0xc(%r14)
movw $0x3f3f, 0x28(%r14)     # imm = 0x3F3F
movb $0x3f, 0x2a(%r14)
xorps %xmm0, %xmm0
movups %xmm0, 0x2c(%r14)
movl $0x16, 0x1c(%r14)
movups %xmm0, 0x10(%rax)
movups %xmm0, (%rax)
movq %r14, %rdi
callq 0x31d2e
xorl %eax, %eax
movb %al, 0x3380(%r14)
andw $0x0, 0x3387(%r14)
movb %al, 0x3389(%r14)
movq %rbx, 0x5638(%r14)
xorps %xmm0, %xmm0
movups %xmm0, 0x5640(%r14)
movups %xmm0, 0x5650(%r14)
movq %rbx, 0x5688(%r14)
movups %xmm0, 0x5690(%r14)
movups %xmm0, 0x56a0(%r14)
movq %rbx, 0x5660(%r14)
movups %xmm0, 0x5668(%r14)
movups %xmm0, 0x5678(%r14)
movq %rbx, 0x56b0(%r14)
andq $0x0, 0x56b8(%r14)
movq %rbx, 0x56c0(%r14)
andq $0x0, 0x56c8(%r14)
movb %al, 0x119(%r14)
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r14
movq %rbx, %rdi
callq 0x33b5c
jmp 0x31cbd
movq %rax, %r14
movq %r13, %rdi
callq 0xd716
jmp 0x31cca
movq %rax, %r14
movq %r12, %rdi
callq 0x42064
jmp 0x31cd7
movq %rax, %r14
movq %r15, %rdi
callq 0x41f58
jmp 0x31ce4
movq %rax, %r14
movq -0x30(%rbp), %rdi
callq 0x41f58
movq -0x38(%rbp), %rdi
callq 0x41f58
movq -0x40(%rbp), %rdi
callq 0x41f58
movq -0x48(%rbp), %rdi
callq 0x41f58
jmp 0x31d1c
movq %rax, %r14
jmp 0x31ced
movq %rax, %r14
jmp 0x31cf6
movq %rax, %r14
jmp 0x31cff
movq %rax, %r14
movq -0x50(%rbp), %rdi
callq 0x338c4
movq %r14, %rdi
callq 0x98b0
nop