Give a look on the Filesystem interface, which allows you to mount and
read files from GCF:
https://developer.valvesoftware.com/wiki/IFileSystem

Júlio César



Em 6 de fevereiro de 2012 13:22, Flávio Roberto <feg...@gmail.com> escreveu:
> Got some updates on this.
>
> I was able to solve my problem of not being able to configure the particle
> system when dispatched from the server like this:
>
> Created a temporary entity on Server and Client (CSynaesthesiaEntity and
> C_SynaesthesiaEntity).
>
> On the server, it just transmits some info of the sound to the client
> version (some EmitSount_t members).
> On the client, it spawns a client-side only entity (C_SynaesthesiaProcessor)
> to configure, dispatch and control a particle effect.
>
> Created a client-side only entity (C_SynaesthesiaProcessor) that creates and
> maintains the particle effect based on information from the sound metadata
> and audio features extraction.
>
>
> I'm almost sure that that's not the most efficient way to do it, but I
> believe the performance loss won't be a problem for a prototype.
>
>
>
> Now, the next task is to use an audio feature extraction library to read
> some information from the game sounds. I have already integrated the library
> (http://marsyas.info) to the source code using the FMOD tutorial on the wiki
> as guide.
>
> However, as I am using the sounds from HL2 (my sounds folder does not exist)
> I still haven't figured out how to access the game sound files - that are
> inside the GCF. A really simple but ugly approach is to extract the game
> sounds from the GCF to the mod's sound folder, but I would like to avoid
> that. Can someone shed some light on this matter?
>
>
> Thanks!!
>
> Flávio Roberto
> http://www.dcc.ufmg.br/~flavioro/
>
>
>
> Em 26 de janeiro de 2012 15:08, Flávio Roberto <feg...@gmail.com> escreveu:
>
>> Okay, here I am again!
>>
>> I was able to inject some code in SoundEmitterSystem.cpp that spawns a
>> particle system whenever/wherever a sound effect is played. This is part of
>> the ugly, temporary (and a bit simplified) code:
>>
>> #if defined( CLIENT_DLL )
>> #include "particles_new.h"
>>
>> void AttachParticleEffectForSynaesthesia(int entindex, const Vector* origin, bool isVoice = false, float duration = 1, bool ignorez = false)
>> {
>>      if (!sv_synaesthesia_mode.GetBool() || origin == NULL)
>>              return;
>>
>>      PrecacheParticleSystem("synaesthesia_particles");
>>
>>      
>> CNewParticleEffect* pEffect = new CNewParticleEffect(ClientEntityList().GetBaseEntity(entindex), "synaesthesia_particles");
>>
>>
>>      
>> // If sound is a voice, shift it up a bit (because the sounds from voices are emitted not from the mouths, but from chararacters' bellies)
>>      Vector newOrigin = *origin;
>>      if (isVoice) {
>>              newOrigin += Vector(0,0, 45);
>>      }
>>      pEffect->SetControlPoint( 0, newOrigin );
>>
>>      // This sets the color of the particle effect to red. Later, it'll use a
>> sound processing library to extract features and set the color accordingly
>>
>>      pEffect->SetControlPoint( 1, Vector(255, 0, 0));
>>
>>
>> }
>> #else
>> #include "particle_parse.h"
>>
>> void AttachParticleEffectForSynaesthesia(int entindex, const Vector* origin, bool isVoice = false, float duration = 1, bool ignorez = false)
>> {
>>      if (!sv_synaesthesia_mode.GetBool() || origin == NULL)
>>              return;
>>
>>      
>> DispatchParticleEffect( sv_synaesthesia_particle_name.GetString(), *origin, QAngle(0,0,1), NULL);
>> }
>> #endif
>>
>>
>> Results of a previous (almost equal) version of that code and particle
>> system:
>>
>>
>> http://www.youtube.com/watch?v=OHJ8iTb4T54&feature=context&context=C3e61f17UDOEgsToPDskJNfp_0vvinY3J-zCIyOzex
>>
>> http://www.youtube.com/watch?v=OqKrDiiqoCA&feature=plcp&context=C3e61f17UDOEgsToPDskJNfp_0vvinY3J-zCIyOzex
>>
>>
>>
>>
>>
>> Now I got one problem. When the sound is emitted from the client, I am
>> able to configure the particle effect. But from the server side,
>> DispatchParticleEffect does not give me the opportunity (right?).
>>
>> So now, I am moving to a more organized implementation. AFAIK, to be able
>> to configure the particle effect, I have to create them on the client. But I
>> have not yet understood the client/server entities thing yet.
>>
>> I would like to know if this can be a good way to do it:
>>
>> Create a "CSynaesthesiaEntity" on the server.
>> Create a "C_SynaesthesiaEntity" on the client.
>>
>> For sounds triggered from the client, I spawn a "C_SynaesthesiaEntity"
>> with the intended parameters to configure and spawn the particle effect.
>> For sounds triggered from the server, I spawn a "CSynaesthesiaEntity" that
>> will only trigger a "C_SynaesthesiaEntity" that will finish the job.
>>
>>
>> Can that work??
>>
>>
>>
>> Thanks very much!
>>
>> Flávio Roberto
>> http://www.dcc.ufmg.br/~flavioro/
>>
>> PS: About the previous issue with setting up HL2 maps, I ended up finding
>> the configuration files with GCFScape and using them. =)
>>
>>
>>
>>
>> Em 27 de dezembro de 2011 13:15, Flávio Roberto <feg...@gmail.com>
>> escreveu:
>>
>>> Hey Saul,
>>>
>>> That was what I chose, but the configuration files were all from EP2.
>>> But I have managed to make some progress these days and I got something
>>> working (using GCFScape and tuning the configuration files).
>>>
>>> Now, to the modding =)
>>> Thanks everyone and a late merry xmas!
>>>
>>>
>>>
>>> Flávio Roberto
>>> http://www.dcc.ufmg.br/~flavioro/
>>>
>>>
>>>
>>> On Fri, Dec 23, 2011 at 7:51 PM, Saul Rennison <saul.renni...@gmail.com>
>>> wrote:
>>>>
>>>> Use "Modify HL2 Singleplayer" as your Create a Mod option. It should
>>>> work exactly like HL2 as far I recall.
>>>>
>>>>
>>>> Kind regards,
>>>> Saul Rennison
>>>>
>>>>
>>>>
>>>> On 23 December 2011 16:38, Flávio Roberto <feg...@gmail.com> wrote:
>>>>>
>>>>> Just to clarify: the problem is that my first step is to "recreate" the
>>>>> HL2 environment (map sequence, configurations etc) so I can work on top of
>>>>> it. And I'm still struggling with that.
>>>>>
>>>>>
>>>>> Flávio Roberto
>>>>> http://www.dcc.ufmg.br/~flavioro/
>>>>>
>>>>>
>>>>>
>>>>> 2011/12/23 Flávio Roberto <feg...@gmail.com>
>>>>>>
>>>>>> Oh, that's great! Thank you aVoX and Saul!
>>>>>>
>>>>>> aVoX, I had already found that folder (\sourcesdk_content\hl2\mapsrc),
>>>>>> but there are only some of the maps there. In this case, I believe the
>>>>>> option left is to use GCFScape on ...\steamapps\half-life 2 content.gcf 
>>>>>> and
>>>>>> decompile, right?
>>>>>>
>>>>>> One more thing: the configuration files created by the "Create a Mod"
>>>>>> Wizard contain information as if it were based on EP2 (chapters,
>>>>>> gameinfo...).
>>>>>> Is that because I used the 2007 sdk version? Is there a quick way to
>>>>>> reuse all (and only) the HL2 configuration files?
>>>>>>
>>>>>> Thanks!
>>>>>>
>>>>>> Flávio Roberto
>>>>>> http://www.dcc.ufmg.br/~flavioro/
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Fri, Dec 23, 2011 at 5:02 AM, <a...@arcticmail.com> wrote:
>>>>>>>
>>>>>>> Concerning 1. you should take a look in your
>>>>>>> "...\SteamApps\<USER>\sourcesdk_content\hl2\mapsrc" directory. All maps 
>>>>>>> are
>>>>>>> available in a Hammer-readable VMF.
>>>>>>>
>>>>>>> aVoX.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> To unsubscribe, edit your list preferences, or view the list
>>>>>>> archives, please visit:
>>>>>>> https://list.valvesoftware.com/cgi-bin/mailman/listinfo/hlcoders
>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> To unsubscribe, edit your list preferences, or view the list archives,
>>>>> please visit:
>>>>> https://list.valvesoftware.com/cgi-bin/mailman/listinfo/hlcoders
>>>>>
>>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> To unsubscribe, edit your list preferences, or view the list archives,
>>>> please visit:
>>>> https://list.valvesoftware.com/cgi-bin/mailman/listinfo/hlcoders
>>>>
>>>>
>>>
>>
>
>
> _______________________________________________
> To unsubscribe, edit your list preferences, or view the list archives,
> please visit:
> https://list.valvesoftware.com/cgi-bin/mailman/listinfo/hlcoders
>
>

_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives, please 
visit:
https://list.valvesoftware.com/cgi-bin/mailman/listinfo/hlcoders

Reply via email to