@vet as far as i understood it, the player should shoot to the position of the crosshair (which is the mousecursor). you do a trace to a position somewhere behind that cursor and if it hits a wall it's not the same (in screenspace) position as the bullet hole = you would target another position than the one you're aiming with the cursor. that was the way how he did it before af far as i understood it.


okayy..., maybe it was a bit confusing to put the define in there^^

the hole stuff with defines works like this:
before the compiler does any code checking or validation, it first looks for the statement which start with #. #include, #define, #ifdef, etc.

i guess you know what #include does. it just puts the content of the file you name to the position in the code.

then there is another group: the defines and some handy controls for them
the #define statement - guess it - defines the name that comes after it. pretty similar to defining a variable (you can also put something behind the name and it gets replaced everytime it appears in the sourcecode, just look it up in the manual if you want to know more about it)

the other ones are similar to a normal if-else instruction.

Code:
#ifdef NAME - did the name got defined with #define before?
   CODECODECODE
#else - guess it
   OTHERCODECODECODE
#endif - like a closing bracket



so you can choose which lines of code get compiled and which do not. in my example you can comment the define of USE_DECALS out to not use decals. then the other function, other variables and another function call get compiled. the running program has no idea about the other lines of code, which were not chosen.


okay, the explanation got a bit longer, but i hope you got the idea.. and remember: the manual is your friend. it's a pretty good manual imo and you can nearly always get the answer, even when it's a little bit hidden sometimes.
If you've got another question about it just ask it and i try to answer..maybe a little bit shorter^^°