34 #include <boost/version.hpp>
35 #if BOOST_VERSION != 102800
37 #if defined (_MSC_VER) && _MSC_VER <= 1200
44 #if defined (_MSC_VER) && _MSC_VER <= 1200
51 #include <boost/python/detail/extension_class.hpp>
61 ss->
JumpTo( un, jumppoint, system );
69 radius *= jump_radius_scale*game_speed;
106 LoadXML( filename, centr, timeofyear );
108 name = strdup( filename );
131 vector< StarSystem* >activ;
136 fprintf( stderr,
"Avoided fatal error in deleting star system %s\n",
getFileName().c_str() );
139 while ( activ.size() ) {
153 while ( faction >= (
int) fg.size() ) {
155 fg.back()->nr_ships = 0;
157 if (fg[faction]->nr_ships == 0) {
161 fg[
faction]->ainame =
"default";
164 fg[
faction]->nr_waves_left = 0;
165 fg[
faction]->nr_ships_left = 0;
175 static vector< Flightgroup* >fg;
183 static vector< Flightgroup* >fg;
190 static vector< Flightgroup* >fg;
197 static vector< Flightgroup* >fg;
204 static vector< Flightgroup* >fg;
216 ( (
StarSystem*) userData )->endElement( name );
227 return string(
name );
265 bool removed2 =
false;
274 bool removed =
false;
309 catch (
const boost::python::error_already_set) {
310 if ( PyErr_Occurred() ) {
322 return (
Unit*) 0x31337;
351 if (faction != system_faction) {
353 this->system_faction =
faction;
361 size_t iter = navCheckIter;
363 if ( iter >= navs[0].
size() ) {
364 iter -= navs[0].size();
367 if ( iter >= navs[1].
size() ) {
368 iter -= navs[1].size();
371 size_t totalnavchecking = 25;
372 size_t totalsyschecking = 25;
373 while ( iter < totalnavchecking && iter < navs[k].
size() ) {
374 if (navs[k][iter].GetUnit() == NULL) {
375 navs[k].erase( navs[k].begin()+iter );
381 if ( k == 2 && iter >= navs[k].
size() )
384 int sysfac = system_faction;
385 size_t counter = checkIter+totalsyschecking;
386 for (; checkIter < counter && checkIter < sortedsize; ++checkIter) {
388 if (collide->
radius > 0) {
403 if (checkIter >= sortedsize && sortedsize
404 > (
unsigned int) (enemycount+neutralcount+friendlycount
406 citizencount = newcitizencount;
408 enemycount = newenemycount;
410 neutralcount = newneutralcount;
412 friendlycount = newfriendlycount;
413 newfriendlycount = 0;
464 for (
int k = 0;
k < 3; ++
k)
465 for (
size_t i = 0;
i < navs[
k].size();) {
466 if (navs[
k][
i].GetUnit() == un)
468 navs[
k].erase( navs[
k].begin()+
i );
488 while ( (unit = *iter) && *iter != un )
500 static bool phytoggle =
true;
504 double collidetime = 0;
505 double flattentime = 0;
512 for (++batchcount; batchcount > 0; --batchcount) {
529 if (priority != predprior) {
534 predprior = priority;
558 catch (
const boost::python::error_already_set) {
559 if ( PyErr_Occurred() ) {
589 collidetime += dd-cc;
643 printf(
"MISSION NOT ERASED\n" );
662 bool firstframe =
true;
691 bool firstframe =
true;
692 double pythontime = 0;
719 static int dothis = 0;
721 if ( (++dothis)%2 == 0 )
777 star_system_table.
Put( mname,
this );
789 std::string ssys(
string( system )+
string(
".system" ) );
791 ss = star_system_table.
Get( ssys );
806 for (
unsigned int kk = 0; kk <
pendingjump.size(); ++kk) {
812 float dist = delta.Magnitude();
816 if (dist > 10 && player) {
819 }
else if (!player) {
822 static bool setshieldzero =
841 if (
Network == NULL || playernum < 0 || (
Network != NULL && playernum >= 0 &&
Network[playernum].readyToJump() ) ) {
871 if (playernum >= 0) {
880 double calc_blend_factor(
double frac,
int priority,
unsigned int when_it_will_be_simulated,
int cur_simulation_frame )
885 int relwas = when_it_will_be_simulated-priority;
887 int relcur = cur_simulation_frame-relwas-1;
889 return (relcur+frac)/(double) priority;
903 for (
size_t i = 0;
i < pending.size(); ++
i)
904 if (pending[
i]->un == un)
916 if ( dir.MagnitudeSquared() ) {
921 if ( pos.MagnitudeSquared() ) pos.Normalize();
931 if (
Network == NULL || force) {
938 std::string ssys( system+
".system" );
940 ss = star_system_table.
Get( ssys );
941 bool justloaded =
false;
958 system ) :
QVector( 0, 0, 0 ) ) );