00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #include "Ally.hpp"
00019 #include "MathFuncs.hpp"
00020
00021 void CAlly::number_enemys(int* results, std::list<ANPC*>& r_Enemys)
00022 {
00023 std::list<ANPC*>::iterator ship = r_Enemys.begin();
00024 while (ship != r_Enemys.end())
00025 {
00026 if ((*ship)->getShip()->GetXPosition() > m_Ship->GetXPosition() + m_Ship->GetCollisionSystemWidth()/2 + m_weapon_offset)
00027 {
00028 results[2]++;
00029 }
00030 else if ((*ship)->getShip()->GetXPosition() < m_Ship->GetXPosition() - m_Ship->GetCollisionSystemWidth()/2 + m_weapon_offset)
00031 {
00032 results[0]++;
00033 }
00034 else
00035 {
00036 results[1]++;
00037 }
00038 ship++;
00039 }
00040 }
00041
00042 bool CAlly::calculate_y(float* down_up)
00043 {
00044
00045 if (m_Ship->GetYPosition() > SCREEN_Y_SIZE -50)
00046 {
00047 des_y = -1;
00048 return false;
00049 }
00050 if (m_Ship->GetYPosition() < 50)
00051 {
00052 des_y = 1;
00053 return false;
00054 }
00055
00056
00057
00058
00059 if(m_Ship->GetYPosition() < SCREEN_Y_SIZE / 2)
00060 {
00061 des_y = 1;
00062 return false;
00063 }
00064
00065
00066
00067 float tmp = (SCREEN_Y_SIZE / 2 + desired_distance / 2) - m_Ship->GetYPosition();
00068
00069 if (abs(tmp) < m_parameter->sensibility_y)
00070 {
00071 down_up[0] = -50;
00072 down_up[1] = -50;
00073 return true;
00074 }
00075 if (sgn(tmp) > 0)
00076 {
00077 down_up[0] = abs(tmp);
00078 down_up[1] = -abs(tmp);
00079 return true;
00080 }
00081 else
00082 {
00083 down_up[0] = -abs(tmp);
00084 down_up[1] = abs(tmp);
00085 return true;
00086 }
00087 }
00088