The HL2 GCFs should already be mounted. You can just use the normal
filesystem read functions to access the sounds themselves.


Kind regards,
*Saul Rennison*


On 6 February 2012 17:12, Flávio Roberto <[email protected]> wrote:

> Oh, that's exactly what I need =)
>
> Thanks, Júlio!!!
>
>
>
> Flávio Roberto
> http://www.dcc.ufmg.br/~flavioro/
>
>
>
> 2012/2/6 Júlio César <[email protected]>
>
>> 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 <[email protected]>
>> 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 <[email protected]>
>> 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 <[email protected]>
>> >> 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 <
>> [email protected]>
>> >>> 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 <[email protected]> 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 <[email protected]>
>> >>>>>>
>> >>>>>> 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, <[email protected]> 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
>>
>>
>
> _______________________________________________
> 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