void EntityEmitter::UpdateSound(Sound& sound) { AL::Source& source = sound.GetSource(); if (entityNum == listenerEntity) { MakeLocal(source); } else { Make3D(source, entities[entityNum].position, entities[entityNum].velocity); } }
wxString wxFileSystem::FindFirst(const wxString& spec, int flags) { wxList::compatibility_iterator node; wxString spec2(spec); m_FindFileHandler = NULL; for (int i = spec2.length()-1; i >= 0; i--) if (spec2[(unsigned int) i] == wxT('\\')) spec2.GetWritableChar(i) = wxT('/'); // Want to be windows-safe node = m_Handlers.GetFirst(); while (node) { wxFileSystemHandler *h = (wxFileSystemHandler*) node -> GetData(); if (h -> CanOpen(m_Path + spec2)) { m_FindFileHandler = MakeLocal(h); return m_FindFileHandler -> FindFirst(m_Path + spec2, flags); } node = node->GetNext(); } node = m_Handlers.GetFirst(); while (node) { wxFileSystemHandler *h = (wxFileSystemHandler*) node -> GetData(); if (h -> CanOpen(spec2)) { m_FindFileHandler = MakeLocal(h); return m_FindFileHandler -> FindFirst(spec2, flags); } node = node->GetNext(); } return wxEmptyString; }
wxFSFile* wxFileSystem::OpenFile(const wxString& location, int flags) { if ((flags & wxFS_READ) == 0) return NULL; wxString loc = MakeCorrectPath(location); unsigned i, ln; wxChar meta; wxFSFile *s = NULL; wxList::compatibility_iterator node; ln = loc.length(); meta = 0; for (i = 0; i < ln; i++) { switch ( loc[i].GetValue() ) { case wxT('/') : case wxT(':') : case wxT('#') : meta = loc[i]; break; } if (meta != 0) break; } m_LastName = wxEmptyString; // try relative paths first : if (meta != wxT(':')) { node = m_Handlers.GetFirst(); while (node) { wxFileSystemHandler *h = (wxFileSystemHandler*) node -> GetData(); if (h->CanOpen(m_Path + loc)) { s = MakeLocal(h)->OpenFile(*this, m_Path + loc); if (s) { m_LastName = m_Path + loc; break; } } node = node->GetNext(); } } // if failed, try absolute paths : if (s == NULL) { node = m_Handlers.GetFirst(); while (node) { wxFileSystemHandler *h = (wxFileSystemHandler*) node->GetData(); if (h->CanOpen(loc)) { s = MakeLocal(h)->OpenFile(*this, loc); if (s) { m_LastName = loc; break; } } node = node->GetNext(); } } if (s && (flags & wxFS_SEEKABLE) != 0 && !s->GetStream()->IsSeekable()) { wxBackedInputStream *stream; stream = new wxBackedInputStream(s->DetachStream()); stream->FindLength(); s->SetStream(stream); } return (s); }
void LocalEmitter::InternalSetupSound(Sound& sound) { AL::Source& source = sound.GetSource(); MakeLocal(source); }