|
From: <dv...@us...> - 2008-04-27 17:34:07
|
Revision: 163
http://dunelegacy.svn.sourceforge.net/dunelegacy/?rev=163&view=rev
Author: dvalin
Date: 2008-04-27 10:32:34 -0700 (Sun, 27 Apr 2008)
Log Message:
-----------
use enum data types
Modified Paths:
--------------
branches/dunks/include/DataCache.h
branches/dunks/include/SoundPlayerClass.h
branches/dunks/src/DataCache.cpp
branches/dunks/src/SoundPlayerClass.cpp
Modified: branches/dunks/include/DataCache.h
===================================================================
--- branches/dunks/include/DataCache.h 2008-04-26 17:38:55 UTC (rev 162)
+++ branches/dunks/include/DataCache.h 2008-04-27 17:32:34 UTC (rev 163)
@@ -13,7 +13,7 @@
#include "pakfile/Palette.h"
#include "pakfile/Shpfile.h"
#include "pakfile/Wsafile.h"
-
+//#include "pakfile/BriefingText.h"
#include "houses.h"
#include <map>
@@ -135,7 +135,7 @@
Picture_WindTrap,
Picture_WOR,
NUM_SMALLDETAILPICS
-} SmallDetailPics_Enum;
+} SmallDetailPics_enum;
// UI Graphics
typedef enum {
@@ -199,7 +199,7 @@
UI_MapChoiceMap,
UI_MapChoiceClickMap,
NUM_UIGRAPHICS
-} UIGraphics_Enum;
+} GuiPic_enum;
//Animation
typedef enum {
@@ -371,7 +371,7 @@
NUM_SOUNDCHUNK
} Sound_enum;
-typedef std::map <unsigned, ImagePtr> images;
+typedef std::map <ObjPic_enum, ImagePtr> images;
typedef std::vector <images*> remapped_images; //One for each house
class DataCache : public Singleton<DataCache>
@@ -383,13 +383,20 @@
~DataCache();
public:
- void addObjPic(unsigned ID, SDL_Surface * tmp);
- void addSoundChunk(unsigned ID, Mix_Chunk* tmp);
- ImagePtr getObjPic(unsigned ID, unsigned house = HOUSE_HARKONNEN);
- Mix_Chunk* getSoundChunk(unsigned ID);
+ void addObjPic(ObjPic_enum ID, SDL_Surface * tmp, HOUSETYPE house = HOUSE_HARKONNEN);
+// void addGuiPic(GuiPic_enum ID, SDL_Surface * tmp, HOUSETYPE house = HOUSE_HARKONNEN);
+ void addSoundChunk(Sound_enum ID, Mix_Chunk* tmp);
+ ImagePtr getObjPic(ObjPic_enum ID, HOUSETYPE house = HOUSE_HARKONNEN);
+ ImagePtr getGuiPic(GuiPic_enum ID, HOUSETYPE house = HOUSE_HARKONNEN);
+ Mix_Chunk* getSoundChunk(Sound_enum ID);
+ Mix_Chunk* concat2Chunks(Sound_enum ID1, Sound_enum ID2);
+// std::string getBriefingText(ObjPic_enum mission, ObjPic_enum texttype, ObjPic_enum house);
+// std::string getBriefingText(ObjPic_enum i);
+
+
private:
- bool addObjPic(unsigned ID) { return false;};
+ bool addObjPic(ObjPic_enum ID) { return false;};
remapped_images m_objImg;
remapped_images m_guiImg;
@@ -398,6 +405,7 @@
Mix_Chunk* concat3Chunks(Mix_Chunk* sound1, Mix_Chunk* sound2, Mix_Chunk* sound3);
Mix_Chunk* createEmptyChunk();
+// BriefingText* BriefingStrings[1];
Mix_Chunk* soundChunk[NUM_SOUNDCHUNK];
};
Modified: branches/dunks/include/SoundPlayerClass.h
===================================================================
--- branches/dunks/include/SoundPlayerClass.h 2008-04-26 17:38:55 UTC (rev 162)
+++ branches/dunks/include/SoundPlayerClass.h 2008-04-27 17:32:34 UTC (rev 163)
@@ -4,9 +4,9 @@
#include <string>
#include <vector>
#include "ResMan.h"
+#include "DataCache.h"
#include "dMath.h"
#include "SDL_mixer.h"
-using namespace std;
//! \enum MUSICTYPE
/*! Types of music available in the game*/
@@ -50,7 +50,7 @@
@param soundID id of the sound to be played
@param location coordinates where the sound is to be played
*/
- void playSoundAt(int soundID, COORDTYPE* location);
+ void playSoundAt(Sound_enum soundID, COORDTYPE* location);
/*!
turns music playing on or off
@@ -59,8 +59,9 @@
void setMusic(bool value);
void toggleSound();
- void playVoice(int id, int house);
- void playSound(int soundID);
+ void playVoice(Sound_enum id, HOUSETYPE house);
+ void playSound(Sound_enum soundID);
+ void playSound(Mix_Chunk* sound);
inline int GetSfxVolume() { return sfxVolume; };
void SetSfxVolume(int newVolume) {
@@ -83,14 +84,14 @@
@param soundID id of a sound to be played
@param volume sound will be played with this volume
*/
- void playSound(int soundID, int volume);
- vector<string> getMusicFileNames(string dir);
+ void playSound(Sound_enum soundID, int volume);
+ vector<std::string> getMusicFileNames(std::string dir);
- vector<string> AttackMusic;
- vector<string> IntroMusic;
- vector<string> LoseMusic;
- vector<string> PeaceMusic;
- vector<string> WinMusic;
+ vector<std::string> AttackMusic;
+ vector<std::string> IntroMusic;
+ vector<std::string> LoseMusic;
+ vector<std::string> PeaceMusic;
+ vector<std::string> WinMusic;
//! whether sound should be played
bool soundOn;
Modified: branches/dunks/src/DataCache.cpp
===================================================================
--- branches/dunks/src/DataCache.cpp 2008-04-26 17:38:55 UTC (rev 162)
+++ branches/dunks/src/DataCache.cpp 2008-04-27 17:32:34 UTC (rev 163)
@@ -14,6 +14,7 @@
Shpfile* units;
Shpfile* units1;
Shpfile* units2;
+ Cpsfile* herald;
//LOADING FILES
data = ResMan::Instance()->readFile("DUNE:UNITS.SHP", &len);
@@ -24,8 +25,10 @@
data = ResMan::Instance()->readFile("DUNE:UNITS2.SHP", &len);
units2 = new Shpfile(data, len);
+
+ data = ResMan::Instance()->readFile("ENGLISH:HERALD.ENG", &len);
+ herald = new Cpsfile(data, len);
-
int maplen;
unsigned char * mapdata;
@@ -94,6 +97,14 @@
addObjPic(ObjPic_SandDamage, units1->getPictureArray(3,1,5|TILE_NORMAL,6|TILE_NORMAL,7|TILE_NORMAL));
addObjPic(ObjPic_Terrain_Hidden, icon->getPictureRow(108,123));
+ //addGuiPic(UI_HouseChoiceBackground, herald->getPicture());
+
+/* UIGraphic[UI_MentatYes][HOUSE_HARKONNEN] = DoublePicture(mentat->getPicture(0));
+ UIGraphic[UI_MentatYes_Pressed][HOUSE_HARKONNEN] = DoublePicture(mentat->getPicture(1));
+ UIGraphic[UI_MentatNo][HOUSE_HARKONNEN] = DoublePicture(mentat->getPicture(2));
+ UIGraphic[UI_MentatNo_Pressed][HOUSE_HARKONNEN] = DoublePicture(mentat->getPicture(3));*/
+
+
addSoundChunk(YesSir, getChunkFromFile("VOC:ZREPORT1.VOC"));
addSoundChunk(Reporting, getChunkFromFile("VOC:ZREPORT2.VOC"));
addSoundChunk(Acknowledged, getChunkFromFile("VOC:ZREPORT3.VOC"));
@@ -186,17 +197,38 @@
addSoundChunk(Intro_WhoEver, getChunkFromFile("INTROVOC:WHOEVER.VOC"));
addSoundChunk(Intro_Wind_2bp, getChunkFromFile("INTROVOC:WIND2BP.VOC"));
addSoundChunk(Intro_Your, getChunkFromFile("INTROVOC:YOUR.VOC"));
+#if 0
+ SDL_RWops* text_lng[1];
+ data = ResMan::Instance()->readFile("ENGLISH:INTRO.ENG", &len);
+ text_lng[0] = SDL_RWFromMem(data, len);
+/* data = ResMan::Instance()->readFile("ENGLISH:TEXTO.ENG", &len);
+ text_lng[1] = SDL_RWFromMem(data, len);
+ data = ResMan::Instance()->readFile("ENGLISH:TEXTH.ENG", &len);
+ text_lng[2] = SDL_RWFromMem(data, len);*/
+ int i = 0;
+ for(i = 0; i < 1; i++){
+ BriefingStrings[i] = new BriefingText(text_lng[i]);
+ SDL_RWclose(text_lng[i]);
+ }
+#endif
}
-void DataCache::addObjPic(unsigned ID, SDL_Surface * tmp) {
+void DataCache::addObjPic(ObjPic_enum ID, SDL_Surface * tmp, HOUSETYPE house) {
- m_objImg[HOUSE_HARKONNEN]->insert(std::pair<unsigned, ImagePtr>(ID,
+ m_objImg[HOUSE_HARKONNEN]->insert(std::pair<ObjPic_enum, ImagePtr>(ID,
ImagePtr(new Image(tmp))));
}
-ImagePtr DataCache::getObjPic(unsigned ID, unsigned house) {
+/*void DataCache::addGuiPic(GuiPic_enum ID, SDL_Surface * tmp, HOUSETYPE house) {
+ m_guiImg[HOUSE_HARKONNEN]->insert(std::pair<GuiPic_enum, ImagePtr>(ID,
+ ImagePtr(new Image(tmp))));
+}*/
+
+
+ImagePtr DataCache::getObjPic(ObjPic_enum ID, HOUSETYPE house) {
+
images::iterator iter = m_objImg[house]->find(ID);
if (iter != m_objImg[house]->end())
{
@@ -206,17 +238,34 @@
{
ImagePtr source = m_objImg[HOUSE_HARKONNEN]->find(ID)->second;
ImagePtr copy = source->getRecoloredByHouse(house);
- m_objImg[HOUSE_HARKONNEN]->insert(std::pair<unsigned, ImagePtr>(ID, copy));
+ m_objImg[HOUSE_HARKONNEN]->insert(std::pair<ObjPic_enum, ImagePtr>(ID, copy));
return copy;
}
}
-void DataCache::addSoundChunk(unsigned ID, Mix_Chunk* tmp){
+/*ImagePtr DataCache::getGuiPic(GuiPic_enum ID, HOUSETYPE house) {
+
+ images::iterator 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_HARKONNEN]->find(ID)->second;
+ ImagePtr copy = source->getRecoloredByHouse(house);
+ m_guiImg[HOUSE_HARKONNEN]->insert(std::pair<GuiPic_enum, ImagePtr>(ID, copy));
+ return copy;
+ }
+
+}*/
+
+void DataCache::addSoundChunk(Sound_enum ID, Mix_Chunk* tmp){
soundChunk[ID] = tmp;
}
-Mix_Chunk* DataCache::getSoundChunk(unsigned ID){
+Mix_Chunk* DataCache::getSoundChunk(Sound_enum ID){
return soundChunk[ID];
}
Mix_Chunk* DataCache::getChunkFromFile(std::string fileName) {
@@ -240,6 +289,41 @@
return returnChunk;
}
+Mix_Chunk* DataCache::concat2Chunks(Mix_Chunk* sound1, Mix_Chunk* sound2)
+{
+ Mix_Chunk* returnChunk;
+ if((returnChunk = (Mix_Chunk*) malloc(sizeof(Mix_Chunk))) == NULL) {
+ return NULL;
+ }
+
+ returnChunk->allocated = 1;
+ returnChunk->volume = sound1->volume;
+ returnChunk->alen = sound1->alen + sound2->alen;
+
+ if((returnChunk->abuf = (Uint8 *)malloc(returnChunk->alen)) == NULL) {
+ free(returnChunk);
+ return NULL;
+ }
+
+ memcpy(returnChunk->abuf, sound1->abuf, sound1->alen);
+ memcpy(returnChunk->abuf + sound1->alen, sound2->abuf, sound2->alen);
+
+ return returnChunk;
+}
+/*
+std::string DataCache::getBriefingText(ObjPic_enum mission, ObjPic_enum texttype, int house) {
+ return BriefingStrings[0]->getString(0,0);
+}
+
+std::string DataCache::getBriefingText(int i){
+ return BriefingStrings[0]->getString(i);
+}
+*/
+Mix_Chunk* DataCache::concat2Chunks(Sound_enum ID1, Sound_enum ID2)
+{
+ return concat2Chunks(soundChunk[ID1], soundChunk[ID2]);
+}
+
DataCache::~DataCache() {
}
Modified: branches/dunks/src/SoundPlayerClass.cpp
===================================================================
--- branches/dunks/src/SoundPlayerClass.cpp 2008-04-26 17:38:55 UTC (rev 162)
+++ branches/dunks/src/SoundPlayerClass.cpp 2008-04-27 17:32:34 UTC (rev 163)
@@ -257,7 +257,7 @@
}
}
-void SoundPlayerClass::playSound(int soundID, int volume)
+void SoundPlayerClass::playSound(Sound_enum soundID, int volume)
{
if (soundOn)
{
@@ -290,7 +290,7 @@
}
#endif
-void SoundPlayerClass::playSound(int soundID) {
+void SoundPlayerClass::playSound(Sound_enum soundID) {
if (soundOn)
{
Mix_Chunk* tmp;
@@ -303,6 +303,14 @@
Mix_PlayChannel(-1, tmp, 0);
}
}
+
+void SoundPlayerClass::playSound(Mix_Chunk* sound) {
+ if (soundOn)
+ {
+ Mix_PlayChannel(-1, sound, 0);
+ }
+}
+
#if 0
vector<string> SoundPlayerClass::getMusicFileNames(string dir) {
vector<string> Files;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|