Beispiel #1
0
/*****************************************************
**
**   GenericNakshatraDasaExpert   ---   getFirstLevel
**
******************************************************/
vector<Dasa*> GenericNakshatraDasaExpert::getFirstLevel()
{
	vector<Dasa*> ret, tret;
	double nportion;
	int total_length = 0;
	Nakshatra nak;

	nportion = getPortion( nak );
	int pindex = getDasaIndex4Nakshatra( nak );
	int pl = getDasaLordByIndex( pindex );

	double start_jd = horoscope->getJD() - nportion * getDasaDuration( pindex ) * getYearLength( true );
	double end_jd = start_jd + getParamayus() * getYearLength( true );

	while ( total_length < 100 )
	{
		Dasa d( dasaId, pl, start_jd, end_jd, (Dasa*)NULL );
		d.setLevel( -1 );
		tret = getNextLevel( &d );
		for ( unsigned j = 0; j < tret.size(); j++ )
		{
			tret[j]->setParent( (Dasa*)NULL );
			ret.push_back( tret[j] );
		}
		tret.clear();
		total_length += getParamayus();
		start_jd = end_jd;
		end_jd += getParamayus() * getYearLength( true );
	}
	return ret;
}
Beispiel #2
0
const TestNode* T_CTEST_EXPORT2
getTest(const TestNode* root, const char* name)
{
    const char* nextName;
    TestNode *nextNode;
    const TestNode* curNode;
    int nameLen; /* length of current 'name' */

    if (root == NULL) {
        log_err("TEST CAN'T BE FOUND!\n");
        return NULL;
    }
    /* remove leading slash */
    if ( *name == TEST_SEPARATOR )
        name++;

    curNode = root;

    for(;;)
    {
        /* Start with the next child */
        nextNode = curNode->child;

        getNextLevel ( name, &nameLen, &nextName );

        /*      printf("* %s\n", name );*/

        /* if nextNode is already null, then curNode has no children
        -- add them */
        if( nextNode == NULL )
        {
            return NULL;
        }

        /* Search across for the name */
        while (strncmp_nullcheck ( name, nextNode->name, nameLen) != 0 )
        {
            curNode = nextNode;
            nextNode = nextNode -> sibling;

            if ( nextNode == NULL )
            {
                /* Did not find 'name' on this level. */
                return NULL;
            }
        }

        /* nextNode matches 'name' */

        if (nextName == NULL) /* end of the line */
        {
            return nextNode;
        }

        /* Loop again with the next item */
        name = nextName;
        curNode = nextNode;
    }
}
bool LevelData::canLoadNextLevel() {
  string next_level = getNextLevel();
  
  if (next_level.empty())
    return false;
  else
    return true;
}
Beispiel #4
0
void GamePlayScene::onMenuClicked(int menu) {
    log("onMenuClicked");
    if (menu == Constant::MENU_RETRY_TAG) {
        initGameBoard();
        initNavigator();
    } else if (menu == Constant::MENU_NEXT_TAG) {
        gCurrentLevel = getNextLevel(gCurrentLevel);
        initGameBoard();
        initNavigator();
    }
}
Beispiel #5
0
char* simplifyPath(char* path)
{
    int sz=strlen(path);
    char* head = malloc(sz);
    memset(head,0,sz);
    char* tail = head;
    char* level;
    *tail++ = '/';
    while (*path != '\0') {
        path = getNextLevel(&level, path);
        if (strcmp(level, "/.") == 0 || strcmp(level, "/") == 0)
            continue;
        else if (strcmp(level, "/..") == 0)
            tail = goUpper(head, tail);
        else
            tail = goLower(tail, level);
        free(level);
    }
    while (*(head+1) == '/') head++;
    return head;
}
Beispiel #6
0
Event* Scene::getEvent(Feeder* feeder)
{
  return getNextLevel(feeder);
}
Beispiel #7
0
/* non recursive insert function */
static TestNode *addTestNode ( TestNode *root, const char *name )
{
    const char* nextName;
    TestNode *nextNode, *curNode;
    int nameLen; /* length of current 'name' */

    /* remove leading slash */
    if ( *name == TEST_SEPARATOR )
        name++;

    curNode = root;

    for(;;)
    {
        /* Start with the next child */
        nextNode = curNode->child;

        getNextLevel ( name, &nameLen, &nextName );

        /*      printf("* %s\n", name );*/

        /* if nextNode is already null, then curNode has no children
        -- add them */
        if( nextNode == NULL )
        {
            /* Add all children of the node */
            do
            {
                /* Get the next component of the name */
                getNextLevel(name, &nameLen, &nextName);

                /* update curName to have the next name segment */
                curNode->child = createTestNode(name, nameLen);
                /* printf("*** added %s\n", curNode->child->name );*/
                curNode = curNode->child;
                name = nextName;
            }
            while( name != NULL );

            return curNode;
        }

        /* Search across for the name */
        while (strncmp_nullcheck ( name, nextNode->name, nameLen) != 0 )
        {
            curNode = nextNode;
            nextNode = nextNode -> sibling;

            if ( nextNode == NULL )
            {
                /* Did not find 'name' on this level. */
                nextNode = createTestNode(name, nameLen);
                curNode->sibling = nextNode;
                break;
            }
        }

        /* nextNode matches 'name' */

        if (nextName == NULL) /* end of the line */
        {
            return nextNode;
        }

        /* Loop again with the next item */
        name = nextName;
        curNode = nextNode;
    }
}
Beispiel #8
0
/*****************************************************
**
**   DasaExpert   ---   write
**
******************************************************/
void DasaExpert::write( Writer *writer, const Horoscope *horoscope, const int varga, const bool show_header )
{
    Formatter *formatter = Formatter::get();
    double startjd;
    unsigned int i;
    wxString s, lord;

    VargaExpert vexpert;
    if ( show_header )
    {
        s.Printf( wxT( "%s %s" ), getName(), _( "Dasa" ) );
        writer->writeHeader2( s );
    }

    vector<Dasa*> v = getFirstLevel( horoscope, varga );
    vector<Dasa*> w;

    for( i = 0; i < v.size(); i++ )
    {
        if ( isRasiDasaExpert()) lord = writer->getSignName( v[i]->getDasaLord(), TLARGE );
        else lord =  writer->getObjectName(v[i]->getDasaLord(), TLARGE, true );

        startjd = Max( v[i]->getStartJD(), horoscope->getJD() );
        if ( ! v[i]->getExtraText().IsEmpty())
        {
            s.Printf( wxT( "%s (%s): %s - %s" ), (const wxChar*)lord, (const wxChar*)(v[i]->getExtraText()),
                      (const wxChar*)formatter->getDateStringFromJD( startjd ),
                      (const wxChar*)formatter->getDateStringFromJD( v[i]->getEndJD() ));
        }
        else
        {
            s.Printf( wxT( "%s: %s - %s" ), (const wxChar*)lord,
                      (const wxChar*)formatter->getDateStringFromJD( startjd ),
                      (const wxChar*)formatter->getDateStringFromJD( v[i]->getEndJD() ));
        }
        writer->writeHeader3( s );
        s.Clear();

        w = getNextLevel( v[i] );
        if ( w.size() == 0 ) continue;

        startjd = Max( w[0]->getStartJD(), horoscope->getJD() );
        s << wxT( " * " ) << formatter->getDateStringFromJD( startjd ) << wxT( " " );

        for( unsigned int j = 0; j < w.size(); j++ )
        {
            if ( w[j]->getEndJD() >= horoscope->getJD())
            {
                if ( isRasiDasaExpert() )
                {
                    s << writer->getSignName(w[j]->getDasaLord(), TLARGE );
                }
                else
                {
                    s <<  writer->getObjectName(w[j]->getDasaLord(), TLARGE, true );
                }
                s	<< wxT( " " ) << formatter->getDateStringFromJD( w[j]->getEndJD() ) << wxT( " " );
            }
            delete w[j];
        }
        writer->writeLine( s );
        s.Clear();
    }
    for( i = 0; i < v.size(); i++ ) delete v[i];
}
Beispiel #9
0
/*****************************************************
**
**   DasaExpert   ---   writeMore
**
******************************************************/
void DasaExpert::writeMore( Writer *writer, const Horoscope *horoscope, const int varga, const bool show_header )
{
    Formatter *formatter = Formatter::get();
    double startjd;
    unsigned int i;
    wxString s, s1, lord;

    VargaExpert vexpert;
    if ( show_header )
    {
        s.Printf( wxT( "%s %s" ), getName(), _( "Dasa" ) );
        writer->writeHeader1( s );
    }

    vector<Dasa*> v = getFirstLevel( horoscope, varga );
    vector<Dasa*> w;

    for( i = 0; i < v.size(); i++ )
    {
        if ( isRasiDasaExpert() ) lord = writer->getSignName( v[i]->getDasaLord(), TLARGE );
        else lord =  writer->getObjectName(v[i]->getDasaLord(), TLARGE, true );
        s.Printf( wxT( "%d. %s %s" ), i+1, _( "Mahadasa" ), (const wxChar*)lord );
        writer->writeHeader2( s );

        if ( ! v[i]->getExtraText().IsEmpty())
        {
            writer->writeLine( v[i]->getExtraText() );
        }

        startjd = Max( v[i]->getStartJD(), horoscope->getJD() );
        s.Printf( wxT( "%s: %s" ), _( "Start Date" ), (const wxChar*)formatter->getDateStringFromJD( startjd ) );
        writer->writeLine( s );
        s.Printf( wxT( "%s: %s" ), _( "End Date" ), (const wxChar*)formatter->getDateStringFromJD( v[i]->getEndJD() ) );
        writer->writeLine( s );
        getDasaDuration( s1, v[i]->getEndJD() - v[i]->getStartJD() );
        s.Printf( wxT( "%s: %s" ), _( "Duration" ), (const wxChar*)s1 );
        writer->writeLine( s );

        w = getNextLevel( v[i] );
        if ( w.size() == 0 ) continue;

        writer->writeHeader3( _( "Antardasas" ) );

        // Get the number of lines
        int lines = 1;
        for( unsigned int j = 0; j < w.size(); j++ )
        {
            if ( w[j]->getEndJD() >= horoscope->getJD()) lines++;
        }

        Table table( 4, lines );
        table.setHeader( 0, _( "Lord" ));
        table.setHeader( 1,  _( "Start Date" ));
        table.setHeader( 2,  _( "Final Date" ));
        table.setHeader( 3,  _( "Duration" ));

        int line = 1;
        for( unsigned int j = 0; j < w.size(); j++ )
        {
            if ( w[j]->getEndJD() >= horoscope->getJD())
            {
                if ( isRasiDasaExpert() ) lord = writer->getSignName(w[j]->getDasaLord(), TLARGE );
                else lord = writer->getObjectName(w[j]->getDasaLord(), TLARGE, true );
                table.setEntry( 0, line, lord );

                startjd = Max( w[j]->getStartJD(), horoscope->getJD() );
                table.setEntry( 1, line, formatter->getDateStringFromJD( startjd ) );

                table.setEntry( 2, line, formatter->getDateStringFromJD( w[j]->getEndJD() ) );

                getDasaDuration( s, w[j]->getEndJD() - w[j]->getStartJD() );
                table.setEntry( 3, line, s );
                line++;
            }
            delete w[j];
        }
        writer->writeTable( table );
    }
    for( i = 0; i < v.size(); i++ ) delete v[i];
}