本文整理汇总了C++中Fleet::RemoveShips方法的典型用法代码示例。如果您正苦于以下问题:C++ Fleet::RemoveShips方法的具体用法?C++ Fleet::RemoveShips怎么用?C++ Fleet::RemoveShips使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Fleet
的用法示例。
在下文中一共展示了Fleet::RemoveShips方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: button_clicked_fleet
void button_clicked_fleet(int button) {
Fleet *flt = (Fleet*)cur_object;
if(button == BUTTON_LAND) {
if(!flt->CanLand()) return;
if(!flt->Location()) return;
if(!flt->Location()->Represents()) return;
if(((Planet*)flt->Location()->Represents())->colonies.size() < 1) {
((Planet*)flt->Location()->Represents())->colonies.push_back(
new Colony(flt->Owner(), ((Planet*)flt->Location()->Represents()))
);
}
int which = 0;
while(!flt->GetShip(which)->CanLand()) ++which;
((Planet*)flt->Location()->Represents())->colonies[0]->LandShip(flt->GetShip(which));
if(flt->NumShips() <= 1) clear_sprites(1, 10);
flt->DestroyShip(which);
panel_draw();
page_draw();
}
if(button == BUTTON_SPLIT) {
/*
if(!flt->Location()) return;
if(!flt->Location()->Represents()) return;
for(int shp=1; shp < flt->NumShips(); ++shp) {
Fleet *newfleet = new Fleet(flt->Location()->Represents(), flt->Name());
newfleet->AddShip(flt->GetShip(shp));
newfleet->Location()->Represents()->Sys()->objects.push_back(newfleet);
}
*/
for(int shp=1; shp < flt->NumShips(); ++shp) {
Fleet *newfleet = new Fleet();
newfleet->CopyFrom(flt);
newfleet->SetName(flt->Name());
newfleet->AddShip(flt->GetShip(shp));
flt->Sys()->objects.push_back(newfleet);
}
flt->RemoveShips(1);
page_draw();
panel_init();
}
}
示例2: Arrive
void SObject::Arrive() {
SObject *truedest = destination->Represents();
if(!truedest) {
system = destination->Sys();
orbit = destination->OrbitDist();
period = destination->Period();
startpos = destination->OrbitPhase();
arrive_turn = destination->ArriveTurn();
depart_turn = destination->DepartTurn();
Trash(location);
location = destination->Location();
Trash(destination);
destination = destination->Destination();
Trash(target);
target = NULL;
distance = 0;
}
else if(truedest->SType() == SOBJECT_PLANET) {
system = destination->system;
orbit = destination->orbit;
period = destination->period;
startpos = destination->startpos;
Trash(location);
location = destination;
truedest->See(Owner());
truedest->Know(Owner());
destination = NULL;
}
else if(truedest->SType() == SOBJECT_SYSTEM) {
orbit = 6600;
period = int(sqrt(double(orbit)*double(orbit)*double(orbit)));
int xp = system->gxpos - destination->system->gxpos;
int yp = system->gypos - destination->system->gypos;
double tang = double(cur_game->turn) * double(256*256*256) / double(period);
double nang = double(65536) * atan2(double(yp), double(xp)) / 2.0 / M_PIl;
startpos = int(nang - tang);
system->FleetLeaves((Fleet*)this);
system = destination->system;
system->FleetArrives((Fleet*)this);
Trash(location);
location = NULL;
truedest->Know(Owner());
Trash(destination);
destination = NULL;
}
else if(truedest->SType() == SOBJECT_FLEET && SType() == SOBJECT_FLEET
&& Owner() == truedest->Owner()) {
Fleet *flt = (Fleet *)this;
for(int shp=0; shp < flt->NumShips(); ++shp)
((Fleet*)truedest)->AddShip(flt->GetShip(shp));
if(cur_object == this) cur_object = truedest;
panel_draw();
RemapPositions(flt, truedest);
flt->RemoveShips(0);
}
else if(truedest->SType() == SOBJECT_FLEET && SType() == SOBJECT_FLEET) {
Fleet *flt = (Fleet*)this;
flt->Attack((Fleet*)truedest);
system = destination->system;
orbit = destination->orbit;
period = destination->period;
startpos = destination->startpos;
Trash(location);
location = destination->location;
Trash(destination);
destination = destination->destination; //FIXME! Two attacking each other!
}
else if(truedest->SType() == SOBJECT_FLEET) {
system = destination->system;
orbit = destination->orbit;
period = destination->period;
startpos = destination->startpos;
Trash(location);
location = destination->location;
Trash(destination);
destination = destination->destination;
}
}