Files
RP412/MUNGA_L4/Munga_L4.vcxproj
T
CydandClaude Opus 5 91420b5cb2 Flight sticks, HOTAS and pedals, with a setup wizard
Ported from BT411, which needed the same thing for its glass cockpit.

PadRIO reads XInput, which covers Xbox-class pads and nothing else. A
flight stick, a HOTAS throttle, a twist grip, rudder pedals or a wheel
arrive through DirectInput instead, and until now the game could not see
any of them - the only generic-joystick path left was the 1995 single-
device DIJoystick behind L4CONTROLS=DIJOYSTICK, which is untouched here.

L4JOY is the reader: up to four devices as normalized state blocks, hot-
plug re-enumeration on the same ~3 s cadence PadRIO uses to look for a
pad, and a device lost mid-race zeroed rather than left holding whatever
was pressed when it went. XInput-class devices are excluded by VID/PID
against the RawInput paths carrying the "IG_" marker - without that an
Xbox pad arrives through both APIs and every button counts twice.

bindings.txt gains four rows in the grammar it already had, using its own
vocabulary (deadzone/rate) rather than BT411's:

  joydev <slot> [product-name substring]
  joyaxis <src> axis <axis> [invert] [deadzone <d>] [rate <n>]
  joybutton <n> button <addr> [toggle]
  joyhat <n> <up|down|left|right> button <addr>

Slots resolve to a live device every poll, by name substring or ordinal,
so unplugging and replugging does not rewrite anyone's file.

Two things the pod's shape forced that BT411 solved differently:

  Pedals - a signed composite axis that decomposes into the pod's two
  pedals, positive right and negative left. The pod has a pedal each
  side; a twist grip or rudder bar is one signed control, and pressing
  one or the other but never both is exactly what it wants to say. It
  is a channel name like any other, so a pad stick can drive the turn
  too.

  A joyaxis on Throttle with no rate is a real lever and OWNS the
  channel - full travel maps onto the 0..1 the pod runs on, instead of
  nudging the accumulator that a spring-centred pad stick has to use.

RP412JOYCONFIG=1 (joyconfig.bat) runs the capture wizard before the
console screen: it asks the player to move each control, and derives the
sign convention from the DIRECTION of the move. That is the point of it -
a stick that reads positive pushed right and one that reads negative are
equally common, and no amount of documentation gets a player to work out
which they own. It writes only its own section, between marker lines, so
hand-edited keyboard and pad rows survive re-running it.

The wizard also prints every axis at rest before it starts. A driver that
refuses the +-32767 range we ask for reports its own, and an axis then
sits hard over instead of near zero; seeing "X +1.00" on an untouched
stick is the difference between a five-minute fix and a bug report that
says it configured itself. Each capture reports the move it saw for the
same reason.

Verified on the Logitech Extreme 3D on this machine. Enumeration finds
it and excludes the Xbox pad, which still arrives separately through
XInput. Every row shape parses - 7 axes, 2 buttons, 4 hat directions -
and three deliberately malformed rows (a bad axis name, button 99, a
"sideways" hat) are each rejected by line number rather than silently
dropped. The wizard lists the device with its axes at rest reading
X +0.00 Y -0.01 RZ -0.04 SL0 +1.00, waits on the first prompt without
self-triggering, and with a hand on the stick captures X to steering,
Y to pitch, RZ to the pedals and SL0 to the throttle, inverting the ones
that read backwards.

Running the captures through to a written file needs a hand on the
stick, so that part is the machine's to confirm, not this build's.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-05 10:06:30 -05:00

483 lines
22 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{F988B198-A386-40DD-A50E-9A5CE17A92A5}</ProjectGuid>
<RootNamespace>Munga_L4</RootNamespace>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration">
<UseDebugLibraries>true</UseDebugLibraries>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration">
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<PropertyGroup>
<OutDir>..\lib\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<TargetName>Munga_l4</TargetName>
<!-- Legacy DirectX SDK (June 2010) after the Windows SDK so modern headers/libs win;
only d3dx9 and dxerr actually come from it. -->
<IncludePath>$(IncludePath);$(DXSDK_DIR)Include;..\extern\steamworks_sdk_164\sdk\public</IncludePath>
<LibraryPath>$(LibraryPath);$(DXSDK_DIR)Lib\x86</LibraryPath>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<ConformanceMode>false</ConformanceMode>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<!-- The engine's on-disk and on-wire binary formats assume 1-byte packing. -->
<StructMemberAlignment>1Byte</StructMemberAlignment>
<!-- WINDOWS_IGNORE_PACKING_MISMATCH: the modern SDK asserts on /Zp1; the VC9
build always compiled Windows headers at /Zp1, so this keeps those semantics.
_SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS: stdext::hash_map, pending
an unordered_map port. -->
<!-- RP412_STEAM: SteamNetTransport compiles against the vendored Steamworks SDK;
activation stays behind the RP412STEAM env switch at runtime. -->
<PreprocessorDefinitions>WIN32;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;WINDOWS_IGNORE_PACKING_MISMATCH;_SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS;RP412_STEAM;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DisableSpecificWarnings>4996;4244;4267;4305;4018;4138;%(DisableSpecificWarnings)</DisableSpecificWarnings>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'">
<ClCompile>
<Optimization>Disabled</Optimization>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)'=='Release'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\MUNGA\AFFNMTRX.cpp" />
<ClCompile Include="..\MUNGA\ANGLE.cpp" />
<ClCompile Include="..\MUNGA\ANIMTOOL.cpp" />
<ClCompile Include="..\MUNGA\APP.cpp" />
<ClCompile Include="..\MUNGA\APPMGR.cpp" />
<ClCompile Include="..\MUNGA\APPMSG.cpp" />
<ClCompile Include="..\MUNGA\APPTASK.cpp" />
<ClCompile Include="..\MUNGA\AUDCMP.cpp" />
<ClCompile Include="..\MUNGA\AUDENT.cpp" />
<ClCompile Include="..\MUNGA\AUDIO.cpp" />
<ClCompile Include="..\MUNGA\AUDLOC.cpp" />
<ClCompile Include="..\MUNGA\AUDLVL.cpp" />
<ClCompile Include="..\MUNGA\AUDMIDI.cpp" />
<ClCompile Include="..\MUNGA\AUDREND.cpp" />
<ClCompile Include="..\MUNGA\AUDSEQ.cpp" />
<ClCompile Include="..\MUNGA\AUDSRC.cpp" />
<ClCompile Include="..\MUNGA\AUDTIME.cpp" />
<ClCompile Include="..\MUNGA\AUDTOOLS.cpp" />
<ClCompile Include="..\MUNGA\AUDWGT.cpp" />
<ClCompile Include="..\MUNGA\AUDWTHR.cpp" />
<ClCompile Include="..\MUNGA\AVERAGE.cpp" />
<ClCompile Include="..\MUNGA\BNDGBOX.cpp" />
<ClCompile Include="..\MUNGA\BOXCONE.cpp" />
<ClCompile Include="..\MUNGA\BOXDISKS.cpp" />
<ClCompile Include="..\MUNGA\BOXIRAMP.cpp" />
<ClCompile Include="..\MUNGA\BOXLIST.cpp" />
<ClCompile Include="..\MUNGA\BOXRAMP.cpp" />
<ClCompile Include="..\MUNGA\BOXSOLID.cpp" />
<ClCompile Include="..\MUNGA\BOXSORT.cpp" />
<ClCompile Include="..\MUNGA\BOXSPHR.cpp" />
<ClCompile Include="..\MUNGA\BOXTILE.cpp" />
<ClCompile Include="..\MUNGA\BOXTREE.cpp" />
<ClCompile Include="..\MUNGA\BOXWEDGE.cpp" />
<ClCompile Include="..\MUNGA\CAMINST.cpp" />
<ClCompile Include="..\MUNGA\CAMMGR.cpp" />
<ClCompile Include="..\MUNGA\CAMMPPR.cpp" />
<ClCompile Include="..\MUNGA\CAMSHIP.cpp" />
<ClCompile Include="..\MUNGA\CHAIN.cpp" />
<ClCompile Include="..\MUNGA\CMPNNT.cpp" />
<ClCompile Include="..\MUNGA\COLLASST.cpp" />
<ClCompile Include="..\MUNGA\COLLORGN.cpp" />
<ClCompile Include="..\MUNGA\COLOR.cpp" />
<ClCompile Include="..\MUNGA\CONSOLE.cpp" />
<ClCompile Include="..\MUNGA\CONTROLS.cpp" />
<ClCompile Include="..\MUNGA\CSTR.cpp" />
<ClCompile Include="..\MUNGA\CULTURAL.cpp" />
<ClCompile Include="..\MUNGA\DAMAGE.cpp" />
<ClCompile Include="..\MUNGA\DIRECTOR.cpp" />
<ClCompile Include="..\MUNGA\DOOR.cpp" />
<ClCompile Include="..\MUNGA\DOORFRAM.cpp" />
<ClCompile Include="..\MUNGA\DROPZONE.cpp" />
<ClCompile Include="..\MUNGA\ENTITY.cpp" />
<ClCompile Include="..\MUNGA\ENTITY2.cpp" />
<ClCompile Include="..\MUNGA\ENTITYID.cpp" />
<ClCompile Include="..\MUNGA\ENVIRNMT.cpp" />
<ClCompile Include="..\MUNGA\EVENT.cpp" />
<ClCompile Include="..\MUNGA\EVTSTAT.cpp" />
<ClCompile Include="..\MUNGA\EXPLODE.cpp" />
<ClCompile Include="..\MUNGA\EXPTBL.cpp" />
<ClCompile Include="..\MUNGA\EXTNTBOX.cpp" />
<ClCompile Include="..\MUNGA\EYECANDY.cpp" />
<ClCompile Include="..\MUNGA\FILESTRM.cpp" />
<ClCompile Include="..\MUNGA\FILESTUB.cpp" />
<ClCompile Include="..\MUNGA\FILEUTIL.cpp" />
<ClCompile Include="..\MUNGA\GAUGALRM.cpp" />
<ClCompile Include="..\MUNGA\GAUGE.cpp" />
<ClCompile Include="..\MUNGA\GAUGMAP.cpp" />
<ClCompile Include="..\MUNGA\GAUGREND.cpp" />
<ClCompile Include="..\MUNGA\GRAPH2D.cpp" />
<ClCompile Include="..\MUNGA\HASH.cpp" />
<ClCompile Include="..\MUNGA\HOST.cpp" />
<ClCompile Include="..\MUNGA\HOSTMGR.cpp" />
<ClCompile Include="..\MUNGA\ICOM.cpp" />
<ClCompile Include="..\MUNGA\INTEREST.cpp" />
<ClCompile Include="..\MUNGA\INTORGN.cpp" />
<ClCompile Include="..\MUNGA\ITERATOR.cpp" />
<ClCompile Include="..\MUNGA\JMOVER.cpp" />
<ClCompile Include="..\MUNGA\JOINT.cpp" />
<ClCompile Include="..\MUNGA\LAMP.cpp" />
<ClCompile Include="..\MUNGA\LATTICE.cpp" />
<ClCompile Include="..\MUNGA\LINE.cpp" />
<ClCompile Include="..\MUNGA\LINK.cpp" />
<ClCompile Include="..\MUNGA\LINMTRX.cpp" />
<ClCompile Include="..\MUNGA\MAPTOOL.cpp" />
<ClCompile Include="..\MUNGA\MATRIX.cpp" />
<ClCompile Include="..\MUNGA\MEMBLOCK.cpp" />
<ClCompile Include="..\MUNGA\MEMREG.cpp" />
<ClCompile Include="..\MUNGA\MEMSTRM.CPP" />
<ClCompile Include="..\MUNGA\MISSION.cpp" />
<ClCompile Include="..\MUNGA\MODE.cpp" />
<ClCompile Include="..\MUNGA\MODTOOL.cpp" />
<ClCompile Include="..\MUNGA\MOTION.cpp" />
<ClCompile Include="..\MUNGA\MOVER.cpp" />
<ClCompile Include="..\MUNGA\MTRXSTK.cpp" />
<ClCompile Include="..\MUNGA\NAMELIST.cpp" />
<ClCompile Include="..\MUNGA\NETWORK.cpp" />
<ClCompile Include="..\MUNGA\NODE.cpp" />
<ClCompile Include="..\MUNGA\NORMAL.cpp" />
<ClCompile Include="..\MUNGA\NOTATION.cpp" />
<ClCompile Include="..\MUNGA\NTTMGR.cpp" />
<ClCompile Include="..\MUNGA\OBJSTRM.cpp" />
<ClCompile Include="..\MUNGA\ORIGIN.cpp" />
<ClCompile Include="..\MUNGA\PLANE.cpp" />
<ClCompile Include="..\MUNGA\PLAYER.cpp" />
<ClCompile Include="..\MUNGA\PLUG.cpp" />
<ClCompile Include="..\MUNGA\POINT3D.cpp" />
<ClCompile Include="..\MUNGA\RANDOM.cpp" />
<ClCompile Include="..\MUNGA\RAY.cpp" />
<ClCompile Include="..\MUNGA\RECEIVER.cpp" />
<ClCompile Include="..\MUNGA\RECT2D.cpp" />
<ClCompile Include="..\MUNGA\REGISTRY.cpp" />
<ClCompile Include="..\MUNGA\RENDERER.cpp" />
<ClCompile Include="..\MUNGA\RESOURCE.cpp" />
<ClCompile Include="..\MUNGA\RETICLE.cpp" />
<ClCompile Include="..\MUNGA\RNDORGN.cpp" />
<ClCompile Include="..\MUNGA\ROTATION.cpp" />
<ClCompile Include="..\MUNGA\SCALAR.cpp" />
<ClCompile Include="..\MUNGA\SCHAIN.cpp" />
<ClCompile Include="..\MUNGA\SCNROLE.cpp" />
<ClCompile Include="..\MUNGA\SEGMENT.cpp" />
<ClCompile Include="..\MUNGA\SET.cpp" />
<ClCompile Include="..\MUNGA\SFESKT.cpp" />
<ClCompile Include="..\MUNGA\SIMULATE.cpp" />
<ClCompile Include="..\MUNGA\SLOT.cpp" />
<ClCompile Include="..\MUNGA\SOCKET.cpp" />
<ClCompile Include="..\MUNGA\SPHERE.cpp" />
<ClCompile Include="..\MUNGA\SPLINE.cpp" />
<ClCompile Include="..\MUNGA\SPOOLER.cpp" />
<ClCompile Include="..\MUNGA\SRTSKT.cpp" />
<ClCompile Include="..\MUNGA\SUBSYSTM.cpp" />
<ClCompile Include="..\MUNGA\TABLE.cpp" />
<ClCompile Include="..\MUNGA\TEAM.cpp" />
<ClCompile Include="..\MUNGA\TERRAIN.cpp" />
<ClCompile Include="..\MUNGA\TESTALL.cpp" />
<ClCompile Include="..\MUNGA\TIME.cpp" />
<ClCompile Include="..\MUNGA\TIMESTUB.cpp" />
<ClCompile Include="..\MUNGA\TOOL.cpp" />
<ClCompile Include="..\MUNGA\TRACE.cpp" />
<ClCompile Include="..\MUNGA\TRACSTUB.cpp" />
<ClCompile Include="..\MUNGA\TREE.cpp" />
<ClCompile Include="..\MUNGA\UNITVEC.cpp" />
<ClCompile Include="..\MUNGA\UPDATE.cpp" />
<ClCompile Include="..\MUNGA\VCHAIN.cpp" />
<ClCompile Include="..\MUNGA\VDATA.cpp" />
<ClCompile Include="..\MUNGA\VECTOR3D.cpp" />
<ClCompile Include="..\MUNGA\VECTOR4D.cpp" />
<ClCompile Include="..\MUNGA\VERIFY.cpp" />
<ClCompile Include="..\MUNGA\VIDREND.cpp" />
<ClCompile Include="..\MUNGA\WATCHER.cpp" />
<ClCompile Include="..\MUNGA\WRHOUS.cpp" />
<ClCompile Include=".\DXUtils.cpp" />
<ClCompile Include=".\L4APP.cpp" />
<ClCompile Include=".\L4AUDHDW.cpp" />
<ClCompile Include=".\L4AUDIO.cpp" />
<ClCompile Include=".\L4AUDLVL.cpp" />
<ClCompile Include=".\L4AUDRES.cpp" />
<ClCompile Include=".\L4AUDRND.cpp" />
<ClCompile Include=".\L4AUDTUL.cpp" />
<ClCompile Include=".\L4AUDWTR.cpp" />
<ClCompile Include=".\L4CTLTUL.cpp" />
<ClCompile Include=".\L4CTRL.cpp" />
<ClCompile Include=".\L4D3D.cpp" />
<ClCompile Include=".\L4DINPUT.cpp" />
<ClCompile Include=".\L4DPLMEM.cpp" />
<ClCompile Include=".\L4GAUGE.cpp" />
<ClCompile Include=".\L4GAUIMA.cpp" />
<ClCompile Include=".\L4GAUTUL.cpp" />
<ClCompile Include=".\L4GREND.cpp" />
<ClCompile Include=".\L4HOST.cpp" />
<ClCompile Include=".\L4ICOM.cpp" />
<ClCompile Include=".\L4KEYBD.cpp" />
<ClCompile Include=".\L4LAMP.cpp" />
<ClCompile Include=".\L4MOUSE.cpp" />
<ClCompile Include=".\L4MPPR.cpp" />
<ClCompile Include=".\L4NET.CPP" />
<ClCompile Include=".\L4NETTRANSPORT.cpp" />
<ClCompile Include=".\L4STEAMTRANSPORT.cpp" />
<ClCompile Include=".\L4PARTICLES.cpp" />
<ClCompile Include=".\L4MFDVIEW.cpp" />
<!-- Dynamic Lighting mirror: C++/WinRT needs C++17, conformance mode,
and DEFAULT packing (the engine's /Zp1 would break the WinRT ABI).
Its l4keylight.h interface is scalars-only for exactly that reason. -->
<ClCompile Include=".\L4KEYLIGHT.cpp">
<LanguageStandard>stdcpp17</LanguageStandard>
<StructMemberAlignment>Default</StructMemberAlignment>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
<ClCompile Include=".\L4PADBINDINGS.cpp" />
<ClCompile Include=".\L4JOY.cpp" />
<ClCompile Include=".\L4PADRIO.cpp" />
<ClCompile Include=".\L4PCSPAK.cpp" />
<ClCompile Include=".\L4PLASMA.cpp" />
<ClCompile Include=".\L4PLASMASCREEN.cpp" />
<ClCompile Include=".\L4RIO.cpp" />
<ClCompile Include=".\L4SERIAL.cpp" />
<ClCompile Include=".\L4SPLR.cpp" />
<ClCompile Include=".\L4TIME.cpp" />
<ClCompile Include=".\L4TRACE.cpp" />
<ClCompile Include=".\L4TSTALL.cpp" />
<ClCompile Include=".\L4VB16.cpp" />
<ClCompile Include=".\L4VB8.cpp" />
<ClCompile Include=".\L4VIDEO.cpp" />
<ClCompile Include=".\L4VIDPER.cpp" />
<ClCompile Include=".\L4VIDRND.cpp" />
<ClCompile Include=".\L4VIDTUL.cpp" />
<ClCompile Include=".\L4WRHOUS.cpp" />
<ClCompile Include=".\temp.cpp" />
<ClCompile Include=".\WTPresets.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\MUNGA\AFFNMTRX.h" />
<ClInclude Include="..\MUNGA\ANGLE.h" />
<ClInclude Include="..\MUNGA\APP.h" />
<ClInclude Include="..\MUNGA\APPMGR.h" />
<ClInclude Include="..\MUNGA\APPMSG.h" />
<ClInclude Include="..\MUNGA\APPTASK.h" />
<ClInclude Include="..\MUNGA\AUDCMP.h" />
<ClInclude Include="..\MUNGA\AUDENT.h" />
<ClInclude Include="..\MUNGA\AUDIO.h" />
<ClInclude Include="..\MUNGA\AUDLOC.h" />
<ClInclude Include="..\MUNGA\AUDLVL.h" />
<ClInclude Include="..\MUNGA\AUDMIDI.h" />
<ClInclude Include="..\MUNGA\AUDREND.h" />
<ClInclude Include="..\MUNGA\AUDSEQ.h" />
<ClInclude Include="..\MUNGA\AUDSRC.h" />
<ClInclude Include="..\MUNGA\AUDTIME.h" />
<ClInclude Include="..\MUNGA\AUDTOOLS.h" />
<ClInclude Include="..\MUNGA\AUDWGT.h" />
<ClInclude Include="..\MUNGA\AUDWTHR.h" />
<ClInclude Include="..\MUNGA\AVERAGE.h" />
<ClInclude Include="..\MUNGA\BNDGBOX.h" />
<ClInclude Include="..\MUNGA\BOXLIST.h" />
<ClInclude Include="..\MUNGA\BOXSOLID.h" />
<ClInclude Include="..\MUNGA\BOXTREE.h" />
<ClInclude Include="..\MUNGA\CAMINST.h" />
<ClInclude Include="..\MUNGA\CAMMGR.h" />
<ClInclude Include="..\MUNGA\CAMMPPR.h" />
<ClInclude Include="..\MUNGA\CAMSHIP.h" />
<ClInclude Include="..\MUNGA\CHAIN.h" />
<ClInclude Include="..\MUNGA\CMPNNT.h" />
<ClInclude Include="..\MUNGA\COLLASST.h" />
<ClInclude Include="..\MUNGA\COLLORGN.h" />
<ClInclude Include="..\MUNGA\COLOR.h" />
<ClInclude Include="..\MUNGA\CONFIG.h" />
<ClInclude Include="..\MUNGA\CONSOLE.h" />
<ClInclude Include="..\MUNGA\CONTROLS.h" />
<ClInclude Include="..\MUNGA\CSTR.h" />
<ClInclude Include="..\MUNGA\cultural.h" />
<ClInclude Include="..\MUNGA\DAMAGE.h" />
<ClInclude Include="..\MUNGA\DEBUG1ON.h" />
<ClInclude Include="..\MUNGA\DEBUGOFF.h" />
<ClInclude Include="..\MUNGA\DIRECTOR.h" />
<ClInclude Include="..\MUNGA\DOOR.h" />
<ClInclude Include="..\MUNGA\DOORFRAM.h" />
<ClInclude Include="..\MUNGA\DROPZONE.h" />
<ClInclude Include="..\MUNGA\ENTITY.h" />
<ClInclude Include="..\MUNGA\ENTITY2.h" />
<ClInclude Include="..\MUNGA\ENTITY3.h" />
<ClInclude Include="..\MUNGA\ENTITYID.h" />
<ClInclude Include="..\MUNGA\ENVIRNMT.h" />
<ClInclude Include="..\MUNGA\EVENT.h" />
<ClInclude Include="..\MUNGA\EVTSTAT.h" />
<ClInclude Include="..\MUNGA\EXPLODE.h" />
<ClInclude Include="..\MUNGA\EXPTBL.h" />
<ClInclude Include="..\MUNGA\EXTNTBOX.h" />
<ClInclude Include="..\MUNGA\EYECANDY.h" />
<ClInclude Include="..\MUNGA\FILESTRM.h" />
<ClInclude Include="..\MUNGA\FILEUTIL.h" />
<ClInclude Include="..\MUNGA\GAUGALRM.h" />
<ClInclude Include="..\MUNGA\GAUGE.h" />
<ClInclude Include="..\MUNGA\GAUGMAP.h" />
<ClInclude Include="..\MUNGA\GAUGREND.h" />
<ClInclude Include="..\MUNGA\GRAPH2D.h" />
<ClInclude Include="..\MUNGA\HASH.h" />
<ClInclude Include="..\MUNGA\HOST.h" />
<ClInclude Include="..\MUNGA\HOSTID.h" />
<ClInclude Include="..\MUNGA\HOSTMGR.h" />
<ClInclude Include="..\MUNGA\ICOM.h" />
<ClInclude Include="..\MUNGA\INTEREST.h" />
<ClInclude Include="..\MUNGA\INTORGN.h" />
<ClInclude Include="..\MUNGA\ITERATOR.h" />
<ClInclude Include="..\MUNGA\JMOVER.h" />
<ClInclude Include="..\MUNGA\JOINT.h" />
<ClInclude Include="..\MUNGA\LAMP.h" />
<ClInclude Include="..\MUNGA\LATTICE.h" />
<ClInclude Include="..\MUNGA\LINE.h" />
<ClInclude Include="..\MUNGA\LINK.h" />
<ClInclude Include="..\MUNGA\LINMTRX.h" />
<ClInclude Include="..\MUNGA\MATRIX.h" />
<ClInclude Include="..\MUNGA\MEMBLOCK.h" />
<ClInclude Include="..\MUNGA\MEMREG.h" />
<ClInclude Include="..\MUNGA\MEMSTRM.H" />
<ClInclude Include="..\MUNGA\MISSION.h" />
<ClInclude Include="..\MUNGA\MODE.h" />
<ClInclude Include="..\MUNGA\MOTION.h" />
<ClInclude Include="..\MUNGA\MOVER.h" />
<ClInclude Include="..\MUNGA\MTRXSTK.h" />
<ClInclude Include="..\MUNGA\MUNGA.h" />
<ClInclude Include="..\MUNGA\NAMELIST.h" />
<ClInclude Include="..\MUNGA\NETWORK.h" />
<ClInclude Include="..\MUNGA\NODE.h" />
<ClInclude Include="..\MUNGA\NORMAL.h" />
<ClInclude Include="..\MUNGA\NOTATION.h" />
<ClInclude Include="..\MUNGA\NTTMGR.h" />
<ClInclude Include="..\MUNGA\OBJSTRM.h" />
<ClInclude Include="..\MUNGA\ORIGIN.h" />
<ClInclude Include="..\MUNGA\PLANE.h" />
<ClInclude Include="..\MUNGA\PLAYER.h" />
<ClInclude Include="..\MUNGA\PLUG.h" />
<ClInclude Include="..\MUNGA\POINT3D.h" />
<ClInclude Include="..\MUNGA\RANDOM.h" />
<ClInclude Include="..\MUNGA\RAY.h" />
<ClInclude Include="..\MUNGA\RECEIVER.h" />
<ClInclude Include="..\MUNGA\RECT2D.h" />
<ClInclude Include="..\MUNGA\REGISTRY.h" />
<ClInclude Include="..\MUNGA\RENDERER.h" />
<ClInclude Include="..\MUNGA\RESOURCE.h" />
<ClInclude Include="..\MUNGA\RESVER.h" />
<ClInclude Include="..\MUNGA\RETICLE.h" />
<ClInclude Include="..\MUNGA\RNDORGN.h" />
<ClInclude Include="..\MUNGA\ROTATION.h" />
<ClInclude Include="..\MUNGA\SCALAR.h" />
<ClInclude Include="..\MUNGA\SCHAIN.h" />
<ClInclude Include="..\MUNGA\SCNROLE.h" />
<ClInclude Include="..\MUNGA\SEGMENT.h" />
<ClInclude Include="..\MUNGA\SET.h" />
<ClInclude Include="..\MUNGA\SFESKT.h" />
<ClInclude Include="..\MUNGA\SIMULATE.h" />
<ClInclude Include="..\MUNGA\SLOT.h" />
<ClInclude Include="..\MUNGA\SOCKET.h" />
<ClInclude Include="..\MUNGA\SPHERE.h" />
<ClInclude Include="..\MUNGA\SPLINE.h" />
<ClInclude Include="..\MUNGA\SPOOLER.h" />
<ClInclude Include="..\MUNGA\SRTSKT.h" />
<ClInclude Include="..\MUNGA\STATE.h" />
<ClInclude Include="..\MUNGA\STYLE.H" />
<ClInclude Include="..\MUNGA\SUBSYSTM.h" />
<ClInclude Include="..\MUNGA\TABLE.h" />
<ClInclude Include="..\MUNGA\TEAM.h" />
<ClInclude Include="..\MUNGA\TERRAIN.h" />
<ClInclude Include="..\MUNGA\TIME.h" />
<ClInclude Include="..\MUNGA\TOOL.h" />
<ClInclude Include="..\MUNGA\TRACE.h" />
<ClInclude Include="..\MUNGA\TREE.h" />
<ClInclude Include="..\MUNGA\UNITVEC.h" />
<ClInclude Include="..\MUNGA\UPDATE.h" />
<ClInclude Include="..\MUNGA\VCHAIN.h" />
<ClInclude Include="..\MUNGA\VDATA.h" />
<ClInclude Include="..\MUNGA\VECTOR2D.h" />
<ClInclude Include="..\MUNGA\VECTOR3D.h" />
<ClInclude Include="..\MUNGA\VECTOR4D.h" />
<ClInclude Include="..\MUNGA\VERIFY.h" />
<ClInclude Include="..\MUNGA\VIDREND.h" />
<ClInclude Include="..\MUNGA\WATCHER.h" />
<ClInclude Include="..\MUNGA\WRHOUS.h" />
<ClInclude Include=".\DXUtils.h" />
<ClInclude Include=".\L4APP.H" />
<ClInclude Include=".\L4AUDHDW.h" />
<ClInclude Include=".\L4AUDIO.h" />
<ClInclude Include=".\L4AUDLVL.h" />
<ClInclude Include=".\L4AUDRES.h" />
<ClInclude Include=".\L4AUDRND.h" />
<ClInclude Include=".\L4AUDWTR.h" />
<ClInclude Include=".\L4CTRL.h" />
<ClInclude Include=".\L4D3D.h" />
<ClInclude Include=".\L4DINPUT.h" />
<ClInclude Include=".\L4GAUGE.h" />
<ClInclude Include=".\L4GAUIMA.h" />
<ClInclude Include=".\L4GREND.h" />
<ClInclude Include=".\L4HOST.H" />
<ClInclude Include=".\L4ICOM.h" />
<ClInclude Include=".\L4JOYSTK.h" />
<ClInclude Include=".\L4KEYBD.h" />
<ClInclude Include=".\L4LAMP.h" />
<ClInclude Include=".\L4MOUSE.h" />
<ClInclude Include=".\L4MPPR.h" />
<ClInclude Include=".\L4NET.H" />
<ClInclude Include=".\L4NETTRANSPORT.h" />
<ClInclude Include=".\L4KEYLIGHT.h" />
<ClInclude Include=".\L4PADBINDINGS.h" />
<ClInclude Include=".\L4JOY.h" />
<ClInclude Include=".\L4STEAMTRANSPORT.h" />
<ClInclude Include=".\L4PARTICLES.h" />
<ClInclude Include=".\L4MFDVIEW.h" />
<ClInclude Include=".\L4PADRIO.h" />
<ClInclude Include=".\L4PCSPAK.h" />
<ClInclude Include=".\L4PLASMA.h" />
<ClInclude Include=".\L4PLASMASCREEN.h" />
<ClInclude Include=".\L4RIO.h" />
<ClInclude Include=".\L4SERIAL.H" />
<ClInclude Include=".\L4SPLR.h" />
<ClInclude Include=".\L4TIME.h" />
<ClInclude Include=".\L4TOOL.h" />
<ClInclude Include=".\L4VB16.h" />
<ClInclude Include=".\L4VB8.h" />
<ClInclude Include=".\L4VIDEO.h" />
<ClInclude Include=".\L4VIDPER.h" />
<ClInclude Include=".\L4VIDRND.h" />
<ClInclude Include=".\L4WRHOUS.h" />
<ClInclude Include=".\MUNGAL4.H" />
<ClInclude Include=".\sndfile.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
</Project>