mirror of
https://github.com/AxioDL/amuse.git
synced 2025-12-08 21:17:49 +00:00
Fix NameDB and Voice related crashes
This commit is contained in:
@@ -46,7 +46,8 @@ static void ReadRangedObjectIds(NameDB* db, athena::io::IStreamReader& r, NameDB
|
||||
useId.id |= 0x8000;
|
||||
else if (tp == NameDB::Type::Keymap)
|
||||
useId.id |= 0x4000;
|
||||
db->registerPair(NameDB::generateName(useId, tp), useId);
|
||||
if (db)
|
||||
db->registerPair(NameDB::generateName(useId, tp), useId);
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -55,7 +56,8 @@ static void ReadRangedObjectIds(NameDB* db, athena::io::IStreamReader& r, NameDB
|
||||
id |= 0x8000;
|
||||
else if (tp == NameDB::Type::Keymap)
|
||||
id |= 0x4000;
|
||||
db->registerPair(NameDB::generateName(id, tp), id);
|
||||
if (db)
|
||||
db->registerPair(NameDB::generateName(id, tp), id);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -97,7 +99,8 @@ AudioGroupProject::AudioGroupProject(athena::io::IStreamReader& r, GCNDataTag)
|
||||
GroupHeader<athena::Big> header;
|
||||
header.read(r);
|
||||
|
||||
GroupId::CurNameDB->registerPair(NameDB::generateName(header.groupId, NameDB::Type::Group), header.groupId);
|
||||
if (GroupId::CurNameDB)
|
||||
GroupId::CurNameDB->registerPair(NameDB::generateName(header.groupId, NameDB::Type::Group), header.groupId);
|
||||
|
||||
/* Sound Macros */
|
||||
r.seek(header.soundMacroIdsOff, athena::Begin);
|
||||
@@ -156,7 +159,8 @@ AudioGroupProject::AudioGroupProject(athena::io::IStreamReader& r, GCNDataTag)
|
||||
std::array<SongGroupIndex::MIDISetup, 16>& setup = idx->m_midiSetups[songId];
|
||||
for (int i = 0; i < 16 ; ++i)
|
||||
setup[i].read(r);
|
||||
SongId::CurNameDB->registerPair(NameDB::generateName(songId, NameDB::Type::Song), songId);
|
||||
if (SongId::CurNameDB)
|
||||
SongId::CurNameDB->registerPair(NameDB::generateName(songId, NameDB::Type::Song), songId);
|
||||
}
|
||||
}
|
||||
else if (header.type == GroupType::SFX)
|
||||
@@ -174,7 +178,8 @@ AudioGroupProject::AudioGroupProject(athena::io::IStreamReader& r, GCNDataTag)
|
||||
SFXGroupIndex::SFXEntryDNA<athena::Big> entry;
|
||||
entry.read(r);
|
||||
idx->m_sfxEntries[entry.sfxId.id] = entry;
|
||||
SFXId::CurNameDB->registerPair(
|
||||
if (SFXId::CurNameDB)
|
||||
SFXId::CurNameDB->registerPair(
|
||||
NameDB::generateName(entry.sfxId.id, NameDB::Type::SFX), entry.sfxId.id);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user