// File: 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
subq $0x60, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x58(%rbp)
movl (%rax), %eax
movq %rax, -0x50(%rbp)
subq $0xa, %rax
ja 0x975c1
movq -0x50(%rbp), %rax
leaq 0x2d9f1(%rip), %rcx     # 0xc4e54
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x58(%rbp), %rdi
addq $0x18, %rdi
callq 0x98b40
movq %rax, -0x38(%rbp)
movq -0x58(%rbp), %rdi
addq $0x18, %rdi
callq 0x98bb0
movq %rax, -0x40(%rbp)
leaq -0x38(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x98b70
testb $0x1, %al
jne 0x974a1
jmp 0x974c7
leaq -0x38(%rbp), %rdi
callq 0x98be0
movq %rax, %rdi
movq -0x10(%rbp), %rsi
callq 0x97430
leaq -0x38(%rbp), %rdi
xorl %esi, %esi
callq 0x98c00
movq %rax, -0x48(%rbp)
jmp 0x9747d
jmp 0x975c1
jmp 0x976a3
movq -0x58(%rbp), %rax
leaq -0x30(%rbp), %rdi
movsd 0x8(%rax), %xmm0
leaq 0x2dcab(%rip), %rsi     # 0xc5190
movb $0x1, %al
callq 0xa130
jmp 0x975c1
movq -0x58(%rbp), %rax
leaq -0x30(%rbp), %rdi
movsd 0x8(%rax), %xmm0
leaq 0x2dca2(%rip), %rsi     # 0xc51a7
movb $0x1, %al
callq 0xa130
jmp 0x975c1
movq -0x58(%rbp), %rax
leaq -0x30(%rbp), %rdi
movsd 0x8(%rax), %xmm0
leaq 0x2dc91(%rip), %rsi     # 0xc51b6
movb $0x1, %al
callq 0xa130
jmp 0x975c1
movq -0x58(%rbp), %rax
leaq -0x30(%rbp), %rdi
movsd 0x8(%rax), %xmm0
leaq 0x2dc80(%rip), %rsi     # 0xc51c5
movb $0x1, %al
callq 0xa130
jmp 0x975c1
movq -0x58(%rbp), %rax
leaq -0x30(%rbp), %rdi
movsd 0x8(%rax), %xmm0
leaq 0x2dc72(%rip), %rsi     # 0xc51d4
movb $0x1, %al
callq 0xa130
jmp 0x975c1
movq -0x58(%rbp), %rax
leaq -0x30(%rbp), %rdi
movsd 0x10(%rax), %xmm0
movsd 0x8(%rax), %xmm1
leaq 0x2dc5f(%rip), %rsi     # 0xc51e3
movb $0x2, %al
callq 0xa130
jmp 0x975c1
movq -0x58(%rbp), %rax
leaq -0x30(%rbp), %rdi
movsd 0x10(%rax), %xmm0
movsd 0x8(%rax), %xmm1
leaq 0x2dc5f(%rip), %rsi     # 0xc5205
movb $0x2, %al
callq 0xa130
jmp 0x975c1
leaq -0x30(%rbp), %rdi
leaq 0x2d9f6(%rip), %rsi     # 0xc4fb0
movb $0x0, %al
callq 0xa130
movq -0x10(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0xa5a0
movq %rax, %rdi
movq 0x669d8(%rip), %rsi     # 0xfdfb0
callq 0xa630
movq -0x10(%rbp), %rdi
leaq 0x2dc9d(%rip), %rsi     # 0xc5285
callq 0xa5a0
movq %rax, %rdi
movq -0x58(%rbp), %rax
movl 0x50(%rax), %esi
callq 0xaa40
movq %rax, %rdi
movq 0x669aa(%rip), %rsi     # 0xfdfb0
callq 0xa630
movq -0x10(%rbp), %rdi
leaq 0x2dc11(%rip), %rsi     # 0xc5227
callq 0xa5a0
movq %rax, %rdi
movq -0x58(%rbp), %rax
movl 0x40(%rax), %esi
callq 0xaa40
movq %rax, %rdi
leaq 0x2dc05(%rip), %rsi     # 0xc5239
callq 0xa5a0
movq %rax, %rdi
movq -0x58(%rbp), %rax
movl 0x4c(%rax), %esi
callq 0xaa40
movq %rax, %rdi
movq 0x6695e(%rip), %rsi     # 0xfdfb0
callq 0xa630
movq -0x10(%rbp), %rdi
leaq 0x2dbdf(%rip), %rsi     # 0xc5241
callq 0xa5a0
movq %rax, %rdi
movq -0x58(%rbp), %rax
movl 0x44(%rax), %esi
callq 0xaa40
movq %rax, %rdi
leaq 0x2dbb9(%rip), %rsi     # 0xc5239
callq 0xa5a0
movq %rax, %rdi
movq -0x58(%rbp), %rax
movl 0x48(%rax), %esi
callq 0xaa40
movq %rax, %rdi
movq 0x66912(%rip), %rsi     # 0xfdfb0
callq 0xa630
addq $0x60, %rsp
popq %rbp
retq
nopl (%rax)