195 |
inline void LoadString(RIFF::Chunk* ck, std::string& s) { |
inline void LoadString(RIFF::Chunk* ck, std::string& s) { |
196 |
if (ck) { |
if (ck) { |
197 |
const char* str = (char*)ck->LoadChunkData(); |
const char* str = (char*)ck->LoadChunkData(); |
198 |
int size = ck->GetSize(); |
int size = (int) ck->GetSize(); |
199 |
int len; |
int len; |
200 |
for (len = 0 ; len < size ; len++) |
for (len = 0 ; len < size ; len++) |
201 |
if (str[len] == '\0') break; |
if (str[len] == '\0') break; |
224 |
*/ |
*/ |
225 |
inline void SaveString(uint32_t ChunkID, RIFF::Chunk* ck, RIFF::List* lstINFO, const std::string& s, const std::string& sDefault, bool bUseFixedLengthStrings, int size) { |
inline void SaveString(uint32_t ChunkID, RIFF::Chunk* ck, RIFF::List* lstINFO, const std::string& s, const std::string& sDefault, bool bUseFixedLengthStrings, int size) { |
226 |
if (ck) { // if chunk exists already, use 's' as value |
if (ck) { // if chunk exists already, use 's' as value |
227 |
if (!bUseFixedLengthStrings) size = s.size() + 1; |
if (!bUseFixedLengthStrings) size = (int) s.size() + 1; |
228 |
ck->Resize(size); |
ck->Resize(size); |
229 |
char* pData = (char*) ck->LoadChunkData(); |
char* pData = (char*) ck->LoadChunkData(); |
230 |
strncpy(pData, s.c_str(), size); |
strncpy(pData, s.c_str(), size); |
231 |
} else if (s != "" || sDefault != "" || bUseFixedLengthStrings) { // create chunk |
} else if (s != "" || sDefault != "" || bUseFixedLengthStrings) { // create chunk |
232 |
const std::string& sToSave = (s != "") ? s : sDefault; |
const std::string& sToSave = (s != "") ? s : sDefault; |
233 |
if (!bUseFixedLengthStrings) size = sToSave.size() + 1; |
if (!bUseFixedLengthStrings) size = (int) sToSave.size() + 1; |
234 |
ck = lstINFO->AddSubChunk(ChunkID, size); |
ck = lstINFO->AddSubChunk(ChunkID, size); |
235 |
char* pData = (char*) ck->LoadChunkData(); |
char* pData = (char*) ck->LoadChunkData(); |
236 |
strncpy(pData, sToSave.c_str(), size); |
strncpy(pData, sToSave.c_str(), size); |