// File: /workspace/github_cpp_makefile_star2_O3/wrighteagle2d[P]wrighteaglebase/Debug/../src/Trainer.cpp
// Function: Trainer::Condition::Report(std::basic_ofstream<char, std::char_traits<char>>&) const
void Trainer::Condition::Report(ofstream &os) const {
  char name[32];
  switch (mType) {
  case ET_ANDComplex:
  case ET_ORComplex: //复合条件仅记录子条件
    for (vector<Trainer::Condition>::const_iterator it = mSubCondition.begin();
         it != mSubCondition.end(); it++) {
      it->Report(os);
    }
    break;
  case ET_Null:
    return;
  case ET_Time: //过x个周期自然终止
    sprintf(name, "After %4.0f Cycle Stop", mArg1);
    break;
  case ET_BallXbt: //球的x坐标大于某值停止
    sprintf(name, "Ball.X > %5.2f", mArg1);
    break;
  case ET_BallXlt: //球的x坐标小于某值停止
    sprintf(name, "Ball.X < %5.2f", mArg1);
    break;
  case ET_BallYbt: //球的y坐标。。
    sprintf(name, "Ball.Y > %5.2f", mArg1);
    break;
  case ET_BallYlt: //。。
    sprintf(name, "Ball.Y < %5.2f", mArg1);
    break;
  case ET_Ball2Playerbt: //球到某人的距离大于某值
    sprintf(name, "Ball to %2.0f 's Distance > %5.2f", mArg2, mArg1);
    break;
  case ET_Ball2Playerlt: //球到某人的距离小于某值
    sprintf(name, "Ball to %2.0f 's Distance < %5.2f", mArg2, mArg1);
    break;
  case ET_NonPlayOn:
    sprintf(name, "NonPlayOn");
    break;
  }
  os << name << endl;
  os << "Count:" << mCount << endl;
  os << "MaxIntervalCycle:" << mMaxInterval << "\t Time:" << mMaxTime << endl;
  os << "MinIntervalCycle:" << mMinInterval << "\t Time:" << mMinTime << endl;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x20, %rsp
movq %rsi, %r14
movq %rdi, %rbx
movl (%rdi), %eax
cmpq $0xa, %rax
ja 0x52910
leaq 0x1a53e(%rip), %rcx     # 0x6cd90
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x18(%rbx), %r15
cmpq 0x20(%rbx), %r15
je 0x52910
movq %r15, %rdi
movq %r14, %rsi
callq 0x5282a
addq $0x58, %r15
jmp 0x5285f
movsd 0x8(%rbx), %xmm0
leaq 0x1a880(%rip), %rsi     # 0x6d106
jmp 0x528d1
movsd 0x8(%rbx), %xmm0
leaq 0x1a854(%rip), %rsi     # 0x6d0e8
jmp 0x528d1
movsd 0x8(%rbx), %xmm0
leaq 0x1a855(%rip), %rsi     # 0x6d0f7
jmp 0x528d1
movsd 0x8(%rbx), %xmm1
movsd 0x10(%rbx), %xmm0
leaq 0x1a891(%rip), %rsi     # 0x6d146
jmp 0x528ef
movsd 0x8(%rbx), %xmm0
leaq 0x1a80e(%rip), %rsi     # 0x6d0d1
jmp 0x528d1
movsd 0x8(%rbx), %xmm0
leaq 0x1a844(%rip), %rsi     # 0x6d115
leaq -0x40(%rbp), %rdi
movb $0x1, %al
callq 0x9110
jmp 0x52910
movsd 0x8(%rbx), %xmm1
movsd 0x10(%rbx), %xmm0
leaq 0x1a835(%rip), %rsi     # 0x6d124
leaq -0x40(%rbp), %rdi
movb $0x2, %al
callq 0x9110
jmp 0x52910
movabsq $0x4f79616c506e6f4e, %rax # imm = 0x4F79616C506E6F4E
movq %rax, -0x40(%rbp)
movw $0x6e, -0x38(%rbp)
leaq -0x40(%rbp), %r15
movq %r15, %rdi
callq 0x9200
movq %r14, %rdi
movq %r15, %rsi
movq %rax, %rdx
callq 0x9560
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x9480
movsbl %al, %esi
movq %r14, %rdi
callq 0x9070
movq %rax, %rdi
callq 0x9330
leaq 0x1a86e(%rip), %rsi     # 0x6d1c6
movl $0x6, %edx
movq %r14, %rdi
callq 0x9560
movl 0x50(%rbx), %esi
movq %r14, %rdi
callq 0x9880
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x9480
movsbl %al, %esi
movq %r15, %rdi
callq 0x9070
movq %rax, %rdi
callq 0x9330
leaq 0x1a7c7(%rip), %rsi     # 0x6d168
movl $0x11, %edx
movq %r14, %rdi
callq 0x9560
movl 0x40(%rbx), %esi
movq %r14, %rdi
callq 0x9880
movq %rax, %r12
leaq 0x1a7b7(%rip), %r15     # 0x6d17a
movl $0x7, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x9560
movl 0x4c(%rbx), %esi
movq %r12, %rdi
callq 0x9880
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x9480
movsbl %al, %esi
movq %r12, %rdi
callq 0x9070
movq %rax, %rdi
callq 0x9330
leaq 0x1a773(%rip), %rsi     # 0x6d182
movl $0x11, %edx
movq %r14, %rdi
callq 0x9560
movl 0x44(%rbx), %esi
movq %r14, %rdi
callq 0x9880
movq %rax, %r14
movl $0x7, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x9560
movl 0x48(%rbx), %esi
movq %r14, %rdi
callq 0x9880
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x9480
movsbl %al, %esi
movq %rbx, %rdi
callq 0x9070
movq %rax, %rdi
callq 0x9330
addq $0x20, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq