From: <dv...@us...> - 2008-04-30 21:05:49
|
Revision: 223 http://dunelegacy.svn.sourceforge.net/dunelegacy/?rev=223&view=rev Author: dvalin Date: 2008-04-30 14:05:29 -0700 (Wed, 30 Apr 2008) Log Message: ----------- something fishy happens when trying to delete the previous frame, disable it for now.. Modified Paths: -------------- branches/dunks/src/IntroState.cpp Modified: branches/dunks/src/IntroState.cpp =================================================================== --- branches/dunks/src/IntroState.cpp 2008-04-30 20:51:39 UTC (rev 222) +++ branches/dunks/src/IntroState.cpp 2008-04-30 21:05:29 UTC (rev 223) @@ -364,7 +364,7 @@ nextFrame->Load(m_currentFrame); m_wsaNames.pop_front(); - if (m_currentFrame != NULL) delete m_currentFrame; +// if (m_currentFrame != NULL) delete m_currentFrame; m_currentFrame = nextFrame; return true; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dv...@us...> - 2008-05-01 18:58:50
|
Revision: 233 http://dunelegacy.svn.sourceforge.net/dunelegacy/?rev=233&view=rev Author: dvalin Date: 2008-05-01 11:58:21 -0700 (Thu, 01 May 2008) Log Message: ----------- add some more sounds to intro.. Modified Paths: -------------- branches/dunks/src/IntroState.cpp Modified: branches/dunks/src/IntroState.cpp =================================================================== --- branches/dunks/src/IntroState.cpp 2008-05-01 13:07:27 UTC (rev 232) +++ branches/dunks/src/IntroState.cpp 2008-05-01 18:58:21 UTC (rev 233) @@ -259,7 +259,7 @@ // m_introStrings.push_back(introText(0, "")); // credits.eng isn't properly decoded yet.. // DataCache::Instance()->getCreditsString(20))); -/* frame = new Frame("INTRO:WESTWOOD.WSA", + frame = new Frame("INTRO:WESTWOOD.WSA", Frame::NO_TRANSITION, Frame::FADE_OUT, false, 5000); @@ -298,18 +298,18 @@ frame->addSound(39, Intro_Melange); frame->addText(33, DataCache::Instance()->getIntroString(5)); enque(frame); -*/ + frame = new Frame("INTRO:INTRO9.WSA", Frame::NO_TRANSITION, Frame::FADE_OUT, false, 3000); frame->addSound(0, Intro_TheSpice); - frame->addSound(3, Intro_Controls); - frame->addSound(7, Intro_TheEmpire); - frame->addSound(3, Intro_ControlsDune); - frame->addSound(9, Intro_WhoEver); - frame->addSound(10, Intro_Clank); - frame->addSound(10, Intro_ControlsTheSpice); + frame->addSound(5, Intro_Controls); + frame->addSound(9, Intro_TheEmpire); + frame->addSound(10, Intro_Clank); + frame->addSound(25, Intro_WhoEver); + frame->addSound(29, Intro_ControlsDune); + frame->addSound(35, Intro_ControlsTheSpice); frame->addSound(50, Intro_Brakes_2p); frame->addSound(58, Intro_Clank); frame->addText(0, DataCache::Instance()->getIntroString(6)); @@ -321,6 +321,7 @@ Frame::FADE_OUT, false, 2000); frame->addText(0, DataCache::Instance()->getIntroString(8)); + frame->addSong(0, Intro_TheEmperor); enque(frame); frame = new Frame("INTRO:INTRO11.WSA", This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dv...@us...> - 2008-05-01 22:52:42
|
Revision: 236 http://dunelegacy.svn.sourceforge.net/dunelegacy/?rev=236&view=rev Author: dvalin Date: 2008-05-01 15:52:34 -0700 (Thu, 01 May 2008) Log Message: ----------- * fix proper frame rate of scenes * fix timing of sounds Modified Paths: -------------- branches/dunks/src/IntroState.cpp Modified: branches/dunks/src/IntroState.cpp =================================================================== --- branches/dunks/src/IntroState.cpp 2008-05-01 21:19:22 UTC (rev 235) +++ branches/dunks/src/IntroState.cpp 2008-05-01 22:52:34 UTC (rev 236) @@ -31,6 +31,7 @@ m_palette = DataCache::Instance()->getPalette(INTRO_PAL); m_song = -1; + m_fps = 0; m_endWait = endWait; Application::Instance()->RootWidget()->addChild(m_container); @@ -96,6 +97,11 @@ m_song = song; } +void IntroState::Frame::setFps(float fps) +{ + m_fps = fps; +} + void IntroState::Frame::Load(Frame* lastframe) { // SDL_Palette* palette = Application::Instance()->Screen()->getSurface()->format->palette; @@ -109,11 +115,11 @@ if (m_continuation) { - m_wsa.reset(new Wsafile(data, len, lastframe->m_animSurface->getSurface())); + m_wsa.reset(new Wsafile(data, len, lastframe->m_animSurface->getSurface(), m_fps)); } else { - m_wsa.reset(new Wsafile(data, len)); + m_wsa.reset(new Wsafile(data, len, NULL, m_fps)); } m_frametime = 0; @@ -318,6 +324,7 @@ Frame::NO_TRANSITION, Frame::FADE_OUT, false, 2000); + frame->setFps(0.05); frame->setSong(1); frame->addSound(5, Intro_Dune); frame->concatSound(48, Intro_TheBuilding); @@ -350,6 +357,7 @@ Frame::NO_TRANSITION, Frame::FADE_OUT, false, 3000); + frame->setFps(0.18); frame->addText(0, DataCache::Instance()->getIntroString(6)); frame->concatSound(0, Intro_TheSpice); frame->concatSound(0, Intro_Controls); @@ -392,14 +400,13 @@ frame->addText(44, DataCache::Instance()->getIntroString(11)); enque(frame); - frame = new Frame("INTRO:INTRO4.WSA", Frame::NO_TRANSITION, Frame::FADE_OUT, false, 3000); - frame->addText(0, DataCache::Instance()->getIntroString(12)); - frame->concatSound(0, Intro_VastArmies); - frame->concatSound(0, Intro_HasArrived); + frame->addText(10, DataCache::Instance()->getIntroString(12)); + frame->concatSound(11, Intro_VastArmies); + frame->concatSound(11, Intro_HasArrived); frame->addText(25, DataCache::Instance()->getIntroString(13)); frame->concatSound(25, Intro_AndNow); frame->concatSound(25, Intro_3Houses); @@ -407,10 +414,21 @@ frame->concatSound(25, Intro_OfDune); enque(frame); + frame = new Frame(DataCache::Instance()->getIntroString(13) , + Frame::NO_TRANSITION, + Frame::FADE_OUT, + false, 3000); + frame->concatSound(0, Intro_AndNow); + frame->concatSound(0, Intro_3Houses); + frame->concatSound(0, Intro_ForControl); + frame->concatSound(0, Intro_OfDune); + enque(frame); +* frame = new Frame("INTRO:INTRO6.WSA", Frame::NO_TRANSITION, Frame::FADE_OUT, false); + frame->setFps(0.1); frame->addText(0, DataCache::Instance()->getIntroString(14)); frame->addSound(0, Intro_TheNobleAtreides); frame->addSound(31, Intro_Glass); @@ -448,8 +466,7 @@ frame->addText(0, DataCache::Instance()->getIntroString(17)); frame->concatSound(0, Intro_AndThe); frame->concatSound(0, Intro_EvilHarkonnen); - frame->addSound(0, Sound_Gun); - frame->addSound(3, Sound_Gun); + frame->addSound(5, Sound_Gun); frame->addSound(8, Sound_Gun); enque(frame); @@ -457,14 +474,14 @@ Frame::NO_TRANSITION, Frame::NO_TRANSITION, true); - frame->addText(0, DataCache::Instance()->getIntroString(18)); enque(frame); + frame->addSound(1, Sound_Gun); + frame = new Frame("INTRO:INTRO8C.WSA", Frame::NO_TRANSITION, Frame::FADE_OUT, - true, 2000); - frame->addText(0, DataCache::Instance()->getIntroString(19)); + true); frame->addSound(16, Sound_ExplosionSmall); frame->addSound(25, Sound_ExplosionMedium); enque(frame); @@ -473,7 +490,7 @@ Frame::NO_TRANSITION, Frame::FADE_OUT, false); - frame->addText(0, DataCache::Instance()->getIntroString(20)); + frame->addText(0, DataCache::Instance()->getIntroString(18)); frame->concatSound(0, Intro_OnlyOneHouse); frame->concatSound(0, Intro_WillPrevail); enque(frame); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dv...@us...> - 2008-05-02 01:06:16
|
Revision: 237 http://dunelegacy.svn.sourceforge.net/dunelegacy/?rev=237&view=rev Author: dvalin Date: 2008-05-01 18:06:12 -0700 (Thu, 01 May 2008) Log Message: ----------- * add loops to the appropriate scenes * make waiting rely on (fake) frames rather than time * more timing fixes Modified Paths: -------------- branches/dunks/src/IntroState.cpp Modified: branches/dunks/src/IntroState.cpp =================================================================== --- branches/dunks/src/IntroState.cpp 2008-05-01 22:52:34 UTC (rev 236) +++ branches/dunks/src/IntroState.cpp 2008-05-02 01:06:12 UTC (rev 237) @@ -33,7 +33,11 @@ m_song = -1; m_fps = 0; m_endWait = endWait; - + m_loop = videoLoop(0,0); + m_loopTime = videoLoop(0,0); +/* if(endWait) + setLoop(m_wsa->getNumFrames(), m_wsa->getNumFrames(), 1, 30); +*/ Application::Instance()->RootWidget()->addChild(m_container); } @@ -102,10 +106,14 @@ m_fps = fps; } +void IntroState::Frame::setLoop(uint8_t loopAt, uint8_t rewindTo, uint8_t numLoops, uint8_t wait) +{ + m_loop = videoLoop(loopAt, rewindTo); + m_loopTime = videoLoop(numLoops, wait); +} + void IntroState::Frame::Load(Frame* lastframe) { -// SDL_Palette* palette = Application::Instance()->Screen()->getSurface()->format->palette; - printf("intro loading %s\n", m_filename.c_str()); int len; @@ -124,10 +132,15 @@ m_frametime = 0; m_currentFrame = 0; + m_framesPlayed = 0; mb_finished = false; m_animSurface.reset(m_wsa->getPicture(m_currentFrame, m_palette)); m_scaledSurface = m_animSurface->getResized(2.0); + if(m_endWait && !m_loop.first) + setLoop(m_wsa->getNumFrames(), m_wsa->getNumFrames(), 1, m_endWait); + + } bool IntroState::Frame::Execute(float dt) @@ -160,8 +173,16 @@ void IntroState::Frame::doPlaying(float dt) { + std::cout << "\n\nframes played:\t\t" << (int)m_framesPlayed << std::endl; + /*m_framesPlayed++; + if(m_numLoops != 0 && m_currentFrame == m_loop.first) + { + m_currentFrame = m_loop.second; + m_numLoops--; + }*/ + if(m_introStrings.size() > 0){ - if(m_currentFrame == m_introStrings[0].first){ + if(m_framesPlayed == m_introStrings[0].first){ if(m_subText != NULL) m_container->deleteChild(m_subText); m_subText = new Label(m_introStrings[0].second, 49, 0); m_introStrings.erase(m_introStrings.begin()); @@ -171,14 +192,14 @@ } if(m_introSounds.size() > 0){ - if(m_currentFrame == m_introSounds[0].first){ + if(m_framesPlayed == m_introSounds[0].first){ Mix_Chunk* sound = DataCache::Instance()->getSoundChunk(m_introSounds[0].second); Application::Instance()->playSound(sound); m_introSounds.erase(m_introSounds.begin()); } } if(m_soundChunks.size() > 0){ - if(m_currentFrame == m_soundChunks[0].first){ + if(m_framesPlayed == m_soundChunks[0].first){ Mix_Chunk* sound = m_soundChunks[0].second; Application::Instance()->playSound(sound); // delete(m_soundChunks[0].second); @@ -186,11 +207,33 @@ } } +/* if(m_loopTime.first != 0 && m_currentFrame == m_loop.first) + { + m_currentFrame = m_loop.second; + m_loopTime.first--; + }*/ + +/* if(m_numLoops != 0 && m_currentFrame == m_loop.first) + { + std::cout << "jaggu!" << std::endl; + m_currentFrame = m_loop.second; + m_numLoops--; + } +*/ m_frametime += dt; if (m_frametime > m_wsa->getFPS()) { - m_currentFrame ++; + if(!(m_currentFrame == m_loop.first - 1 && m_framesPlayed < m_loop.first + m_loopTime.second)) + m_currentFrame++; + if(m_loopTime.first != 0 && m_currentFrame == m_loop.first) + { + m_currentFrame = m_loop.second; + m_loopTime.first--; + } + + + m_framesPlayed++; m_frametime = 0.0f; if (m_currentFrame >= m_wsa->getNumFrames()) { @@ -274,7 +317,7 @@ void IntroState::Frame::doHolding(float dt) { - uint16_t startTicks = SDL_GetTicks(); +/* uint16_t startTicks = SDL_GetTicks(); SDL_Event event; bool wait = true; @@ -295,7 +338,7 @@ break; }}} } - +*/ m_state = TRANSITION_OUT; } @@ -315,7 +358,7 @@ frame = new Frame("INTRO:WESTWOOD.WSA", Frame::NO_TRANSITION, Frame::FADE_OUT, - false, 5000); + false, 30); frame->setSong(0); frame->setPalette(WESTWOOD_PAL); enque(frame); @@ -323,32 +366,32 @@ frame = new Frame("INTRO:INTRO1.WSA", Frame::NO_TRANSITION, Frame::FADE_OUT, - false, 2000); + false, 50); frame->setFps(0.05); frame->setSong(1); - frame->addSound(5, Intro_Dune); - frame->concatSound(48, Intro_TheBuilding); - frame->concatSound(48, Intro_OfADynasty); - frame->addText(48, "The Building of a Dynasty"); + frame->concatSound(66, Intro_Dune); + frame->concatSound(66, Intro_TheBuilding); + frame->concatSound(66, Intro_OfADynasty); + frame->addText(66, "The Building of a Dynasty"); enque(frame); frame = new Frame("INTRO:INTRO2.WSA", Frame::NO_TRANSITION, Frame::FADE_OUT, - false, 2000); - frame->concatSound(0, Intro_ThePlanetArrakis); - frame->concatSound(0, Intro_KnownAsDune); - frame->addText(0, DataCache::Instance()->getIntroString(3)); + false, 5); + frame->concatSound(5, Intro_ThePlanetArrakis); + frame->concatSound(5, Intro_KnownAsDune); + frame->addText(5, DataCache::Instance()->getIntroString(3)); enque(frame); frame = new Frame("INTRO:INTRO3.WSA", Frame::NO_TRANSITION, Frame::FADE_OUT, - false, 2000); + false, 30); frame->addSound(0, Intro_LandOfSand); frame->addText(0, DataCache::Instance()->getIntroString(4)); - frame->concatSound(23, Intro_Home); - frame->concatSound(23, Intro_OfTheSpice); + frame->concatSound(33, Intro_Home); + frame->concatSound(33, Intro_OfTheSpice); frame->concatSound(33, Intro_Melange); frame->addText(33, DataCache::Instance()->getIntroString(5)); enque(frame); @@ -356,7 +399,7 @@ frame = new Frame("INTRO:INTRO9.WSA", Frame::NO_TRANSITION, Frame::FADE_OUT, - false, 3000); + false, 2); frame->setFps(0.18); frame->addText(0, DataCache::Instance()->getIntroString(6)); frame->concatSound(0, Intro_TheSpice); @@ -374,7 +417,7 @@ frame = new Frame("INTRO:INTRO10.WSA", Frame::NO_TRANSITION, Frame::FADE_OUT, - false, 7500); + false, 25); frame->addText(0, DataCache::Instance()->getIntroString(8)); frame->concatSound(0, Intro_TheEmperor); frame->concatSound(0, Intro_HasProposedAChallenge); @@ -384,26 +427,27 @@ frame = new Frame("INTRO:INTRO11.WSA", Frame::NO_TRANSITION, Frame::FADE_OUT, - false, 2000); + false); + frame->setFps(0.095); frame->addText(0, DataCache::Instance()->getIntroString(9)); frame->concatSound(0, Intro_TheHouse); frame->concatSound(0, Intro_ThatProduces); frame->concatSound(0, Intro_TheMostSpice); frame->concatSound(0, Intro_WillControlDune); - // The video should actually loop a bit here, needs to be implemented.. - frame->concatSound(41, Intro_ThereAreNoSet); - frame->concatSound(41, Intro_Territories); - frame->concatSound(41, Intro_AndNo); - frame->concatSound(41, Intro_RulesOfEngagement); + frame->setLoop(45, 0, 1, 15); + frame->concatSound(61, Intro_ThereAreNoSet); + frame->concatSound(61, Intro_Territories); + frame->concatSound(61, Intro_AndNo); + frame->concatSound(61, Intro_RulesOfEngagement); - frame->addText(41, DataCache::Instance()->getIntroString(10)); - frame->addText(44, DataCache::Instance()->getIntroString(11)); + frame->addText(61, DataCache::Instance()->getIntroString(10)); + frame->addText(66, DataCache::Instance()->getIntroString(11)); enque(frame); frame = new Frame("INTRO:INTRO4.WSA", Frame::NO_TRANSITION, Frame::FADE_OUT, - false, 3000); + false, 10); frame->addText(10, DataCache::Instance()->getIntroString(12)); frame->concatSound(11, Intro_VastArmies); frame->concatSound(11, Intro_HasArrived); @@ -417,13 +461,13 @@ frame = new Frame(DataCache::Instance()->getIntroString(13) , Frame::NO_TRANSITION, Frame::FADE_OUT, - false, 3000); + false, 20); frame->concatSound(0, Intro_AndNow); frame->concatSound(0, Intro_3Houses); frame->concatSound(0, Intro_ForControl); frame->concatSound(0, Intro_OfDune); enque(frame); -* + frame = new Frame("INTRO:INTRO6.WSA", Frame::NO_TRANSITION, Frame::FADE_OUT, @@ -449,13 +493,13 @@ frame->addSound(2, Intro_Missile_8); frame->addSound(7, Intro_Missile_8); frame->addSound(26, Intro_Missile_8); - frame->addSound(37, Intro_Missile_8); enque(frame); frame = new Frame("INTRO:INTRO7B.WSA", Frame::NO_TRANSITION, Frame::FADE_OUT, - true, 2000); + true, 5); + frame->addSound(10, Intro_Missile_8); frame->addText(0, DataCache::Instance()->getIntroString(16)); enque(frame); @@ -490,6 +534,8 @@ Frame::NO_TRANSITION, Frame::FADE_OUT, false); + frame->setFps(0.2); + frame->setLoop(3, 0, 10, 0); frame->addText(0, DataCache::Instance()->getIntroString(18)); frame->concatSound(0, Intro_OnlyOneHouse); frame->concatSound(0, Intro_WillPrevail); @@ -514,11 +560,11 @@ enque(frame);*/ // seems nice to play this again ;) - frame = new Frame("INTRO:INTRO1.WSA", + /* frame = new Frame("INTRO:INTRO1.WSA", Frame::NO_TRANSITION, Frame::FADE_OUT, false); - enque(frame); + enque(frame);*/ next(); m_butIntro = new TranspButton(Settings::Instance()->GetWidth(), This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dv...@us...> - 2008-05-02 01:18:20
|
Revision: 238 http://dunelegacy.svn.sourceforge.net/dunelegacy/?rev=238&view=rev Author: dvalin Date: 2008-05-01 18:18:17 -0700 (Thu, 01 May 2008) Log Message: ----------- * delete text labels in doHolding() rather than in Frame object destructor * yet more timing fixes.. Modified Paths: -------------- branches/dunks/src/IntroState.cpp Modified: branches/dunks/src/IntroState.cpp =================================================================== --- branches/dunks/src/IntroState.cpp 2008-05-02 01:06:12 UTC (rev 237) +++ branches/dunks/src/IntroState.cpp 2008-05-02 01:18:17 UTC (rev 238) @@ -140,7 +140,6 @@ if(m_endWait && !m_loop.first) setLoop(m_wsa->getNumFrames(), m_wsa->getNumFrames(), 1, m_endWait); - } bool IntroState::Frame::Execute(float dt) @@ -173,14 +172,6 @@ void IntroState::Frame::doPlaying(float dt) { - std::cout << "\n\nframes played:\t\t" << (int)m_framesPlayed << std::endl; - /*m_framesPlayed++; - if(m_numLoops != 0 && m_currentFrame == m_loop.first) - { - m_currentFrame = m_loop.second; - m_numLoops--; - }*/ - if(m_introStrings.size() > 0){ if(m_framesPlayed == m_introStrings[0].first){ if(m_subText != NULL) m_container->deleteChild(m_subText); @@ -207,19 +198,6 @@ } } -/* if(m_loopTime.first != 0 && m_currentFrame == m_loop.first) - { - m_currentFrame = m_loop.second; - m_loopTime.first--; - }*/ - -/* if(m_numLoops != 0 && m_currentFrame == m_loop.first) - { - std::cout << "jaggu!" << std::endl; - m_currentFrame = m_loop.second; - m_numLoops--; - } -*/ m_frametime += dt; if (m_frametime > m_wsa->getFPS()) @@ -317,34 +295,12 @@ void IntroState::Frame::doHolding(float dt) { -/* uint16_t startTicks = SDL_GetTicks(); - - SDL_Event event; - bool wait = true; - while(wait && (SDL_GetTicks() - startTicks) < m_endWait){ - while(SDL_PollEvent(&event)){ - switch (event.type){ - case (SDL_KEYDOWN): - switch( event.key.keysym.sym ){ - case SDLK_RETURN: - case SDLK_SPACE: - wait = false; - break; - case SDLK_ESCAPE: - if(m_subText != NULL) m_container->deleteChild(m_subText); - Application::Instance()->RootState()->PopState(); - return; - default: - break; - }}} - } -*/ m_state = TRANSITION_OUT; + if(m_subText != NULL) m_container->deleteChild(m_subText); } IntroState::Frame::~Frame() { - if(m_subText != NULL) m_container->deleteChild(m_subText); } // ------------------------------------------------------------------ // IntroState @@ -441,14 +397,14 @@ frame->concatSound(61, Intro_RulesOfEngagement); frame->addText(61, DataCache::Instance()->getIntroString(10)); - frame->addText(66, DataCache::Instance()->getIntroString(11)); + frame->addText(83, DataCache::Instance()->getIntroString(11)); enque(frame); frame = new Frame("INTRO:INTRO4.WSA", Frame::NO_TRANSITION, Frame::FADE_OUT, false, 10); - frame->addText(10, DataCache::Instance()->getIntroString(12)); + frame->addText(11, DataCache::Instance()->getIntroString(12)); frame->concatSound(11, Intro_VastArmies); frame->concatSound(11, Intro_HasArrived); frame->addText(25, DataCache::Instance()->getIntroString(13)); @@ -458,7 +414,7 @@ frame->concatSound(25, Intro_OfDune); enque(frame); - frame = new Frame(DataCache::Instance()->getIntroString(13) , +/* frame = new Frame(DataCache::Instance()->getIntroString(13) , Frame::NO_TRANSITION, Frame::FADE_OUT, false, 20); @@ -467,7 +423,7 @@ frame->concatSound(0, Intro_ForControl); frame->concatSound(0, Intro_OfDune); enque(frame); - +*/ frame = new Frame("INTRO:INTRO6.WSA", Frame::NO_TRANSITION, Frame::FADE_OUT, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dv...@us...> - 2008-05-02 01:38:07
|
Revision: 239 http://dunelegacy.svn.sourceforge.net/dunelegacy/?rev=239&view=rev Author: dvalin Date: 2008-05-01 18:38:04 -0700 (Thu, 01 May 2008) Log Message: ----------- give the text for emperor the correct color Modified Paths: -------------- branches/dunks/src/IntroState.cpp Modified: branches/dunks/src/IntroState.cpp =================================================================== --- branches/dunks/src/IntroState.cpp 2008-05-02 01:18:17 UTC (rev 238) +++ branches/dunks/src/IntroState.cpp 2008-05-02 01:38:04 UTC (rev 239) @@ -14,7 +14,7 @@ // IntroState::Frame IntroState::Frame::Frame(std::string filename, Transition in, Transition out, - bool continuation, uint16_t endWait) + bool continuation, uint8_t endWait) { m_filename = filename; m_transition_in = in; @@ -35,9 +35,8 @@ m_endWait = endWait; m_loop = videoLoop(0,0); m_loopTime = videoLoop(0,0); -/* if(endWait) - setLoop(m_wsa->getNumFrames(), m_wsa->getNumFrames(), 1, 30); -*/ + m_textColor = 49; + Application::Instance()->RootWidget()->addChild(m_container); } @@ -112,6 +111,11 @@ m_loopTime = videoLoop(numLoops, wait); } +void IntroState::Frame::setTextColor(uint8_t textColor) +{ + m_textColor = textColor; +} + void IntroState::Frame::Load(Frame* lastframe) { printf("intro loading %s\n", m_filename.c_str()); @@ -175,7 +179,7 @@ if(m_introStrings.size() > 0){ if(m_framesPlayed == m_introStrings[0].first){ if(m_subText != NULL) m_container->deleteChild(m_subText); - m_subText = new Label(m_introStrings[0].second, 49, 0); + m_subText = new Label(m_introStrings[0].second, m_textColor, 0); m_introStrings.erase(m_introStrings.begin()); m_container->setPosition(UPoint(50, 420)); m_container->addChild(m_subText); @@ -386,6 +390,7 @@ false); frame->setFps(0.095); frame->addText(0, DataCache::Instance()->getIntroString(9)); + frame->setTextColor(208); frame->concatSound(0, Intro_TheHouse); frame->concatSound(0, Intro_ThatProduces); frame->concatSound(0, Intro_TheMostSpice); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dv...@us...> - 2008-05-02 18:22:39
|
Revision: 247 http://dunelegacy.svn.sourceforge.net/dunelegacy/?rev=247&view=rev Author: dvalin Date: 2008-05-02 11:22:29 -0700 (Fri, 02 May 2008) Log Message: ----------- fix display of strings Modified Paths: -------------- branches/dunks/src/IntroState.cpp Modified: branches/dunks/src/IntroState.cpp =================================================================== --- branches/dunks/src/IntroState.cpp 2008-05-02 18:18:11 UTC (rev 246) +++ branches/dunks/src/IntroState.cpp 2008-05-02 18:22:29 UTC (rev 247) @@ -145,7 +145,7 @@ } } else - m_wsa.reset(new Wsafile(m_filename)); + m_wsa.reset(new Wsafile(m_filename, m_textColor)); m_frametime = 0; m_currentFrame = 0; @@ -440,15 +440,10 @@ frame = new Frame("INTRO:INTRO4.WSA", Frame::NO_TRANSITION, Frame::FADE_OUT, - false, 10); + false, 5); frame->addText(11, DataCache::Instance()->getIntroString(12)); frame->concatSound(11, Intro_VastArmies); frame->concatSound(11, Intro_HasArrived); - frame->addText(25, DataCache::Instance()->getIntroString(13)); - frame->concatSound(25, Intro_AndNow); - frame->concatSound(25, Intro_3Houses); - frame->concatSound(25, Intro_ForControl); - frame->concatSound(25, Intro_OfDune); enque(frame); frame = new Frame(DataCache::Instance()->getIntroString(13), This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dv...@us...> - 2008-05-03 00:00:58
|
Revision: 250 http://dunelegacy.svn.sourceforge.net/dunelegacy/?rev=250&view=rev Author: dvalin Date: 2008-05-02 17:00:49 -0700 (Fri, 02 May 2008) Log Message: ----------- * actually draw the text * fix text displayed at wrong time Modified Paths: -------------- branches/dunks/src/IntroState.cpp Modified: branches/dunks/src/IntroState.cpp =================================================================== --- branches/dunks/src/IntroState.cpp 2008-05-02 23:54:01 UTC (rev 249) +++ branches/dunks/src/IntroState.cpp 2008-05-03 00:00:49 UTC (rev 250) @@ -370,10 +370,11 @@ false, 30); enque(frame); - frame = new Frame(DataCache::Instance()->getIntroString(1), + frame = new Frame("", Frame::NO_TRANSITION, Frame::FADE_OUT, false, 20); + DataCache::Instance()->getIntroString(1), enque(frame); @@ -386,7 +387,7 @@ frame->concatSound(66, Intro_Dune); frame->concatSound(66, Intro_TheBuilding); frame->concatSound(66, Intro_OfADynasty); - frame->addText(66, "The Building of a Dynasty"); + frame->addText(66, DataCache::Instance()->getIntroString(2)); enque(frame); frame = new Frame("INTRO:INTRO2.WSA", @@ -511,14 +512,13 @@ Frame::FADE_OUT, true, 5); frame->addSound(10, Intro_Missile_8); - frame->addText(0, DataCache::Instance()->getIntroString(16)); enque(frame); frame = new Frame("INTRO:INTRO8A.WSA", Frame::NO_TRANSITION, Frame::NO_TRANSITION, false); - frame->addText(0, DataCache::Instance()->getIntroString(17)); + frame->addText(0, DataCache::Instance()->getIntroString(16)); frame->concatSound(0, Intro_AndThe); frame->concatSound(0, Intro_EvilHarkonnen); frame->addSound(5, Sound_Gun); @@ -547,26 +547,28 @@ false); frame->setFps(0.2); frame->setLoop(3, 0, 10, 0); - frame->addText(0, DataCache::Instance()->getIntroString(18)); + frame->addText(0, DataCache::Instance()->getIntroString(17)); frame->concatSound(0, Intro_OnlyOneHouse); frame->concatSound(0, Intro_WillPrevail); enque(frame); - frame = new Frame(DataCache::Instance()->getIntroString(18), + frame = new Frame("", Frame::NO_TRANSITION, Frame::FADE_OUT, false, 20); + frame->addText(0, DataCache::Instance()->getIntroString(18)); frame->concatSound(0, Intro_Your); frame->concatSound(0, Intro_BattleForDune); frame->concatSound(0, Intro_Begins); enque(frame); - frame = new Frame(DataCache::Instance()->getIntroString(19), + frame = new Frame("", Frame::NO_TRANSITION, Frame::FADE_OUT, false, 15); + frame->addText(0, DataCache::Instance()->getIntroString(19)); frame->addSound(0, Intro_Now); enque(frame); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dv...@us...> - 2008-05-03 00:16:57
|
Revision: 252 http://dunelegacy.svn.sourceforge.net/dunelegacy/?rev=252&view=rev Author: dvalin Date: 2008-05-02 17:16:51 -0700 (Fri, 02 May 2008) Log Message: ----------- move text a bit to the right Modified Paths: -------------- branches/dunks/src/IntroState.cpp Modified: branches/dunks/src/IntroState.cpp =================================================================== --- branches/dunks/src/IntroState.cpp 2008-05-03 00:14:52 UTC (rev 251) +++ branches/dunks/src/IntroState.cpp 2008-05-03 00:16:51 UTC (rev 252) @@ -394,7 +394,7 @@ frame->concatSound(66, Intro_TheBuilding); frame->concatSound(66, Intro_OfADynasty); frame->addText(66, DataCache::Instance()->getIntroString(2)); - frame->setTextLocation(SPoint(0,-20)); + frame->setTextLocation(SPoint(25,-20)); enque(frame); frame = new Frame("INTRO:INTRO2.WSA", This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dv...@us...> - 2008-05-03 01:31:08
|
Revision: 254 http://dunelegacy.svn.sourceforge.net/dunelegacy/?rev=254&view=rev Author: dvalin Date: 2008-05-02 18:31:03 -0700 (Fri, 02 May 2008) Log Message: ----------- * fade faster * some more timing fixes Modified Paths: -------------- branches/dunks/src/IntroState.cpp Modified: branches/dunks/src/IntroState.cpp =================================================================== --- branches/dunks/src/IntroState.cpp 2008-05-03 01:28:14 UTC (rev 253) +++ branches/dunks/src/IntroState.cpp 2008-05-03 01:31:03 UTC (rev 254) @@ -318,7 +318,7 @@ SDL_Surface* text = m_textSurface->getSurface(); SDL_Color* col = m_transitionPalette; - const int fadeAmt = 3; + const int fadeAmt = 8; for (int i=0; i!=256; i++, col++) { @@ -387,7 +387,7 @@ frame = new Frame("", Frame::NO_TRANSITION, Frame::FADE_OUT, - false, 1); + false, 2); frame->addText(0,DataCache::Instance()->getIntroString(1)); frame->setTextLocation(SPoint(-25,0)); frame->setTextSize(2.0); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dv...@us...> - 2008-05-03 01:45:55
|
Revision: 255 http://dunelegacy.svn.sourceforge.net/dunelegacy/?rev=255&view=rev Author: dvalin Date: 2008-05-02 18:45:51 -0700 (Fri, 02 May 2008) Log Message: ----------- oops, fading out became a bit too fast, make it a bit slower again Modified Paths: -------------- branches/dunks/src/IntroState.cpp Modified: branches/dunks/src/IntroState.cpp =================================================================== --- branches/dunks/src/IntroState.cpp 2008-05-03 01:31:03 UTC (rev 254) +++ branches/dunks/src/IntroState.cpp 2008-05-03 01:45:51 UTC (rev 255) @@ -186,7 +186,8 @@ break; }; - m_scaledSurface->blitToScreenCentered(); +// m_scaledSurface->blitToScreen(SPoint(0, Application::Instance()->Screen()->getSurface()->h/2 - m_scaledSurface->getSurface()->h/2 - 55)); + m_scaledSurface->blitToScreenCentered(); m_textSurface->blitToScreen(SPoint(0 + m_textLocation.x,Application::Instance()->Screen()->getSurface()->h/2 + m_scaledSurface->getSurface()->h/2 + m_textLocation.y)); return mb_finished; @@ -318,7 +319,7 @@ SDL_Surface* text = m_textSurface->getSurface(); SDL_Color* col = m_transitionPalette; - const int fadeAmt = 8; + const int fadeAmt = 4; for (int i=0; i!=256; i++, col++) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dv...@us...> - 2008-05-03 23:03:59
|
Revision: 259 http://dunelegacy.svn.sourceforge.net/dunelegacy/?rev=259&view=rev Author: dvalin Date: 2008-05-03 16:03:52 -0700 (Sat, 03 May 2008) Log Message: ----------- fade when sound is done playing rather than guessing by length of text Modified Paths: -------------- branches/dunks/src/IntroState.cpp Modified: branches/dunks/src/IntroState.cpp =================================================================== --- branches/dunks/src/IntroState.cpp 2008-05-03 23:00:38 UTC (rev 258) +++ branches/dunks/src/IntroState.cpp 2008-05-03 23:03:52 UTC (rev 259) @@ -201,18 +201,17 @@ void IntroState::Frame::doPlaying(float dt) { + if(!m_textTransition && !Mix_Playing(10)){ + m_textTransition = m_framesPlayed + 2; + } if(m_introStrings.size() > 0){ if(m_framesPlayed == m_introStrings[0].first){ ImagePtr tmp(new Image(UPoint(360,50))); std::string text = m_introStrings[0].second; - // Here we try to figure out how long the text should be displayed - // relative to it's length. Room for improval.. - m_textTransition = m_framesPlayed + (text.length()/m_wsa->getFPS()/100*9); uint8_t numLines = 0; int linebreak = text.find("\n",0)+ 1; std::string thisLine; // This is a bit hairy and needs to be cleaned up a bit.. - Uint16 textw, texth; while(text.substr(0, linebreak-1).length() > 0){ @@ -230,15 +229,11 @@ } m_textSurface = tmp->getResized(m_textSize); m_introStrings.erase(m_introStrings.begin()); - // Something wrong happens here that prevents the fading and only removes the text - if(m_introStrings.size() > 0) - if(m_textTransition > m_introStrings[0].first - 4) - m_textTransition = m_introStrings[0].first - 4; - else if(m_textTransition > m_totalFrames - 2) - m_textTransition = m_totalFrames - 2; + m_textTransition = 0; } } - if(m_framesPlayed >= m_textTransition){ + + if(m_textTransition && m_framesPlayed >= m_textTransition){ doTransitionOut(m_textSurface, false, true, 6); } @@ -253,7 +248,7 @@ if(m_soundChunks.size() > 0){ if(m_framesPlayed == m_soundChunks[0].first){ Mix_Chunk* sound = m_soundChunks[0].second; - Application::Instance()->playSound(sound); + Application::Instance()->playSound(sound, 10); // delete(m_soundChunks[0].second); m_soundChunks.erase(m_soundChunks.begin()); } @@ -384,7 +379,7 @@ // m_introStrings.push_back(introText(0, "")); // credits.eng isn't properly decoded yet.. // DataCache::Instance()->getCreditsString(20))); - frame = new Frame("INTRO:WESTWOOD.WSA", + /*frame = new Frame("INTRO:WESTWOOD.WSA", Frame::NO_TRANSITION, Frame::FADE_OUT, false, 20); @@ -453,7 +448,7 @@ frame->concatSound(33, Intro_Melange); frame->addText(33, DataCache::Instance()->getIntroString(5)); enque(frame); - +*/ frame = new Frame("INTRO:INTRO9.WSA", Frame::NO_TRANSITION, Frame::FADE_OUT, @@ -494,13 +489,13 @@ frame->concatSound(0, Intro_TheMostSpice); frame->concatSound(0, Intro_WillControlDune); frame->addLoop(45, 0, 1, 14); + frame->addText(61, DataCache::Instance()->getIntroString(10)); frame->concatSound(61, Intro_ThereAreNoSet); frame->concatSound(61, Intro_Territories); - frame->concatSound(61, Intro_AndNo); - frame->concatSound(61, Intro_RulesOfEngagement); - - frame->addText(61, DataCache::Instance()->getIntroString(10)); frame->addText(83, DataCache::Instance()->getIntroString(11)); + frame->concatSound(83, Intro_AndNo); + frame->concatSound(83, Intro_RulesOfEngagement); + enque(frame); frame = new Frame("INTRO:INTRO4.WSA", This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dv...@us...> - 2008-05-03 23:28:34
|
Revision: 261 http://dunelegacy.svn.sourceforge.net/dunelegacy/?rev=261&view=rev Author: dvalin Date: 2008-05-03 16:28:32 -0700 (Sat, 03 May 2008) Log Message: ----------- fix sound vs text fade issues.. Modified Paths: -------------- branches/dunks/src/IntroState.cpp Modified: branches/dunks/src/IntroState.cpp =================================================================== --- branches/dunks/src/IntroState.cpp 2008-05-03 23:27:32 UTC (rev 260) +++ branches/dunks/src/IntroState.cpp 2008-05-03 23:28:32 UTC (rev 261) @@ -33,6 +33,7 @@ m_textSize = 1.7; m_textLocation = SPoint(20,20); m_textTransition = 0; + m_textFade = true; font = FontManager::Instance()->getFont("INTRO:INTRO.FNT"); } @@ -121,6 +122,12 @@ { m_textSize = textSize; } + +void IntroState::Frame::setTextFade(bool textFade) +{ + m_textFade = textFade; +} + void IntroState::Frame::Load(Frame* lastframe) { printf("intro loading %s\n", m_filename.c_str()); @@ -201,7 +208,7 @@ void IntroState::Frame::doPlaying(float dt) { - if(!m_textTransition && !Mix_Playing(10)){ + if(m_textFade && !m_textTransition && !Mix_Playing(10)){ m_textTransition = m_framesPlayed + 2; } if(m_introStrings.size() > 0){ @@ -303,6 +310,7 @@ { if(m_song != -1){ Application::Instance()->playSound(DataCache::Instance()->getMusic(MUSIC_INTRO, m_song)); + std::cout << "play!" << std::endl; } if (m_transition_in == NO_TRANSITION) m_state = PLAYING; @@ -379,7 +387,7 @@ // m_introStrings.push_back(introText(0, "")); // credits.eng isn't properly decoded yet.. // DataCache::Instance()->getCreditsString(20))); - /*frame = new Frame("INTRO:WESTWOOD.WSA", + frame = new Frame("INTRO:WESTWOOD.WSA", Frame::NO_TRANSITION, Frame::FADE_OUT, false, 20); @@ -391,7 +399,7 @@ frame = new Frame("", Frame::NO_TRANSITION, Frame::FADE_OUT, - false, 4); + false, 10); frame->addText(0, "and"); frame->setTextSize(2.0); frame->setTextLocation(SPoint(-25,0)); @@ -407,7 +415,7 @@ frame = new Frame("", Frame::NO_TRANSITION, Frame::FADE_OUT, - false, 4); + false, 10); frame->addText(0,DataCache::Instance()->getIntroString(1)); frame->setTextLocation(SPoint(-25,0)); frame->setTextSize(2.0); @@ -420,12 +428,13 @@ frame->setFps(0.07); frame->addLoop(1,1,0,20); frame->setSong(1); - frame->addSound(30, Intro_Dune); + frame->concatSound(30, Intro_Dune); frame->concatSound(70, Intro_TheBuilding); frame->concatSound(70, Intro_OfADynasty); frame->addText(70, DataCache::Instance()->getIntroString(2)); frame->setTextLocation(SPoint(-13,-35)); frame->setTextSize(2.0); + frame->setTextFade(false); enque(frame); frame = new Frame("INTRO:INTRO2.WSA", @@ -434,21 +443,21 @@ false, 5); frame->concatSound(10, Intro_ThePlanetArrakis); frame->concatSound(10, Intro_KnownAsDune); - frame->addText(5, DataCache::Instance()->getIntroString(3)); + frame->addText(10, DataCache::Instance()->getIntroString(3)); enque(frame); frame = new Frame("INTRO:INTRO3.WSA", Frame::NO_TRANSITION, Frame::FADE_OUT, false, 25); - frame->addSound(0, Intro_LandOfSand); + frame->concatSound(0, Intro_LandOfSand); frame->addText(0, DataCache::Instance()->getIntroString(4)); frame->concatSound(33, Intro_Home); frame->concatSound(33, Intro_OfTheSpice); frame->concatSound(33, Intro_Melange); frame->addText(33, DataCache::Instance()->getIntroString(5)); enque(frame); -*/ + frame = new Frame("INTRO:INTRO9.WSA", Frame::NO_TRANSITION, Frame::FADE_OUT, @@ -510,10 +519,11 @@ frame = new Frame("", Frame::NO_TRANSITION, Frame::FADE_OUT, - false, 28); + false, 38); frame->addText(0,DataCache::Instance()->getIntroString(13)); frame->setTextLocation(SPoint(-25,0)); - frame->setTextSize(2.0); + frame->setTextSize(2.0); + frame->setTextFade(false); frame->concatSound(0, Intro_AndNow); frame->concatSound(0, Intro_3Houses); frame->concatSound(0, Intro_ForControl); @@ -601,6 +611,7 @@ frame->addText(0, DataCache::Instance()->getIntroString(18)); frame->setTextLocation(SPoint(-20,0)); frame->setTextSize(2.0); + frame->setTextFade(false); frame->concatSound(0, Intro_Your); frame->concatSound(0, Intro_BattleForDune); frame->concatSound(0, Intro_Begins); @@ -614,6 +625,7 @@ frame->addText(0, DataCache::Instance()->getIntroString(19)); frame->setTextLocation(SPoint(-20,0)); frame->setTextSize(2.0); + frame->setTextFade(false); frame->addSound(0, Intro_Now); enque(frame); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dv...@us...> - 2008-05-04 04:31:12
|
Revision: 266 http://dunelegacy.svn.sourceforge.net/dunelegacy/?rev=266&view=rev Author: dvalin Date: 2008-05-03 21:31:10 -0700 (Sat, 03 May 2008) Log Message: ----------- fix multiple transitions per scene Modified Paths: -------------- branches/dunks/src/IntroState.cpp Modified: branches/dunks/src/IntroState.cpp =================================================================== --- branches/dunks/src/IntroState.cpp 2008-05-04 04:20:19 UTC (rev 265) +++ branches/dunks/src/IntroState.cpp 2008-05-04 04:31:10 UTC (rev 266) @@ -352,7 +352,8 @@ return; } - if (m_transitionPalette == NULL) setupTransitionOut(img); + //if (m_transitionPalette == NULL) // We want new one created to handle several transitions per cutscene + setupTransitionOut(img); SDL_Surface* screen = img->getSurface(); SDL_Color* col = m_transitionPalette; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |