/***************************************************** ** ** 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; }
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; }
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(); } }
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; }
Event* Scene::getEvent(Feeder* feeder) { return getNextLevel(feeder); }
/* 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; } }
/***************************************************** ** ** 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]; }
/***************************************************** ** ** 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]; }