Beispiel #1
0
class shipptrs *shipptrs::getshipptrs()
{
	OBJHANDLE hcraft=oapiGetFocusObject();
	class shipptrs *ptr=findship(hcraft);
	if (ptr==NULL)
		ptr=new shipptrs();
	return ptr;
}
Beispiel #2
0
ship *getship(const struct region * r)
{
    ship *sh, *sx = findship(getshipid());
    for (sh = r->ships; sh; sh = sh->next) {
        if (sh == sx)
            return sh;
    }
    return NULL;
}
Beispiel #3
0
void shipptrs::restoreallships(FILEHANDLE scn)
{
	char *buffer,*member;
	Parser parser;
	int length;
	while (oapiReadScenario_nextline(scn,buffer))
	{
		parser.parseline(buffer);
		bool ok=parser.getlineelement(0,&member,&length);
		if (!ok) return;
		if (strcmp("Ship",member)==0)
		{
			if (!parser.getlineelement(1,&member,&length)) return;//return if ship label doesn't exist
			if (length>30) return;//return if ship label is bad
			class shipptrs *temp=findship(member);
			if (temp==NULL)
			{
				OBJHANDLE temphandle=oapiGetVesselByName(member);
				if (temphandle!=NULL) temp=new shipptrs(temphandle);
			}
			if (temp!=NULL) temp->restorecurrent(scn);
		}
	}
}
Beispiel #4
0
class shipptrs *shipptrs::findship(OBJHANDLE hcraft)
{
	char tname[30];
	oapiGetObjectName(hcraft,tname,30);
	return findship(tname);
}