#include #include #include #include #include #include #include #include // create(mediapakfilename) // add(mediapak,filename,type,id) // remove(mediapak,id) // display(mediapakfilename) void displayUsage(void); BOOL handleAdd(const String &strCommand); BOOL handleRemove(const String &strCommand); BOOL handleList(const String &strCommand); BOOL handleCreate(const String &strCommand); //int PASCAL WinMain(HINSTANCE hInstance,HINSTANCE /*hPrevInstance*/,LPSTR /*lpszCmdLine*/,int /*nCmdShow*/) void main(int argc,char **argv) { MediaPak mediaPak; Array entryInfoArray; String strDebug; if(!mediaPak.open("mediapak.pak",MediaPak::OpenAlways))return; // mediaPak.add("c:\\work\\scene\\media\\bmp\\tie1.bmp"); ::sprintf(strDebug,"%d\n",mediaPak.entries()); ::OutputDebugString(strDebug); mediaPak.getInfo(entryInfoArray); for(int index=0;index mediaData; FileHandle openFile; strPathMediaPak=strCommand.betweenString('(',','); strPathFileName=strCommand.betweenString(',',','); strType=strCommand.betweenString(',',')').betweenString(',',','); strID=strCommand.betweenString(',',')').betweenString(',',0).betweenString(',',0); if(strPathMediaPak.isNull())return FALSE; if(strPathFileName.isNull())return FALSE; if(strID.isNull())return FALSE; if(strType.isNull())return FALSE; mediaPak.open(strPathMediaPak); if(strType==String("SOUND"))pakEntry.type(PakEntry::Sound); else if(strType==String("BITMAP"))pakEntry.type(PakEntry::Bitmap); else pakEntry.type(PakEntry::Blob); openFile.open(strPathFileName); mediaData.size(openFile.size()); openFile.read((BYTE*)&mediaData[0],mediaData.size()); pakEntry.name(strPathFileName); pakEntry.id(::atoi(strID)); pakEntry.rawData(mediaData); mediaPak.add(pakEntry); return TRUE; } BOOL handleRemove(const String &strCommand) { return FALSE; } BOOL handleList(const String &strCommand) { String pathMediaPak; String strType; MediaPak mediaPak; PakEntry pakEntry; pathMediaPak=strCommand.betweenString('(',')'); if(pathMediaPak.isNull())return FALSE; if(!mediaPak.open(pathMediaPak))return FALSE; for(int index=0;index soundData; FileHandle openFile; WaveForm waveForm; mediaPak.open("c:\\multimed.pak",TRUE); pakEntry.type(PakEntry::Sound); openFile.open("C:\\GAMES\\DOOM2\\DSTELEPT.WAV"); soundData.size(openFile.size()); openFile.read((BYTE*)soundData,soundData.size()); pakEntry.name("DSTELEPT"); pakEntry.id(0); pakEntry.rawData(soundData); mediaPak.add(pakEntry); openFile.open("C:\\GAMES\\DOOM2\\DSPISTOL.WAV"); soundData.size(openFile.size()); openFile.read((BYTE*)soundData,soundData.size()); pakEntry.name("DSPISTOL"); pakEntry.id(0); pakEntry.rawData(soundData); mediaPak.add(pakEntry); mediaPak.open("c:\\multimed.pak"); if(!mediaPak.getEntry(waveForm,0))return FALSE; PureWave pureWave; pureWave.play(waveForm,DeviceHandler::Wait); mediaPak.close(); #endif