That would work to, in GDK, using thier controller the problem was you could not change the this, you just had a width...
From the way it is working based on wiki, It would appear that Josh is actually creating 2 controllers of different heights... that switch on the updatecontrol "crouch" option setting...
Given this scheme, it would be very helpful if we had 3 height options...
i.e...
Controller::Controller( flt height, flt radius=0.4f, flt stepheight=0.5f, flt maxslope=45, flt height1=0, flt height2=0 )
void Controller::Update( flt angle, flt move, flt strafe = 0.0f, flt jump = 0.0f, flt maxacceleration = 0.5f, int iterations=1, int heightmode=0 )
Were heightmode can be 0 (height),1 (height1) or 2 (height)...
Then instead of the
int ControllerCrouched( TController controller )
Have this:-
int ControllerHeightMode( TController controller )
Which returns a 0,1 or 2 depending upon which mode is currently active..
I do not mean to say what has been done is not very helpful, but I believe that having 3 possible heights would be workable for any application...
Ideally, having the ability to set the heigth,width and depth for the 3 modes would be perfert for creating realistic FPS character cotrollers..