int CFace::GatherVertices (CArray<CVertex>& source, CArray<CVertex>& dest, int nIndex) { #if DBG if (uint (m_nIndex + m_nVerts) > source.Length ()) return 0; if (uint (nIndex + m_nVerts) > dest.Length ()) return 0; #endif memcpy (dest + nIndex, source + m_nIndex, m_nVerts * sizeof (CVertex)); m_nIndex = nIndex; //set this face's index of its first vertex in the model's vertex buffer return m_nVerts; }
static void StopTriggeredSounds (CArray<CTrigger>& triggers) { CTrigger *trigP = triggers.Buffer (); for (int i = triggers.Length (); i > 0; i--, trigP++) trigP->m_info.nChannel = -1; }
static int OOF_ReadIntList (CFile& cf, CArray<int>& list) { uint i; char szId [20] = ""; list.Destroy (); if (!(i = OOF_ReadInt (cf, "nList"))) return 0; if (!list.Create (i)) return -1; for (i = 0; i < list.Length (); i++) { if (bLogOOF) sprintf (szId, "list [%d]", i); list [i] = OOF_ReadInt (cf, szId); } return list.Length (); }
static void StartTriggeredSounds (CArray<CTrigger>& triggers) { CTrigger *trigP = triggers.Buffer (); for (int i = triggers.Length (); i > 0; i--, trigP++) if ((trigP->m_info.nType == TT_SOUND) && (trigP->m_info.flags & TF_PLAYING_SOUND) && (trigP->m_info.nChannel < 0)) trigP->DoPlaySound (-1); }