I'm currently rewriting the entire options dialogue of Ep2 in order to 
be able to add my own options. One of the fields I want to add is the 
number of decals. So I made a call to cvar->FindVar("r_decals") in my 
optionspanel.cpp. Since I'll be needing the ConVar multiple times, I 
assigned it to a ConVar pointer via

ConVar *cvDecals = (ConVar*) cvar->FindVar("r_decals");

The same is done in c_baseplayer.cpp for example, i.e. ConVar *pVar = 
(ConVar *)cvar->FindVar( "snd_soundmixer" ). The code compiles 
absolutely fine. However, if I start the mod and go to the console, it 
says "ConVarRef cl_forwardspeed doesn't point to an existing ConVar". 
Trying to open my panel I get a "unknown command modoptions". When I 
want to start a singleplayer game I get the DT_Basegrenade error 
discussed here multiple times, complaining about missing decoders. And, 
to top it all off, when I close the game via exit or quit through the 
console or the quit dialogue, the game crashes with this listed as 
faulty module: Fault Module Name:    client.dll_unloaded.

The strange thing is though that if I don't assign the return value of 
FindVar() and simply do a
  
Q_strcpy( m_cDecals, cvar->FindVar("r_decals")->GetString() );
m_pDecals->SetText( m_cDecals );

everything works fine and the value of r_decals gets printed to the 
appropriate text field. However, it's not possible to change the value 
of the ConVar. For example, if I do a 
cvar->FindVar("r_decals")->SetValue(1024) before I copy the string to 
m_cDecals, the value will still be 2048 as defined in my config.cf.

This is all very confusing since I can't find the striking difference 
between the example in c_baseplayer I mentioned and my panel.

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

Reply via email to