1fda671b9a
I did this because I wanted to fly around maps using a Spaceball 4000FLX, or any other 6DOF controller. These fixes help it work. Various fixes to joystick support: - joyaxiscallback() used strtol() to check to see if the supplied string was an integer, then didn't assign the parsed integer to the cvar. - Wrong multiplier for left/turnleft values. - Delete `axismap[]` from J_JoystickAxis(). It was causing problems, and smells like it was trying to do what the cvars joyadvaxis[xyzruv] are doing now. - Fix compiler error by adding case statements for: SDL_SENSOR_ACCEL_L SDL_SENSOR_ACCEL_R SDL_SENSOR_GYRO_L SDL_SENSOR_GYRO_R New cvar: "joyonly". "Joystick" axes are typically return-to-center affairs; their deflection values are therefore reported as -MAX - MAX, with zero in the center. "Game controllers" are similar, but also often have analog left and right "triggers" which are reported as 0 - MAX, with zero at one end (fully released to fully depressed). Unfortunately, SDL will try its darndest to make a joystick look like a "game controller." It does this by reinterpreting certain of the axes to report the range 0 - MAX, as if they were triggers. This is not a thing to do with 6DOF controllers, where all axes are return-to-center. While it may be remotely possible to put together an SDL2 controller mapping that reports -MAX - MAX on all axes, for me it was simpler to hack on FTEQW. Coupled with that is FTEQW's giving preference to "game controllers," i.e. if SDL_IsGameController() returns true, FTEQW will treat it as one. "joyonly" is a boolean cvar. If true, FTE will ignore "game controllers" and treat everything as a joystick. The default is false. "joyonly" must be set at startup to be effective, when the controllers are being enumerated by SDL. |
||
---|---|---|
.. | ||
client | ||
common | ||
d3d | ||
dotnet2003 | ||
dotnet2005 | ||
dotnet2008 | ||
dotnet2010 | ||
droid | ||
ftequake | ||
gas2masm | ||
gl | ||
http | ||
libs | ||
nacl | ||
npfte | ||
partcfgs | ||
qclib | ||
server | ||
setup | ||
shaders | ||
sw | ||
vk | ||
vulkan | ||
web | ||
xdk | ||
.cproject | ||
.project | ||
BSDmakefile | ||
LICENSE | ||
makeconfig.sh | ||
Makefile | ||
README.MSVC |
This code compiles against libjpeg, libpng, zlib, dx7, libogg and libvorbis. You can find the main MSVC 6 workspace in the ftequake directory. You will need to build the gas2masm project's debug build first. After that, you will have a choice of FTE builds. If you are running without libraries, you can pick the mingldebug build. For sw only builds, select the debug/release options. For dedicated builds, choose the logical one. The MDebug/MRelease builds are the merged binaries. important: msvc 6.0 standard install doesn't come with "ml.exe" which is needed to build fte, you can get it from either service pack 5 or 6. or grab it from somewhere i dunno zlib: libs/zconf.h libs/zlib.h libs/zlib.lib You will need zlib if you wish to build a version of FTE with png/zip/pk3 support. If you don't have it, you can hunt out the line '#define AVAIL_ZLIB' in bothdefs.h and disable it. Ogg Vorbis: libs/ogg/* libs/vorbis/* At the time of writing, ogg vorbis support is not fully functional and is #ifdefed out. You will not need these libraries. Lack of these files can be indicated by removing any '#define AVAIL_OGGVORBIS' line found in bothdefs.h (if they exist) lib jpeg: libs/jpeg.lib libs/jpeglib.h libs/jmorecfg.h libs/jconfig.h libs/jerror.h These files are optional and not strictly needed for anything other than screenshots and loading Quake3 textures. Hunt out and kill '#define AVAIL_JPEGLIB' from bothdefs.h to disable the requirement. URL pending. libpng: libs/libpng.lib libs/png.h libs/pngconf.h These files are for support of png textures and screenshots. Hunt out and kill '#define AVAIL_PNGLIB' from bothdefs.h to disable the requirement. URL pending. DirectX 7 SDK: libs/dxsdk7/include/* libs/dxsdk7/lib/* These are used for the d3d renderer. They are only benefitial in this way. This feature is normally enabled via an ifdef in the project file. An '#define NODIRECTX' in bothdefs.h will disable all requirements of dx. It is normally only used in the merged binaries. Without this define, it will expect to find DX5 headers and libraries in your compilers default directories. You can obtain an uptodate copy of directx from Microsoft's Website.