// File: /workspace/github_cpp_makefile_star2_O1/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 0x5410e
leaq 0x1ad70(%rip), %rcx     # 0x6edc0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x18(%rbx), %r15
cmpq 0x20(%rbx), %r15
je 0x5410e
movq %r15, %rdi
movq %r14, %rsi
callq 0x54028
addq $0x58, %r15
jmp 0x5405d
movsd 0x8(%rbx), %xmm0
leaq 0x1b0b2(%rip), %rsi     # 0x6f136
jmp 0x540cf
movsd 0x8(%rbx), %xmm0
leaq 0x1b086(%rip), %rsi     # 0x6f118
jmp 0x540cf
movsd 0x8(%rbx), %xmm0
leaq 0x1b087(%rip), %rsi     # 0x6f127
jmp 0x540cf
movsd 0x8(%rbx), %xmm1
movsd 0x10(%rbx), %xmm0
leaq 0x1b0c3(%rip), %rsi     # 0x6f176
jmp 0x540ed
movsd 0x8(%rbx), %xmm0
leaq 0x1b040(%rip), %rsi     # 0x6f101
jmp 0x540cf
movsd 0x8(%rbx), %xmm0
leaq 0x1b076(%rip), %rsi     # 0x6f145
leaq -0x40(%rbp), %rdi
movb $0x1, %al
callq 0x9110
jmp 0x5410e
movsd 0x8(%rbx), %xmm1
movsd 0x10(%rbx), %xmm0
leaq 0x1b067(%rip), %rsi     # 0x6f154
leaq -0x40(%rbp), %rdi
movb $0x2, %al
callq 0x9110
jmp 0x5410e
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 0x1b0a0(%rip), %rsi     # 0x6f1f6
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 0x1aff9(%rip), %rsi     # 0x6f198
movl $0x11, %edx
movq %r14, %rdi
callq 0x9560
movl 0x40(%rbx), %esi
movq %r14, %rdi
callq 0x9880
movq %rax, %r12
leaq 0x1afe9(%rip), %r15     # 0x6f1aa
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 0x1afa5(%rip), %rsi     # 0x6f1b2
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