You can subscribe to this list here.
| 2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(44) |
Aug
(36) |
Sep
(5) |
Oct
|
Nov
(6) |
Dec
(2) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2007 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(2) |
Sep
|
Oct
|
Nov
|
Dec
(1) |
| 2008 |
Jan
|
Feb
|
Mar
|
Apr
(87) |
May
(54) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: <dv...@us...> - 2008-05-01 08:42:27
|
Revision: 227
http://dunelegacy.svn.sourceforge.net/dunelegacy/?rev=227&view=rev
Author: dvalin
Date: 2008-05-01 01:42:12 -0700 (Thu, 01 May 2008)
Log Message:
-----------
* be sure to initialize m_currentFrame to NULL so that it can be checked if not NULL and deleted afterwards..
* add wait delay for intro scenes
Modified Paths:
--------------
branches/dunks/include/IntroState.h
branches/dunks/src/IntroState.cpp
Modified: branches/dunks/include/IntroState.h
===================================================================
--- branches/dunks/include/IntroState.h 2008-05-01 06:15:29 UTC (rev 226)
+++ branches/dunks/include/IntroState.h 2008-05-01 08:42:12 UTC (rev 227)
@@ -39,7 +39,7 @@
HOLDING
};
- Frame(std::string file, Transition in, Transition out, std::vector<introText> introStrings, bool cont, int8_t song = -1, Palette_enum pal = INTRO_PAL);
+ Frame(std::string file, Transition in, Transition out, std::vector<introText> introStrings, bool cont, uint16_t endWait = 0, int8_t song = -1, Palette_enum pal = INTRO_PAL);
~Frame();
bool Execute(float ft);
@@ -59,8 +59,10 @@
WsafilePtr m_wsa;
int m_currentFrame;
float m_frametime;
- int m_song;
+ int8_t m_song;
+ uint16_t m_endWait;
+
ImagePtr m_animSurface, m_scaledSurface;
SDL_Color* m_transitionPalette;
Label* m_subText;
@@ -101,6 +103,7 @@
StringFile* m_introStringFile;
private:
+ void handleInput();
IntroList m_wsaNames;
TranspButton *m_butIntro;
Modified: branches/dunks/src/IntroState.cpp
===================================================================
--- branches/dunks/src/IntroState.cpp 2008-05-01 06:15:29 UTC (rev 226)
+++ branches/dunks/src/IntroState.cpp 2008-05-01 08:42:12 UTC (rev 227)
@@ -8,6 +8,7 @@
#include "boost/bind.hpp"
#include "gui2/Label.h"
#include "gui2/Container.h"
+#include <iostream>
// ------------------------------------------------------------------
// IntroState::Frame
@@ -15,7 +16,7 @@
IntroState::Frame::Frame(std::string filename,
Transition in, Transition out,
std::vector<introText> introStrings,
- bool continuation, int8_t song, Palette_enum pal)
+ bool continuation, uint16_t endWait, int8_t song, Palette_enum pal)
{
m_filename = filename;
m_transition_in = in;
@@ -33,6 +34,7 @@
m_palette = DataCache::Instance()->getPalette(pal);
m_song = song;
+ m_endWait = endWait;
Application::Instance()->RootWidget()->addChild(m_container);
@@ -94,7 +96,7 @@
};
m_scaledSurface->blitToScreenCentered();
-
+
return mb_finished;
}
@@ -152,6 +154,7 @@
void IntroState::Frame::doTransitionOut(float dt)
{
+
if (m_transition_out == NO_TRANSITION)
{
mb_finished = true;
@@ -189,6 +192,25 @@
void IntroState::Frame::doHolding(float dt)
{
+ uint16_t startTicks = SDL_GetTicks();
+ uint16_t curTicks;
+
+ SDL_Event event;
+ bool wait = true;
+ while(wait && ((curTicks = SDL_GetTicks()) - startTicks) < m_endWait)
+ while(SDL_PollEvent(&event))
+ switch (event.type)
+ case (SDL_KEYDOWN):
+ switch( event.key.keysym.sym ){
+ case SDLK_ESCAPE:
+ case SDLK_RETURN:
+ case SDLK_SPACE:
+ Application::Instance()->RootState()->PopState();
+ wait = false;
+ default:
+ break;
+ }
+
m_state = TRANSITION_OUT;
}
@@ -201,13 +223,14 @@
IntroState::IntroState()
{
+ m_currentFrame = NULL;
m_introStrings.push_back(introText(0, "")); // credits.eng isn't properly decoded yet..
// DataCache::Instance()->getCreditsString(20)));
enque( new Frame("INTRO:WESTWOOD.WSA",
Frame::NO_TRANSITION,
Frame::NO_TRANSITION,
m_introStrings,
- false, 0, WESTWOOD_PAL) );
+ false, 5000, 0, WESTWOOD_PAL) );
m_introStrings.clear();
m_introStrings.push_back(introText(0, DataCache::Instance()->getIntroString(2)));
@@ -215,7 +238,7 @@
Frame::NO_TRANSITION,
Frame::FADE_OUT,
m_introStrings,
- false, 1) );
+ false, 2000, 1) );
m_introStrings.clear();
m_introStrings.push_back(introText(0, DataCache::Instance()->getIntroString(3)));
@@ -223,7 +246,7 @@
Frame::NO_TRANSITION,
Frame::FADE_OUT,
m_introStrings,
- false) );
+ false, 2000) );
m_introStrings.clear();
m_introStrings.push_back(introText(0, DataCache::Instance()->getIntroString(4)));
@@ -231,7 +254,7 @@
Frame::NO_TRANSITION,
Frame::FADE_OUT,
m_introStrings,
- false) );
+ false, 2000) );
m_introStrings.clear();
m_introStrings.push_back(introText(0, DataCache::Instance()->getIntroString(5)));
@@ -239,7 +262,7 @@
Frame::NO_TRANSITION,
Frame::FADE_OUT,
m_introStrings,
- false) );
+ false, 3000) );
m_introStrings.clear();
m_introStrings.push_back(introText(0, DataCache::Instance()->getIntroString(6)));
@@ -247,7 +270,7 @@
Frame::NO_TRANSITION,
Frame::FADE_OUT,
m_introStrings,
- false) );
+ false, 2000) );
m_introStrings.clear();
m_introStrings.push_back(introText(0, DataCache::Instance()->getIntroString(7)));
@@ -255,7 +278,7 @@
Frame::NO_TRANSITION,
Frame::FADE_OUT,
m_introStrings,
- false) );
+ false, 2000) );
m_introStrings.clear();
m_introStrings.push_back(introText(0, DataCache::Instance()->getIntroString(8)));
@@ -263,7 +286,7 @@
Frame::NO_TRANSITION,
Frame::FADE_OUT,
m_introStrings,
- false) );
+ false, 3000) );
m_introStrings.clear();
m_introStrings.push_back(introText(0, DataCache::Instance()->getIntroString(9)));
@@ -287,7 +310,7 @@
Frame::NO_TRANSITION,
Frame::FADE_OUT,
m_introStrings,
- true) );
+ true, 2000) );
m_introStrings.clear();
m_introStrings.push_back(introText(0, DataCache::Instance()->getIntroString(12)));
@@ -311,7 +334,7 @@
Frame::NO_TRANSITION,
Frame::FADE_OUT,
m_introStrings,
- true) );
+ true, 2000) );
m_introStrings.clear();
m_introStrings.push_back(introText(0, DataCache::Instance()->getIntroString(15)));
@@ -358,9 +381,9 @@
State::JustMadeInactive();
}
-
bool IntroState::next()
{
+
fprintf(stderr, "loading next..\n");
IntroList::iterator it = m_wsaNames.begin();
if (it == m_wsaNames.end() )
@@ -370,9 +393,32 @@
Frame* nextFrame = *it;
nextFrame->Load(m_currentFrame);
+/* uint16_t startTicks = SDL_GetTicks();
+ uint16_t curTicks;
+
+ SDL_Event event;
+ if(m_currentFrame != NULL)
+ while(((curTicks = SDL_GetTicks()) - startTicks) < m_currentFrame->m_endWait){
+ while(SDL_PollEvent(&event))
+ {
+ switch (event.type)
+ {
+ case (SDL_KEYDOWN):
+ switch( event.key.keysym.sym )
+ {
+ case SDLK_ESCAPE:
+ SkipIntro();
+ return true;
+ default:
+ break;
+ }
+ }
+ }
+ }*/
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 06:15:32
|
Revision: 226
http://dunelegacy.svn.sourceforge.net/dunelegacy/?rev=226&view=rev
Author: dvalin
Date: 2008-04-30 23:15:29 -0700 (Wed, 30 Apr 2008)
Log Message:
-----------
add some missing songs
Modified Paths:
--------------
branches/dunks/src/DataCache.cpp
Modified: branches/dunks/src/DataCache.cpp
===================================================================
--- branches/dunks/src/DataCache.cpp 2008-05-01 05:31:26 UTC (rev 225)
+++ branches/dunks/src/DataCache.cpp 2008-05-01 06:15:29 UTC (rev 226)
@@ -427,22 +427,46 @@
BriefingStrings[1] = new Stringfile("ENGLISH:TEXTO.ENG");
BriefingStrings[2] = new Stringfile("ENGLISH:TEXTH.ENG");
- addMusic(MUSIC_INTRO, "SOUND:DUNE0.ADL", 2);
+ addMusic(MUSIC_INTRO, "SOUND:DUNE0.ADL", 2);
+ // These are actually all the same song, but three different versions..
addMusic(MUSIC_LOSE, "SOUND:DUNE1.ADL", 3);
+ addMusic(MUSIC_LOSE, "SOUND:DUNE1.ADL", 4);
+ addMusic(MUSIC_LOSE, "SOUND:DUNE1.ADL", 5);
+ /* Looping..
+ * addMusic(MUSIC_PEACE, "SOUND:DUNE1.ADL", 2);*/
addMusic(MUSIC_PEACE, "SOUND:DUNE2.ADL", 6);
addMusic(MUSIC_PEACE, "SOUND:DUNE3.ADL", 6);
addMusic(MUSIC_PEACE, "SOUND:DUNE4.ADL", 6);
addMusic(MUSIC_PEACE, "SOUND:DUNE5.ADL", 6);
addMusic(MUSIC_PEACE, "SOUND:DUNE6.ADL", 6);
+ /* These are looping
+ * addMusic(MUSIC_PEACE, "SOUND:DUNE1.ADL", 6);
+ * addMusic(MUSIC_PEACE, "SOUND:DUNE7.ADL", 2);
+ * addMusic(MUSIC_PEACE, "SOUND:DUNE7.ADL", 3);
+ * addMusic(MUSIC_PEACE, "SOUND:DUNE7.ADL", 4);
+ * addMusic(MUSIC_PEACE, "SOUND:DUNE7.ADL", 6);*/
addMusic(MUSIC_PEACE, "SOUND:DUNE9.ADL", 4);
+ addMusic(MUSIC_PEACE, "SOUND:DUNE9.ADL", 5);
addMusic(MUSIC_PEACE, "SOUND:DUNE10.ADL", 2);
+ addMusic(MUSIC_ATTACK, "SOUND:DUNE10.ADL", 7);
addMusic(MUSIC_ATTACK, "SOUND:DUNE11.ADL", 7);
addMusic(MUSIC_ATTACK, "SOUND:DUNE12.ADL", 7);
addMusic(MUSIC_ATTACK, "SOUND:DUNE13.ADL", 7);
addMusic(MUSIC_ATTACK, "SOUND:DUNE14.ADL", 7);
addMusic(MUSIC_ATTACK, "SOUND:DUNE15.ADL", 7);
+ /* Looping..
+ * addMusic(MUSIC_ATTACK, "SOUND:DUNE16.ADL", 7);*/
+ addMusic(MUSIC_PEACE, "SOUND:DUNE16.ADL", 8);
+ /* Looping..
+ * addMusic(MUSIC_PEACE, "SOUND:DUNE17.ADL", 4);*/
addMusic(MUSIC_PEACE, "SOUND:DUNE18.ADL", 6);
+ addMusic(MUSIC_PEACE, "SOUND:DUNE19.ADL", 2);
+ addMusic(MUSIC_PEACE, "SOUND:DUNE19.ADL", 3);
addMusic(MUSIC_PEACE, "SOUND:DUNE19.ADL", 4);
+ /* These are looping
+ * addMusic(MUSIC_WIN, "SOUND:DUNE8.ADL", 2);
+ * addMusic(MUSIC_WIN, "SOUND:DUNE8.ADL", 3);
+ */
addMusic(MUSIC_WIN, "SOUND:DUNE20.ADL", 2);
delete data;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <dv...@us...> - 2008-05-01 05:31:28
|
Revision: 225
http://dunelegacy.svn.sourceforge.net/dunelegacy/?rev=225&view=rev
Author: dvalin
Date: 2008-04-30 22:31:26 -0700 (Wed, 30 Apr 2008)
Log Message:
-----------
* make soundplayer globally available from Application class
* speed up game initialization by loading things more ordered
* add music for westwood intro scene
Modified Paths:
--------------
branches/dunks/include/DataCache.h
branches/dunks/include/IntroState.h
branches/dunks/src/DataCache.cpp
branches/dunks/src/IntroState.cpp
Modified: branches/dunks/include/DataCache.h
===================================================================
--- branches/dunks/include/DataCache.h 2008-05-01 05:05:26 UTC (rev 224)
+++ branches/dunks/include/DataCache.h 2008-05-01 05:31:26 UTC (rev 225)
@@ -431,9 +431,9 @@
// std::string getBriefingText(ObjPic_enum mission, ObjPic_enum texttype, ObjPic_enum house);
std::string getIntroString(uint16_t i);
+ std::string getCreditsString(uint16_t i);
-
private:
remapped_images m_objImg;
remapped_images m_guiImg;
@@ -449,6 +449,7 @@
Animation* Anim[NUM_ANIMATION];
Stringfile* BriefingStrings[3];
Stringfile* IntroStrings;
+ Stringfile* CreditsStrings;
Mix_Chunk* soundChunk[NUM_SOUNDCHUNK];
};
Modified: branches/dunks/include/IntroState.h
===================================================================
--- branches/dunks/include/IntroState.h 2008-05-01 05:05:26 UTC (rev 224)
+++ branches/dunks/include/IntroState.h 2008-05-01 05:31:26 UTC (rev 225)
@@ -39,7 +39,7 @@
HOLDING
};
- Frame(std::string file, Transition in, Transition out, std::vector<introText> introStrings, bool cont, Palette_enum pal = INTRO_PAL);
+ Frame(std::string file, Transition in, Transition out, std::vector<introText> introStrings, bool cont, int8_t song = -1, Palette_enum pal = INTRO_PAL);
~Frame();
bool Execute(float ft);
@@ -59,6 +59,7 @@
WsafilePtr m_wsa;
int m_currentFrame;
float m_frametime;
+ int m_song;
ImagePtr m_animSurface, m_scaledSurface;
SDL_Color* m_transitionPalette;
Modified: branches/dunks/src/DataCache.cpp
===================================================================
--- branches/dunks/src/DataCache.cpp 2008-05-01 05:05:26 UTC (rev 224)
+++ branches/dunks/src/DataCache.cpp 2008-05-01 05:31:26 UTC (rev 225)
@@ -20,16 +20,40 @@
int len, maplen;
uint8_t *data, *mapdata;
-
- addPalette(INTRO_PAL, "INTRO:INTRO.PAL");
+ ResMan::Instance()->addRes("ENGLISH");
+
+ addPalette(WESTWOOD_PAL, "INTRO:WESTWOOD.PAL");
+ // Not properly decoded yet..
+ // CreditsStrings = new Stringfile("ENGLISH:CREDITS.ENG");
+
+ addPalette(INTRO_PAL, "INTRO:INTRO.PAL");
+ IntroStrings = new Stringfile("ENGLISH:INTRO.ENG");
+
+ ResMan::Instance()->addRes("DUNE");
+
// FIXME: Something seems to be fscked up with this palette, the Bene Gesserit
// mentat ends up looking a bit unhealthy greenish, needs to be corrected!
addPalette(BENE_PAL, "DUNE:BENE.PAL");
addPalette(IBM_PAL, "DUNE:IBM.PAL");
- addPalette(WESTWOOD_PAL, "INTRO:WESTWOOD.PAL");
+ ResMan::Instance()->addRes("SOUND");
+ addMusic(MUSIC_INTRO, "SOUND:DUNE0.ADL", 4);
+ ResMan::Instance()->addRes("ATRE");
+ ResMan::Instance()->addRes("GERMAN");
+ ResMan::Instance()->addRes("FINALE");
+ ResMan::Instance()->addRes("HARK");
+ ResMan::Instance()->addRes("HERC");
+ ResMan::Instance()->addRes("INTROVOC");
+ ResMan::Instance()->addRes("MENTAT");
+ ResMan::Instance()->addRes("MERC");
+ ResMan::Instance()->addRes("ORDOS");
+ ResMan::Instance()->addRes("SCENARIO");
+ ResMan::Instance()->addRes("VOC");
+ ResMan::Instance()->addRes("XTRE");
+
+
//LOADING FILES
data = ResMan::Instance()->readFile("DUNE:UNITS.SHP", &len);
ShpfilePtr units(new Shpfile(data, len));
@@ -44,7 +68,7 @@
data = ResMan::Instance()->readFile("DUNE:ICON.ICN", &len);
mapdata = ResMan::Instance()->readFile("DUNE:ICON.MAP", &maplen);
IcnfilePtr icon(new Icnfile(data, len, mapdata, maplen));
- delete mapdata;
+ //delete mapdata;
data = ResMan::Instance()->readFile("DUNE:STATIC.WSA", &len);
WsafilePtr radar(new Wsafile(data, len));
@@ -216,6 +240,8 @@
7|TILE_NORMAL,8|TILE_NORMAL,9|TILE_NORMAL,10|TILE_NORMAL,11|TILE_NORMAL));
// addGuiPic(UI_GameBar, PicFactory->createGameBar();
addGuiPic(UI_Indicator, units1->getPictureArray(3,1,8|TILE_NORMAL,9|TILE_NORMAL,10|TILE_NORMAL));
+// addMusic(MUSIC_INTRO, "SOUND:DUNE0.ADL", 2);
+
// SDL_SetColorKey(addGuiPic(UI_Indicator][HOUSE_HARKONNEN], SDL_SRCCOLORKEY | SDL_RLEACCEL, 0);
// addGuiPic(UI_InvalidPlace, PicFactory->createInvalidPlace();
// addGuiPic(UI_ValidPlace, PicFactory->createValidPlace();
@@ -397,12 +423,11 @@
addSoundChunk(Intro_Wind_2bp, getChunkFromFile("INTROVOC:WIND2BP.VOC"));
addSoundChunk(Intro_Your, getChunkFromFile("INTROVOC:YOUR.VOC"));
- IntroStrings = new Stringfile("ENGLISH:INTRO.ENG");
BriefingStrings[0] = new Stringfile("ENGLISH:TEXTA.ENG");
BriefingStrings[1] = new Stringfile("ENGLISH:TEXTO.ENG");
BriefingStrings[2] = new Stringfile("ENGLISH:TEXTH.ENG");
- addMusic(MUSIC_INTRO, "SOUND:DUNE0.ADL", 2);
+ addMusic(MUSIC_INTRO, "SOUND:DUNE0.ADL", 2);
addMusic(MUSIC_LOSE, "SOUND:DUNE1.ADL", 3);
addMusic(MUSIC_PEACE, "SOUND:DUNE2.ADL", 6);
addMusic(MUSIC_PEACE, "SOUND:DUNE3.ADL", 6);
@@ -622,6 +647,15 @@
return IntroStrings->getString(i);
}
+std::string DataCache::getCreditsString(uint16_t i){
+#ifdef THREADS
+ spinlock:
+ if(!IntroStrings)
+ goto spinlock;
+#endif
+ return CreditsStrings->getString(i);
+}
+
void DataCache::addAnimation(Animation_enum ID, std::string fileName, double frameRate) {
int len;
uint8_t * data = ResMan::Instance()->readFile(fileName, &len);
Modified: branches/dunks/src/IntroState.cpp
===================================================================
--- branches/dunks/src/IntroState.cpp 2008-05-01 05:05:26 UTC (rev 224)
+++ branches/dunks/src/IntroState.cpp 2008-05-01 05:31:26 UTC (rev 225)
@@ -15,7 +15,7 @@
IntroState::Frame::Frame(std::string filename,
Transition in, Transition out,
std::vector<introText> introStrings,
- bool continuation, Palette_enum pal)
+ bool continuation, int8_t song, Palette_enum pal)
{
m_filename = filename;
m_transition_in = in;
@@ -31,6 +31,8 @@
m_container->setSize(UPoint(Settings::Instance()->GetWidth(),
Settings::Instance()->GetHeight()));
m_palette = DataCache::Instance()->getPalette(pal);
+
+ m_song = song;
Application::Instance()->RootWidget()->addChild(m_container);
@@ -99,6 +101,7 @@
void IntroState::Frame::doPlaying(float dt)
{
+
m_frametime += dt;
if (m_frametime > m_wsa->getFPS())
@@ -127,6 +130,10 @@
void IntroState::Frame::doTransitionIn(float dt)
{
+ if(m_song != -1){
+ Application::Instance()->playSound(DataCache::Instance()->getMusic(MUSIC_INTRO, m_song));
+ }
+
if (m_transition_in == NO_TRANSITION) m_state = PLAYING;
}
@@ -194,12 +201,13 @@
IntroState::IntroState()
{
- m_introStrings.push_back(introText(0, "Original copyright by:"));
+ m_introStrings.push_back(introText(0, "")); // credits.eng isn't properly decoded yet..
+ // DataCache::Instance()->getCreditsString(20)));
enque( new Frame("INTRO:WESTWOOD.WSA",
Frame::NO_TRANSITION,
Frame::NO_TRANSITION,
m_introStrings,
- false, WESTWOOD_PAL) );
+ false, 0, WESTWOOD_PAL) );
m_introStrings.clear();
m_introStrings.push_back(introText(0, DataCache::Instance()->getIntroString(2)));
@@ -207,7 +215,7 @@
Frame::NO_TRANSITION,
Frame::FADE_OUT,
m_introStrings,
- false) );
+ false, 1) );
m_introStrings.clear();
m_introStrings.push_back(introText(0, DataCache::Instance()->getIntroString(3)));
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <dv...@us...> - 2008-05-01 05:05:29
|
Revision: 224
http://dunelegacy.svn.sourceforge.net/dunelegacy/?rev=224&view=rev
Author: dvalin
Date: 2008-04-30 22:05:26 -0700 (Wed, 30 Apr 2008)
Log Message:
-----------
0x04 & 0x03 is separater between strings for credits.eng, but I still need to figure out how to read the file properly :/
Modified Paths:
--------------
branches/dunks/src/pakfile/Stringfile.cpp
Modified: branches/dunks/src/pakfile/Stringfile.cpp
===================================================================
--- branches/dunks/src/pakfile/Stringfile.cpp 2008-04-30 21:05:29 UTC (rev 223)
+++ branches/dunks/src/pakfile/Stringfile.cpp 2008-05-01 05:05:26 UTC (rev 224)
@@ -8,7 +8,7 @@
Stringfile::Stringfile(std::string stringFileName) {
int bufsize;
- unsigned char* bufFiledata = ResMan::Instance()->readFile(stringFileName.c_str(), &bufsize);
+ uint8_t* bufFiledata = ResMan::Instance()->readFile(stringFileName.c_str(), &bufsize);
Uint16* index;
SDL_RWops* RWop = SDL_RWFromMem(bufFiledata, bufsize);
@@ -78,6 +78,8 @@
switch(databyte) {
case 0x00: break;
+ case 0x04: break;
+ case 0x03: break;
case 0x0C: out += "\n"; break;
case 0x0D: out += "\n"; break;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
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-04-30 20:51:45
|
Revision: 222
http://dunelegacy.svn.sourceforge.net/dunelegacy/?rev=222&view=rev
Author: dvalin
Date: 2008-04-30 13:51:39 -0700 (Wed, 30 Apr 2008)
Log Message:
-----------
add spinlocks for string getter functions
Modified Paths:
--------------
branches/dunks/src/DataCache.cpp
Modified: branches/dunks/src/DataCache.cpp
===================================================================
--- branches/dunks/src/DataCache.cpp 2008-04-30 17:57:54 UTC (rev 221)
+++ branches/dunks/src/DataCache.cpp 2008-04-30 20:51:39 UTC (rev 222)
@@ -605,10 +605,20 @@
}
std::string DataCache::getBriefingText(uint16_t mission, uint16_t textType, HOUSETYPE house) {
+#ifdef THREADS
+ spinlock:
+ if(!BriefingStrings[house])
+ goto spinlock;
+#endif
return BriefingStrings[house]->getString(mission,textType);
}
std::string DataCache::getIntroString(uint16_t i){
+#ifdef THREADS
+ spinlock:
+ if(!IntroStrings)
+ goto spinlock;
+#endif
return IntroStrings->getString(i);
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <dv...@us...> - 2008-04-30 17:58:48
|
Revision: 221
http://dunelegacy.svn.sourceforge.net/dunelegacy/?rev=221&view=rev
Author: dvalin
Date: 2008-04-30 10:57:54 -0700 (Wed, 30 Apr 2008)
Log Message:
-----------
* fix order of intro scenes
* start on adding intro text etc..
Modified Paths:
--------------
branches/dunks/include/DataCache.h
branches/dunks/include/IntroState.h
branches/dunks/src/Application.cpp
branches/dunks/src/DataCache.cpp
branches/dunks/src/IntroState.cpp
Modified: branches/dunks/include/DataCache.h
===================================================================
--- branches/dunks/include/DataCache.h 2008-04-30 06:11:55 UTC (rev 220)
+++ branches/dunks/include/DataCache.h 2008-04-30 17:57:54 UTC (rev 221)
@@ -430,7 +430,7 @@
std::string getBriefingText(uint16_t mission, uint16_t textType, HOUSETYPE house);
// std::string getBriefingText(ObjPic_enum mission, ObjPic_enum texttype, ObjPic_enum house);
-// std::string getBriefingText(ObjPic_enum i);
+ std::string getIntroString(uint16_t i);
@@ -448,6 +448,7 @@
Animation* Anim[NUM_ANIMATION];
Stringfile* BriefingStrings[3];
+ Stringfile* IntroStrings;
Mix_Chunk* soundChunk[NUM_SOUNDCHUNK];
};
Modified: branches/dunks/include/IntroState.h
===================================================================
--- branches/dunks/include/IntroState.h 2008-04-30 06:11:55 UTC (rev 220)
+++ branches/dunks/include/IntroState.h 2008-04-30 17:57:54 UTC (rev 221)
@@ -3,13 +3,22 @@
#include "Gfx.h"
#include "State.h"
+
#include "gui2/Button.h"
#include "pakfile/Wsafile.h"
+#include "DataCache.h"
#include "SDL.h"
+
#include <list>
#include <string>
+typedef std::pair <uint16_t, std::string> introText;
+
+class StringFile;
+class Button;
+class Label;
+class Container;
class IntroState : public State
{
@@ -30,7 +39,8 @@
HOLDING
};
- Frame(std::string file, Transition in, Transition out, bool cont);
+ Frame(std::string file, Transition in, Transition out, std::vector<introText> introStrings, bool cont, Palette_enum pal = INTRO_PAL);
+ ~Frame();
bool Execute(float ft);
void Load(Frame* lastframe);
@@ -52,7 +62,12 @@
ImagePtr m_animSurface, m_scaledSurface;
SDL_Color* m_transitionPalette;
+ Label* m_subText;
+ Container* m_container;
+ std::vector<introText> m_introStrings;
+ SDL_Palette* m_palette;
+
void setupTransitionIn();
void setupTransitionOut();
void cleanupTransitionIn();
@@ -66,6 +81,7 @@
typedef std::list<Frame*> IntroList;
+
public:
@@ -81,14 +97,17 @@
bool next();
void load(Frame frame);
virtual const char* GetName() { return "IntroState"; }
+ StringFile* m_introStringFile;
private:
-
IntroList m_wsaNames;
TranspButton *m_butIntro;
Frame* m_currentFrame;
+ std::vector<introText> m_introStrings;
+
+// Font* font;
};
Modified: branches/dunks/src/Application.cpp
===================================================================
--- branches/dunks/src/Application.cpp 2008-04-30 06:11:55 UTC (rev 220)
+++ branches/dunks/src/Application.cpp 2008-04-30 17:57:54 UTC (rev 221)
@@ -204,7 +204,7 @@
void Application::SetPalette()
{
- SDL_Palette * pal = DataCache::Instance()->getPalette(INTRO_PAL);
+ SDL_Palette * pal = DataCache::Instance()->getPalette(IBM_PAL);
//This fixes white wheels. Is palette broken or sth??
Modified: branches/dunks/src/DataCache.cpp
===================================================================
--- branches/dunks/src/DataCache.cpp 2008-04-30 06:11:55 UTC (rev 220)
+++ branches/dunks/src/DataCache.cpp 2008-04-30 17:57:54 UTC (rev 221)
@@ -397,6 +397,7 @@
addSoundChunk(Intro_Wind_2bp, getChunkFromFile("INTROVOC:WIND2BP.VOC"));
addSoundChunk(Intro_Your, getChunkFromFile("INTROVOC:YOUR.VOC"));
+ IntroStrings = new Stringfile("ENGLISH:INTRO.ENG");
BriefingStrings[0] = new Stringfile("ENGLISH:TEXTA.ENG");
BriefingStrings[1] = new Stringfile("ENGLISH:TEXTO.ENG");
BriefingStrings[2] = new Stringfile("ENGLISH:TEXTH.ENG");
@@ -434,13 +435,9 @@
SDL_Palette* DataCache::getPalette(Palette_enum palette)
{
- PalettefilePtr pal;
#ifdef THREADS
spinlock:
-#endif
-// pal = m_palette[palette];
-#ifdef THREADS
- if(!m_palette[palette]->getPalette())
+ if(!m_palette[palette])
goto spinlock;
#endif
return m_palette[palette]->getPalette();
@@ -611,9 +608,9 @@
return BriefingStrings[house]->getString(mission,textType);
}
-/*std::string DataCache::getBriefingText(int i){
- return BriefingStrings[0]->getString(i);
-}*/
+std::string DataCache::getIntroString(uint16_t i){
+ return IntroStrings->getString(i);
+}
void DataCache::addAnimation(Animation_enum ID, std::string fileName, double frameRate) {
int len;
Modified: branches/dunks/src/IntroState.cpp
===================================================================
--- branches/dunks/src/IntroState.cpp 2008-04-30 06:11:55 UTC (rev 220)
+++ branches/dunks/src/IntroState.cpp 2008-04-30 17:57:54 UTC (rev 221)
@@ -1,17 +1,21 @@
#include "IntroState.h"
#include "ResMan.h"
#include "Application.h"
+#include "DataCache.h"
#include "Gfx.h"
#include "Settings.h"
#include "pakfile/Palette.h"
#include "boost/bind.hpp"
+#include "gui2/Label.h"
+#include "gui2/Container.h"
// ------------------------------------------------------------------
// IntroState::Frame
IntroState::Frame::Frame(std::string filename,
Transition in, Transition out,
- bool continuation)
+ std::vector<introText> introStrings,
+ bool continuation, Palette_enum pal)
{
m_filename = filename;
m_transition_in = in;
@@ -21,16 +25,25 @@
m_state = TRANSITION_IN;
m_hold = 0.0f;
m_transitionPalette = NULL;
+ m_introStrings = introStrings;
+ m_container = new Container();
+// m_container->setPosition(UPoint(250, 400));
+ m_container->setSize(UPoint(Settings::Instance()->GetWidth(),
+ Settings::Instance()->GetHeight()));
+ m_palette = DataCache::Instance()->getPalette(pal);
+
+ Application::Instance()->RootWidget()->addChild(m_container);
+
}
void IntroState::Frame::Load(Frame* lastframe)
{
- SDL_Palette* palette = Application::Instance()->Screen()->getSurface()->format->palette;
+// SDL_Palette* palette = Application::Instance()->Screen()->getSurface()->format->palette;
printf("intro loading %s\n", m_filename.c_str());
int len;
- unsigned char* data = ResMan::Instance()->readFile(m_filename, &len);
+ uint8_t * data = ResMan::Instance()->readFile(m_filename, &len);
assert(data != NULL);
@@ -47,9 +60,13 @@
m_currentFrame = 0;
mb_finished = false;
- m_animSurface.reset(m_wsa->getPicture(m_currentFrame, palette));
+ m_animSurface.reset(m_wsa->getPicture(m_currentFrame, m_palette));
m_scaledSurface = m_animSurface->getResized(2.0);
-
+ if(m_introStrings.size() > 0){
+ m_subText = new Label(m_introStrings[0].second, 49, 0);
+ m_container->setPosition(UPoint(50, 420));
+ m_container->addChild(m_subText);
+ }
}
bool IntroState::Frame::Execute(float dt)
@@ -82,8 +99,6 @@
void IntroState::Frame::doPlaying(float dt)
{
- SDL_Palette* palette = Application::Instance()->Screen()->getSurface()->format->palette;
-
m_frametime += dt;
if (m_frametime > m_wsa->getFPS())
@@ -96,7 +111,7 @@
}
else
{
- m_animSurface.reset(m_wsa->getPicture(m_currentFrame, palette));
+ m_animSurface.reset(m_wsa->getPicture(m_currentFrame, m_palette));
m_scaledSurface = m_animSurface->getResized(2.0);
};
};
@@ -118,8 +133,8 @@
void IntroState::Frame::setupTransitionOut()
{
m_transitionPalette = new SDL_Color[256];
- memcpy((unsigned char*)m_transitionPalette,
- Application::Instance()->Screen()->getSurface()->format->palette->colors,
+ memcpy((unsigned char*)m_transitionPalette,
+ m_palette->colors,
sizeof(SDL_Color) * 256);
}
@@ -139,7 +154,7 @@
if (m_transitionPalette == NULL) setupTransitionOut();
bool done = true;
- SDL_Surface* screen = m_scaledSurface->getSurface(); //Application::Instance()->Screen();
+ SDL_Surface* screen = m_scaledSurface->getSurface();
SDL_Color* col = m_transitionPalette;
const int fadeAmt = 3;
@@ -156,7 +171,6 @@
}
};
- //SDL_SetPalette(screen, SDL_LOGPAL|SDL_PHYSPAL, m_tempPal, 0, 256);
SDL_SetPalette(screen, SDL_LOGPAL, m_transitionPalette, 0, 256);
if (done)
@@ -171,73 +185,138 @@
m_state = TRANSITION_OUT;
}
+IntroState::Frame::~Frame()
+{
+ m_container->deleteChild(m_subText);
+}
// ------------------------------------------------------------------
// IntroState
IntroState::IntroState()
{
- m_currentFrame = NULL;
+ m_introStrings.push_back(introText(0, "Original copyright by:"));
+ enque( new Frame("INTRO:WESTWOOD.WSA",
+ Frame::NO_TRANSITION,
+ Frame::NO_TRANSITION,
+ m_introStrings,
+ false, WESTWOOD_PAL) );
+ m_introStrings.clear();
+ m_introStrings.push_back(introText(0, DataCache::Instance()->getIntroString(2)));
enque( new Frame("INTRO:INTRO1.WSA",
Frame::NO_TRANSITION,
Frame::FADE_OUT,
+ m_introStrings,
false) );
+ m_introStrings.clear();
+ m_introStrings.push_back(introText(0, DataCache::Instance()->getIntroString(3)));
+
enque( new Frame("INTRO:INTRO2.WSA",
Frame::NO_TRANSITION,
Frame::FADE_OUT,
+ m_introStrings,
false) );
+ m_introStrings.clear();
+ m_introStrings.push_back(introText(0, DataCache::Instance()->getIntroString(4)));
+
enque( new Frame("INTRO:INTRO3.WSA",
Frame::NO_TRANSITION,
Frame::FADE_OUT,
+ m_introStrings,
false) );
- enque( new Frame("INTRO:INTRO4.WSA",
+ m_introStrings.clear();
+ m_introStrings.push_back(introText(0, DataCache::Instance()->getIntroString(5)));
+
+ enque( new Frame("INTRO:INTRO9.WSA",
Frame::NO_TRANSITION,
Frame::FADE_OUT,
+ m_introStrings,
false) );
- enque( new Frame("INTRO:INTRO5.WSA",
+ m_introStrings.clear();
+ m_introStrings.push_back(introText(0, DataCache::Instance()->getIntroString(6)));
+
+ enque( new Frame("INTRO:INTRO10.WSA",
Frame::NO_TRANSITION,
Frame::FADE_OUT,
+ m_introStrings,
false) );
- enque( new Frame("INTRO:INTRO6.WSA",
+ m_introStrings.clear();
+ m_introStrings.push_back(introText(0, DataCache::Instance()->getIntroString(7)));
+
+ enque( new Frame("INTRO:INTRO11.WSA",
Frame::NO_TRANSITION,
Frame::FADE_OUT,
+ m_introStrings,
false) );
+ m_introStrings.clear();
+ m_introStrings.push_back(introText(0, DataCache::Instance()->getIntroString(8)));
+
+ enque( new Frame("INTRO:INTRO4.WSA",
+ Frame::NO_TRANSITION,
+ Frame::FADE_OUT,
+ m_introStrings,
+ false) );
+ m_introStrings.clear();
+ m_introStrings.push_back(introText(0, DataCache::Instance()->getIntroString(9)));
+
+ enque( new Frame("INTRO:INTRO6.WSA",
+ Frame::NO_TRANSITION,
+ Frame::FADE_OUT,
+ m_introStrings,
+ false) );
+ m_introStrings.clear();
+ m_introStrings.push_back(introText(0, DataCache::Instance()->getIntroString(10)));
+
enque( new Frame("INTRO:INTRO7A.WSA",
Frame::NO_TRANSITION,
Frame::NO_TRANSITION,
+ m_introStrings,
false) );
+ m_introStrings.clear();
+ m_introStrings.push_back(introText(0, DataCache::Instance()->getIntroString(11)));
+
enque( new Frame("INTRO:INTRO7B.WSA",
Frame::NO_TRANSITION,
Frame::FADE_OUT,
+ m_introStrings,
true) );
+ m_introStrings.clear();
+ m_introStrings.push_back(introText(0, DataCache::Instance()->getIntroString(12)));
+
enque( new Frame("INTRO:INTRO8A.WSA",
Frame::NO_TRANSITION,
Frame::NO_TRANSITION,
+ m_introStrings,
false) );
- enque( new Frame("INTRO:INTRO8B.WSA",
+ m_introStrings.clear();
+ m_introStrings.push_back(introText(0, DataCache::Instance()->getIntroString(13)));
+
+ enque( new Frame("INTRO:INTRO8B.WSA",
Frame::NO_TRANSITION,
Frame::NO_TRANSITION,
+ m_introStrings,
true) );
+ m_introStrings.clear();
+ m_introStrings.push_back(introText(0, DataCache::Instance()->getIntroString(14)));
+
enque( new Frame("INTRO:INTRO8C.WSA",
Frame::NO_TRANSITION,
Frame::FADE_OUT,
+ m_introStrings,
true) );
- enque( new Frame("INTRO:INTRO9.WSA",
+ m_introStrings.clear();
+ m_introStrings.push_back(introText(0, DataCache::Instance()->getIntroString(15)));
+
+ enque( new Frame("INTRO:INTRO5.WSA",
Frame::NO_TRANSITION,
Frame::FADE_OUT,
+ m_introStrings,
false) );
- enque( new Frame("INTRO:INTRO10.WSA",
- Frame::NO_TRANSITION,
- Frame::FADE_OUT,
- false) );
- enque( new Frame("INTRO:INTRO11.WSA",
- Frame::NO_TRANSITION,
- Frame::FADE_OUT,
- false) );
// seems nice to play this again ;)
enque( new Frame("INTRO:INTRO1.WSA",
Frame::NO_TRANSITION,
Frame::FADE_OUT,
+ m_introStrings,
false) );
next();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <dv...@us...> - 2008-04-30 06:12:02
|
Revision: 220
http://dunelegacy.svn.sourceforge.net/dunelegacy/?rev=220&view=rev
Author: dvalin
Date: 2008-04-29 23:11:55 -0700 (Tue, 29 Apr 2008)
Log Message:
-----------
fix race conditions with palettes by fetching them from DataCache in stead since it has spinlocks
Modified Paths:
--------------
branches/dunks/src/DataCache.cpp
branches/dunks/src/pakfile/Cpsfile.cpp
branches/dunks/src/pakfile/Shpfile.cpp
Modified: branches/dunks/src/DataCache.cpp
===================================================================
--- branches/dunks/src/DataCache.cpp 2008-04-30 04:16:12 UTC (rev 219)
+++ branches/dunks/src/DataCache.cpp 2008-04-30 06:11:55 UTC (rev 220)
@@ -429,7 +429,7 @@
uint8_t * data = ResMan::Instance()->readFile(paletteFile, &len);
PalettefilePtr tmp (new Palettefile(data, len));
- m_palette[palette] = tmp;
+ m_palette[palette] = tmp; //pal;
}
SDL_Palette* DataCache::getPalette(Palette_enum palette)
@@ -438,12 +438,12 @@
#ifdef THREADS
spinlock:
#endif
- pal = m_palette[palette];
+// pal = m_palette[palette];
#ifdef THREADS
- if(pal == NULL)
+ if(!m_palette[palette]->getPalette())
goto spinlock;
#endif
- return pal->getPalette();
+ return m_palette[palette]->getPalette();
}
void DataCache::addObjPic(ObjPic_enum ID, Image * tmp, HOUSETYPE house) {
@@ -619,7 +619,7 @@
int len;
uint8_t * data = ResMan::Instance()->readFile(fileName, &len);
WsafilePtr wsafile(new Wsafile(data, len));
- SDL_Palette* palette = Application::Instance()->Screen()->getSurface()->format->palette;
+ SDL_Palette* palette = getPalette(IBM_PAL);
Animation* animation = wsafile->getAnimation(0,wsafile->getNumFrames() - 1, palette, false);
if(frameRate)
Modified: branches/dunks/src/pakfile/Cpsfile.cpp
===================================================================
--- branches/dunks/src/pakfile/Cpsfile.cpp 2008-04-30 04:16:12 UTC (rev 219)
+++ branches/dunks/src/pakfile/Cpsfile.cpp 2008-04-30 06:11:55 UTC (rev 220)
@@ -1,6 +1,6 @@
#include "pakfile/Cpsfile.h"
#include <SDL_endian.h>
-#include "Application.h"
+#include "DataCache.h"
#include <stdlib.h>
#include <string.h>
@@ -12,7 +12,7 @@
Filedata = bufFiledata;
CpsFilesize = bufsize;
if (palette == NULL)
- m_palette = Application::Instance()->Screen()->getSurface()->format->palette;
+ m_palette = DataCache::Instance()->getPalette(IBM_PAL);
else
m_palette = palette;
}
Modified: branches/dunks/src/pakfile/Shpfile.cpp
===================================================================
--- branches/dunks/src/pakfile/Shpfile.cpp 2008-04-30 04:16:12 UTC (rev 219)
+++ branches/dunks/src/pakfile/Shpfile.cpp 2008-04-30 06:11:55 UTC (rev 220)
@@ -1,13 +1,10 @@
-#include "Application.h"
-
+#include "DataCache.h"
#include "pakfile/Shpfile.h"
#include "pakfile/Animation.h"
#include <SDL_endian.h>
#include <stdlib.h>
#include <string.h>
-//extern SDL_Palette* palette;
-
Shpfile::Shpfile(unsigned char * bufFiledata, int bufsize, SDL_Palette * palette) : Decode()
{
Filedata = bufFiledata;
@@ -15,7 +12,7 @@
Index = NULL;
readIndex();
if (palette == NULL)
- m_palette = Application::Instance()->Screen()->getSurface()->format->palette;
+ m_palette = DataCache::Instance()->getPalette(IBM_PAL);
else
m_palette = palette;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <dv...@us...> - 2008-04-30 04:16:43
|
Revision: 219
http://dunelegacy.svn.sourceforge.net/dunelegacy/?rev=219&view=rev
Author: dvalin
Date: 2008-04-29 21:16:12 -0700 (Tue, 29 Apr 2008)
Log Message:
-----------
delete som leftovers..
Modified Paths:
--------------
branches/dunks/src/DataCache.cpp
Modified: branches/dunks/src/DataCache.cpp
===================================================================
--- branches/dunks/src/DataCache.cpp 2008-04-30 04:06:44 UTC (rev 218)
+++ branches/dunks/src/DataCache.cpp 2008-04-30 04:16:12 UTC (rev 219)
@@ -429,7 +429,7 @@
uint8_t * data = ResMan::Instance()->readFile(paletteFile, &len);
PalettefilePtr tmp (new Palettefile(data, len));
- m_palette[palette] = tmp; //pal;
+ m_palette[palette] = tmp;
}
SDL_Palette* DataCache::getPalette(Palette_enum palette)
@@ -581,6 +581,7 @@
}
SDL_RWclose(rwop);
+ delete data;
return returnChunk;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <dv...@us...> - 2008-04-30 04:06:46
|
Revision: 218
http://dunelegacy.svn.sourceforge.net/dunelegacy/?rev=218&view=rev
Author: dvalin
Date: 2008-04-29 21:06:44 -0700 (Tue, 29 Apr 2008)
Log Message:
-----------
store the PalettefilePtr in steadof SDL_Palette*, still something fishy going on, should probably make PalettePtr..
Modified Paths:
--------------
branches/dunks/include/DataCache.h
branches/dunks/src/DataCache.cpp
Modified: branches/dunks/include/DataCache.h
===================================================================
--- branches/dunks/include/DataCache.h 2008-04-30 03:44:22 UTC (rev 217)
+++ branches/dunks/include/DataCache.h 2008-04-30 04:06:44 UTC (rev 218)
@@ -439,7 +439,7 @@
remapped_images m_guiImg;
remapped_music m_music;
std::vector<songFile> songFiles[MUSIC_RANDOM];
- SDL_Palette* m_palette[NUM_PALETTES];
+ PalettefilePtr m_palette[NUM_PALETTES];
Mix_Chunk* getChunkFromFile(std::string fileName);
Mix_Chunk* concat2Chunks(Mix_Chunk* sound1, Mix_Chunk* sound2);
Modified: branches/dunks/src/DataCache.cpp
===================================================================
--- branches/dunks/src/DataCache.cpp 2008-04-30 03:44:22 UTC (rev 217)
+++ branches/dunks/src/DataCache.cpp 2008-04-30 04:06:44 UTC (rev 218)
@@ -5,9 +5,6 @@
#include <iostream>
DataCache::DataCache() {
- for(uint8_t i = 0; i < NUM_PALETTES; i++)
- m_palette[i] = NULL;
-
}
void DataCache::Init(){
@@ -29,11 +26,6 @@
// FIXME: Something seems to be fscked up with this palette, the Bene Gesserit
// mentat ends up looking a bit unhealthy greenish, needs to be corrected!
addPalette(BENE_PAL, "DUNE:BENE.PAL");
- // For some reason things crashes if we fetch the palette and use it here.. :/
- data = ResMan::Instance()->readFile("DUNE:BENE.PAL", &len);
- PalettefilePtr tmp(new Palettefile(data, len));
- SDL_Palette * pal = tmp->getPalette();
-
addPalette(IBM_PAL, "DUNE:IBM.PAL");
addPalette(WESTWOOD_PAL, "INTRO:WESTWOOD.PAL");
@@ -63,7 +55,7 @@
data = ResMan::Instance()->readFile("DUNE:MENSHPO.SHP", &len);
ShpfilePtr menshpo(new Shpfile(data, len));
data = ResMan::Instance()->readFile("DUNE:MENSHPM.SHP", &len);
- ShpfilePtr menshpm(new Shpfile(data, len, pal)); //getPalette(BENE_PAL)));
+ ShpfilePtr menshpm(new Shpfile(data, len, getPalette(BENE_PAL)));
data = ResMan::Instance()->readFile("ENGLISH:CHOAM.ENG", &len);
ShpfilePtr choam(new Shpfile(data, len));
data = ResMan::Instance()->readFile("ENGLISH:BTTN.ENG", &len);
@@ -81,7 +73,7 @@
data = ResMan::Instance()->readFile("DUNE:MENTATH.CPS", &len);
CpsfilePtr mentath (new Cpsfile(data, len));
data = ResMan::Instance()->readFile("DUNE:MENTATM.CPS", &len);
- CpsfilePtr mentatm (new Cpsfile(data, len, pal)); //getPalette(BENE_PAL)));
+ CpsfilePtr mentatm (new Cpsfile(data, len, getPalette(BENE_PAL)));
data = ResMan::Instance()->readFile("ENGLISH:MENTAT.ENG", &len);
ShpfilePtr mentat (new Shpfile(data, len));
@@ -437,13 +429,12 @@
uint8_t * data = ResMan::Instance()->readFile(paletteFile, &len);
PalettefilePtr tmp (new Palettefile(data, len));
- SDL_Palette * pal = tmp->getPalette();
- m_palette[palette] = pal;
+ m_palette[palette] = tmp; //pal;
}
SDL_Palette* DataCache::getPalette(Palette_enum palette)
{
- SDL_Palette* pal;
+ PalettefilePtr pal;
#ifdef THREADS
spinlock:
#endif
@@ -452,7 +443,7 @@
if(pal == NULL)
goto spinlock;
#endif
- return pal;
+ return pal->getPalette();
}
void DataCache::addObjPic(ObjPic_enum ID, Image * tmp, HOUSETYPE house) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <dv...@us...> - 2008-04-30 03:44:48
|
Revision: 217
http://dunelegacy.svn.sourceforge.net/dunelegacy/?rev=217&view=rev
Author: dvalin
Date: 2008-04-29 20:44:22 -0700 (Tue, 29 Apr 2008)
Log Message:
-----------
use smart pointers..
Modified Paths:
--------------
branches/dunks/include/pakfile/Palette.h
branches/dunks/src/DataCache.cpp
Modified: branches/dunks/include/pakfile/Palette.h
===================================================================
--- branches/dunks/include/pakfile/Palette.h 2008-04-30 03:32:05 UTC (rev 216)
+++ branches/dunks/include/pakfile/Palette.h 2008-04-30 03:44:22 UTC (rev 217)
@@ -3,6 +3,11 @@
#include "SDL.h"
+#include <boost/shared_ptr.hpp>
+
+class Palettefile;
+typedef boost::shared_ptr<Palettefile> PalettefilePtr;
+
class Palettefile
{
public:
Modified: branches/dunks/src/DataCache.cpp
===================================================================
--- branches/dunks/src/DataCache.cpp 2008-04-30 03:32:05 UTC (rev 216)
+++ branches/dunks/src/DataCache.cpp 2008-04-30 03:44:22 UTC (rev 217)
@@ -31,8 +31,8 @@
addPalette(BENE_PAL, "DUNE:BENE.PAL");
// For some reason things crashes if we fetch the palette and use it here.. :/
data = ResMan::Instance()->readFile("DUNE:BENE.PAL", &len);
- Palettefile tmp (data, len);
- SDL_Palette * pal = tmp.getPalette();
+ PalettefilePtr tmp(new Palettefile(data, len));
+ SDL_Palette * pal = tmp->getPalette();
addPalette(IBM_PAL, "DUNE:IBM.PAL");
addPalette(WESTWOOD_PAL, "INTRO:WESTWOOD.PAL");
@@ -63,7 +63,7 @@
data = ResMan::Instance()->readFile("DUNE:MENSHPO.SHP", &len);
ShpfilePtr menshpo(new Shpfile(data, len));
data = ResMan::Instance()->readFile("DUNE:MENSHPM.SHP", &len);
- ShpfilePtr menshpm(new Shpfile(data, len, getPalette(BENE_PAL)));
+ ShpfilePtr menshpm(new Shpfile(data, len, pal)); //getPalette(BENE_PAL)));
data = ResMan::Instance()->readFile("ENGLISH:CHOAM.ENG", &len);
ShpfilePtr choam(new Shpfile(data, len));
data = ResMan::Instance()->readFile("ENGLISH:BTTN.ENG", &len);
@@ -81,7 +81,7 @@
data = ResMan::Instance()->readFile("DUNE:MENTATH.CPS", &len);
CpsfilePtr mentath (new Cpsfile(data, len));
data = ResMan::Instance()->readFile("DUNE:MENTATM.CPS", &len);
- CpsfilePtr mentatm (new Cpsfile(data, len, getPalette(BENE_PAL)));
+ CpsfilePtr mentatm (new Cpsfile(data, len, pal)); //getPalette(BENE_PAL)));
data = ResMan::Instance()->readFile("ENGLISH:MENTAT.ENG", &len);
ShpfilePtr mentat (new Shpfile(data, len));
@@ -435,9 +435,9 @@
{
int len;
uint8_t * data = ResMan::Instance()->readFile(paletteFile, &len);
- Palettefile tmp (data, len);
+ PalettefilePtr tmp (new Palettefile(data, len));
- SDL_Palette * pal = tmp.getPalette();
+ SDL_Palette * pal = tmp->getPalette();
m_palette[palette] = pal;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <dv...@us...> - 2008-04-30 03:32:08
|
Revision: 216
http://dunelegacy.svn.sourceforge.net/dunelegacy/?rev=216&view=rev
Author: dvalin
Date: 2008-04-29 20:32:05 -0700 (Tue, 29 Apr 2008)
Log Message:
-----------
add spinlocks for palettes (something's busted though :/)
Modified Paths:
--------------
branches/dunks/include/DataCache.h
branches/dunks/src/Application.cpp
branches/dunks/src/DataCache.cpp
Modified: branches/dunks/include/DataCache.h
===================================================================
--- branches/dunks/include/DataCache.h 2008-04-30 03:22:55 UTC (rev 215)
+++ branches/dunks/include/DataCache.h 2008-04-30 03:32:05 UTC (rev 216)
@@ -23,7 +23,7 @@
#define NUM_MAPCHOICEPIECES 28
#define NUM_MAPCHOICEARROWS 9
class Animation;
-
+//class SDL_Palette;
//! \enum MUSICTYPE
/*! Types of music available in the game*/
typedef enum { MUSIC_ATTACK, /*!<Played when at least one of player's units was hit. */
@@ -34,6 +34,13 @@
MUSIC_RANDOM /*!<Player used key combination to change current music. */
} MUSICTYPE;
+typedef enum {
+ INTRO_PAL,
+ BENE_PAL,
+ IBM_PAL,
+ WESTWOOD_PAL,
+ NUM_PALETTES
+} Palette_enum;
// ObjPics
typedef enum {
@@ -411,6 +418,8 @@
void addAnimation(Animation_enum ID, Animation* animation, double frameRate = 0);
void addSoundChunk(Sound_enum ID, Mix_Chunk* tmp);
void addMusic(MUSICTYPE musicType, std::string filename, uint16_t trackNum);
+ void addPalette(Palette_enum palette, std::string paletteFile);
+ SDL_Palette* getPalette(Palette_enum palette);
Mix_Chunk* addMusic(MUSICTYPE musicType, uint16_t ID);
ImagePtr getObjPic(ObjPic_enum ID, HOUSETYPE house = HOUSE_HARKONNEN);
ImagePtr getGuiPic(GuiPic_enum ID, HOUSETYPE house = HOUSE_HARKONNEN);
@@ -430,6 +439,7 @@
remapped_images m_guiImg;
remapped_music m_music;
std::vector<songFile> songFiles[MUSIC_RANDOM];
+ SDL_Palette* m_palette[NUM_PALETTES];
Mix_Chunk* getChunkFromFile(std::string fileName);
Mix_Chunk* concat2Chunks(Mix_Chunk* sound1, Mix_Chunk* sound2);
Modified: branches/dunks/src/Application.cpp
===================================================================
--- branches/dunks/src/Application.cpp 2008-04-30 03:22:55 UTC (rev 215)
+++ branches/dunks/src/Application.cpp 2008-04-30 03:32:05 UTC (rev 216)
@@ -204,13 +204,8 @@
void Application::SetPalette()
{
- int len;
- unsigned char* data = ResMan::Instance()->readFile("INTRO:INTRO.PAL", &len);
+ SDL_Palette * pal = DataCache::Instance()->getPalette(INTRO_PAL);
- Palettefile tmp (data, len);
-
- SDL_Palette * pal = tmp.getPalette();
-
//This fixes white wheels. Is palette broken or sth??
pal->colors[205].r = 109;
@@ -308,16 +303,8 @@
SetPalette();
- int len;
-
- unsigned char * data;
+ m_cursor.reset(DataCache::Instance()->getGuiPic(UI_MouseCursor).get()); //mouse.getPicture(0));
- data = ResMan::Instance()->readFile("DUNE:MOUSE.SHP", &len);
-
- Shpfile mouse (data, len);
-
- m_cursor.reset(mouse.getPicture(0));
-
fprintf(stdout, "starting sound...\n");
SoundPlayerClass* soundPlayer = new SoundPlayerClass();
Modified: branches/dunks/src/DataCache.cpp
===================================================================
--- branches/dunks/src/DataCache.cpp 2008-04-30 03:22:55 UTC (rev 215)
+++ branches/dunks/src/DataCache.cpp 2008-04-30 03:32:05 UTC (rev 216)
@@ -4,8 +4,12 @@
#include <string>
#include <iostream>
-DataCache::DataCache() {}
+DataCache::DataCache() {
+ for(uint8_t i = 0; i < NUM_PALETTES; i++)
+ m_palette[i] = NULL;
+}
+
void DataCache::Init(){
for (uint8_t i=0; i< NUM_HOUSES; i++)
{
@@ -21,13 +25,19 @@
uint8_t *data, *mapdata;
+ addPalette(INTRO_PAL, "INTRO:INTRO.PAL");
+ // FIXME: Something seems to be fscked up with this palette, the Bene Gesserit
+ // mentat ends up looking a bit unhealthy greenish, needs to be corrected!
+ addPalette(BENE_PAL, "DUNE:BENE.PAL");
+ // For some reason things crashes if we fetch the palette and use it here.. :/
+ data = ResMan::Instance()->readFile("DUNE:BENE.PAL", &len);
+ Palettefile tmp (data, len);
+ SDL_Palette * pal = tmp.getPalette();
- // FIXM: Something seems to be fscked up with this palette, the Bene Gesserit
- // mentat ends up looking a bit unhealthy greenish, needs to be corrected!
- data = ResMan::Instance()->readFile("DUNE:BENE.PAL", &len);
- Palettefile tmp (data, len);
- SDL_Palette * pal = tmp.getPalette();
-
+ addPalette(IBM_PAL, "DUNE:IBM.PAL");
+ addPalette(WESTWOOD_PAL, "INTRO:WESTWOOD.PAL");
+
+
//LOADING FILES
data = ResMan::Instance()->readFile("DUNE:UNITS.SHP", &len);
ShpfilePtr units(new Shpfile(data, len));
@@ -53,7 +63,7 @@
data = ResMan::Instance()->readFile("DUNE:MENSHPO.SHP", &len);
ShpfilePtr menshpo(new Shpfile(data, len));
data = ResMan::Instance()->readFile("DUNE:MENSHPM.SHP", &len);
- ShpfilePtr menshpm(new Shpfile(data, len, pal));
+ ShpfilePtr menshpm(new Shpfile(data, len, getPalette(BENE_PAL)));
data = ResMan::Instance()->readFile("ENGLISH:CHOAM.ENG", &len);
ShpfilePtr choam(new Shpfile(data, len));
data = ResMan::Instance()->readFile("ENGLISH:BTTN.ENG", &len);
@@ -71,7 +81,7 @@
data = ResMan::Instance()->readFile("DUNE:MENTATH.CPS", &len);
CpsfilePtr mentath (new Cpsfile(data, len));
data = ResMan::Instance()->readFile("DUNE:MENTATM.CPS", &len);
- CpsfilePtr mentatm (new Cpsfile(data, len, pal));
+ CpsfilePtr mentatm (new Cpsfile(data, len, getPalette(BENE_PAL)));
data = ResMan::Instance()->readFile("ENGLISH:MENTAT.ENG", &len);
ShpfilePtr mentat (new Shpfile(data, len));
@@ -395,6 +405,10 @@
addSoundChunk(Intro_Wind_2bp, getChunkFromFile("INTROVOC:WIND2BP.VOC"));
addSoundChunk(Intro_Your, getChunkFromFile("INTROVOC:YOUR.VOC"));
+ BriefingStrings[0] = new Stringfile("ENGLISH:TEXTA.ENG");
+ BriefingStrings[1] = new Stringfile("ENGLISH:TEXTO.ENG");
+ BriefingStrings[2] = new Stringfile("ENGLISH:TEXTH.ENG");
+
addMusic(MUSIC_INTRO, "SOUND:DUNE0.ADL", 2);
addMusic(MUSIC_LOSE, "SOUND:DUNE1.ADL", 3);
addMusic(MUSIC_PEACE, "SOUND:DUNE2.ADL", 6);
@@ -413,13 +427,34 @@
addMusic(MUSIC_PEACE, "SOUND:DUNE19.ADL", 4);
addMusic(MUSIC_WIN, "SOUND:DUNE20.ADL", 2);
- BriefingStrings[0] = new Stringfile("ENGLISH:TEXTA.ENG");
- BriefingStrings[1] = new Stringfile("ENGLISH:TEXTO.ENG");
- BriefingStrings[2] = new Stringfile("ENGLISH:TEXTH.ENG");
delete data;
}
+void DataCache::addPalette(Palette_enum palette, std::string paletteFile)
+{
+ int len;
+ uint8_t * data = ResMan::Instance()->readFile(paletteFile, &len);
+ Palettefile tmp (data, len);
+
+ SDL_Palette * pal = tmp.getPalette();
+ m_palette[palette] = pal;
+}
+
+SDL_Palette* DataCache::getPalette(Palette_enum palette)
+{
+ SDL_Palette* pal;
+#ifdef THREADS
+ spinlock:
+#endif
+ pal = m_palette[palette];
+#ifdef THREADS
+ if(pal == NULL)
+ goto spinlock;
+#endif
+ return pal;
+}
+
void DataCache::addObjPic(ObjPic_enum ID, Image * tmp, HOUSETYPE house) {
m_objImg[house]->insert(std::pair<ObjPic_enum, ImagePtr>(ID,
@@ -437,7 +472,7 @@
images::iterator iter;
#ifdef THREADS
spinlock:
-#endif
+#endif
iter = m_objImg[house]->find(ID);
if (iter != m_objImg[house]->end())
{
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <dv...@us...> - 2008-04-30 03:22:58
|
Revision: 215
http://dunelegacy.svn.sourceforge.net/dunelegacy/?rev=215&view=rev
Author: dvalin
Date: 2008-04-29 20:22:55 -0700 (Tue, 29 Apr 2008)
Log Message:
-----------
bah, I removed wrong, really move SDL_image and not SDL_mixer
Modified Paths:
--------------
branches/dunks/SConstruct
Modified: branches/dunks/SConstruct
===================================================================
--- branches/dunks/SConstruct 2008-04-30 03:20:51 UTC (rev 214)
+++ branches/dunks/SConstruct 2008-04-30 03:22:55 UTC (rev 215)
@@ -36,7 +36,7 @@
env.Append(CCFLAGS = ["/O2", "/EHsc", "/MD", "/Op", "/DEBUG", "/Zi", "/GR"])
env.Append(LIBS = [ "SDL",
- "SDL_image",
+ "SDL_mixer",
"SDL_net",
"SDL_ttf",
])
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <dv...@us...> - 2008-04-30 03:20:54
|
Revision: 214
http://dunelegacy.svn.sourceforge.net/dunelegacy/?rev=214&view=rev
Author: dvalin
Date: 2008-04-29 20:20:51 -0700 (Tue, 29 Apr 2008)
Log Message:
-----------
don't link against SDL_image as we no longer use it
Modified Paths:
--------------
branches/dunks/SConstruct
Modified: branches/dunks/SConstruct
===================================================================
--- branches/dunks/SConstruct 2008-04-30 02:02:51 UTC (rev 213)
+++ branches/dunks/SConstruct 2008-04-30 03:20:51 UTC (rev 214)
@@ -36,7 +36,6 @@
env.Append(CCFLAGS = ["/O2", "/EHsc", "/MD", "/Op", "/DEBUG", "/Zi", "/GR"])
env.Append(LIBS = [ "SDL",
- "SDL_mixer",
"SDL_image",
"SDL_net",
"SDL_ttf",
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <dv...@us...> - 2008-04-30 02:02:55
|
Revision: 213
http://dunelegacy.svn.sourceforge.net/dunelegacy/?rev=213&view=rev
Author: dvalin
Date: 2008-04-29 19:02:51 -0700 (Tue, 29 Apr 2008)
Log Message:
-----------
improve spinlock for getGuiPic & getObjPic
Modified Paths:
--------------
branches/dunks/include/DataCache.h
branches/dunks/src/DataCache.cpp
Modified: branches/dunks/include/DataCache.h
===================================================================
--- branches/dunks/include/DataCache.h 2008-04-30 01:45:01 UTC (rev 212)
+++ branches/dunks/include/DataCache.h 2008-04-30 02:02:51 UTC (rev 213)
@@ -154,6 +154,7 @@
typedef enum {
UI_RadarAnimation,
UI_CursorShape,
+ UI_MouseCursor,
UI_CreditsDigits,
UI_GameBar,
UI_Indicator,
Modified: branches/dunks/src/DataCache.cpp
===================================================================
--- branches/dunks/src/DataCache.cpp 2008-04-30 01:45:01 UTC (rev 212)
+++ branches/dunks/src/DataCache.cpp 2008-04-30 02:02:51 UTC (rev 213)
@@ -208,6 +208,7 @@
// addGuiPic(UI_RadarAnimation, radar->getAnimationAsPictureRow());
addGuiPic(UI_CursorShape, mouse->getPictureArray(7,1,0|TILE_NORMAL,1|TILE_NORMAL,2|TILE_NORMAL,3|TILE_NORMAL,4|TILE_NORMAL,5|TILE_NORMAL,6|TILE_NORMAL));
+ addGuiPic(UI_MouseCursor, mouse->getPicture(0));
// SDL_SetColorKey(addGuiPic(UI_CursorShape][HOUSE_HARKONNEN], SDL_SRCCOLORKEY | SDL_RLEACCEL, 0);
addGuiPic(UI_CreditsDigits, shapes->getPictureArray(10,1,2|TILE_NORMAL,3|TILE_NORMAL,4|TILE_NORMAL,5|TILE_NORMAL,6|TILE_NORMAL,
7|TILE_NORMAL,8|TILE_NORMAL,9|TILE_NORMAL,10|TILE_NORMAL,11|TILE_NORMAL));
@@ -444,11 +445,13 @@
}
else
{
- ImagePtr source = m_objImg[house]->find(ID)->second;
#ifdef THREADS
- if (source == NULL)
+ // If house is harkonnen we know that there shouldn't be any other
+ // to look for and therefore must be that graphic hasn't been loaded yet.
+ if (house == HOUSE_HARKONNEN)
goto spinlock;
#endif
+ ImagePtr source = m_objImg[house]->find(ID)->second;
ImagePtr copy = source->getRecoloredByHouse(house);
m_objImg[house]->insert(std::pair<ObjPic_enum, ImagePtr>(ID, copy));
return copy;
@@ -469,12 +472,11 @@
}
else
{
-
- ImagePtr source = m_guiImg[house]->find(ID)->second;
#ifdef THREADS
- if (source == NULL)
+ if (house == HOUSE_HARKONNEN)
goto spinlock;
#endif
+ ImagePtr source = m_guiImg[house]->find(ID)->second;
ImagePtr copy = source->getRecoloredByHouse(house);
m_guiImg[house]->insert(std::pair<GuiPic_enum, ImagePtr>(ID, copy));
return copy;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <dv...@us...> - 2008-04-30 01:45:05
|
Revision: 212
http://dunelegacy.svn.sourceforge.net/dunelegacy/?rev=212&view=rev
Author: dvalin
Date: 2008-04-29 18:45:01 -0700 (Tue, 29 Apr 2008)
Log Message:
-----------
do conditional on THREADS and not on __linux__..
Modified Paths:
--------------
branches/dunks/src/DataCache.cpp
Modified: branches/dunks/src/DataCache.cpp
===================================================================
--- branches/dunks/src/DataCache.cpp 2008-04-30 01:41:10 UTC (rev 211)
+++ branches/dunks/src/DataCache.cpp 2008-04-30 01:45:01 UTC (rev 212)
@@ -489,7 +489,7 @@
void DataCache::addMusic(MUSICTYPE musicType, std::string filename, uint16_t trackNum)
{
songFiles[musicType].push_back(songFile(filename, trackNum));
-#ifdef __linux__
+#ifdef THREADS
addMusic(musicType, songFiles[musicType].size()-1);
#endif
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <dv...@us...> - 2008-04-30 01:41:17
|
Revision: 211
http://dunelegacy.svn.sourceforge.net/dunelegacy/?rev=211&view=rev
Author: dvalin
Date: 2008-04-29 18:41:10 -0700 (Tue, 29 Apr 2008)
Log Message:
-----------
add spinlocks for getGuiPic & getObjPic
Modified Paths:
--------------
branches/dunks/src/DataCache.cpp
Modified: branches/dunks/src/DataCache.cpp
===================================================================
--- branches/dunks/src/DataCache.cpp 2008-04-30 01:34:05 UTC (rev 210)
+++ branches/dunks/src/DataCache.cpp 2008-04-30 01:41:10 UTC (rev 211)
@@ -433,7 +433,11 @@
ImagePtr DataCache::getObjPic(ObjPic_enum ID, HOUSETYPE house) {
- images::iterator iter = m_objImg[house]->find(ID);
+ images::iterator iter;
+#ifdef THREADS
+ spinlock:
+#endif
+ iter = m_objImg[house]->find(ID);
if (iter != m_objImg[house]->end())
{
return m_objImg[house]->find(ID)->second;
@@ -441,6 +445,10 @@
else
{
ImagePtr source = m_objImg[house]->find(ID)->second;
+#ifdef THREADS
+ if (source == NULL)
+ goto spinlock;
+#endif
ImagePtr copy = source->getRecoloredByHouse(house);
m_objImg[house]->insert(std::pair<ObjPic_enum, ImagePtr>(ID, copy));
return copy;
@@ -450,14 +458,23 @@
ImagePtr DataCache::getGuiPic(GuiPic_enum ID, HOUSETYPE house) {
- images::iterator iter = m_guiImg[house]->find(ID);
+ images::iterator iter;
+#ifdef THREADS
+ spinlock:
+#endif
+ iter = m_guiImg[house]->find(ID);
if (iter != m_guiImg[house]->end())
{
return m_guiImg[house]->find(ID)->second;
}
else
{
+
ImagePtr source = m_guiImg[house]->find(ID)->second;
+#ifdef THREADS
+ if (source == NULL)
+ goto spinlock;
+#endif
ImagePtr copy = source->getRecoloredByHouse(house);
m_guiImg[house]->insert(std::pair<GuiPic_enum, ImagePtr>(ID, copy));
return copy;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <dv...@us...> - 2008-04-30 01:34:17
|
Revision: 210
http://dunelegacy.svn.sourceforge.net/dunelegacy/?rev=210&view=rev
Author: dvalin
Date: 2008-04-29 18:34:05 -0700 (Tue, 29 Apr 2008)
Log Message:
-----------
add some more gui graphics..
Modified Paths:
--------------
branches/dunks/src/DataCache.cpp
Modified: branches/dunks/src/DataCache.cpp
===================================================================
--- branches/dunks/src/DataCache.cpp 2008-04-30 01:05:18 UTC (rev 209)
+++ branches/dunks/src/DataCache.cpp 2008-04-30 01:34:05 UTC (rev 210)
@@ -206,23 +206,101 @@
addAnimation(Anim_Sardaukar, "MENTAT:SARDUKAR.WSA");
addAnimation(Anim_Frigate, "MENTAT:FRIGATE.WSA");
- addGuiPic(UI_HouseChoiceBackground, herald->getPicture());
-
- addGuiPic(UI_MentatYes, mentat->getPicture(0));
- addGuiPic(UI_MentatYes_Pressed, mentat->getPicture(1));
- addGuiPic(UI_MentatNo, mentat->getPicture(2));
- addGuiPic(UI_MentatNo_Pressed, mentat->getPicture(3));
+// addGuiPic(UI_RadarAnimation, radar->getAnimationAsPictureRow());
+ addGuiPic(UI_CursorShape, mouse->getPictureArray(7,1,0|TILE_NORMAL,1|TILE_NORMAL,2|TILE_NORMAL,3|TILE_NORMAL,4|TILE_NORMAL,5|TILE_NORMAL,6|TILE_NORMAL));
+// SDL_SetColorKey(addGuiPic(UI_CursorShape][HOUSE_HARKONNEN], SDL_SRCCOLORKEY | SDL_RLEACCEL, 0);
+ addGuiPic(UI_CreditsDigits, shapes->getPictureArray(10,1,2|TILE_NORMAL,3|TILE_NORMAL,4|TILE_NORMAL,5|TILE_NORMAL,6|TILE_NORMAL,
+ 7|TILE_NORMAL,8|TILE_NORMAL,9|TILE_NORMAL,10|TILE_NORMAL,11|TILE_NORMAL));
+// addGuiPic(UI_GameBar, PicFactory->createGameBar();
+ addGuiPic(UI_Indicator, units1->getPictureArray(3,1,8|TILE_NORMAL,9|TILE_NORMAL,10|TILE_NORMAL));
+// SDL_SetColorKey(addGuiPic(UI_Indicator][HOUSE_HARKONNEN], SDL_SRCCOLORKEY | SDL_RLEACCEL, 0);
+// addGuiPic(UI_InvalidPlace, PicFactory->createInvalidPlace();
+// addGuiPic(UI_ValidPlace, PicFactory->createValidPlace();
+// addGuiPic(UI_MenuBackground, PicFactory->createMainBackground();
+// addGuiPic(UI_Background, PicFactory->createBackground();
+// addGuiPic(UI_SelectionBox, SDL_LoadBMP_RW(pFileManager->OpenFile("UI_SelectionBox.bmp"),true);
+// SDL_SetColorKey(addGuiPic(UI_SelectionBox][HOUSE_HARKONNEN], SDL_SRCCOLORKEY | SDL_RLEACCEL, 0);
+// addGuiPic(UI_TopBar, PicFactory->createTopBar();
+ addGuiPic(UI_ButtonUp, choam->getPicture(0));
+ addGuiPic(UI_ButtonUp_Pressed, choam->getPicture(1));
+ addGuiPic(UI_ButtonDown, choam->getPicture(2));
+ addGuiPic(UI_ButtonDown_Pressed, choam->getPicture(3));
+// addGuiPic(UI_MessageBox, PicFactory->createMessageBoxBorder();
+ addGuiPic(UI_Mentat, bttn->getPicture(0));
+ addGuiPic(UI_Mentat_Pressed, bttn->getPicture(1));
+ addGuiPic(UI_Options, bttn->getPicture(2));
+ addGuiPic(UI_Options_Pressed, bttn->getPicture(3));
+ addGuiPic(UI_Upgrade, choam->getPicture(4));
+// SDL_SetColorKey(addGuiPic(UI_Upgrade][HOUSE_HARKONNEN], SDL_SRCCOLORKEY | SDL_RLEACCEL, 0);
+ addGuiPic(UI_Upgrade_Pressed, choam->getPicture(5));
+// SDL_SetColorKey(addGuiPic(UI_Upgrade_Pressed][HOUSE_HARKONNEN], SDL_SRCCOLORKEY | SDL_RLEACCEL, 0);
+// addGuiPic(UI_Repair, SDL_LoadBMP_RW(pFileManager->OpenFile("Button_Repair.bmp"),true);
+// addGuiPic(UI_Repair_Pressed, SDL_LoadBMP_RW(pFileManager->OpenFile("Button_RepairPushed.bmp"),true);
+// addGuiPic(UI_Difficulty, SDL_LoadBMP_RW(pFileManager->OpenFile("Menu_Difficulty.bmp"),true);
+// SDL_Rect dest1 = { 0,0,addGuiPic(UI_Difficulty][HOUSE_HARKONNEN]->w,30};
+// PicFactory->drawFrame(addGuiPic(UI_Difficulty][HOUSE_HARKONNEN],PictureFactory::DecorationFrame1,&dest1);
+// SDL_SetColorKey(addGuiPic(UI_Difficulty][HOUSE_HARKONNEN], SDL_SRCCOLORKEY | SDL_RLEACCEL, 0);
+// addGuiPic(UI_Dif_Easy, SDL_LoadBMP_RW(pFileManager->OpenFile("Difficulty_Easy.bmp"),true);
+// addGuiPic(UI_Dif_Hard, SDL_LoadBMP_RW(pFileManager->OpenFile("Difficulty_Hard.bmp"),true);
+// addGuiPic(UI_Dif_Medium, SDL_LoadBMP_RW(pFileManager->OpenFile("Difficulty_Medium.bmp"),true);
+// addGuiPic(UI_Minus, SDL_LoadBMP_RW(pFileManager->OpenFile("Button_Minus.bmp"),true);
+// addGuiPic(UI_Minus_Pressed, SDL_LoadBMP_RW(pFileManager->OpenFile("Button_MinusPushed.bmp"),true);
+// addGuiPic(UI_Plus, SDL_LoadBMP_RW(pFileManager->OpenFile("Button_Plus.bmp"),true);
+// addGuiPic(UI_Plus_Pressed, SDL_LoadBMP_RW(pFileManager->OpenFile("Button_PlusPushed.bmp"),true);
+// addGuiPic(UI_MissionSelect, SDL_LoadBMP_RW(pFileManager->OpenFile("Menu_MissionSelect.bmp"),true);
+// PicFactory->drawFrame(addGuiPic(UI_MissionSelect][HOUSE_HARKONNEN],PictureFactory::SimpleFrame,NULL);
+// SDL_SetColorKey(addGuiPic(UI_MissionSelect][HOUSE_HARKONNEN], SDL_SRCCOLORKEY | SDL_RLEACCEL, 0);
+// addGuiPic(UI_OptionsMenu, PicFactory->createOptionsMenu();
+// SDL_Surface* tmp;
+// if((tmp = SDL_CreateRGBSurface(SDL_HWSURFACE,192,27,8,0,0,0,0)) == NULL) {
+// fprintf(stderr,"DataManager::DataManager(): Cannot create surface!\n");
+// exit(EXIT_FAILURE);
+// }
+// SDL_SetColors(tmp, palette->colors, 0, palette->ncolors);
+// SDL_FillRect(tmp,NULL,133);
+// addGuiPic(UI_LoadSaveWindow, PicFactory->createMenu(tmp,208);
+// SDL_FreeSurface(tmp);
+// addGuiPic(UI_DuneLegacy, SDL_LoadBMP_RW(pFileManager->OpenFile("DuneLegacy.bmp"),true);
+// addGuiPic(UI_GameMenu, PicFactory->createMenu(addGuiPic(UI_DuneLegacy][HOUSE_HARKONNEN],158);
+// PicFactory->drawFrame(addGuiPic(UI_DuneLegacy][HOUSE_HARKONNEN],PictureFactory::SimpleFrame);
+ addGuiPic(UI_PlanetBackground, bigplan->getPicture());
+// PicFactory->drawFrame(addGuiPic(UI_PlanetBackground, PictureFactory::SimpleFrame);
+// addGuiPic(UI_MenuButtonBorder, PicFactory->createFrame(PictureFactory::DecorationFrame1,190,123,false);
+
+// PicFactory->drawFrame(addGuiPic(UI_DuneLegacy, PictureFactory::SimpleFrame);
+
addGuiPic(UI_MentatBackground, mentata->getPicture(), HOUSE_ATREIDES);
addGuiPic(UI_MentatBackground, mentata->getPicture(), HOUSE_FREMEN);
addGuiPic(UI_MentatBackground, mentato->getPicture(), HOUSE_ORDOS);
addGuiPic(UI_MentatBackground, mentato->getPicture(), HOUSE_MERCENARY);
addGuiPic(UI_MentatBackground, mentath->getPicture(), HOUSE_HARKONNEN);
+ addGuiPic(UI_MentatBackground, mentatm->getPicture(), HOUSE_SARDAUKAR);
+ addGuiPic(UI_MentatYes, mentat->getPicture(0));
+ addGuiPic(UI_MentatYes_Pressed, mentat->getPicture(1));
+ addGuiPic(UI_MentatNo, mentat->getPicture(2));
+ addGuiPic(UI_MentatNo_Pressed, mentat->getPicture(3));
+ addGuiPic(UI_MentatExit,mentat->getPicture(4));
+ addGuiPic(UI_MentatExit_Pressed, mentat->getPicture(5));
+ addGuiPic(UI_MentatProcced, mentat->getPicture(6));
+ addGuiPic(UI_MentatProcced_Pressed, mentat->getPicture(7));
+ addGuiPic(UI_MentatRepeat, mentat->getPicture(8));
+ addGuiPic(UI_MentatRepeat_Pressed, mentat->getPicture(9));
+ addGuiPic(UI_HouseChoiceBackground, herald->getPicture());
+// addGuiPic(UI_HouseSelect, PicFactory->createHouseSelect(addGuiPic(UI_HouseChoiceBackground][HOUSE_HARKONNEN]);
+// addGuiPic(UI_HeraldAtre_Coloured, GetSubPicture(addGuiPic(UI_HouseChoiceBackground][HOUSE_HARKONNEN],20,54,83,91);
+// addGuiPic(UI_HeraldOrd_Coloured, GetSubPicture(addGuiPic(UI_HouseChoiceBackground][HOUSE_HARKONNEN],117,54,83,91);
+// addGuiPic(UI_HeraldHark_Coloured, GetSubPicture(addGuiPic(UI_HouseChoiceBackground][HOUSE_HARKONNEN],215,54,82,91);
- //addAnimation(Anim_OrdosPlanet, ordosplanet);
+// addGuiPic(UI_MapChoiceScreen,[HOUSE_ATREIDES] = PicFactory->createMapChoiceScreen(HOUSE_ATREIDES);
+// addGuiPic(UI_MapChoiceScreen,[HOUSE_ORDOS] = PicFactory->createMapChoiceScreen(HOUSE_ORDOS);
+// addGuiPic(UI_MapChoiceScreen,[HOUSE_HARKONNEN] = PicFactory->createMapChoiceScreen(HOUSE_HARKONNEN);
+ addGuiPic(UI_MapChoiceMapOnly,dunemap->getPicture());
+// SDL_SetColorKey(m_guiImgUIGraphic,UI_MapChoiceMapOnly][HOUSE_HARKONNEN], SDL_SRCCOLORKEY | SDL_RLEACCEL, 0);
+ addGuiPic(UI_MapChoiceMap, dunergn->getPicture());
+// SDL_SetColorKey(UIGraphic,UI_MapChoiceMap][HOUSE_HARKONNEN], SDL_SRCCOLORKEY | SDL_RLEACCEL, 0);
+ addGuiPic(UI_MapChoiceClickMap, rgnclk->getPicture());
- addGuiPic(UI_MentatBackground, mentatm->getPicture(), HOUSE_SARDAUKAR);
-
addSoundChunk(YesSir, getChunkFromFile("VOC:ZREPORT1.VOC"));
addSoundChunk(Reporting, getChunkFromFile("VOC:ZREPORT2.VOC"));
addSoundChunk(Acknowledged, getChunkFromFile("VOC:ZREPORT3.VOC"));
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <dv...@us...> - 2008-04-30 01:05:24
|
Revision: 209
http://dunelegacy.svn.sourceforge.net/dunelegacy/?rev=209&view=rev
Author: dvalin
Date: 2008-04-29 18:05:18 -0700 (Tue, 29 Apr 2008)
Log Message:
-----------
give threading a touch of cosmetics
Modified Paths:
--------------
branches/dunks/include/Application.h
branches/dunks/src/Application.cpp
branches/dunks/src/DataCache.cpp
Modified: branches/dunks/include/Application.h
===================================================================
--- branches/dunks/include/Application.h 2008-04-30 00:57:00 UTC (rev 208)
+++ branches/dunks/include/Application.h 2008-04-30 01:05:18 UTC (rev 209)
@@ -2,12 +2,18 @@
#define DUNE_APPLICATION_H
#include "singleton.h"
-#include "State.h"
#include "SDL.h"
#include "gui2/Container.h"
#include "State.h"
#include "TopLevelState.h"
+
+#ifdef __linux__
+#define THREADS 1
+#include <pthread.h>
+extern "C" void *dataCacheThread(void * arg);
+#endif
+
typedef enum
{
CURSOR_NORMAL,
@@ -55,6 +61,7 @@
void UpdateVideoMode(Uint16 w, Uint16 h, bool fullscreen);
private:
+// void *testis(void * arg);
void InitSettings();
void InitAudio();
void InitNet();
@@ -85,8 +92,3 @@
#endif // DUNE_APPLICATION_H
-
-
-
-
-
Modified: branches/dunks/src/Application.cpp
===================================================================
--- branches/dunks/src/Application.cpp 2008-04-30 00:57:00 UTC (rev 208)
+++ branches/dunks/src/Application.cpp 2008-04-30 01:05:18 UTC (rev 209)
@@ -35,15 +35,11 @@
#define VERSION "0.94.1"
-#ifdef __linux__
-# define _P __P
-#include <pthread.h>
+#ifdef THREADS
#include "DataCache.h"
-extern "C" void *dataCacheThread(void * arg);
-
void *dataCacheThread(void * arg)
{
- DataCache::Instance();
+ DataCache::Instance()->Init();
return NULL;
}
@@ -325,24 +321,10 @@
fprintf(stdout, "starting sound...\n");
SoundPlayerClass* soundPlayer = new SoundPlayerClass();
- //Mix_Chunk* myChunk = DataCache::Instance()->getMusic(MUSIC_INTRO, 0);
-// myChunk = DataCache::Instance()->getMusic(MUSIC_PEACE, 0);
-
- //soundPlayer->playSound(myChunk);
-}
-#if 0
-extern "C" void *testis(void * arg);
-
-void *testis(void * arg){
- fprintf(stdout, "starting sound...\n");
- SoundPlayerClass* soundPlayer = new SoundPlayerClass();
Mix_Chunk* myChunk = DataCache::Instance()->getMusic(MUSIC_INTRO, 0);
-// myChunk = DataCache::Instance()->getMusic(MUSIC_PEACE, 0);
-
soundPlayer->playSound(myChunk);
- return NULL;
}
-#endif
+
void Application::Die()
{
FontManager::Destroy();
Modified: branches/dunks/src/DataCache.cpp
===================================================================
--- branches/dunks/src/DataCache.cpp 2008-04-30 00:57:00 UTC (rev 208)
+++ branches/dunks/src/DataCache.cpp 2008-04-30 01:05:18 UTC (rev 209)
@@ -419,7 +419,7 @@
Mix_Chunk* DataCache::getMusic(MUSICTYPE musicType, uint16_t ID)
{
music::iterator iter;
-#ifdef __linux__
+#ifdef THREADS
spinlock:
#endif
iter = m_music[musicType]->find(ID);
@@ -429,7 +429,7 @@
}
else
{
-#ifdef __linux__
+#ifdef THREADS
goto spinlock;
#endif
return addMusic(musicType, ID);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <dv...@us...> - 2008-04-30 00:57:03
|
Revision: 208
http://dunelegacy.svn.sourceforge.net/dunelegacy/?rev=208&view=rev
Author: dvalin
Date: 2008-04-29 17:57:00 -0700 (Tue, 29 Apr 2008)
Log Message:
-----------
add spinlock for getMusic
Modified Paths:
--------------
branches/dunks/src/DataCache.cpp
Modified: branches/dunks/src/DataCache.cpp
===================================================================
--- branches/dunks/src/DataCache.cpp 2008-04-30 00:44:29 UTC (rev 207)
+++ branches/dunks/src/DataCache.cpp 2008-04-30 00:57:00 UTC (rev 208)
@@ -418,7 +418,11 @@
// If loaded, it will return the song, if not it will load and return the song.
Mix_Chunk* DataCache::getMusic(MUSICTYPE musicType, uint16_t ID)
{
- music::iterator iter = m_music[musicType]->find(ID);
+ music::iterator iter;
+#ifdef __linux__
+ spinlock:
+#endif
+ iter = m_music[musicType]->find(ID);
if (iter != m_music[musicType]->end())
{
return m_music[musicType]->find(ID)->second;
@@ -426,7 +430,7 @@
else
{
#ifdef __linux__
- return NULL;
+ goto spinlock;
#endif
return addMusic(musicType, ID);
}
@@ -439,9 +443,9 @@
Mix_Chunk* DataCache::getChunkFromFile(std::string fileName) {
Mix_Chunk* returnChunk;
SDL_RWops* rwop;
- unsigned char * data;
+ int len;
+ uint8_t * data;
- int len;
data = ResMan::Instance()->readFile(fileName.c_str(), &len);
if((rwop = SDL_RWFromMem(data, len)) ==NULL) {
fprintf(stderr,"DataManager::getChunkFromFile(): Cannot open %s!\n",fileName.c_str());
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <dv...@us...> - 2008-04-30 00:44:38
|
Revision: 207
http://dunelegacy.svn.sourceforge.net/dunelegacy/?rev=207&view=rev
Author: dvalin
Date: 2008-04-29 17:44:29 -0700 (Tue, 29 Apr 2008)
Log Message:
-----------
grf, accidently commited some debugging code in previous commit, revert it..
Modified Paths:
--------------
branches/dunks/src/DataCache.cpp
Modified: branches/dunks/src/DataCache.cpp
===================================================================
--- branches/dunks/src/DataCache.cpp 2008-04-30 00:41:30 UTC (rev 206)
+++ branches/dunks/src/DataCache.cpp 2008-04-30 00:44:29 UTC (rev 207)
@@ -408,7 +408,6 @@
CadlPlayer *p = new CadlPlayer(test);
Mix_Chunk* tmp = p->getUpsampledSubsong(song.second, 22050, AUDIO_S16LSB, 1);
SDL_RWclose(test);
- std::cout << "ferdig" << std::endl;
m_music[musicType]->insert(std::pair<uint16_t, Mix_Chunk*>(ID, tmp));
delete data;
delete p;
@@ -427,11 +426,9 @@
else
{
#ifdef __linux__
- std::cout << "NULL" << std::endl;
- exit(1);
return NULL;
#endif
-// return addMusic(musicType, ID);
+ return addMusic(musicType, ID);
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <dv...@us...> - 2008-04-30 00:41:33
|
Revision: 206
http://dunelegacy.svn.sourceforge.net/dunelegacy/?rev=206&view=rev
Author: dvalin
Date: 2008-04-29 17:41:30 -0700 (Tue, 29 Apr 2008)
Log Message:
-----------
make constructor minimal to ensure that class is fast to initialize and won't be referenced before initialized when using threads
Modified Paths:
--------------
branches/dunks/include/DataCache.h
branches/dunks/src/DataCache.cpp
Modified: branches/dunks/include/DataCache.h
===================================================================
--- branches/dunks/include/DataCache.h 2008-04-30 00:11:04 UTC (rev 205)
+++ branches/dunks/include/DataCache.h 2008-04-30 00:41:30 UTC (rev 206)
@@ -403,6 +403,7 @@
~DataCache();
public:
+ void Init();
void addObjPic(ObjPic_enum ID, Image * tmp, HOUSETYPE house = HOUSE_HARKONNEN);
void addGuiPic(GuiPic_enum ID, Image * tmp, HOUSETYPE house = HOUSE_HARKONNEN);
void addAnimation(Animation_enum ID, std::string filename, double frameRate = 0);
Modified: branches/dunks/src/DataCache.cpp
===================================================================
--- branches/dunks/src/DataCache.cpp 2008-04-30 00:11:04 UTC (rev 205)
+++ branches/dunks/src/DataCache.cpp 2008-04-30 00:41:30 UTC (rev 206)
@@ -3,7 +3,10 @@
#include "pakfile/sound/adl/adl.h"
#include <string>
#include <iostream>
-DataCache::DataCache() {
+
+DataCache::DataCache() {}
+
+void DataCache::Init(){
for (uint8_t i=0; i< NUM_HOUSES; i++)
{
m_objImg.push_back(new images());
@@ -335,6 +338,7 @@
BriefingStrings[1] = new Stringfile("ENGLISH:TEXTO.ENG");
BriefingStrings[2] = new Stringfile("ENGLISH:TEXTH.ENG");
delete data;
+
}
void DataCache::addObjPic(ObjPic_enum ID, Image * tmp, HOUSETYPE house) {
@@ -390,6 +394,9 @@
void DataCache::addMusic(MUSICTYPE musicType, std::string filename, uint16_t trackNum)
{
songFiles[musicType].push_back(songFile(filename, trackNum));
+#ifdef __linux__
+ addMusic(musicType, songFiles[musicType].size()-1);
+#endif
}
Mix_Chunk* DataCache::addMusic(MUSICTYPE musicType, uint16_t ID)
@@ -401,6 +408,7 @@
CadlPlayer *p = new CadlPlayer(test);
Mix_Chunk* tmp = p->getUpsampledSubsong(song.second, 22050, AUDIO_S16LSB, 1);
SDL_RWclose(test);
+ std::cout << "ferdig" << std::endl;
m_music[musicType]->insert(std::pair<uint16_t, Mix_Chunk*>(ID, tmp));
delete data;
delete p;
@@ -418,7 +426,12 @@
}
else
{
- return addMusic(musicType, ID);
+#ifdef __linux__
+ std::cout << "NULL" << std::endl;
+ exit(1);
+ return NULL;
+#endif
+// return addMusic(musicType, ID);
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <dv...@us...> - 2008-04-30 00:11:24
|
Revision: 205
http://dunelegacy.svn.sourceforge.net/dunelegacy/?rev=205&view=rev
Author: dvalin
Date: 2008-04-29 17:11:04 -0700 (Tue, 29 Apr 2008)
Log Message:
-----------
add threading on linux, this will make all game data to be loaded instantly at start in the backgrund. Probably no way near safe yet though.. ;p
Modified Paths:
--------------
branches/dunks/src/Application.cpp
Modified: branches/dunks/src/Application.cpp
===================================================================
--- branches/dunks/src/Application.cpp 2008-04-29 22:17:18 UTC (rev 204)
+++ branches/dunks/src/Application.cpp 2008-04-30 00:11:04 UTC (rev 205)
@@ -4,7 +4,8 @@
//#include "SDL_ttf.h"
//#include "SDL_net.h"
#include "SDL_mixer.h"
-
+#include "SDL_rwops.h"
+#include "pakfile/sound/adl/adl.h"
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
@@ -34,6 +35,20 @@
#define VERSION "0.94.1"
+#ifdef __linux__
+# define _P __P
+#include <pthread.h>
+#include "DataCache.h"
+extern "C" void *dataCacheThread(void * arg);
+
+void *dataCacheThread(void * arg)
+{
+ DataCache::Instance();
+ return NULL;
+}
+
+#endif
+
Uint8 gpaloff;
Application::Application()
@@ -287,7 +302,15 @@
ResMan::Instance()->addRes("VOC");
ResMan::Instance()->addRes("XTRE");
printf("done loading resources\n");
+#ifdef __linux__
+ pthread_t threads[1];
+ pthread_create(&threads[0],
+ NULL,
+ dataCacheThread,
+ NULL);
+#endif
+
SetPalette();
int len;
@@ -301,10 +324,25 @@
fprintf(stdout, "starting sound...\n");
SoundPlayerClass* soundPlayer = new SoundPlayerClass();
-// Mix_Chunk* sound = DataCache::Instance()->concat2Chunks(Intro_TheBuilding, Intro_OfADynasty);
-// soundPlayer->playSound(sound);
+
+ //Mix_Chunk* myChunk = DataCache::Instance()->getMusic(MUSIC_INTRO, 0);
+// myChunk = DataCache::Instance()->getMusic(MUSIC_PEACE, 0);
+
+ //soundPlayer->playSound(myChunk);
}
+#if 0
+extern "C" void *testis(void * arg);
+void *testis(void * arg){
+ fprintf(stdout, "starting sound...\n");
+ SoundPlayerClass* soundPlayer = new SoundPlayerClass();
+ Mix_Chunk* myChunk = DataCache::Instance()->getMusic(MUSIC_INTRO, 0);
+// myChunk = DataCache::Instance()->getMusic(MUSIC_PEACE, 0);
+
+ soundPlayer->playSound(myChunk);
+ return NULL;
+}
+#endif
void Application::Die()
{
FontManager::Destroy();
@@ -327,14 +365,15 @@
const int fps_interval = 10 * 1000; // 10 seconds
float fps;
- //Font* fnt = FontManager::Instance()->getFont("INTRO:INTRO.FNT");
+// Font* fnt = FontManager::Instance()->getFont("INTRO:INTRO.FNT");
m_running = true;
assert(m_rootWidget != NULL);
gpaloff = 0 ;
-
+
+
while (m_running)
{
SDL_FillRect(m_screen->getSurface(), NULL, m_clearColor);
@@ -359,13 +398,10 @@
m_rootWidget->draw(m_screen, SPoint(0, 0));
BlitCursor();
-
-#if 0
- fnt->render((const char*)"ABCDEFGHIJKLMOPQRSTUVWXYZ", m_screen, 10, 10, gpaloff);
- fnt->render((const char*)"abcdefghijklmnopqrstuvwxz", m_screen, 10, 30, gpaloff);
-#endif
+#if 0
+ fnt->render((const char*)"ABCDEFGHIJKLMOPQRSTUVWXYZ", m_screen->getSurface(), 10, 10, gpaloff);
+ fnt->render((const char*)"abcdefghijklmnopqrstuvwxz", m_screen->getSurface(), 10, 30, gpaloff);
-#if 0
SDL_Rect pdest = {10, 10, 5, 10};
for (Uint32 i=0; i!=256; i++)
@@ -373,8 +409,7 @@
pdest.x = 7 * i;
SDL_FillRect(m_screen->getSurface(), &pdest, i);
}
-#endif
-
+#endif
SDL_Flip(m_screen->getSurface());
fps_frames ++;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <dv...@us...> - 2008-04-29 22:17:36
|
Revision: 204
http://dunelegacy.svn.sourceforge.net/dunelegacy/?rev=204&view=rev
Author: dvalin
Date: 2008-04-29 15:17:18 -0700 (Tue, 29 Apr 2008)
Log Message:
-----------
don't load all songs at once, only load them when needed (avoids long time loading all at once)
Modified Paths:
--------------
branches/dunks/include/DataCache.h
branches/dunks/src/DataCache.cpp
Modified: branches/dunks/include/DataCache.h
===================================================================
--- branches/dunks/include/DataCache.h 2008-04-29 20:11:59 UTC (rev 203)
+++ branches/dunks/include/DataCache.h 2008-04-29 22:17:18 UTC (rev 204)
@@ -392,8 +392,8 @@
typedef std::map <unsigned, Mix_Chunk*> music;
typedef std::vector <music*> remapped_music;
-typedef std::map <unsigned, std::string> musicFile;
-typedef std::vector <musicFile*> remapped_musicFile;
+typedef std::pair <std::string, uint16_t> songFile;
+
class DataCache : public Singleton<DataCache>
{
friend class Singleton<DataCache>;
@@ -408,8 +408,8 @@
void addAnimation(Animation_enum ID, std::string filename, double frameRate = 0);
void addAnimation(Animation_enum ID, Animation* animation, double frameRate = 0);
void addSoundChunk(Sound_enum ID, Mix_Chunk* tmp);
- void addMusic(MUSICTYPE musicType, std::string filename, uint16_t trackNum, uint16_t ID);
- void addMusic(MUSICTYPE musicType, Mix_Chunk* tmp, uint16_t ID);
+ void addMusic(MUSICTYPE musicType, std::string filename, uint16_t trackNum);
+ Mix_Chunk* addMusic(MUSICTYPE musicType, uint16_t ID);
ImagePtr getObjPic(ObjPic_enum ID, HOUSETYPE house = HOUSE_HARKONNEN);
ImagePtr getGuiPic(GuiPic_enum ID, HOUSETYPE house = HOUSE_HARKONNEN);
Animation* getAnimation(Animation_enum id);
@@ -427,16 +427,16 @@
remapped_images m_objImg;
remapped_images m_guiImg;
remapped_music m_music;
- remapped_musicFile m_musicFile;
+ std::vector<songFile> songFiles[MUSIC_RANDOM];
Mix_Chunk* getChunkFromFile(std::string fileName);
Mix_Chunk* concat2Chunks(Mix_Chunk* sound1, Mix_Chunk* sound2);
Mix_Chunk* concat3Chunks(Mix_Chunk* sound1, Mix_Chunk* sound2, Mix_Chunk* sound3);
Mix_Chunk* createEmptyChunk();
- Animation* Anim[NUM_ANIMATION];
- Stringfile* BriefingStrings[3];
- Mix_Chunk* soundChunk[NUM_SOUNDCHUNK];
+ Animation* Anim[NUM_ANIMATION];
+ Stringfile* BriefingStrings[3];
+ Mix_Chunk* soundChunk[NUM_SOUNDCHUNK];
};
Modified: branches/dunks/src/DataCache.cpp
===================================================================
--- branches/dunks/src/DataCache.cpp 2008-04-29 20:11:59 UTC (rev 203)
+++ branches/dunks/src/DataCache.cpp 2008-04-29 22:17:18 UTC (rev 204)
@@ -4,12 +4,15 @@
#include <string>
#include <iostream>
DataCache::DataCache() {
- for (int i=0; i< NUM_HOUSES; i++)
+ for (uint8_t i=0; i< NUM_HOUSES; i++)
{
m_objImg.push_back(new images());
m_guiImg.push_back(new images());
+ }
+ for (uint8_t i = 0; i < MUSIC_RANDOM; i++)
+ {
m_music.push_back(new music());
- }
+ }
int len, maplen;
uint8_t *data, *mapdata;
@@ -310,23 +313,23 @@
addSoundChunk(Intro_Wind_2bp, getChunkFromFile("INTROVOC:WIND2BP.VOC"));
addSoundChunk(Intro_Your, getChunkFromFile("INTROVOC:YOUR.VOC"));
- addMusic(MUSIC_INTRO, "SOUND:DUNE0.ADL", 2, 0);
- addMusic(MUSIC_LOSE, "SOUND:DUNE1.ADL", 3, 0);
- addMusic(MUSIC_PEACE, "SOUND:DUNE2.ADL", 6, 0);
- addMusic(MUSIC_PEACE, "SOUND:DUNE3.ADL", 6, 1);
- addMusic(MUSIC_PEACE, "SOUND:DUNE4.ADL", 6, 2);
- addMusic(MUSIC_PEACE, "SOUND:DUNE5.ADL", 6, 3);
- addMusic(MUSIC_PEACE, "SOUND:DUNE6.ADL", 6, 4);
- addMusic(MUSIC_PEACE, "SOUND:DUNE9.ADL", 4, 5);
- addMusic(MUSIC_PEACE, "SOUND:DUNE10.ADL", 2, 6);
- addMusic(MUSIC_ATTACK, "SOUND:DUNE11.ADL", 7, 0);
- addMusic(MUSIC_ATTACK, "SOUND:DUNE12.ADL", 7, 1);
- addMusic(MUSIC_ATTACK, "SOUND:DUNE13.ADL", 7, 2);
- addMusic(MUSIC_ATTACK, "SOUND:DUNE14.ADL", 7, 3);
- addMusic(MUSIC_ATTACK, "SOUND:DUNE15.ADL", 7, 4);
- addMusic(MUSIC_PEACE, "SOUND:DUNE18.ADL", 6, 0);
- addMusic(MUSIC_PEACE, "SOUND:DUNE19.ADL", 4, 1);
- addMusic(MUSIC_WIN, "SOUND:DUNE20.ADL", 2 ,0);
+ addMusic(MUSIC_INTRO, "SOUND:DUNE0.ADL", 2);
+ addMusic(MUSIC_LOSE, "SOUND:DUNE1.ADL", 3);
+ addMusic(MUSIC_PEACE, "SOUND:DUNE2.ADL", 6);
+ addMusic(MUSIC_PEACE, "SOUND:DUNE3.ADL", 6);
+ addMusic(MUSIC_PEACE, "SOUND:DUNE4.ADL", 6);
+ addMusic(MUSIC_PEACE, "SOUND:DUNE5.ADL", 6);
+ addMusic(MUSIC_PEACE, "SOUND:DUNE6.ADL", 6);
+ addMusic(MUSIC_PEACE, "SOUND:DUNE9.ADL", 4);
+ addMusic(MUSIC_PEACE, "SOUND:DUNE10.ADL", 2);
+ addMusic(MUSIC_ATTACK, "SOUND:DUNE11.ADL", 7);
+ addMusic(MUSIC_ATTACK, "SOUND:DUNE12.ADL", 7);
+ addMusic(MUSIC_ATTACK, "SOUND:DUNE13.ADL", 7);
+ addMusic(MUSIC_ATTACK, "SOUND:DUNE14.ADL", 7);
+ addMusic(MUSIC_ATTACK, "SOUND:DUNE15.ADL", 7);
+ addMusic(MUSIC_PEACE, "SOUND:DUNE18.ADL", 6);
+ addMusic(MUSIC_PEACE, "SOUND:DUNE19.ADL", 4);
+ addMusic(MUSIC_WIN, "SOUND:DUNE20.ADL", 2);
BriefingStrings[0] = new Stringfile("ENGLISH:TEXTA.ENG");
BriefingStrings[1] = new Stringfile("ENGLISH:TEXTO.ENG");
@@ -384,30 +387,38 @@
soundChunk[ID] = tmp;
}
-void DataCache::addMusic(MUSICTYPE musicType, std::string filename, uint16_t trackNum, uint16_t ID)
+void DataCache::addMusic(MUSICTYPE musicType, std::string filename, uint16_t trackNum)
{
+ songFiles[musicType].push_back(songFile(filename, trackNum));
+}
+
+Mix_Chunk* DataCache::addMusic(MUSICTYPE musicType, uint16_t ID)
+{
+ songFile song = songFiles[musicType][ID];
int len;
- uint8_t * data = ResMan::Instance()->readFile(filename, &len);
+ uint8_t * data = ResMan::Instance()->readFile(song.first, &len);
SDL_RWops* test = SDL_RWFromMem(data, len);
CadlPlayer *p = new CadlPlayer(test);
- Mix_Chunk* tmp = p->getUpsampledSubsong(trackNum, 22050, AUDIO_S16LSB, 1);
+ Mix_Chunk* tmp = p->getUpsampledSubsong(song.second, 22050, AUDIO_S16LSB, 1);
SDL_RWclose(test);
m_music[musicType]->insert(std::pair<uint16_t, Mix_Chunk*>(ID, tmp));
delete data;
delete p;
+ return tmp;
}
+// Searches through list of loaded songs to see if the specific song is loaded.
+// If loaded, it will return the song, if not it will load and return the song.
Mix_Chunk* DataCache::getMusic(MUSICTYPE musicType, uint16_t ID)
{
music::iterator iter = m_music[musicType]->find(ID);
if (iter != m_music[musicType]->end())
- {
+ {
return m_music[musicType]->find(ID)->second;
}
else
{
- Mix_Chunk* source = m_music[musicType]->find(ID)->second;
- return source;
+ return addMusic(musicType, ID);
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <dv...@us...> - 2008-04-29 20:12:19
|
Revision: 203
http://dunelegacy.svn.sourceforge.net/dunelegacy/?rev=203&view=rev
Author: dvalin
Date: 2008-04-29 13:11:59 -0700 (Tue, 29 Apr 2008)
Log Message:
-----------
load music (slow for now, must find a way to improve later..)
Modified Paths:
--------------
branches/dunks/include/DataCache.h
branches/dunks/src/DataCache.cpp
Modified: branches/dunks/include/DataCache.h
===================================================================
--- branches/dunks/include/DataCache.h 2008-04-29 16:37:27 UTC (rev 202)
+++ branches/dunks/include/DataCache.h 2008-04-29 20:11:59 UTC (rev 203)
@@ -14,6 +14,7 @@
#include "pakfile/Shpfile.h"
#include "pakfile/Wsafile.h"
#include "pakfile/Stringfile.h"
+
#include "houses.h"
#include <map>
@@ -23,6 +24,17 @@
#define NUM_MAPCHOICEARROWS 9
class Animation;
+//! \enum MUSICTYPE
+/*! Types of music available in the game*/
+typedef enum { MUSIC_ATTACK, /*!<Played when at least one of player's units was hit. */
+ MUSIC_INTRO, /*!<Background music for intro. */
+ MUSIC_LOSE, /*!<Failure screen background music. */
+ MUSIC_PEACE, /*!<Played most of the time when the enemy is not attacking. */
+ MUSIC_WIN, /*!<Victory screen background music.. */
+ MUSIC_RANDOM /*!<Player used key combination to change current music. */
+ } MUSICTYPE;
+
+
// ObjPics
typedef enum {
ObjPic_Tank_Base,
@@ -377,6 +389,11 @@
typedef std::map <unsigned, ImagePtr> images;
typedef std::vector <images*> remapped_images; //One for each house
+typedef std::map <unsigned, Mix_Chunk*> music;
+typedef std::vector <music*> remapped_music;
+
+typedef std::map <unsigned, std::string> musicFile;
+typedef std::vector <musicFile*> remapped_musicFile;
class DataCache : public Singleton<DataCache>
{
friend class Singleton<DataCache>;
@@ -391,10 +408,13 @@
void addAnimation(Animation_enum ID, std::string filename, double frameRate = 0);
void addAnimation(Animation_enum ID, Animation* animation, double frameRate = 0);
void addSoundChunk(Sound_enum ID, Mix_Chunk* tmp);
+ void addMusic(MUSICTYPE musicType, std::string filename, uint16_t trackNum, uint16_t ID);
+ void addMusic(MUSICTYPE musicType, Mix_Chunk* tmp, uint16_t ID);
ImagePtr getObjPic(ObjPic_enum ID, HOUSETYPE house = HOUSE_HARKONNEN);
ImagePtr getGuiPic(GuiPic_enum ID, HOUSETYPE house = HOUSE_HARKONNEN);
Animation* getAnimation(Animation_enum id);
Mix_Chunk* getSoundChunk(Sound_enum ID);
+ Mix_Chunk* getMusic(MUSICTYPE musicType, uint16_t ID);
Mix_Chunk* concat2Chunks(Sound_enum ID1, Sound_enum ID2);
std::string getBriefingText(uint16_t mission, uint16_t textType, HOUSETYPE house);
@@ -406,7 +426,9 @@
private:
remapped_images m_objImg;
remapped_images m_guiImg;
-
+ remapped_music m_music;
+ remapped_musicFile m_musicFile;
+
Mix_Chunk* getChunkFromFile(std::string fileName);
Mix_Chunk* concat2Chunks(Mix_Chunk* sound1, Mix_Chunk* sound2);
Mix_Chunk* concat3Chunks(Mix_Chunk* sound1, Mix_Chunk* sound2, Mix_Chunk* sound3);
Modified: branches/dunks/src/DataCache.cpp
===================================================================
--- branches/dunks/src/DataCache.cpp 2008-04-29 16:37:27 UTC (rev 202)
+++ branches/dunks/src/DataCache.cpp 2008-04-29 20:11:59 UTC (rev 203)
@@ -1,5 +1,6 @@
#include "DataCache.h"
#include "pakfile/sound/Vocfile.h"
+#include "pakfile/sound/adl/adl.h"
#include <string>
#include <iostream>
DataCache::DataCache() {
@@ -7,6 +8,7 @@
{
m_objImg.push_back(new images());
m_guiImg.push_back(new images());
+ m_music.push_back(new music());
}
int len, maplen;
@@ -308,6 +310,24 @@
addSoundChunk(Intro_Wind_2bp, getChunkFromFile("INTROVOC:WIND2BP.VOC"));
addSoundChunk(Intro_Your, getChunkFromFile("INTROVOC:YOUR.VOC"));
+ addMusic(MUSIC_INTRO, "SOUND:DUNE0.ADL", 2, 0);
+ addMusic(MUSIC_LOSE, "SOUND:DUNE1.ADL", 3, 0);
+ addMusic(MUSIC_PEACE, "SOUND:DUNE2.ADL", 6, 0);
+ addMusic(MUSIC_PEACE, "SOUND:DUNE3.ADL", 6, 1);
+ addMusic(MUSIC_PEACE, "SOUND:DUNE4.ADL", 6, 2);
+ addMusic(MUSIC_PEACE, "SOUND:DUNE5.ADL", 6, 3);
+ addMusic(MUSIC_PEACE, "SOUND:DUNE6.ADL", 6, 4);
+ addMusic(MUSIC_PEACE, "SOUND:DUNE9.ADL", 4, 5);
+ addMusic(MUSIC_PEACE, "SOUND:DUNE10.ADL", 2, 6);
+ addMusic(MUSIC_ATTACK, "SOUND:DUNE11.ADL", 7, 0);
+ addMusic(MUSIC_ATTACK, "SOUND:DUNE12.ADL", 7, 1);
+ addMusic(MUSIC_ATTACK, "SOUND:DUNE13.ADL", 7, 2);
+ addMusic(MUSIC_ATTACK, "SOUND:DUNE14.ADL", 7, 3);
+ addMusic(MUSIC_ATTACK, "SOUND:DUNE15.ADL", 7, 4);
+ addMusic(MUSIC_PEACE, "SOUND:DUNE18.ADL", 6, 0);
+ addMusic(MUSIC_PEACE, "SOUND:DUNE19.ADL", 4, 1);
+ addMusic(MUSIC_WIN, "SOUND:DUNE20.ADL", 2 ,0);
+
BriefingStrings[0] = new Stringfile("ENGLISH:TEXTA.ENG");
BriefingStrings[1] = new Stringfile("ENGLISH:TEXTO.ENG");
BriefingStrings[2] = new Stringfile("ENGLISH:TEXTH.ENG");
@@ -364,9 +384,37 @@
soundChunk[ID] = tmp;
}
+void DataCache::addMusic(MUSICTYPE musicType, std::string filename, uint16_t trackNum, uint16_t ID)
+{
+ int len;
+ uint8_t * data = ResMan::Instance()->readFile(filename, &len);
+ SDL_RWops* test = SDL_RWFromMem(data, len);
+ CadlPlayer *p = new CadlPlayer(test);
+ Mix_Chunk* tmp = p->getUpsampledSubsong(trackNum, 22050, AUDIO_S16LSB, 1);
+ SDL_RWclose(test);
+ m_music[musicType]->insert(std::pair<uint16_t, Mix_Chunk*>(ID, tmp));
+ delete data;
+ delete p;
+}
+
+Mix_Chunk* DataCache::getMusic(MUSICTYPE musicType, uint16_t ID)
+{
+ music::iterator iter = m_music[musicType]->find(ID);
+ if (iter != m_music[musicType]->end())
+ {
+ return m_music[musicType]->find(ID)->second;
+ }
+ else
+ {
+ Mix_Chunk* source = m_music[musicType]->find(ID)->second;
+ return source;
+ }
+}
+
Mix_Chunk* DataCache::getSoundChunk(Sound_enum ID){
return soundChunk[ID];
}
+
Mix_Chunk* DataCache::getChunkFromFile(std::string fileName) {
Mix_Chunk* returnChunk;
SDL_RWops* rwop;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|