// File: /workspace/github_cpp_makefile_star2_O2/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 %rbx
subq $0x28, %rsp
movq %rsi, %r14
movq %rdi, %rbx
movl (%rdi), %eax
cmpq $0xa, %rax
ja 0x45a04
leaq 0x1542a(%rip), %rcx     # 0x5ad70
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x18(%rbx), %r15
cmpq 0x20(%rbx), %r15
je 0x45a04
movq %r15, %rdi
movq %r14, %rsi
callq 0x45920
addq $0x58, %r15
jmp 0x45953
movsd 0x8(%rbx), %xmm0
leaq 0x1576c(%rip), %rsi     # 0x5b0e6
jmp 0x459c5
movsd 0x8(%rbx), %xmm0
leaq 0x15740(%rip), %rsi     # 0x5b0c8
jmp 0x459c5
movsd 0x8(%rbx), %xmm0
leaq 0x15741(%rip), %rsi     # 0x5b0d7
jmp 0x459c5
movsd 0x8(%rbx), %xmm1
movsd 0x10(%rbx), %xmm0
leaq 0x1577d(%rip), %rsi     # 0x5b126
jmp 0x459e3
movsd 0x8(%rbx), %xmm0
leaq 0x156fa(%rip), %rsi     # 0x5b0b1
jmp 0x459c5
movsd 0x8(%rbx), %xmm0
leaq 0x15730(%rip), %rsi     # 0x5b0f5
leaq -0x40(%rbp), %rdi
movb $0x1, %al
callq 0x9100
jmp 0x45a04
movsd 0x8(%rbx), %xmm1
movsd 0x10(%rbx), %xmm0
leaq 0x15721(%rip), %rsi     # 0x5b104
leaq -0x40(%rbp), %rdi
movb $0x2, %al
callq 0x9100
jmp 0x45a04
movabsq $0x4f79616c506e6f4e, %rax # imm = 0x4F79616C506E6F4E
movq %rax, -0x40(%rbp)
movw $0x6e, -0x38(%rbp)
leaq -0x40(%rbp), %rsi
movq %r14, %rdi
callq 0x94b0
movq %rax, %rdi
callq 0x99e8
leaq 0x15787(%rip), %rsi     # 0x5b1a6
movq %r14, %rdi
callq 0x94b0
movl 0x50(%rbx), %esi
movq %rax, %rdi
callq 0x9890
movq %rax, %rdi
callq 0x99e8
leaq 0x15707(%rip), %rsi     # 0x5b148
movq %r14, %rdi
callq 0x94b0
movl 0x40(%rbx), %esi
movq %rax, %rdi
callq 0x9890
leaq 0x156ff(%rip), %r15     # 0x5b15a
movq %rax, %rdi
movq %r15, %rsi
callq 0x94b0
movl 0x4c(%rbx), %esi
movq %rax, %rdi
callq 0x9890
movq %rax, %rdi
callq 0x99e8
leaq 0x156e2(%rip), %rsi     # 0x5b162
movq %r14, %rdi
callq 0x94b0
movl 0x44(%rbx), %esi
movq %rax, %rdi
callq 0x9890
movq %rax, %rdi
movq %r15, %rsi
callq 0x94b0
movl 0x48(%rbx), %esi
movq %rax, %rdi
callq 0x9890
movq %rax, %rdi
callq 0x99e8
addq $0x28, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq