]> github.com/historicalsource and other repositories - theoperative.git/commitdiff
Initial import. master
authorSimon Morgan <sjm@sjm.io>
Sat, 20 Jun 2015 14:10:22 +0000 (15:10 +0100)
committerSimon Morgan <sjm@sjm.io>
Sat, 20 Jun 2015 14:10:22 +0000 (15:10 +0100)
998 files changed:
LT2/lithshared/butemgr/arange.h [new file with mode: 0644]
LT2/lithshared/butemgr/avector.h [new file with mode: 0644]
LT2/lithshared/butemgr/butemgr.h [new file with mode: 0644]
LT2/lithshared/butemgr/vssver.scc [new file with mode: 0644]
LT2/lithshared/cryptmgr/blowfish.h [new file with mode: 0644]
LT2/lithshared/cryptmgr/cryptmgr.h [new file with mode: 0644]
LT2/lithshared/cryptmgr/vssver.scc [new file with mode: 0644]
LT2/lithshared/gamespy/cengine/goaceng.h [new file with mode: 0644]
LT2/lithshared/gamespy/cengine/vssver.scc [new file with mode: 0644]
LT2/lithshared/gamespy/gamespyclientmgr/GameSpyPlayer.h [new file with mode: 0644]
LT2/lithshared/gamespy/gamespyclientmgr/GameSpyServer.h [new file with mode: 0644]
LT2/lithshared/gamespy/gamespyclientmgr/vssver.scc [new file with mode: 0644]
LT2/lithshared/incs/GameSpyClientMgr.h [new file with mode: 0644]
LT2/lithshared/incs/GameSpyMgr.h [new file with mode: 0644]
LT2/lithshared/incs/WonClientMgr.h [new file with mode: 0644]
LT2/lithshared/incs/WonServerMgr.h [new file with mode: 0644]
LT2/lithshared/incs/WonShared.h [new file with mode: 0644]
LT2/lithshared/incs/butemgr.h [new file with mode: 0644]
LT2/lithshared/incs/controlfilemgr.h [new file with mode: 0644]
LT2/lithshared/incs/cryptmgr.h [new file with mode: 0644]
LT2/lithshared/incs/dibmgr.h [new file with mode: 0644]
LT2/lithshared/incs/dprintf.h [new file with mode: 0644]
LT2/lithshared/incs/genregmgr.h [new file with mode: 0644]
LT2/lithshared/incs/lith.h [new file with mode: 0644]
LT2/lithshared/incs/lithfontdefs.h [new file with mode: 0644]
LT2/lithshared/incs/lithfontmgr.h [new file with mode: 0644]
LT2/lithshared/incs/lithtmpl.h [new file with mode: 0644]
LT2/lithshared/incs/ltguimgr.h [new file with mode: 0644]
LT2/lithshared/incs/mfcstub.h [new file with mode: 0644]
LT2/lithshared/incs/redmgr.h [new file with mode: 0644]
LT2/lithshared/incs/regmgr.h [new file with mode: 0644]
LT2/lithshared/incs/rezmgr.h [new file with mode: 0644]
LT2/lithshared/incs/rezmgrfull.h [new file with mode: 0644]
LT2/lithshared/incs/stdlith.h [new file with mode: 0644]
LT2/lithshared/incs/vssver.scc [new file with mode: 0644]
LT2/lithshared/incs/zlib.h [new file with mode: 0644]
LT2/lithshared/incs/ztools.h [new file with mode: 0644]
LT2/lithshared/libs/Debug/ButeMgrNoMFC.lib [new file with mode: 0644]
LT2/lithshared/libs/Debug/CryptMgr.lib [new file with mode: 0644]
LT2/lithshared/libs/Debug/GameSpyClientMgr.lib [new file with mode: 0644]
LT2/lithshared/libs/Debug/GameSpyMgr.lib [new file with mode: 0644]
LT2/lithshared/libs/Debug/LithFontMgr_LT2.lib [new file with mode: 0644]
LT2/lithshared/libs/Debug/MFCStub.lib [new file with mode: 0644]
LT2/lithshared/libs/Debug/RegMgr.lib [new file with mode: 0644]
LT2/lithshared/libs/Debug/StdLith.lib [new file with mode: 0644]
LT2/lithshared/libs/Debug/ltguimgr_LT2.lib [new file with mode: 0644]
LT2/lithshared/libs/Debug/vssver.scc [new file with mode: 0644]
LT2/lithshared/libs/Release/ButeMgrNoMFC.lib [new file with mode: 0644]
LT2/lithshared/libs/Release/CryptMgr.lib [new file with mode: 0644]
LT2/lithshared/libs/Release/GameSpyClientMgr.lib [new file with mode: 0644]
LT2/lithshared/libs/Release/GameSpyMgr.lib [new file with mode: 0644]
LT2/lithshared/libs/Release/LithFontMgr_LT2.lib [new file with mode: 0644]
LT2/lithshared/libs/Release/MFCStub.lib [new file with mode: 0644]
LT2/lithshared/libs/Release/RegMgr.lib [new file with mode: 0644]
LT2/lithshared/libs/Release/StdLith.lib [new file with mode: 0644]
LT2/lithshared/libs/Release/ltguimgr_LT2.lib [new file with mode: 0644]
LT2/lithshared/libs/Release/vssver.scc [new file with mode: 0644]
LT2/lithshared/lith/basehash.h [new file with mode: 0644]
LT2/lithshared/lith/baselist.h [new file with mode: 0644]
LT2/lithshared/lith/baselistcounter.h [new file with mode: 0644]
LT2/lithshared/lith/dprintf.h [new file with mode: 0644]
LT2/lithshared/lith/lithtypes.h [new file with mode: 0644]
LT2/lithshared/lith/virtlist.h [new file with mode: 0644]
LT2/lithshared/lith/vssver.scc [new file with mode: 0644]
LT2/lithshared/lithfontmgr/lithbitmapfont.h [new file with mode: 0644]
LT2/lithshared/lithfontmgr/lithcursor.h [new file with mode: 0644]
LT2/lithshared/lithfontmgr/lithfont.h [new file with mode: 0644]
LT2/lithshared/lithfontmgr/lithfontdefs.h [new file with mode: 0644]
LT2/lithshared/lithfontmgr/lithfontmgr.h [new file with mode: 0644]
LT2/lithshared/lithfontmgr/lithsystemfont.h [new file with mode: 0644]
LT2/lithshared/lithfontmgr/vssver.scc [new file with mode: 0644]
LT2/lithshared/ltguimgr/LTGUIBitmapCtrl.h [new file with mode: 0644]
LT2/lithshared/ltguimgr/LTGUIScrollBarCtrl.h [new file with mode: 0644]
LT2/lithshared/ltguimgr/ltguicolumntextctrl.h [new file with mode: 0644]
LT2/lithshared/ltguimgr/ltguicommandhandler.h [new file with mode: 0644]
LT2/lithshared/ltguimgr/ltguictrl.h [new file with mode: 0644]
LT2/lithshared/ltguimgr/ltguicyclectrl.h [new file with mode: 0644]
LT2/lithshared/ltguimgr/ltguieditctrl.h [new file with mode: 0644]
LT2/lithshared/ltguimgr/ltguifadecolorctrl.h [new file with mode: 0644]
LT2/lithshared/ltguimgr/ltguifadeitemctrl.h [new file with mode: 0644]
LT2/lithshared/ltguimgr/ltguifont.h [new file with mode: 0644]
LT2/lithshared/ltguimgr/ltguilistctrl.h [new file with mode: 0644]
LT2/lithshared/ltguimgr/ltguimessagebox.h [new file with mode: 0644]
LT2/lithshared/ltguimgr/ltguionoffctrl.h [new file with mode: 0644]
LT2/lithshared/ltguimgr/ltguisliderctrl.h [new file with mode: 0644]
LT2/lithshared/ltguimgr/ltguitextitemctrl.h [new file with mode: 0644]
LT2/lithshared/ltguimgr/vssver.scc [new file with mode: 0644]
LT2/lithshared/mfcstub/mfcs_misc.h [new file with mode: 0644]
LT2/lithshared/mfcstub/mfcs_point.h [new file with mode: 0644]
LT2/lithshared/mfcstub/mfcs_rect.h [new file with mode: 0644]
LT2/lithshared/mfcstub/mfcs_string.h [new file with mode: 0644]
LT2/lithshared/mfcstub/mfcs_types.h [new file with mode: 0644]
LT2/lithshared/mfcstub/vssver.scc [new file with mode: 0644]
LT2/lithshared/stdlith/abstractio.h [new file with mode: 0644]
LT2/lithshared/stdlith/compressedio.h [new file with mode: 0644]
LT2/lithshared/stdlith/copy_lists.h [new file with mode: 0644]
LT2/lithshared/stdlith/dynarray.h [new file with mode: 0644]
LT2/lithshared/stdlith/fastlinklist.h [new file with mode: 0644]
LT2/lithshared/stdlith/fileio.h [new file with mode: 0644]
LT2/lithshared/stdlith/genhash.h [new file with mode: 0644]
LT2/lithshared/stdlith/genlist.h [new file with mode: 0644]
LT2/lithshared/stdlith/glink.h [new file with mode: 0644]
LT2/lithshared/stdlith/goodlinklist.h [new file with mode: 0644]
LT2/lithshared/stdlith/helpers.h [new file with mode: 0644]
LT2/lithshared/stdlith/l_allocator.h [new file with mode: 0644]
LT2/lithshared/stdlith/linklist.h [new file with mode: 0644]
LT2/lithshared/stdlith/lithexception.h [new file with mode: 0644]
LT2/lithshared/stdlith/memory.h [new file with mode: 0644]
LT2/lithshared/stdlith/memoryio.h [new file with mode: 0644]
LT2/lithshared/stdlith/morect.h [new file with mode: 0644]
LT2/lithshared/stdlith/multilinklist.h [new file with mode: 0644]
LT2/lithshared/stdlith/object_bank.h [new file with mode: 0644]
LT2/lithshared/stdlith/stdlith.h [new file with mode: 0644]
LT2/lithshared/stdlith/stdlithdefs.h [new file with mode: 0644]
LT2/lithshared/stdlith/stringholder.h [new file with mode: 0644]
LT2/lithshared/stdlith/struct_bank.h [new file with mode: 0644]
LT2/lithshared/stdlith/vssver.scc [new file with mode: 0644]
LT2/sdk/inc/clientheaders.h [new file with mode: 0644]
LT2/sdk/inc/compat/basedefs_de.h [new file with mode: 0644]
LT2/sdk/inc/compat/basetypes_de.h [new file with mode: 0644]
LT2/sdk/inc/compat/client_de.h [new file with mode: 0644]
LT2/sdk/inc/compat/common_de.h [new file with mode: 0644]
LT2/sdk/inc/compat/cpp_aggregate_de.h [new file with mode: 0644]
LT2/sdk/inc/compat/cpp_client_de.h [new file with mode: 0644]
LT2/sdk/inc/compat/cpp_clientshell_de.h [new file with mode: 0644]
LT2/sdk/inc/compat/cpp_engineobjects_de.h [new file with mode: 0644]
LT2/sdk/inc/compat/cpp_server_de.h [new file with mode: 0644]
LT2/sdk/inc/compat/cpp_servershell_de.h [new file with mode: 0644]
LT2/sdk/inc/compat/custom_draw_lt.h [new file with mode: 0644]
LT2/sdk/inc/compat/de_client.h [new file with mode: 0644]
LT2/sdk/inc/compat/dlink.h [new file with mode: 0644]
LT2/sdk/inc/compat/dstream.h [new file with mode: 0644]
LT2/sdk/inc/compat/dvector.h [new file with mode: 0644]
LT2/sdk/inc/compat/light_anim_lt.h [new file with mode: 0644]
LT2/sdk/inc/compat/lmessage.h [new file with mode: 0644]
LT2/sdk/inc/compat/lt_bezier_curve.h [new file with mode: 0644]
LT2/sdk/inc/compat/lt_pre_light_anim.h [new file with mode: 0644]
LT2/sdk/inc/compat/lt_pvalue.h [new file with mode: 0644]
LT2/sdk/inc/compat/lt_tex_mod.h [new file with mode: 0644]
LT2/sdk/inc/compat/ltcompat.h [new file with mode: 0644]
LT2/sdk/inc/compat/math_lt.h [new file with mode: 0644]
LT2/sdk/inc/compat/modellt.h [new file with mode: 0644]
LT2/sdk/inc/compat/physics_lt.h [new file with mode: 0644]
LT2/sdk/inc/compat/server_de.h [new file with mode: 0644]
LT2/sdk/inc/compat/serverobj_de.h [new file with mode: 0644]
LT2/sdk/inc/compat/transformlt.h [new file with mode: 0644]
LT2/sdk/inc/compat/vssver.scc [new file with mode: 0644]
LT2/sdk/inc/iaggregate.h [new file with mode: 0644]
LT2/sdk/inc/iclientshell.h [new file with mode: 0644]
LT2/sdk/inc/iltclient.h [new file with mode: 0644]
LT2/sdk/inc/iltcommon.h [new file with mode: 0644]
LT2/sdk/inc/iltcsbase.h [new file with mode: 0644]
LT2/sdk/inc/iltcursor.h [new file with mode: 0644]
LT2/sdk/inc/iltcustomdraw.h [new file with mode: 0644]
LT2/sdk/inc/iltdirectmusic.h [new file with mode: 0644]
LT2/sdk/inc/iltlightanim.h [new file with mode: 0644]
LT2/sdk/inc/iltmath.h [new file with mode: 0644]
LT2/sdk/inc/iltmessage.h [new file with mode: 0644]
LT2/sdk/inc/iltmodel.h [new file with mode: 0644]
LT2/sdk/inc/iltphysics.h [new file with mode: 0644]
LT2/sdk/inc/iltprelight.h [new file with mode: 0644]
LT2/sdk/inc/iltserver.h [new file with mode: 0644]
LT2/sdk/inc/iltsoundmgr.h [new file with mode: 0644]
LT2/sdk/inc/iltspritecontrol.h [new file with mode: 0644]
LT2/sdk/inc/iltstream.h [new file with mode: 0644]
LT2/sdk/inc/ilttexmod.h [new file with mode: 0644]
LT2/sdk/inc/ilttransform.h [new file with mode: 0644]
LT2/sdk/inc/iltvideomgr.h [new file with mode: 0644]
LT2/sdk/inc/iobjectplugin.h [new file with mode: 0644]
LT2/sdk/inc/iservershell.h [new file with mode: 0644]
LT2/sdk/inc/lithtech.h [new file with mode: 0644]
LT2/sdk/inc/ltanimtracker.h [new file with mode: 0644]
LT2/sdk/inc/ltassert.h [new file with mode: 0644]
LT2/sdk/inc/ltbasedefs.h [new file with mode: 0644]
LT2/sdk/inc/ltbasetypes.h [new file with mode: 0644]
LT2/sdk/inc/ltbbox.h [new file with mode: 0644]
LT2/sdk/inc/ltbeziercurve.h [new file with mode: 0644]
LT2/sdk/inc/ltcodes.h [new file with mode: 0644]
LT2/sdk/inc/ltengineobjects.cpp [new file with mode: 0644]
LT2/sdk/inc/ltengineobjects.h [new file with mode: 0644]
LT2/sdk/inc/ltlink.h [new file with mode: 0644]
LT2/sdk/inc/ltmatrix.h [new file with mode: 0644]
LT2/sdk/inc/ltplane.h [new file with mode: 0644]
LT2/sdk/inc/ltpvalue.h [new file with mode: 0644]
LT2/sdk/inc/ltquatbase.cpp [new file with mode: 0644]
LT2/sdk/inc/ltquatbase.h [new file with mode: 0644]
LT2/sdk/inc/ltrect.h [new file with mode: 0644]
LT2/sdk/inc/ltrotation.h [new file with mode: 0644]
LT2/sdk/inc/ltserverobj.h [new file with mode: 0644]
LT2/sdk/inc/ltvector.h [new file with mode: 0644]
LT2/sdk/inc/server_interface.h [new file with mode: 0644]
LT2/sdk/inc/serverheaders.h [new file with mode: 0644]
LT2/sdk/inc/vssver.scc [new file with mode: 0644]
LT2/sdk/win/lib/bink/binkw32.dll [new file with mode: 0644]
LT2/sdk/win/lib/bink/vssver.scc [new file with mode: 0644]
LT2/sdk/win/lib/miles/Autopan.flt [new file with mode: 0644]
LT2/sdk/win/lib/miles/Bandpass.flt [new file with mode: 0644]
LT2/sdk/win/lib/miles/Capture.flt [new file with mode: 0644]
LT2/sdk/win/lib/miles/Chorus.flt [new file with mode: 0644]
LT2/sdk/win/lib/miles/Compress.flt [new file with mode: 0644]
LT2/sdk/win/lib/miles/Flange.flt [new file with mode: 0644]
LT2/sdk/win/lib/miles/Highpass.flt [new file with mode: 0644]
LT2/sdk/win/lib/miles/Laginter.flt [new file with mode: 0644]
LT2/sdk/win/lib/miles/Lowpass.flt [new file with mode: 0644]
LT2/sdk/win/lib/miles/MP3DEC.ASI [new file with mode: 0644]
LT2/sdk/win/lib/miles/MSSA3D.M3D [new file with mode: 0644]
LT2/sdk/win/lib/miles/MSSDOLBY.M3D [new file with mode: 0644]
LT2/sdk/win/lib/miles/MSSDS3DH.M3D [new file with mode: 0644]
LT2/sdk/win/lib/miles/MSSDS3DS.M3D [new file with mode: 0644]
LT2/sdk/win/lib/miles/MSSEAX.M3D [new file with mode: 0644]
LT2/sdk/win/lib/miles/MSSFAST.M3D [new file with mode: 0644]
LT2/sdk/win/lib/miles/MSSRSX.M3D [new file with mode: 0644]
LT2/sdk/win/lib/miles/Mdelay.flt [new file with mode: 0644]
LT2/sdk/win/lib/miles/Mssa3d2.m3d [new file with mode: 0644]
LT2/sdk/win/lib/miles/Mssdx7sh.m3d [new file with mode: 0644]
LT2/sdk/win/lib/miles/Mssdx7sl.m3d [new file with mode: 0644]
LT2/sdk/win/lib/miles/Mssdx7sn.m3d [new file with mode: 0644]
LT2/sdk/win/lib/miles/Msseax2.m3d [new file with mode: 0644]
LT2/sdk/win/lib/miles/Parmeq.flt [new file with mode: 0644]
LT2/sdk/win/lib/miles/Phaser.flt [new file with mode: 0644]
LT2/sdk/win/lib/miles/Reson.flt [new file with mode: 0644]
LT2/sdk/win/lib/miles/Reverb1.flt [new file with mode: 0644]
LT2/sdk/win/lib/miles/Reverb2.flt [new file with mode: 0644]
LT2/sdk/win/lib/miles/Reverb3.flt [new file with mode: 0644]
LT2/sdk/win/lib/miles/Ringmod.flt [new file with mode: 0644]
LT2/sdk/win/lib/miles/Sdelay.flt [new file with mode: 0644]
LT2/sdk/win/lib/miles/Shelfeq.flt [new file with mode: 0644]
LT2/sdk/win/lib/miles/mss32.dll [new file with mode: 0644]
LT2/sdk/win/lib/miles/mssb16.tsk [new file with mode: 0644]
LT2/sdk/win/lib/miles/vssver.scc [new file with mode: 0644]
NOLF/ClientRes/BlankTag.bmp [new file with mode: 0644]
NOLF/ClientRes/ClientRes.dsp [new file with mode: 0644]
NOLF/ClientRes/ClientRes.h [new file with mode: 0644]
NOLF/ClientRes/ClientRes.plg [new file with mode: 0644]
NOLF/ClientRes/ClientRes.rc [new file with mode: 0644]
NOLF/ClientRes/arrow.cur [new file with mode: 0644]
NOLF/ClientRes/bitmap1.bmp [new file with mode: 0644]
NOLF/ClientRes/credits.txt [new file with mode: 0644]
NOLF/ClientRes/intro.txt [new file with mode: 0644]
NOLF/ClientRes/main.cpp [new file with mode: 0644]
NOLF/ClientRes/resource.h [new file with mode: 0644]
NOLF/ClientRes/samplecredits.txt [new file with mode: 0644]
NOLF/ClientRes/vssver.scc [new file with mode: 0644]
NOLF/ClientShellDLL/BaseFolder.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/BaseFolder.h [new file with mode: 0644]
NOLF/ClientShellDLL/BaseLineSystemFX.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/BaseLineSystemFX.h [new file with mode: 0644]
NOLF/ClientShellDLL/BaseMenu.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/BaseMenu.h [new file with mode: 0644]
NOLF/ClientShellDLL/BaseParticleSystemFX.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/BaseParticleSystemFX.h [new file with mode: 0644]
NOLF/ClientShellDLL/BasePolyDrawFX.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/BasePolyDrawFX.h [new file with mode: 0644]
NOLF/ClientShellDLL/BaseScaleFX.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/BaseScaleFX.h [new file with mode: 0644]
NOLF/ClientShellDLL/BaseSelectionFolder.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/BaseSelectionFolder.h [new file with mode: 0644]
NOLF/ClientShellDLL/BeamFX.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/BeamFX.h [new file with mode: 0644]
NOLF/ClientShellDLL/BitmapCtrl.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/BitmapCtrl.h [new file with mode: 0644]
NOLF/ClientShellDLL/BodyFX.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/BodyFX.h [new file with mode: 0644]
NOLF/ClientShellDLL/BulletTrailFX.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/BulletTrailFX.h [new file with mode: 0644]
NOLF/ClientShellDLL/CMoveMgr.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/CMoveMgr.h [new file with mode: 0644]
NOLF/ClientShellDLL/CameraFX.h [new file with mode: 0644]
NOLF/ClientShellDLL/CameraOffsetMgr.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/CameraOffsetMgr.h [new file with mode: 0644]
NOLF/ClientShellDLL/CharacterFX.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/CharacterFX.h [new file with mode: 0644]
NOLF/ClientShellDLL/ClientButeMgr.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/ClientButeMgr.h [new file with mode: 0644]
NOLF/ClientShellDLL/ClientInfoMgr.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/ClientInfoMgr.h [new file with mode: 0644]
NOLF/ClientShellDLL/ClientRes.h [new file with mode: 0644]
NOLF/ClientShellDLL/ClientShellDLL.dsp [new file with mode: 0644]
NOLF/ClientShellDLL/ClientSoundMgr.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/ClientSoundMgr.h [new file with mode: 0644]
NOLF/ClientShellDLL/ClientUtilities.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/ClientUtilities.h [new file with mode: 0644]
NOLF/ClientShellDLL/ClientWeaponUtils.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/ClientWeaponUtils.h [new file with mode: 0644]
NOLF/ClientShellDLL/Credits.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/Credits.h [new file with mode: 0644]
NOLF/ClientShellDLL/CycleCtrl.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/CycleCtrl.h [new file with mode: 0644]
NOLF/ClientShellDLL/DamageFXMgr.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/DamageFXMgr.h [new file with mode: 0644]
NOLF/ClientShellDLL/DeathFX.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/DeathFX.h [new file with mode: 0644]
NOLF/ClientShellDLL/DebrisFX.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/DebrisFX.h [new file with mode: 0644]
NOLF/ClientShellDLL/DynamicLightFX.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/DynamicLightFX.h [new file with mode: 0644]
NOLF/ClientShellDLL/ExplosionFX.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/ExplosionFX.h [new file with mode: 0644]
NOLF/ClientShellDLL/FastList.h [new file with mode: 0644]
NOLF/ClientShellDLL/FireFX.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/FireFX.h [new file with mode: 0644]
NOLF/ClientShellDLL/FlashLight.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/FlashLight.h [new file with mode: 0644]
NOLF/ClientShellDLL/FolderAdvDisplay.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/FolderAdvDisplay.h [new file with mode: 0644]
NOLF/ClientShellDLL/FolderAudio.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/FolderAudio.h [new file with mode: 0644]
NOLF/ClientShellDLL/FolderAwards.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/FolderAwards.h [new file with mode: 0644]
NOLF/ClientShellDLL/FolderBriefing.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/FolderBriefing.h [new file with mode: 0644]
NOLF/ClientShellDLL/FolderCommands.h [new file with mode: 0644]
NOLF/ClientShellDLL/FolderControls.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/FolderControls.h [new file with mode: 0644]
NOLF/ClientShellDLL/FolderCrosshair.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/FolderCrosshair.h [new file with mode: 0644]
NOLF/ClientShellDLL/FolderCustomControls.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/FolderCustomControls.h [new file with mode: 0644]
NOLF/ClientShellDLL/FolderCustomLevel.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/FolderCustomLevel.h [new file with mode: 0644]
NOLF/ClientShellDLL/FolderDifficulty.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/FolderDifficulty.h [new file with mode: 0644]
NOLF/ClientShellDLL/FolderDisplay.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/FolderDisplay.h [new file with mode: 0644]
NOLF/ClientShellDLL/FolderEffects.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/FolderEffects.h [new file with mode: 0644]
NOLF/ClientShellDLL/FolderEscape.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/FolderEscape.h [new file with mode: 0644]
NOLF/ClientShellDLL/FolderFavoriteLevels.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/FolderFavoriteLevels.h [new file with mode: 0644]
NOLF/ClientShellDLL/FolderGadgets.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/FolderGadgets.h [new file with mode: 0644]
NOLF/ClientShellDLL/FolderGallery.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/FolderGallery.h [new file with mode: 0644]
NOLF/ClientShellDLL/FolderGame.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/FolderGame.h [new file with mode: 0644]
NOLF/ClientShellDLL/FolderGear.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/FolderGear.h [new file with mode: 0644]
NOLF/ClientShellDLL/FolderHost.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/FolderHost.h [new file with mode: 0644]
NOLF/ClientShellDLL/FolderHostLevels.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/FolderHostLevels.h [new file with mode: 0644]
NOLF/ClientShellDLL/FolderHostOptions.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/FolderHostOptions.h [new file with mode: 0644]
NOLF/ClientShellDLL/FolderIntel.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/FolderIntel.h [new file with mode: 0644]
NOLF/ClientShellDLL/FolderInventory.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/FolderInventory.h [new file with mode: 0644]
NOLF/ClientShellDLL/FolderJoin.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/FolderJoin.h [new file with mode: 0644]
NOLF/ClientShellDLL/FolderJoinLAN.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/FolderJoinLAN.h [new file with mode: 0644]
NOLF/ClientShellDLL/FolderJoystick.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/FolderJoystick.h [new file with mode: 0644]
NOLF/ClientShellDLL/FolderKeyboard.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/FolderKeyboard.h [new file with mode: 0644]
NOLF/ClientShellDLL/FolderLoad.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/FolderLoad.h [new file with mode: 0644]
NOLF/ClientShellDLL/FolderMain.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/FolderMain.h [new file with mode: 0644]
NOLF/ClientShellDLL/FolderMgr.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/FolderMgr.h [new file with mode: 0644]
NOLF/ClientShellDLL/FolderMission.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/FolderMission.h [new file with mode: 0644]
NOLF/ClientShellDLL/FolderMods.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/FolderMods.h [new file with mode: 0644]
NOLF/ClientShellDLL/FolderMouse.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/FolderMouse.h [new file with mode: 0644]
NOLF/ClientShellDLL/FolderMulti.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/FolderMulti.h [new file with mode: 0644]
NOLF/ClientShellDLL/FolderMultiBriefing.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/FolderMultiBriefing.h [new file with mode: 0644]
NOLF/ClientShellDLL/FolderMultiSummary.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/FolderMultiSummary.h [new file with mode: 0644]
NOLF/ClientShellDLL/FolderNew.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/FolderNew.h [new file with mode: 0644]
NOLF/ClientShellDLL/FolderObjectives.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/FolderObjectives.h [new file with mode: 0644]
NOLF/ClientShellDLL/FolderOptions.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/FolderOptions.h [new file with mode: 0644]
NOLF/ClientShellDLL/FolderPerformance.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/FolderPerformance.h [new file with mode: 0644]
NOLF/ClientShellDLL/FolderPlayer.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/FolderPlayer.h [new file with mode: 0644]
NOLF/ClientShellDLL/FolderSave.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/FolderSave.h [new file with mode: 0644]
NOLF/ClientShellDLL/FolderSingle.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/FolderSingle.h [new file with mode: 0644]
NOLF/ClientShellDLL/FolderStats.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/FolderStats.h [new file with mode: 0644]
NOLF/ClientShellDLL/FolderSummary.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/FolderSummary.h [new file with mode: 0644]
NOLF/ClientShellDLL/FolderTexture.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/FolderTexture.h [new file with mode: 0644]
NOLF/ClientShellDLL/FolderViewInventory.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/FolderViewInventory.h [new file with mode: 0644]
NOLF/ClientShellDLL/FolderWeaponControls.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/FolderWeaponControls.h [new file with mode: 0644]
NOLF/ClientShellDLL/FolderWeapons.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/FolderWeapons.h [new file with mode: 0644]
NOLF/ClientShellDLL/GameButes.h [new file with mode: 0644]
NOLF/ClientShellDLL/GameClientShell.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/GameClientShell.h [new file with mode: 0644]
NOLF/ClientShellDLL/GameSettings.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/GameSettings.h [new file with mode: 0644]
NOLF/ClientShellDLL/GibFX.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/GibFX.h [new file with mode: 0644]
NOLF/ClientShellDLL/GlobalClientMgr.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/GlobalClientMgr.h [new file with mode: 0644]
NOLF/ClientShellDLL/GroupCtrl.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/GroupCtrl.h [new file with mode: 0644]
NOLF/ClientShellDLL/HeadBobMgr.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/HeadBobMgr.h [new file with mode: 0644]
NOLF/ClientShellDLL/IntelItemMgr.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/IntelItemMgr.h [new file with mode: 0644]
NOLF/ClientShellDLL/InterfaceMeter.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/InterfaceMeter.h [new file with mode: 0644]
NOLF/ClientShellDLL/InterfaceMgr.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/InterfaceMgr.h [new file with mode: 0644]
NOLF/ClientShellDLL/InterfaceResMgr.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/InterfaceResMgr.h [new file with mode: 0644]
NOLF/ClientShellDLL/InterfaceSurfMgr.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/InterfaceSurfMgr.h [new file with mode: 0644]
NOLF/ClientShellDLL/InterfaceTimer.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/InterfaceTimer.h [new file with mode: 0644]
NOLF/ClientShellDLL/IpMgr.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/IpMgr.h [new file with mode: 0644]
NOLF/ClientShellDLL/JoystickAxis.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/JoystickAxis.h [new file with mode: 0644]
NOLF/ClientShellDLL/KeyFixes.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/KeyFixes.h [new file with mode: 0644]
NOLF/ClientShellDLL/LTDecisionWnd.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/LTDecisionWnd.h [new file with mode: 0644]
NOLF/ClientShellDLL/LTDialogueWnd.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/LTDialogueWnd.h [new file with mode: 0644]
NOLF/ClientShellDLL/LTMaskedWnd.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/LTMaskedWnd.h [new file with mode: 0644]
NOLF/ClientShellDLL/LTMenuWnd.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/LTMenuWnd.h [new file with mode: 0644]
NOLF/ClientShellDLL/LTMultiWnd.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/LTMultiWnd.h [new file with mode: 0644]
NOLF/ClientShellDLL/LTTextWnd.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/LTTextWnd.h [new file with mode: 0644]
NOLF/ClientShellDLL/LTWndMessages.h [new file with mode: 0644]
NOLF/ClientShellDLL/LaserBeam.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/LaserBeam.h [new file with mode: 0644]
NOLF/ClientShellDLL/LaserTriggerFX.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/LaserTriggerFX.h [new file with mode: 0644]
NOLF/ClientShellDLL/LayoutMgr.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/LayoutMgr.h [new file with mode: 0644]
NOLF/ClientShellDLL/LeashFX.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/LeashFX.h [new file with mode: 0644]
NOLF/ClientShellDLL/LensFlareFX.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/LensFlareFX.h [new file with mode: 0644]
NOLF/ClientShellDLL/LightFX.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/LightFX.h [new file with mode: 0644]
NOLF/ClientShellDLL/LightScaleMgr.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/LightScaleMgr.h [new file with mode: 0644]
NOLF/ClientShellDLL/LightningFX.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/LightningFX.h [new file with mode: 0644]
NOLF/ClientShellDLL/LineSystemFX.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/LineSystemFX.h [new file with mode: 0644]
NOLF/ClientShellDLL/ListCtrl.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/ListCtrl.h [new file with mode: 0644]
NOLF/ClientShellDLL/LoadingScreen.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/LoadingScreen.h [new file with mode: 0644]
NOLF/ClientShellDLL/LtWnd.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/LtWnd.h [new file with mode: 0644]
NOLF/ClientShellDLL/MarkSFX.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/MarkSFX.h [new file with mode: 0644]
NOLF/ClientShellDLL/MessageBox.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/MessageBox.h [new file with mode: 0644]
NOLF/ClientShellDLL/MessageBoxCtrl.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/MessageBoxCtrl.h [new file with mode: 0644]
NOLF/ClientShellDLL/MessageMgr.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/MessageMgr.h [new file with mode: 0644]
NOLF/ClientShellDLL/MineFX.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/MineFX.h [new file with mode: 0644]
NOLF/ClientShellDLL/MissionText.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/MissionText.h [new file with mode: 0644]
NOLF/ClientShellDLL/MouseMgr.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/MouseMgr.h [new file with mode: 0644]
NOLF/ClientShellDLL/MultiplayerMenu.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/MultiplayerMenu.h [new file with mode: 0644]
NOLF/ClientShellDLL/Music.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/Music.h [new file with mode: 0644]
NOLF/ClientShellDLL/MuzzleFlashFX.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/MuzzleFlashFX.h [new file with mode: 0644]
NOLF/ClientShellDLL/MuzzleFlashParticleFX.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/MuzzleFlashParticleFX.h [new file with mode: 0644]
NOLF/ClientShellDLL/NetInfo.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/NetInfo.h [new file with mode: 0644]
NOLF/ClientShellDLL/NodeController.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/NodeController.h [new file with mode: 0644]
NOLF/ClientShellDLL/NodeLinesFX.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/NodeLinesFX.h [new file with mode: 0644]
NOLF/ClientShellDLL/ObjEditMgr.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/ObjEditMgr.h [new file with mode: 0644]
NOLF/ClientShellDLL/ObjSpriteFX.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/ObjSpriteFX.h [new file with mode: 0644]
NOLF/ClientShellDLL/Overlays.h [new file with mode: 0644]
NOLF/ClientShellDLL/PVFXMgr.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/PVFXMgr.h [new file with mode: 0644]
NOLF/ClientShellDLL/ParticleExplosionFX.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/ParticleExplosionFX.h [new file with mode: 0644]
NOLF/ClientShellDLL/ParticleShowerFX.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/ParticleShowerFX.h [new file with mode: 0644]
NOLF/ClientShellDLL/ParticleSystemFX.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/ParticleSystemFX.h [new file with mode: 0644]
NOLF/ClientShellDLL/ParticleTrailFX.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/ParticleTrailFX.h [new file with mode: 0644]
NOLF/ClientShellDLL/ParticleTrailSegmentFX.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/ParticleTrailSegmentFX.h [new file with mode: 0644]
NOLF/ClientShellDLL/PickupItemFX.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/PickupItemFX.h [new file with mode: 0644]
NOLF/ClientShellDLL/PlayerCamera.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/PlayerCamera.h [new file with mode: 0644]
NOLF/ClientShellDLL/PlayerData.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/PlayerData.h [new file with mode: 0644]
NOLF/ClientShellDLL/PlayerSoundFX.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/PlayerSoundFX.h [new file with mode: 0644]
NOLF/ClientShellDLL/PlayerStats.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/PlayerStats.h [new file with mode: 0644]
NOLF/ClientShellDLL/PlayerVehicleFX.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/PlayerVehicleFX.h [new file with mode: 0644]
NOLF/ClientShellDLL/PolyDebrisFX.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/PolyDebrisFX.h [new file with mode: 0644]
NOLF/ClientShellDLL/PolyGridFX.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/PolyGridFX.h [new file with mode: 0644]
NOLF/ClientShellDLL/PolyLineFX.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/PolyLineFX.h [new file with mode: 0644]
NOLF/ClientShellDLL/PopupText.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/PopupText.h [new file with mode: 0644]
NOLF/ClientShellDLL/ProjectileFX.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/ProjectileFX.h [new file with mode: 0644]
NOLF/ClientShellDLL/RandomSparksFX.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/RandomSparksFX.h [new file with mode: 0644]
NOLF/ClientShellDLL/SFXMgr.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/SFXMgr.h [new file with mode: 0644]
NOLF/ClientShellDLL/ScreenTintMgr.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/ScreenTintMgr.h [new file with mode: 0644]
NOLF/ClientShellDLL/SearchLightFX.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/SearchLightFX.h [new file with mode: 0644]
NOLF/ClientShellDLL/SharedDefs.h [new file with mode: 0644]
NOLF/ClientShellDLL/ShellCasingFX.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/ShellCasingFX.h [new file with mode: 0644]
NOLF/ClientShellDLL/SliderCtrl.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/SliderCtrl.h [new file with mode: 0644]
NOLF/ClientShellDLL/SmokeFX.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/SmokeFX.h [new file with mode: 0644]
NOLF/ClientShellDLL/SoundFX.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/SoundFX.h [new file with mode: 0644]
NOLF/ClientShellDLL/Sparam.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/Sparam.h [new file with mode: 0644]
NOLF/ClientShellDLL/SpecialFX.h [new file with mode: 0644]
NOLF/ClientShellDLL/SpecialFXList.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/SpecialFXList.h [new file with mode: 0644]
NOLF/ClientShellDLL/StaticTextCtrl.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/StaticTextCtrl.h [new file with mode: 0644]
NOLF/ClientShellDLL/SteamFX.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/SteamFX.h [new file with mode: 0644]
NOLF/ClientShellDLL/Subtitle.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/Subtitle.h [new file with mode: 0644]
NOLF/ClientShellDLL/SystemDependant.h [new file with mode: 0644]
NOLF/ClientShellDLL/TracerFX.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/TracerFX.h [new file with mode: 0644]
NOLF/ClientShellDLL/VKDefs.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/VKDefs.h [new file with mode: 0644]
NOLF/ClientShellDLL/VarTrack.h [new file with mode: 0644]
NOLF/ClientShellDLL/VehicleMgr.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/VehicleMgr.h [new file with mode: 0644]
NOLF/ClientShellDLL/VideoFX.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/VideoFX.h [new file with mode: 0644]
NOLF/ClientShellDLL/VolumeBrushFX.h [new file with mode: 0644]
NOLF/ClientShellDLL/WeaponChooser.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/WeaponChooser.h [new file with mode: 0644]
NOLF/ClientShellDLL/WeaponFX.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/WeaponFX.h [new file with mode: 0644]
NOLF/ClientShellDLL/WeaponModel.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/WeaponModel.h [new file with mode: 0644]
NOLF/ClientShellDLL/WeaponStringDefs.h [new file with mode: 0644]
NOLF/ClientShellDLL/WeatherFX.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/WeatherFX.h [new file with mode: 0644]
NOLF/ClientShellDLL/WinUtil.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/WinUtil.h [new file with mode: 0644]
NOLF/ClientShellDLL/client_physics.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/client_physics.h [new file with mode: 0644]
NOLF/ClientShellDLL/plasma.h [new file with mode: 0644]
NOLF/ClientShellDLL/resource.h [new file with mode: 0644]
NOLF/ClientShellDLL/sprinklesfx.cpp [new file with mode: 0644]
NOLF/ClientShellDLL/sprinklesfx.h [new file with mode: 0644]
NOLF/ClientShellDLL/stack.h [new file with mode: 0644]
NOLF/ClientShellDLL/vssver.scc [new file with mode: 0644]
NOLF/NOLF.dsw [new file with mode: 0644]
NOLF/NOLF.ncb [new file with mode: 0644]
NOLF/NOLF.opt [new file with mode: 0644]
NOLF/ObjectDLL/AI.cpp [new file with mode: 0644]
NOLF/ObjectDLL/AI.h [new file with mode: 0644]
NOLF/ObjectDLL/AIAnimal.cpp [new file with mode: 0644]
NOLF/ObjectDLL/AIAnimal.h [new file with mode: 0644]
NOLF/ObjectDLL/AIAnimalState.cpp [new file with mode: 0644]
NOLF/ObjectDLL/AIAnimalState.h [new file with mode: 0644]
NOLF/ObjectDLL/AIAnimalStrategy.cpp [new file with mode: 0644]
NOLF/ObjectDLL/AIAnimalStrategy.h [new file with mode: 0644]
NOLF/ObjectDLL/AIBrain.cpp [new file with mode: 0644]
NOLF/ObjectDLL/AIBrain.h [new file with mode: 0644]
NOLF/ObjectDLL/AIButeMgr.cpp [new file with mode: 0644]
NOLF/ObjectDLL/AIButeMgr.h [new file with mode: 0644]
NOLF/ObjectDLL/AICmd.cpp [new file with mode: 0644]
NOLF/ObjectDLL/AICmd.h [new file with mode: 0644]
NOLF/ObjectDLL/AICmdMgr.cpp [new file with mode: 0644]
NOLF/ObjectDLL/AICmdMgr.h [new file with mode: 0644]
NOLF/ObjectDLL/AIDog.cpp [new file with mode: 0644]
NOLF/ObjectDLL/AIDog.h [new file with mode: 0644]
NOLF/ObjectDLL/AIDogReactions.cpp [new file with mode: 0644]
NOLF/ObjectDLL/AIDogReactions.h [new file with mode: 0644]
NOLF/ObjectDLL/AIGoal.cpp [new file with mode: 0644]
NOLF/ObjectDLL/AIGoal.h [new file with mode: 0644]
NOLF/ObjectDLL/AIGoalMgr.cpp [new file with mode: 0644]
NOLF/ObjectDLL/AIGoalMgr.h [new file with mode: 0644]
NOLF/ObjectDLL/AIGroup.cpp [new file with mode: 0644]
NOLF/ObjectDLL/AIGroup.h [new file with mode: 0644]
NOLF/ObjectDLL/AIHelicopter.cpp [new file with mode: 0644]
NOLF/ObjectDLL/AIHelicopter.h [new file with mode: 0644]
NOLF/ObjectDLL/AIHuman.cpp [new file with mode: 0644]
NOLF/ObjectDLL/AIHuman.h [new file with mode: 0644]
NOLF/ObjectDLL/AIHumanReactions.cpp [new file with mode: 0644]
NOLF/ObjectDLL/AIHumanReactions.h [new file with mode: 0644]
NOLF/ObjectDLL/AIHumanState.cpp [new file with mode: 0644]
NOLF/ObjectDLL/AIHumanState.h [new file with mode: 0644]
NOLF/ObjectDLL/AIHumanStrategy.cpp [new file with mode: 0644]
NOLF/ObjectDLL/AIHumanStrategy.h [new file with mode: 0644]
NOLF/ObjectDLL/AIHumans.cpp [new file with mode: 0644]
NOLF/ObjectDLL/AIHumans.h [new file with mode: 0644]
NOLF/ObjectDLL/AIMovement.cpp [new file with mode: 0644]
NOLF/ObjectDLL/AIMovement.h [new file with mode: 0644]
NOLF/ObjectDLL/AINode.cpp [new file with mode: 0644]
NOLF/ObjectDLL/AINode.h [new file with mode: 0644]
NOLF/ObjectDLL/AINodeMgr.cpp [new file with mode: 0644]
NOLF/ObjectDLL/AINodeMgr.h [new file with mode: 0644]
NOLF/ObjectDLL/AINudge.cpp [new file with mode: 0644]
NOLF/ObjectDLL/AINudge.h [new file with mode: 0644]
NOLF/ObjectDLL/AIPath.cpp [new file with mode: 0644]
NOLF/ObjectDLL/AIPath.h [new file with mode: 0644]
NOLF/ObjectDLL/AIPathMgr.cpp [new file with mode: 0644]
NOLF/ObjectDLL/AIPathMgr.h [new file with mode: 0644]
NOLF/ObjectDLL/AIPoodle.cpp [new file with mode: 0644]
NOLF/ObjectDLL/AIPoodle.h [new file with mode: 0644]
NOLF/ObjectDLL/AIReactions.cpp [new file with mode: 0644]
NOLF/ObjectDLL/AIReactions.h [new file with mode: 0644]
NOLF/ObjectDLL/AIRegion.cpp [new file with mode: 0644]
NOLF/ObjectDLL/AIRegion.h [new file with mode: 0644]
NOLF/ObjectDLL/AIRegionMgr.cpp [new file with mode: 0644]
NOLF/ObjectDLL/AIRegionMgr.h [new file with mode: 0644]
NOLF/ObjectDLL/AISense.cpp [new file with mode: 0644]
NOLF/ObjectDLL/AISense.h [new file with mode: 0644]
NOLF/ObjectDLL/AIShark.cpp [new file with mode: 0644]
NOLF/ObjectDLL/AIShark.h [new file with mode: 0644]
NOLF/ObjectDLL/AISounds.cpp [new file with mode: 0644]
NOLF/ObjectDLL/AISounds.h [new file with mode: 0644]
NOLF/ObjectDLL/AIState.cpp [new file with mode: 0644]
NOLF/ObjectDLL/AIState.h [new file with mode: 0644]
NOLF/ObjectDLL/AISteering.cpp [new file with mode: 0644]
NOLF/ObjectDLL/AISteering.h [new file with mode: 0644]
NOLF/ObjectDLL/AITarget.cpp [new file with mode: 0644]
NOLF/ObjectDLL/AITarget.h [new file with mode: 0644]
NOLF/ObjectDLL/AIUtils.cpp [new file with mode: 0644]
NOLF/ObjectDLL/AIUtils.h [new file with mode: 0644]
NOLF/ObjectDLL/AIVehicle.cpp [new file with mode: 0644]
NOLF/ObjectDLL/AIVehicle.h [new file with mode: 0644]
NOLF/ObjectDLL/AIVehicleState.cpp [new file with mode: 0644]
NOLF/ObjectDLL/AIVehicleState.h [new file with mode: 0644]
NOLF/ObjectDLL/AIVehicleStrategy.cpp [new file with mode: 0644]
NOLF/ObjectDLL/AIVehicleStrategy.h [new file with mode: 0644]
NOLF/ObjectDLL/AIVolume.cpp [new file with mode: 0644]
NOLF/ObjectDLL/AIVolume.h [new file with mode: 0644]
NOLF/ObjectDLL/AIVolumeMgr.cpp [new file with mode: 0644]
NOLF/ObjectDLL/AIVolumeMgr.h [new file with mode: 0644]
NOLF/ObjectDLL/AIVolumeNeighbor.cpp [new file with mode: 0644]
NOLF/ObjectDLL/AIVolumeNeighbor.h [new file with mode: 0644]
NOLF/ObjectDLL/Alarm.cpp [new file with mode: 0644]
NOLF/ObjectDLL/Alarm.h [new file with mode: 0644]
NOLF/ObjectDLL/AmmoBox.cpp [new file with mode: 0644]
NOLF/ObjectDLL/AmmoBox.h [new file with mode: 0644]
NOLF/ObjectDLL/AnimationLex.h [new file with mode: 0644]
NOLF/ObjectDLL/AnimationLex.l [new file with mode: 0644]
NOLF/ObjectDLL/AnimationMgr.cpp [new file with mode: 0644]
NOLF/ObjectDLL/AnimationMgr.h [new file with mode: 0644]
NOLF/ObjectDLL/AnimationMgrHuman.cpp [new file with mode: 0644]
NOLF/ObjectDLL/AnimationMgrHuman.h [new file with mode: 0644]
NOLF/ObjectDLL/AnimationParse.h [new file with mode: 0644]
NOLF/ObjectDLL/AnimationParse.y [new file with mode: 0644]
NOLF/ObjectDLL/AnimationParser.cpp [new file with mode: 0644]
NOLF/ObjectDLL/AnimationParser.h [new file with mode: 0644]
NOLF/ObjectDLL/AnimationStd.h [new file with mode: 0644]
NOLF/ObjectDLL/AnimatorAIAnimal.cpp [new file with mode: 0644]
NOLF/ObjectDLL/AnimatorAIAnimal.h [new file with mode: 0644]
NOLF/ObjectDLL/AnimatorAIVehicle.cpp [new file with mode: 0644]
NOLF/ObjectDLL/AnimatorAIVehicle.h [new file with mode: 0644]
NOLF/ObjectDLL/AnimatorPlayer.cpp [new file with mode: 0644]
NOLF/ObjectDLL/AnimatorPlayer.h [new file with mode: 0644]
NOLF/ObjectDLL/Attachments.cpp [new file with mode: 0644]
NOLF/ObjectDLL/Attachments.h [new file with mode: 0644]
NOLF/ObjectDLL/Body.cpp [new file with mode: 0644]
NOLF/ObjectDLL/Body.h [new file with mode: 0644]
NOLF/ObjectDLL/BodyState.cpp [new file with mode: 0644]
NOLF/ObjectDLL/BodyState.h [new file with mode: 0644]
NOLF/ObjectDLL/Breakable.cpp [new file with mode: 0644]
NOLF/ObjectDLL/Breakable.h [new file with mode: 0644]
NOLF/ObjectDLL/CDynArray.h [new file with mode: 0644]
NOLF/ObjectDLL/CVarTrack.h [new file with mode: 0644]
NOLF/ObjectDLL/CachedFiles.cpp [new file with mode: 0644]
NOLF/ObjectDLL/CachedFiles.h [new file with mode: 0644]
NOLF/ObjectDLL/Camera.cpp [new file with mode: 0644]
NOLF/ObjectDLL/Camera.h [new file with mode: 0644]
NOLF/ObjectDLL/Character.cpp [new file with mode: 0644]
NOLF/ObjectDLL/Character.h [new file with mode: 0644]
NOLF/ObjectDLL/CharacterHitBox.cpp [new file with mode: 0644]
NOLF/ObjectDLL/CharacterHitBox.h [new file with mode: 0644]
NOLF/ObjectDLL/CharacterMgr.cpp [new file with mode: 0644]
NOLF/ObjectDLL/CharacterMgr.h [new file with mode: 0644]
NOLF/ObjectDLL/CinematicTrigger.cpp [new file with mode: 0644]
NOLF/ObjectDLL/CinematicTrigger.h [new file with mode: 0644]
NOLF/ObjectDLL/ClientFX.cpp [new file with mode: 0644]
NOLF/ObjectDLL/ClientFX.h [new file with mode: 0644]
NOLF/ObjectDLL/ClientLightFX.cpp [new file with mode: 0644]
NOLF/ObjectDLL/ClientLightFX.h [new file with mode: 0644]
NOLF/ObjectDLL/ClientSFX.cpp [new file with mode: 0644]
NOLF/ObjectDLL/ClientSFX.h [new file with mode: 0644]
NOLF/ObjectDLL/ClientWeaponSFX.cpp [new file with mode: 0644]
NOLF/ObjectDLL/ClientWeaponSFX.h [new file with mode: 0644]
NOLF/ObjectDLL/CommandMgr.cpp [new file with mode: 0644]
NOLF/ObjectDLL/CommandMgr.h [new file with mode: 0644]
NOLF/ObjectDLL/Controller.cpp [new file with mode: 0644]
NOLF/ObjectDLL/Controller.h [new file with mode: 0644]
NOLF/ObjectDLL/DeathScene.h [new file with mode: 0644]
NOLF/ObjectDLL/DebrisFuncs.cpp [new file with mode: 0644]
NOLF/ObjectDLL/DebrisFuncs.h [new file with mode: 0644]
NOLF/ObjectDLL/Destructible.cpp [new file with mode: 0644]
NOLF/ObjectDLL/Destructible.h [new file with mode: 0644]
NOLF/ObjectDLL/DestructibleModel.cpp [new file with mode: 0644]
NOLF/ObjectDLL/DestructibleModel.h [new file with mode: 0644]
NOLF/ObjectDLL/DialogueWindow.cpp [new file with mode: 0644]
NOLF/ObjectDLL/DialogueWindow.h [new file with mode: 0644]
NOLF/ObjectDLL/DisplayMeter.cpp [new file with mode: 0644]
NOLF/ObjectDLL/DisplayMeter.h [new file with mode: 0644]
NOLF/ObjectDLL/DisplayTimer.cpp [new file with mode: 0644]
NOLF/ObjectDLL/DisplayTimer.h [new file with mode: 0644]
NOLF/ObjectDLL/Door.cpp [new file with mode: 0644]
NOLF/ObjectDLL/Door.h [new file with mode: 0644]
NOLF/ObjectDLL/DoorKnob.cpp [new file with mode: 0644]
NOLF/ObjectDLL/DoorKnob.h [new file with mode: 0644]
NOLF/ObjectDLL/Editable.cpp [new file with mode: 0644]
NOLF/ObjectDLL/Editable.h [new file with mode: 0644]
NOLF/ObjectDLL/EventCounter.cpp [new file with mode: 0644]
NOLF/ObjectDLL/EventCounter.h [new file with mode: 0644]
NOLF/ObjectDLL/ExitTrigger.cpp [new file with mode: 0644]
NOLF/ObjectDLL/ExitTrigger.h [new file with mode: 0644]
NOLF/ObjectDLL/Explosion.cpp [new file with mode: 0644]
NOLF/ObjectDLL/Explosion.h [new file with mode: 0644]
NOLF/ObjectDLL/Fire.cpp [new file with mode: 0644]
NOLF/ObjectDLL/Fire.h [new file with mode: 0644]
NOLF/ObjectDLL/GameBase.cpp [new file with mode: 0644]
NOLF/ObjectDLL/GameBase.h [new file with mode: 0644]
NOLF/ObjectDLL/GameServerShell.cpp [new file with mode: 0644]
NOLF/ObjectDLL/GameServerShell.h [new file with mode: 0644]
NOLF/ObjectDLL/GameStartPoint.cpp [new file with mode: 0644]
NOLF/ObjectDLL/GameStartPoint.h [new file with mode: 0644]
NOLF/ObjectDLL/GearItems.cpp [new file with mode: 0644]
NOLF/ObjectDLL/GearItems.h [new file with mode: 0644]
NOLF/ObjectDLL/GlobalServerMgr.cpp [new file with mode: 0644]
NOLF/ObjectDLL/GlobalServerMgr.h [new file with mode: 0644]
NOLF/ObjectDLL/Group.cpp [new file with mode: 0644]
NOLF/ObjectDLL/Group.h [new file with mode: 0644]
NOLF/ObjectDLL/HHWeaponModel.cpp [new file with mode: 0644]
NOLF/ObjectDLL/HHWeaponModel.h [new file with mode: 0644]
NOLF/ObjectDLL/HingedDoor.cpp [new file with mode: 0644]
NOLF/ObjectDLL/HingedDoor.h [new file with mode: 0644]
NOLF/ObjectDLL/IntelMgr.cpp [new file with mode: 0644]
NOLF/ObjectDLL/IntelMgr.h [new file with mode: 0644]
NOLF/ObjectDLL/Intelligence.cpp [new file with mode: 0644]
NOLF/ObjectDLL/Intelligence.h [new file with mode: 0644]
NOLF/ObjectDLL/Key.cpp [new file with mode: 0644]
NOLF/ObjectDLL/Key.h [new file with mode: 0644]
NOLF/ObjectDLL/KeyData.cpp [new file with mode: 0644]
NOLF/ObjectDLL/KeyData.h [new file with mode: 0644]
NOLF/ObjectDLL/KeyFramer.cpp [new file with mode: 0644]
NOLF/ObjectDLL/KeyFramer.h [new file with mode: 0644]
NOLF/ObjectDLL/KeyPad.cpp [new file with mode: 0644]
NOLF/ObjectDLL/KeyPad.h [new file with mode: 0644]
NOLF/ObjectDLL/LaserTrigger.cpp [new file with mode: 0644]
NOLF/ObjectDLL/LaserTrigger.h [new file with mode: 0644]
NOLF/ObjectDLL/Lightning.cpp [new file with mode: 0644]
NOLF/ObjectDLL/Lightning.h [new file with mode: 0644]
NOLF/ObjectDLL/Lock.cpp [new file with mode: 0644]
NOLF/ObjectDLL/Lock.h [new file with mode: 0644]
NOLF/ObjectDLL/Mine.cpp [new file with mode: 0644]
NOLF/ObjectDLL/Mine.h [new file with mode: 0644]
NOLF/ObjectDLL/ModItem.cpp [new file with mode: 0644]
NOLF/ObjectDLL/ModItem.h [new file with mode: 0644]
NOLF/ObjectDLL/MusicMgr.cpp [new file with mode: 0644]
NOLF/ObjectDLL/MusicMgr.h [new file with mode: 0644]
NOLF/ObjectDLL/MyGameSpyMgr.cpp [new file with mode: 0644]
NOLF/ObjectDLL/MyGameSpyMgr.h [new file with mode: 0644]
NOLF/ObjectDLL/NodeLine.cpp [new file with mode: 0644]
NOLF/ObjectDLL/NodeLine.h [new file with mode: 0644]
NOLF/ObjectDLL/Object.dsp [new file with mode: 0644]
NOLF/ObjectDLL/ObjectMsgs.h [new file with mode: 0644]
NOLF/ObjectDLL/ObjectRemover.cpp [new file with mode: 0644]
NOLF/ObjectDLL/ObjectRemover.h [new file with mode: 0644]
NOLF/ObjectDLL/ObjectiveSprite.cpp [new file with mode: 0644]
NOLF/ObjectDLL/ObjectiveSprite.h [new file with mode: 0644]
NOLF/ObjectDLL/ParticleSystem.cpp [new file with mode: 0644]
NOLF/ObjectDLL/ParticleSystem.h [new file with mode: 0644]
NOLF/ObjectDLL/PickupItem.cpp [new file with mode: 0644]
NOLF/ObjectDLL/PickupItem.h [new file with mode: 0644]
NOLF/ObjectDLL/PlayerButes.h [new file with mode: 0644]
NOLF/ObjectDLL/PlayerObj.cpp [new file with mode: 0644]
NOLF/ObjectDLL/PlayerObj.h [new file with mode: 0644]
NOLF/ObjectDLL/PlayerVehicle.cpp [new file with mode: 0644]
NOLF/ObjectDLL/PlayerVehicle.h [new file with mode: 0644]
NOLF/ObjectDLL/PolyGrid.cpp [new file with mode: 0644]
NOLF/ObjectDLL/PolyGrid.h [new file with mode: 0644]
NOLF/ObjectDLL/Projectile.cpp [new file with mode: 0644]
NOLF/ObjectDLL/Projectile.h [new file with mode: 0644]
NOLF/ObjectDLL/ProjectileTypes.cpp [new file with mode: 0644]
NOLF/ObjectDLL/ProjectileTypes.h [new file with mode: 0644]
NOLF/ObjectDLL/Prop.cpp [new file with mode: 0644]
NOLF/ObjectDLL/Prop.h [new file with mode: 0644]
NOLF/ObjectDLL/PropType.cpp [new file with mode: 0644]
NOLF/ObjectDLL/PropType.h [new file with mode: 0644]
NOLF/ObjectDLL/PropTypeMgr.cpp [new file with mode: 0644]
NOLF/ObjectDLL/PropTypeMgr.h [new file with mode: 0644]
NOLF/ObjectDLL/RandomSpawner.cpp [new file with mode: 0644]
NOLF/ObjectDLL/RandomSpawner.h [new file with mode: 0644]
NOLF/ObjectDLL/RotatingDoor.cpp [new file with mode: 0644]
NOLF/ObjectDLL/RotatingDoor.h [new file with mode: 0644]
NOLF/ObjectDLL/RotatingWorldModel.cpp [new file with mode: 0644]
NOLF/ObjectDLL/RotatingWorldModel.h [new file with mode: 0644]
NOLF/ObjectDLL/SFXFuncs.cpp [new file with mode: 0644]
NOLF/ObjectDLL/SFXFuncs.h [new file with mode: 0644]
NOLF/ObjectDLL/ScaleSprite.cpp [new file with mode: 0644]
NOLF/ObjectDLL/ScaleSprite.h [new file with mode: 0644]
NOLF/ObjectDLL/Scanner.cpp [new file with mode: 0644]
NOLF/ObjectDLL/Scanner.h [new file with mode: 0644]
NOLF/ObjectDLL/ScreenShake.cpp [new file with mode: 0644]
NOLF/ObjectDLL/ScreenShake.h [new file with mode: 0644]
NOLF/ObjectDLL/SearchLight.cpp [new file with mode: 0644]
NOLF/ObjectDLL/SearchLight.h [new file with mode: 0644]
NOLF/ObjectDLL/SecurityCamera.cpp [new file with mode: 0644]
NOLF/ObjectDLL/SecurityCamera.h [new file with mode: 0644]
NOLF/ObjectDLL/ServerButeMgr.cpp [new file with mode: 0644]
NOLF/ObjectDLL/ServerButeMgr.h [new file with mode: 0644]
NOLF/ObjectDLL/ServerMark.cpp [new file with mode: 0644]
NOLF/ObjectDLL/ServerMark.h [new file with mode: 0644]
NOLF/ObjectDLL/ServerRes.h [new file with mode: 0644]
NOLF/ObjectDLL/ServerSoundMgr.cpp [new file with mode: 0644]
NOLF/ObjectDLL/ServerSoundMgr.h [new file with mode: 0644]
NOLF/ObjectDLL/ServerUtilities.cpp [new file with mode: 0644]
NOLF/ObjectDLL/ServerUtilities.h [new file with mode: 0644]
NOLF/ObjectDLL/SoundFX.cpp [new file with mode: 0644]
NOLF/ObjectDLL/SoundFX.h [new file with mode: 0644]
NOLF/ObjectDLL/Sparam.cpp [new file with mode: 0644]
NOLF/ObjectDLL/Sparam.h [new file with mode: 0644]
NOLF/ObjectDLL/Spawner.cpp [new file with mode: 0644]
NOLF/ObjectDLL/Spawner.h [new file with mode: 0644]
NOLF/ObjectDLL/Speaker.cpp [new file with mode: 0644]
NOLF/ObjectDLL/Speaker.h [new file with mode: 0644]
NOLF/ObjectDLL/Sprinkles.cpp [new file with mode: 0644]
NOLF/ObjectDLL/Sprinkles.h [new file with mode: 0644]
NOLF/ObjectDLL/Steam.cpp [new file with mode: 0644]
NOLF/ObjectDLL/Steam.h [new file with mode: 0644]
NOLF/ObjectDLL/Switch.cpp [new file with mode: 0644]
NOLF/ObjectDLL/Switch.h [new file with mode: 0644]
NOLF/ObjectDLL/TeleportPoint.cpp [new file with mode: 0644]
NOLF/ObjectDLL/TeleportPoint.h [new file with mode: 0644]
NOLF/ObjectDLL/TranslucentWorldModel.cpp [new file with mode: 0644]
NOLF/ObjectDLL/TranslucentWorldModel.h [new file with mode: 0644]
NOLF/ObjectDLL/Trigger.cpp [new file with mode: 0644]
NOLF/ObjectDLL/Trigger.h [new file with mode: 0644]
NOLF/ObjectDLL/Video.cpp [new file with mode: 0644]
NOLF/ObjectDLL/Video.h [new file with mode: 0644]
NOLF/ObjectDLL/VolumeBrush.cpp [new file with mode: 0644]
NOLF/ObjectDLL/VolumeBrush.h [new file with mode: 0644]
NOLF/ObjectDLL/VolumeBrushTypes.cpp [new file with mode: 0644]
NOLF/ObjectDLL/VolumeBrushTypes.h [new file with mode: 0644]
NOLF/ObjectDLL/Weapon.cpp [new file with mode: 0644]
NOLF/ObjectDLL/Weapon.h [new file with mode: 0644]
NOLF/ObjectDLL/WeaponItems.cpp [new file with mode: 0644]
NOLF/ObjectDLL/WeaponItems.h [new file with mode: 0644]
NOLF/ObjectDLL/Weapons.cpp [new file with mode: 0644]
NOLF/ObjectDLL/Weapons.h [new file with mode: 0644]
NOLF/ObjectDLL/WorldModelDebris.cpp [new file with mode: 0644]
NOLF/ObjectDLL/WorldModelDebris.h [new file with mode: 0644]
NOLF/ObjectDLL/WorldProperties.cpp [new file with mode: 0644]
NOLF/ObjectDLL/WorldProperties.h [new file with mode: 0644]
NOLF/ObjectDLL/ZipHook.cpp [new file with mode: 0644]
NOLF/ObjectDLL/ZipHook.h [new file with mode: 0644]
NOLF/ObjectDLL/bison.hairy [new file with mode: 0644]
NOLF/ObjectDLL/bison.simple [new file with mode: 0644]
NOLF/ObjectDLL/keyframer_light.cpp [new file with mode: 0644]
NOLF/ObjectDLL/keyframer_light.h [new file with mode: 0644]
NOLF/ObjectDLL/object_list.cpp [new file with mode: 0644]
NOLF/ObjectDLL/vssver.scc [new file with mode: 0644]
NOLF/Shared/Animator.cpp [new file with mode: 0644]
NOLF/Shared/Animator.h [new file with mode: 0644]
NOLF/Shared/AssertMgr.cpp [new file with mode: 0644]
NOLF/Shared/AssertMgr.h [new file with mode: 0644]
NOLF/Shared/AttachButeMgr.cpp [new file with mode: 0644]
NOLF/Shared/AttachButeMgr.h [new file with mode: 0644]
NOLF/Shared/BankedList.h [new file with mode: 0644]
NOLF/Shared/BankedList_impl.h [new file with mode: 0644]
NOLF/Shared/BareList.cpp [new file with mode: 0644]
NOLF/Shared/BareList.h [new file with mode: 0644]
NOLF/Shared/CRC32.cpp [new file with mode: 0644]
NOLF/Shared/CRC32.h [new file with mode: 0644]
NOLF/Shared/CSDefs.h [new file with mode: 0644]
NOLF/Shared/CharacterAlignment.h [new file with mode: 0644]
NOLF/Shared/CheatDefs.h [new file with mode: 0644]
NOLF/Shared/ClientServerShared.h [new file with mode: 0644]
NOLF/Shared/CommandIDs.h [new file with mode: 0644]
NOLF/Shared/CommonUtilities.cpp [new file with mode: 0644]
NOLF/Shared/CommonUtilities.h [new file with mode: 0644]
NOLF/Shared/ContainerCodes.h [new file with mode: 0644]
NOLF/Shared/DamageTypes.cpp [new file with mode: 0644]
NOLF/Shared/DamageTypes.h [new file with mode: 0644]
NOLF/Shared/DebrisMgr.cpp [new file with mode: 0644]
NOLF/Shared/DebrisMgr.h [new file with mode: 0644]
NOLF/Shared/DebugMgr.cpp [new file with mode: 0644]
NOLF/Shared/DebugMgr.h [new file with mode: 0644]
NOLF/Shared/DebugNew.cpp [new file with mode: 0644]
NOLF/Shared/DebugNew.h [new file with mode: 0644]
NOLF/Shared/DebugNew_impl.h [new file with mode: 0644]
NOLF/Shared/FXButeMgr.cpp [new file with mode: 0644]
NOLF/Shared/FXButeMgr.h [new file with mode: 0644]
NOLF/Shared/FXStructs.cpp [new file with mode: 0644]
NOLF/Shared/FXStructs.h [new file with mode: 0644]
NOLF/Shared/Factory.h [new file with mode: 0644]
NOLF/Shared/FastHeap.h [new file with mode: 0644]
NOLF/Shared/FastStack.h [new file with mode: 0644]
NOLF/Shared/GameButeMgr.cpp [new file with mode: 0644]
NOLF/Shared/GameButeMgr.h [new file with mode: 0644]
NOLF/Shared/GibTypes.h [new file with mode: 0644]
NOLF/Shared/GlobalMgr.cpp [new file with mode: 0644]
NOLF/Shared/GlobalMgr.h [new file with mode: 0644]
NOLF/Shared/Globals.h [new file with mode: 0644]
NOLF/Shared/MissionData.cpp [new file with mode: 0644]
NOLF/Shared/MissionData.h [new file with mode: 0644]
NOLF/Shared/MissionMgr.cpp [new file with mode: 0644]
NOLF/Shared/MissionMgr.h [new file with mode: 0644]
NOLF/Shared/ModelButeMgr.cpp [new file with mode: 0644]
NOLF/Shared/ModelButeMgr.h [new file with mode: 0644]
NOLF/Shared/MsgIDs.h [new file with mode: 0644]
NOLF/Shared/NetDefs.cpp [new file with mode: 0644]
NOLF/Shared/NetDefs.h [new file with mode: 0644]
NOLF/Shared/Objectives.h [new file with mode: 0644]
NOLF/Shared/PlayerShared.h [new file with mode: 0644]
NOLF/Shared/PlayerSummary.cpp [new file with mode: 0644]
NOLF/Shared/PlayerSummary.h [new file with mode: 0644]
NOLF/Shared/SCDefs.h [new file with mode: 0644]
NOLF/Shared/SFXMsgIds.h [new file with mode: 0644]
NOLF/Shared/ServerOptionMgr.cpp [new file with mode: 0644]
NOLF/Shared/ServerOptionMgr.h [new file with mode: 0644]
NOLF/Shared/SharedBaseFXStructs.h [new file with mode: 0644]
NOLF/Shared/SharedFXStructs.cpp [new file with mode: 0644]
NOLF/Shared/SharedFXStructs.h [new file with mode: 0644]
NOLF/Shared/SharedMission.cpp [new file with mode: 0644]
NOLF/Shared/SharedMission.h [new file with mode: 0644]
NOLF/Shared/SharedMovement.cpp [new file with mode: 0644]
NOLF/Shared/SharedMovement.h [new file with mode: 0644]
NOLF/Shared/SoundFilterMgr.cpp [new file with mode: 0644]
NOLF/Shared/SoundFilterMgr.h [new file with mode: 0644]
NOLF/Shared/SoundMgr.cpp [new file with mode: 0644]
NOLF/Shared/SoundMgr.h [new file with mode: 0644]
NOLF/Shared/SoundTypes.h [new file with mode: 0644]
NOLF/Shared/Stdafx.cpp [new file with mode: 0644]
NOLF/Shared/Stdafx.h [new file with mode: 0644]
NOLF/Shared/SurfaceDefs.h [new file with mode: 0644]
NOLF/Shared/SurfaceFunctions.cpp [new file with mode: 0644]
NOLF/Shared/SurfaceFunctions.h [new file with mode: 0644]
NOLF/Shared/SurfaceMgr.cpp [new file with mode: 0644]
NOLF/Shared/SurfaceMgr.h [new file with mode: 0644]
NOLF/Shared/TeamMgr.cpp [new file with mode: 0644]
NOLF/Shared/TeamMgr.h [new file with mode: 0644]
NOLF/Shared/TemplateList.cpp [new file with mode: 0644]
NOLF/Shared/TemplateList.h [new file with mode: 0644]
NOLF/Shared/Timer.h [new file with mode: 0644]
NOLF/Shared/VersionMgr.cpp [new file with mode: 0644]
NOLF/Shared/VersionMgr.h [new file with mode: 0644]
NOLF/Shared/WeaponFXTypes.h [new file with mode: 0644]
NOLF/Shared/WeaponMgr.cpp [new file with mode: 0644]
NOLF/Shared/WeaponMgr.h [new file with mode: 0644]
NOLF/Shared/unistd.h [new file with mode: 0644]
NOLF/Shared/vssver.scc [new file with mode: 0644]
NOLF/bison.exe [new file with mode: 0644]
NOLF/flex.exe [new file with mode: 0644]
NOLF/vssver.scc [new file with mode: 0644]
readme.txt [new file with mode: 0644]

diff --git a/LT2/lithshared/butemgr/arange.h b/LT2/lithshared/butemgr/arange.h
new file mode 100644 (file)
index 0000000..846f046
--- /dev/null
@@ -0,0 +1,28 @@
+#ifndef _ARANGE_H_\r
+#define _ARANGE_H_\r
+\r
+\r
+class CARange\r
+{\r
+\r
+public:\r
+\r
+       CARange() { }\r
+       CARange(double min, double max) { m_min = min; m_max = max; }\r
+\r
+       void Set(double min, double max) { m_min = min; m_max = max; }\r
+       CARange Get() { return CARange(m_min, m_max); }\r
+\r
+       double GetMin() { return m_min; }\r
+       double GetMax() { return m_max; }\r
+\r
+protected:\r
+\r
+       double m_min;\r
+       double m_max;\r
+\r
+};\r
+\r
+\r
+\r
+#endif 
\ No newline at end of file
diff --git a/LT2/lithshared/butemgr/avector.h b/LT2/lithshared/butemgr/avector.h
new file mode 100644 (file)
index 0000000..95aac28
--- /dev/null
@@ -0,0 +1,43 @@
+#ifndef _AVECTOR_H_\r
+#define _AVECTOR_H_\r
+\r
+\r
+\r
+class CAVector\r
+{\r
+\r
+public:\r
+\r
+       CAVector() { }\r
+       CAVector(double i, double j, double k) { m_i = i; m_j = j; m_k = k; }\r
+\r
+       void Set(double i, double j, double k) { m_i = i; m_j = j; m_k = k; }\r
+       CAVector Get() { return CAVector(m_i, m_j, m_k); }\r
+\r
+       double Geti() { return m_i; }\r
+       double Getj() { return m_j; }\r
+       double Getk() { return m_k; }\r
+\r
+\r
+#if defined(_LITHTECH_)\r
+    operator const LTVector() const\r
+       {\r
+        LTVector vec;\r
+               vec.x = (float)m_i;\r
+               vec.y = (float)m_j;\r
+               vec.z = (float)m_k;\r
+               return vec;\r
+       }\r
+#endif\r
+\r
+protected:\r
+\r
+       double m_i;\r
+       double m_j;\r
+       double m_k;\r
+\r
+};\r
+\r
+\r
+\r
+#endif
\ No newline at end of file
diff --git a/LT2/lithshared/butemgr/butemgr.h b/LT2/lithshared/butemgr/butemgr.h
new file mode 100644 (file)
index 0000000..46d9df3
--- /dev/null
@@ -0,0 +1,592 @@
+#if !defined(_BUTEMGR_H_)\r
+#define _BUTEMGR_H_\r
+\r
+#include "limits.h"\r
+#include "float.h"\r
+#include "fstream.h"\r
+#include "strstrea.h"\r
+#include "ztools.h"\r
+#include "..\cryptmgr\cryptmgr.h"\r
+#include "..\butemgr\avector.h"\r
+#include "..\butemgr\arange.h"\r
+\r
+#if defined(_USE_REZFILE_)\r
+#include "rezmgr.h"\r
+#endif\r
+\r
+#include "..\lith\lithtypes.h"\r
+\r
+\r
+#ifndef NO_PRAGMA_LIBS\r
+       #if defined(_DEBUG) && defined(__AFX_H__) && defined(_AFXDLL)\r
+               #pragma comment (lib, "\\Proj\\Libs\\Debug\\ButeMgrMfcDll.lib")\r
+       #elif !defined(_DEBUG) && defined(__AFX_H__) && defined(_AFXDLL)\r
+               #pragma comment (lib, "\\Proj\\Libs\\Release\\ButeMgrMfcDll.lib")\r
+       #elif defined(_DEBUG) && defined(__AFX_H__) && !defined(_AFXDLL)\r
+               #pragma comment (lib, "\\Proj\\Libs\\Debug\\ButeMgr.lib")\r
+       #elif !defined(_DEBUG) && defined(__AFX_H__) && !defined(_AFXDLL)\r
+               #pragma comment (lib, "\\Proj\\Libs\\Release\\ButeMgr.lib")\r
+       #elif defined(_DEBUG) && !defined(__AFX_H__)\r
+               #pragma comment (lib, "\\Proj\\Libs\\Debug\\ButeMgrNoMFC.lib")\r
+       #elif !defined(_DEBUG) && !defined(__AFX_H__)\r
+               #pragma comment (lib, "\\Proj\\Libs\\Release\\ButeMgrNoMFC.lib")\r
+       #endif\r
+#endif\r
+\r
+\r
+class CButeMgr\r
+{\r
+public:\r
+\r
+       enum SymTypes { NullType, IntType, DwordType, ByteType, BoolType, DoubleType, FloatType, StringType, RectType, PointType, VectorType, RangeType };\r
+\r
+       class CSymTabItem\r
+       {\r
+       public:\r
+\r
+               SymTypes SymType;\r
+\r
+               CSymTabItem(SymTypes t, int val) { SymType = t; data.i = new int(val); }\r
+               CSymTabItem(SymTypes t, DWORD val) { SymType = t; data.dw = new DWORD(val); }\r
+               CSymTabItem(SymTypes t, BYTE val) { SymType = t; data.byte = new BYTE(val); }\r
+               CSymTabItem(SymTypes t, bool val) { SymType = t; data.b = new bool(val); }\r
+               CSymTabItem(SymTypes t, float val) { SymType = t; data.f = new float(val); }\r
+               CSymTabItem(SymTypes t, double val) { SymType = t; data.d = new double(val); }\r
+               CSymTabItem(SymTypes t, const CString& val) { SymType = t; data.s = new CString(val); }\r
+               CSymTabItem(SymTypes t, const CRect& val) { SymType = t; data.r = new CRect(val); }\r
+               CSymTabItem(SymTypes t, const CPoint& val) { SymType = t; data.point = new CPoint(val); }\r
+               CSymTabItem(SymTypes t, const CAVector& val) { SymType = t; data.v = new CAVector(val); }\r
+               CSymTabItem(SymTypes t, const CARange& val) { SymType = t; data.range = new CARange(val); }\r
+\r
+               CSymTabItem(const CSymTabItem& sti)\r
+               {\r
+                       switch (SymType)\r
+                       {\r
+                       case IntType:\r
+                               *data.i = *sti.data.i;\r
+                               break;\r
+                       case DwordType:\r
+                               *data.dw = *sti.data.dw;\r
+                               break;\r
+                       case ByteType:\r
+                               *data.byte = *sti.data.byte;\r
+                               break;\r
+                       case BoolType:\r
+                               *data.b = *sti.data.b;\r
+                               break;\r
+                       case DoubleType:\r
+                               *data.d = *sti.data.d;\r
+                               break;\r
+                       case FloatType:\r
+                               *data.f = *sti.data.f;\r
+                               break;\r
+                       case StringType:\r
+                               *data.s = *sti.data.s;\r
+                               break;\r
+                       case RectType:\r
+                               *data.r = *sti.data.r;\r
+                               break;\r
+                       case PointType:\r
+                               *data.point = *sti.data.point;\r
+                               break;\r
+                       case VectorType:\r
+                               *data.v = *sti.data.v;\r
+                               break;\r
+                       case RangeType:\r
+                               *data.range = *sti.data.range;\r
+                               break;\r
+                       }\r
+               }\r
+\r
+               const CSymTabItem& operator=(const CSymTabItem& sti)\r
+               {\r
+                       switch (SymType)\r
+                       {\r
+                       case IntType:\r
+                               *data.i = *sti.data.i;\r
+                               break;\r
+                       case DwordType:\r
+                               *data.dw = *sti.data.dw;\r
+                               break;\r
+                       case ByteType:\r
+                               *data.byte = *sti.data.byte;\r
+                               break;\r
+                       case BoolType:\r
+                               *data.b = *sti.data.b;\r
+                               break;\r
+                       case DoubleType:\r
+                               *data.d = *sti.data.d;\r
+                               break;\r
+                       case FloatType:\r
+                               *data.f = *sti.data.f;\r
+                               break;\r
+                       case StringType:\r
+                               *data.s = *sti.data.s;\r
+                               break;\r
+                       case RectType:\r
+                               *data.r = *sti.data.r;\r
+                               break;\r
+                       case PointType:\r
+                               *data.point = *sti.data.point;\r
+                               break;\r
+                       case VectorType:\r
+                               *data.v = *sti.data.v;\r
+                               break;\r
+                       case RangeType:\r
+                               *data.range = *sti.data.range;\r
+                               break;\r
+                       }\r
+                       return *this;\r
+               }\r
+\r
+\r
+               ~CSymTabItem()\r
+               {\r
+                       switch (SymType)\r
+                       {\r
+                       case IntType:\r
+                               delete data.i;\r
+                               break;\r
+                       case DwordType:\r
+                               delete data.dw;\r
+                               break;\r
+                       case ByteType:\r
+                               delete data.byte;\r
+                               break;\r
+                       case BoolType:\r
+                               delete data.b;\r
+                               break;\r
+                       case DoubleType:\r
+                               delete data.d;\r
+                               break;\r
+                       case FloatType:\r
+                               delete data.f;\r
+                               break;\r
+                       case StringType:\r
+                               delete data.s;\r
+                               break;\r
+                       case RectType:\r
+                               delete data.r;\r
+                               break;\r
+                       case PointType:\r
+                               delete data.point;\r
+                               break;\r
+                       case VectorType:\r
+                               delete data.v;\r
+                               break;\r
+                       case RangeType:\r
+                               delete data.range;\r
+                               break;\r
+                       }\r
+               }\r
+\r
+               union\r
+               {\r
+                       int* i;\r
+                       DWORD* dw;\r
+                       BYTE* byte;\r
+                       bool* b;\r
+                       double* d;\r
+                       float* f;\r
+                       CString* s;\r
+                       CRect* r;\r
+                       CPoint* point;\r
+                       CAVector* v;\r
+                       CARange* range;\r
+               } data;\r
+       };\r
+\r
+\r
+public:\r
+\r
+       CButeMgr();\r
+       ~CButeMgr() { };\r
+\r
+       void Init();\r
+       void Init(void (*pF)(const char* szMsg));\r
+\r
+       void Term() { };\r
+\r
+       DWORD GetChecksum() { return m_checksum; }\r
+       void SetDisplayFunc(void (*pF)(const char* szMsg)) { m_pDisplayFunc = pF; }\r
+       CString GetErrorString() { return m_sErrorString; }\r
+\r
+#if defined(_USE_REZFILE_)\r
+       bool Parse(CRezItm* pItem, int decryptCode = 0);\r
+       bool Parse(CRezItm* pItem, const char* cryptKey);\r
+#endif\r
+       bool Parse(CString sAttributeFilename, int decryptCode = 0);\r
+       bool Parse(CString sAttributeFilename, const char* cryptKey);\r
+       bool Parse(void* pData, unsigned long size, int decryptCode = 0);\r
+       bool Parse(void* pData, unsigned long size, const char* cryptKey);\r
+\r
+       bool Save(const char* szNewFileName = NULL);\r
+\r
+       void GetTags(void (*pCallback)(const char* szTag, void* pAux), void* pAux = NULL);\r
+       void GetKeys(const char* szTag, void (*pCallback)(const char* szKey, CSymTabItem* pData, void* pAux), void* pAux = NULL);\r
+\r
+       int GetInt(const char* szTagName, const char* szAttName, int defVal);\r
+       int GetInt(const char* szTagName, const char* szAttName);\r
+       void SetInt(const char* szTagName, const char* szAttName, int val);\r
+\r
+       DWORD GetDword(const char* szTagName, const char* szAttName, DWORD defVal);\r
+       DWORD GetDword(const char* szTagName, const char* szAttName);\r
+       void SetDword(const char* szTagName, const char* szAttName, DWORD val);\r
+\r
+       BYTE GetByte(const char* szTagName, const char* szAttName, BYTE defVal);\r
+       BYTE GetByte(const char* szTagName, const char* szAttName);\r
+       void SetByte(const char* szTagName, const char* szAttName, BYTE val);\r
+\r
+       bool GetBool(const char* szTagName, const char* szAttName, bool defVal);\r
+       bool GetBool(const char* szTagName, const char* szAttName);\r
+       void SetBool(const char* szTagName, const char* szAttName, bool val);\r
+\r
+       float GetFloat(const char* szTagName, const char* szAttName, float defVal);\r
+       float GetFloat(const char* szTagName, const char* szAttName);\r
+       void SetFloat(const char* szTagName, const char* szAttName, float val);\r
+\r
+       double GetDouble(const char* szTagName, const char* szAttName, double defVal);\r
+       double GetDouble(const char* szTagName, const char* szAttName);\r
+       void SetDouble(const char* szTagName, const char* szAttName, double val);\r
+\r
+       CString& GetString(const char* szTagName, const char* szAttName, CString& defVal);\r
+       CString& GetString(const char* szTagName, const char* szAttName);\r
+       void SetString(const char* szTagName, const char* szAttName, const CString& val);\r
+\r
+       void GetString(const char* szTagName, const char* szAttName, const char* defVal, char *szResult, DWORD maxLen);\r
+       void GetString(const char* szTagName, const char* szAttName, char *szResult, DWORD maxLen);\r
+\r
+       CRect& GetRect(const char* szTagName, const char* szAttName, CRect& defVal);\r
+       CRect& GetRect(const char* szTagName, const char* szAttName);\r
+       void SetRect(const char* szTagName, const char* szAttName, const CRect& val);\r
+\r
+       CPoint& GetPoint(const char* szTagName, const char* szAttName, CPoint& defVal);\r
+       CPoint& GetPoint(const char* szTagName, const char* szAttName);\r
+       void SetPoint(const char* szTagName, const char* szAttName, const CPoint& val);\r
+\r
+       CAVector& GetVector(const char* szTagName, const char* szAttName, CAVector& defVal);\r
+       CAVector& GetVector(const char* szTagName, const char* szAttName);\r
+       void SetVector(const char* szTagName, const char* szAttName, const CAVector& val);\r
+\r
+       CARange& GetRange(const char* szTagName, const char* szAttName, CARange& defVal);\r
+       CARange& GetRange(const char* szTagName, const char* szAttName);\r
+       void SetRange(const char* szTagName, const char* szAttName, const CARange& val);\r
+\r
+       bool AddTag(const char *szTagName);\r
+\r
+       CButeMgr::SymTypes GetType(const char* szTagName, const char* szAttName);  // returns NullType if tag/key doesn't exist\r
+\r
+       bool Success() { return m_bSuccess; }\r
+       bool Exist(const char* szTagName, const char* szAttName = NULL);\r
+\r
+private:\r
+\r
+       void Reset();\r
+\r
+       void DisplayMessage(const char* szMsg, ...);\r
+\r
+       // Parser stuff\r
+       bool Statement();\r
+       bool StatementList();\r
+       bool Tag();\r
+       bool TagList();\r
+\r
+       // Scanner stuff\r
+       bool Match(int tok);\r
+       void ConsumeChar();\r
+       short CharClass(unsigned char currentChar);\r
+       short Action( short State, unsigned char currentChar );\r
+       short NextState( short State, unsigned char currentChar );\r
+       void LookupCodes( short State, unsigned char currentChar);\r
+       bool ScanTok();\r
+\r
+       DWORD m_decryptCode;\r
+       DWORD m_checksum;\r
+       int m_lineNumber;\r
+       bool m_bLineCounterFlag;\r
+\r
+       bool m_bSuccess;\r
+       bool m_bErrorFlag;\r
+       CString m_sErrorString;\r
+\r
+       void (*m_pDisplayFunc)(const char* szMsg);\r
+\r
+       typedef zSymTab<CSymTabItem> TableOfItems;\r
+       typedef zSymTab<TableOfItems> TableOfTags;\r
+\r
+       TableOfTags m_tagTab;\r
+\r
+       TableOfItems* m_pCurrTabOfItems;\r
+\r
+       TableOfTags m_auxTagTab;\r
+       TableOfTags m_newTagTab;\r
+\r
+       CSymTabItem* GetItem(const char *szTagName, const char* szAttName);\r
+\r
+       static void AuxTabItemsSave(const char* sz, CSymTabItem* pItem, void* p);\r
+       static void NewTabsSave(const char* sz, TableOfItems* pTabOfItems, void* p);\r
+\r
+       struct TagExtraData\r
+       {\r
+               TagExtraData(void (*pCallback)(const char* tag, void* pAux), void* pAux) \r
+               { \r
+                       m_pCallback = pCallback;\r
+                       m_pAux = pAux;\r
+               }\r
+               void (*m_pCallback)(const char* tag, void* pAux);\r
+               void* m_pAux;\r
+       };\r
+       static void TagTraverseFunc(const char* szTag, TableOfItems* pData, void* ExtraData);\r
+\r
+       struct KeyExtraData\r
+       {\r
+               KeyExtraData(void (*pCallback)(const char* szKey, CSymTabItem* pData, void* pAux), void* pAux) \r
+               { \r
+                       m_pCallback = pCallback;\r
+                       m_pAux = pAux;\r
+               }\r
+               void (*m_pCallback)(const char* szKey, CSymTabItem* pData, void* pAux);\r
+               void* m_pAux;\r
+       };\r
+       static void KeyTraverseFunc(const char* szKey, CSymTabItem* pData, void* ExtraData);\r
+\r
+       istream* m_pData;\r
+       iostream *m_pSaveData;\r
+\r
+       unsigned char  m_currentChar;\r
+       short m_token;\r
+       short m_tokenMinor;\r
+\r
+       char m_szTokenString[4096];\r
+\r
+       CString m_sTagName;\r
+       CString m_sAttribute;\r
+\r
+       CString m_sAttributeFilename;\r
+\r
+       bool m_bPutChar;\r
+       bool m_bSaving;\r
+\r
+       bool m_bCrypt;\r
+       CCryptMgr m_cryptMgr;\r
+};\r
+\r
+\r
+\r
+#if defined(_USE_REZFILE_)\r
+inline bool CButeMgr::Parse(CRezItm* pItem, int decryptCode)\r
+{\r
+       if (!pItem)\r
+               return false;\r
+       m_pData = new istrstream((char*)pItem->Load(), pItem->GetSize());\r
+       Reset();\r
+       m_decryptCode = decryptCode;\r
+\r
+       m_tagTab.clear();\r
+       m_auxTagTab.clear();\r
+       m_newTagTab.clear();\r
+\r
+       bool retVal = true;\r
+       if (!TagList())\r
+       {\r
+               m_bErrorFlag = true;\r
+               retVal = false;\r
+       }\r
+       \r
+       pItem->UnLoad();\r
+       delete m_pData;\r
+\r
+       return retVal;\r
+}\r
+\r
+\r
+inline bool CButeMgr::Parse(CRezItm* pItem, const char* cryptKey)\r
+{\r
+       if (!pItem)\r
+               return false;\r
+       m_bCrypt = true;\r
+       char* buf1 = (char*)pItem->Load();\r
+       int len = pItem->GetSize();\r
+       istrstream* pIss = new istrstream(buf1, len);\r
+\r
+       m_cryptMgr.SetKey(cryptKey);\r
+       char* buf2 = new char[len];\r
+       ostrstream* pOss = new ostrstream(buf2, len);\r
+       m_cryptMgr.Decrypt(*pIss, *pOss);\r
+\r
+       m_pData = new istrstream(buf2, pOss->pcount());\r
+\r
+       delete pIss;\r
+       delete pOss;\r
+       pItem->UnLoad();\r
+\r
+       Reset();\r
+\r
+       m_tagTab.clear();\r
+       m_auxTagTab.clear();\r
+       m_newTagTab.clear();\r
+\r
+       bool retVal = true;\r
+       if (!TagList())\r
+       {\r
+               m_bErrorFlag = true;\r
+               retVal = false;\r
+       }\r
+       delete m_pData;\r
+       delete buf2;\r
+       return retVal;\r
+}\r
+#endif\r
+\r
+\r
+\r
+\r
+\r
+inline bool CButeMgr::Parse(void* pData, unsigned long size, int decryptCode)\r
+{\r
+       if (!pData)\r
+               return false;\r
+       m_pData = new istrstream((char*)pData, size);\r
+       Reset();\r
+       m_decryptCode = decryptCode;\r
+\r
+       m_tagTab.clear();\r
+       m_auxTagTab.clear();\r
+       m_newTagTab.clear();\r
+\r
+       bool retVal = true;\r
+       if (!TagList())\r
+       {\r
+               m_bErrorFlag = true;\r
+               retVal = false;\r
+       }\r
+       \r
+       delete m_pData;\r
+\r
+       return retVal;\r
+}\r
+\r
+\r
+\r
+\r
+inline bool CButeMgr::Parse(void* pData, unsigned long size, const char* cryptKey)\r
+{\r
+       if (!pData)\r
+               return false;\r
+       m_bCrypt = true;\r
+       char* buf1 = (char*)pData;\r
+       int len = size;\r
+       istrstream* pIss = new istrstream(buf1, len);\r
+\r
+       m_cryptMgr.SetKey(cryptKey);\r
+       char* buf2 = new char[len];\r
+       ostrstream* pOss = new ostrstream(buf2, len);\r
+       m_cryptMgr.Decrypt(*pIss, *pOss);\r
+\r
+       m_pData = new istrstream(buf2, pOss->pcount());\r
+\r
+       delete pIss;\r
+       delete pOss;\r
+\r
+       Reset();\r
+\r
+       m_tagTab.clear();\r
+       m_auxTagTab.clear();\r
+       m_newTagTab.clear();\r
+\r
+       bool retVal = true;\r
+       if (!TagList())\r
+       {\r
+               m_bErrorFlag = true;\r
+               retVal = false;\r
+       }\r
+       delete m_pData;\r
+       delete buf2;\r
+       return retVal;\r
+}\r
+\r
+\r
+\r
+\r
+inline bool CButeMgr::Parse(CString sAttributeFilename, int decryptCode)\r
+{\r
+       m_pData = new ifstream(sAttributeFilename, ios::in | ios::nocreate);\r
+       if (!m_pData)\r
+               return false;\r
+       if (m_pData->fail())\r
+       {\r
+               delete m_pData;\r
+               return false;\r
+       }\r
+       Reset();\r
+       m_decryptCode = decryptCode;\r
+       m_sAttributeFilename = sAttributeFilename;\r
+\r
+       m_tagTab.clear();\r
+       m_auxTagTab.clear();\r
+       m_newTagTab.clear();\r
+\r
+       bool retVal = true;\r
+       if (!TagList())\r
+       {\r
+               m_bErrorFlag = true;\r
+               retVal = false;\r
+       }\r
+\r
+       delete m_pData;\r
+       return retVal;\r
+}\r
+\r
+\r
+\r
+inline bool CButeMgr::Parse(CString sAttributeFilename, const char* cryptKey)\r
+{\r
+       m_bCrypt = true;\r
+       ifstream* pIs = new ifstream(sAttributeFilename, ios::nocreate | ios::binary);\r
+       if (!pIs)\r
+               return false;\r
+       if (pIs->fail())\r
+       {\r
+               delete pIs;\r
+               return false;\r
+       }\r
+\r
+       pIs->seekg(0, ios::end);\r
+       long len = pIs->tellg();\r
+\r
+       pIs->seekg(0);\r
+\r
+       m_cryptMgr.SetKey(cryptKey);\r
+\r
+       char* buf = new char[len];\r
+       ostrstream* pOss = new ostrstream(buf, len, ios::in | ios::out);\r
+       m_cryptMgr.Decrypt(*pIs, *pOss);\r
+\r
+       m_pData = new istrstream(buf, pOss->pcount());\r
+\r
+       delete pIs;\r
+       delete pOss;\r
+\r
+       Reset();\r
+       m_sAttributeFilename = sAttributeFilename;\r
+\r
+       m_tagTab.clear();\r
+       m_auxTagTab.clear();\r
+       m_newTagTab.clear();\r
+\r
+       bool retVal = true;\r
+       if (!TagList())\r
+       {\r
+               m_bErrorFlag = true;\r
+               retVal = false;\r
+       }\r
+       delete m_pData;\r
+       delete buf;\r
+       return retVal;\r
+}\r
+\r
+\r
+\r
+\r
+\r
+#endif
\ No newline at end of file
diff --git a/LT2/lithshared/butemgr/vssver.scc b/LT2/lithshared/butemgr/vssver.scc
new file mode 100644 (file)
index 0000000..f68584e
Binary files /dev/null and b/LT2/lithshared/butemgr/vssver.scc differ
diff --git a/LT2/lithshared/cryptmgr/blowfish.h b/LT2/lithshared/cryptmgr/blowfish.h
new file mode 100644 (file)
index 0000000..b5c5a32
--- /dev/null
@@ -0,0 +1,13 @@
+#if !defined(_BLOWFISH_H_)\r
+#define _BLOWFISH_H_\r
+\r
+#define UWORD_32bits  unsigned long\r
+#define UWORD_16bits  unsigned short\r
+#define UBYTE_08bits  unsigned char\r
+\r
+short InitializeBlowfish(UBYTE_08bits key[], short keybytes);\r
+void Blowfish_encipher(UWORD_32bits *xl, UWORD_32bits *xr);\r
+void Blowfish_decipher(UWORD_32bits *xl, UWORD_32bits *xr);\r
+\r
+\r
+#endif\r
diff --git a/LT2/lithshared/cryptmgr/cryptmgr.h b/LT2/lithshared/cryptmgr/cryptmgr.h
new file mode 100644 (file)
index 0000000..a0b7e0c
--- /dev/null
@@ -0,0 +1,44 @@
+#if !defined(_CRYPTMGR_H_)\r
+#define _CRYPTMGR_H_\r
+\r
+#include "iostream.h"\r
+\r
+\r
+#ifndef NO_PRAGMA_LIBS\r
+       #if defined(_DEBUG) && defined(_AFXDLL)\r
+               #pragma comment (lib, "\\Proj\\Libs\\Debug\\CryptMgrMfcDll.lib")\r
+       #elif defined(_DEBUG) && !defined(_AFXDLL)\r
+               #pragma comment (lib, "\\Proj\\Libs\\Debug\\CryptMgr.lib")\r
+       #elif !defined(_DEBUG) && defined(_AFXDLL)\r
+               #pragma comment (lib, "\\Proj\\Libs\\Release\\CryptMgrMfcDll.lib")\r
+       #elif !defined(_DEBUG) && !defined(_AFXDLL)\r
+               #pragma comment (lib, "\\Proj\\Libs\\Release\\CryptMgr.lib")\r
+       #endif\r
+#endif\r
+\r
+\r
+\r
+class CCryptMgr\r
+{\r
+public:\r
+\r
+       CCryptMgr();\r
+       CCryptMgr(char* key);\r
+       ~CCryptMgr();\r
+\r
+       void SetKey(const char* key);  // Max of 56 characters\r
+\r
+       // if using fstreams be sure to open them in binary mode\r
+       void Encrypt(istream& is, ostream& os);\r
+\r
+       // if using fstreams be sure to open them in binary mode\r
+       void Decrypt(istream& is, ostream& os);\r
+\r
+};\r
+\r
+\r
+\r
+\r
+\r
+\r
+#endif
\ No newline at end of file
diff --git a/LT2/lithshared/cryptmgr/vssver.scc b/LT2/lithshared/cryptmgr/vssver.scc
new file mode 100644 (file)
index 0000000..f15325d
Binary files /dev/null and b/LT2/lithshared/cryptmgr/vssver.scc differ
diff --git a/LT2/lithshared/gamespy/cengine/goaceng.h b/LT2/lithshared/gamespy/cengine/goaceng.h
new file mode 100644 (file)
index 0000000..f154623
--- /dev/null
@@ -0,0 +1,305 @@
+/************\r
+GameSpy Open Architecture \r
+ Portable C Engine\r
+*************/\r
+/******\r
+goaceng.h\r
+GameSpy C Engine SDK\r
+  \r
+Copyright 1999 GameSpy Industries, Inc\r
+\r
+Suite E-204\r
+2900 Bristol Street\r
+Costa Mesa, CA 92626\r
+(714)549-7689\r
+Fax(714)549-0757\r
+\r
+******\r
+\r
+ Please see the GameSpy C Engine SDK documentation for more \r
+ information\r
+\r
+ Updated 3/16/00 - DDW\r
+  Added ServerListRemoveServer (to remove a server from the serverlist)\r
+  Updated ServerListAuxUpdate to update the existing server if its already in the list\r
+   instead of adding a duplicate\r
+  Note that these functions change the indexes of servers in the list. You should never\r
+  rely on the indexes staying constant (they change if you use the sort functions too).\r
+\r
+ Updated 3/18/00 - DDW\r
+  Added Dreamcast CE support (needs to recreate sockets for each query)\r
+\r
+ Updated 4/17/00 - DDW\r
+  Added compressed server lists and advanced filtering\r
+\r
+ Updated 5/16/00 - DDW\r
+  Do a select() in ServerListReadList to keep from blocking if the list is slow\r
+\r
+ Updated 5/25/00 - DDW\r
+  Extensive changes to minimize memory usage and increse flexibility\r
+       -Server IPs are now stored internally as unsigned longs\r
+       -Server key names are stored in a single shared list to minimize memory usage\r
+       -Hashtable and DArray allocations optimized\r
+       -You can now specify the query type using ServerListUpdate2 and ServerListAuxUpdate\r
+       -ServerListAuxUpdate is now the official way to do multi-pass updates and manual updates\r
+ Updated 6/13/99 - DDW\r
+  More memory optimizations (keys/values share same list)\r
+  Fixed alignment compiler problem for MWERKS on Dreamcast\r
+  Remove server list select on ACCESS stack (doesn't seem to work)\r
+******/\r
+//todo: max results and ordering\r
+\r
+#ifndef _GOACENG_H\r
+#define _GOACENG_H\r
+\r
+#ifdef __cplusplus\r
+extern "C" {\r
+#endif\r
+\r
+\r
+#define ENGINE_VERSION "1.5"\r
+#define SERVER_TIMEOUT 3000\r
+/* GServerList and GServer are the abstracted serverlist and server data types.\r
+All access to their internal data structures is done via the functions below */\r
+typedef struct GServerListImplementation *GServerList;\r
+typedef struct GServerImplementation *GServer;\r
+\r
+/* A simple error type that we can use for return values to certain functions */\r
+typedef int GError; //we will define some error return values\r
+\r
+typedef int gbool;  //a simple boolean type\r
+\r
+/* Various Server List States \r
+idle - no processing or querying underway, ready to being updates\r
+listreq - a server list request has been or is being sent\r
+listxfer - we are transfering the server list\r
+lanlist - we are waiting for replies from servers on the LAN\r
+querying - the servers on the list are being queried */\r
+typedef enum {sl_idle, sl_listxfer, sl_lanlist, sl_querying} GServerListState;\r
+\r
+/* Comparision types for the ServerListSort function\r
+int - assume the values are int and do an integer compare\r
+float - assume the values are float and do a flot compare\r
+strcase - assume the values are strings and do a case sensitive compare\r
+stricase - assume the values are strings and do a case insensitive compare */\r
+typedef enum {cm_int, cm_float, cm_strcase, cm_stricase} GCompareMode;\r
+\r
+\r
+typedef enum {qt_basic, qt_info, qt_rules, qt_players, qt_info_rules, qt_status} GQueryType;\r
+\r
+/* Messages that are passed to the ListCallBackFn */\r
+#define        LIST_STATECHANGED               1 // ServerListState changed, no parameters\r
+#define LIST_PROGRESS                  2 // New Server updated, param1 = GServer (server updated), param2 = percent done\r
+\r
+//Single callback function into the client app for status  / progress messages\r
+typedef void (*ListCallBackFn)(GServerList serverlist, int msg, void *instance, void *param1, void *param2);\r
+\r
+// Callback function used for enumerating the keys/values for a server\r
+typedef void (*KeyEnumFn)(char *key, char *value, void *instance);\r
+\r
+\r
+/* Callback parameter types (e.g. window handle, thread window, event, function etc) */\r
+#define GCALLBACK_FUNCTION 1   //only currently supported callback type\r
+\r
+#define GE_NOERROR             0\r
+#define GE_NOSOCKET            1\r
+#define GE_NODNS               2\r
+#define GE_NOCONNECT   3\r
+#define GE_BUSY                        4\r
+#define GE_DATAERROR   5\r
+\r
+/*********\r
+Server List Functions\r
+**********/\r
+\r
+/* ServerListNew\r
+----------------\r
+Creates and returns a new (empty) GServerList.\r
+gamename - game to ask the master for servers\r
+enginename - the engine name that matches your seckey\r
+seckey - secret key used for talking to the master\r
+maxconcupdates - max number of concurent updates (10-15 for modem users, 20-30 for high-bandwidth)\r
+CallBackFn - The function or handle used for progress updates\r
+CallBackFnType - The type of the CallBackFn parameter (from the #define list above)\r
+instance - user-defined instance data (e.g. structure or object pointer) */\r
+GServerList    ServerListNew(char *gamename,char *enginename, char *seckey, int maxconcupdates, void *CallBackFn, int CallBackFnType, void *instance);\r
+\r
+/* ServerListFree\r
+-----------------\r
+Free a GServerList and all internal sturctures and servers */\r
+void ServerListFree(GServerList serverlist);\r
+\r
+/* ServerListUpdate\r
+-------------------\r
+Start updating a GServerList from the master server.\r
+Can only be called when the list is in the sl_idle state, will return an error otherwise.\r
+The server list will be retrieved from the master, then each server in the list will be\r
+added and updated. \r
+If async = false, the function will not return until the entire list has been processed, or\r
+ServerListHalt has been called (from another thread or from the progress callback)\r
+If async = true, the function will return immediately, but you must call ServerListThink \r
+every ~10ms for list processing and querying to occur. */ \r
+GError ServerListUpdate(GServerList serverlist, gbool async);\r
+\r
+\r
+/* ServerListUpdate2\r
+-------------------------\r
+Identical to ServerListUpdate, except that the server list is filtered\r
+on the server side by the filter, and you can specify the type of query to perform.\r
+If you want to specify the type of query, but no filter, simply pass NULL for filter.\r
+Filter is a SQL-style boolean statement such as:\r
+"gametype='ctf'"\r
+"numplayers > 1 and numplayers < 8"\r
+"gamestate='openplaying'"\r
+The filter can be arbitrarily complex and supports all standard SQL\r
+groupings and boolean operations. The following fields are available\r
+for filtering:\r
+hostport\r
+gamever\r
+location\r
+hostname\r
+mapname\r
+gametype\r
+gamemode\r
+numplayers\r
+maxplayers*/ \r
+GError ServerListUpdate2(GServerList serverlist, gbool async, char *filter, GQueryType querytype);\r
+\r
+\r
+\r
+/* ServerListLANUpdate\r
+-------------------\r
+Search for servers on the local LAN and start updating them. This will search over a\r
+range of ports for any servers within broadcast range.\r
+Can only be called when the list is in the sl_idle state, will return an error otherwise.\r
+A query will be sent out on each port between start and end (inclusive) on intervals of delta\r
+(e.g. 10,20,2 would search 10,12,14,16,18,20)\r
+If async = false, the function will not return until the entire list has been processed, or\r
+ServerListHalt has been called (from another thread or from the progress callback)\r
+If async = true, the function will return immediately, but you must call ServerListThink \r
+every ~10ms for list processing and querying to occur. */ //TODO: add filter\r
+GError ServerListLANUpdate(GServerList serverlist, gbool async, int startsearchport, int endsearchport, int searchdelta);\r
+\r
+/* ServerListAuxUpdate\r
+-------------------\r
+Adds an "auxilliary" server -- this is a way to either update a server manually or\r
+get additional/updated information from a server already in the list.\r
+If there is an update currently in progress (not sl_idle), the aux server will\r
+be processed along with the current batch. If the state is idle, this function behaves\r
+like ServerListUpdate() and starts the engine.\r
+If async = false, the function will not return until the server has been processed, or\r
+ServerListHalt has been called (from another thread or from the progress callback)\r
+If async = true, the function will return immediately, but you must call ServerListThink \r
+every ~10ms for list processing and querying to occur. Note that async has no effect\r
+if an update is in progress. */\r
+GError ServerListAuxUpdate(GServerList serverlist, char *ip, int port, gbool async, GQueryType querytype);\r
+\r
+/* ServerListRemoveServer\r
+-------------------------\r
+Removes a single server from the list. Frees the memory associated with the GServer.\r
+Do not reference the GServer object after calling this function. Note that this changes\r
+the indexes of the servers in the list. You should never store the indexes of the servers\r
+in the list, just their GServer objects */\r
+void ServerListRemoveServer(GServerList serverlist, char *ip, int port);\r
+\r
+/* ServerListThink\r
+------------------\r
+For use with Async Updates. This needs to be called every ~10ms for list processing and\r
+updating to occur during async server list updates */\r
+GError ServerListThink(GServerList serverlist); \r
+\r
+/* ServerListHalt\r
+-----------------\r
+Halts the current updates batch  */\r
+GError ServerListHalt(GServerList serverlist);\r
+\r
+/* ServerListClear\r
+------------------\r
+Clear and free all of the servers from the server list.\r
+List must be in the sl_idle state */\r
+GError ServerListClear(GServerList serverlist);\r
+\r
+/* ServerListState\r
+------------------\r
+Returns the current state of the server list */\r
+GServerListState ServerListState(GServerList serverlist);\r
+\r
+/* ServerListErrorDesc\r
+----------------------\r
+Returns a static string description of the specified error */\r
+char *ServerListErrorDesc(GServerList serverlist, GError error);\r
+\r
+/* ServerListGetServer\r
+----------------------\r
+Returns the server at the specified index, or NULL if the index is out of bounds */\r
+GServer ServerListGetServer(GServerList serverlist, int index);\r
+\r
+/* ServerListCount\r
+------------------\r
+Returns the number of servers on the specified list. Indexing is 0 based, so\r
+the actual server indexes are 0 <= valid index < Count */\r
+int ServerListCount(GServerList serverlist);\r
+\r
+/* ServerListSort\r
+-----------------\r
+Sort the server list in either ascending or descending order using the \r
+specified comparemode.\r
+sortkey can be a normal server key, or "ping" or "hostaddr" */\r
+void ServerListSort(GServerList serverlist, gbool ascending, char *sortkey, GCompareMode comparemode);\r
+\r
+\r
+/**************\r
+ServerFunctions\r
+***************/\r
+\r
+/* ServerGetPing\r
+----------------\r
+Returns the ping for the specified server. \r
+A ping of 9999 indicates that the server has not been queried or did not respond */\r
+int ServerGetPing(GServer server);\r
+\r
+/* ServerGetAddress\r
+-------------------\r
+Returns the string, dotted IP address for the specified server */\r
+char *ServerGetAddress(GServer server);\r
+\r
+/* ServerGetInetAddress\r
+-------------------\r
+Returns the network-ordered IP address for the specified server */\r
+unsigned int ServerGetInetAddress(GServer server);\r
+\r
+\r
+/* ServerGetPort\r
+----------------\r
+Returns the "query" port for the specified server. If the game uses a seperate\r
+"game" port, it can be retrieved via: ServerGetIntValue(server,"hostport",0) */\r
+int ServerGetQueryPort(GServer server);\r
+\r
+/* ServerGet[]Value\r
+------------------\r
+Returns the value for the specified key. If the key does not exist for the\r
+given server, the default value is returned */\r
+char *ServerGetStringValue(GServer server, char *key, char *sdefault);\r
+int ServerGetIntValue(GServer server, char *key, int idefault);\r
+double ServerGetFloatValue(GServer server, char *key, double fdefault);\r
+\r
+\r
+/* ServerGetPlayer[]Value\r
+------------------\r
+Returns the value for the specified key on the specified player. If the key does not exist for the\r
+given server, the default value is returned */\r
+char *ServerGetPlayerStringValue(GServer server, int playernum, char *key, char *sdefault);\r
+int ServerGetPlayerIntValue(GServer server, int playernum, char *key, int idefault);\r
+double ServerGetPlayerFloatValue(GServer server, int playernum, char *key, double fdefault);\r
+\r
+/* ServerEnumKeys \r
+-----------------\r
+Enumerates the keys/values for a given server by calling KeyEnumFn with each\r
+key/value. The user-defined instance data will be passed to the KeyFn callback */\r
+void ServerEnumKeys(GServer server, KeyEnumFn KeyFn, void *instance);\r
+\r
+#ifdef __cplusplus\r
+}\r
+#endif\r
+\r
+#endif //_GOACENG_H
\ No newline at end of file
diff --git a/LT2/lithshared/gamespy/cengine/vssver.scc b/LT2/lithshared/gamespy/cengine/vssver.scc
new file mode 100644 (file)
index 0000000..bbc0de2
Binary files /dev/null and b/LT2/lithshared/gamespy/cengine/vssver.scc differ
diff --git a/LT2/lithshared/gamespy/gamespyclientmgr/GameSpyPlayer.h b/LT2/lithshared/gamespy/gamespyclientmgr/GameSpyPlayer.h
new file mode 100644 (file)
index 0000000..ab847fa
--- /dev/null
@@ -0,0 +1,61 @@
+/****************************************************************************\r
+;\r
+;       MODULE:                GAMESPYPLAYER (.H)\r
+;\r
+;      PURPOSE:                Game Spy Player Encapsulation Class\r
+;\r
+;      HISTORY:                08/01/00  [blg]  This file was created\r
+;\r
+;      COMMENT:                Copyright (c) 2000, LithTech, Inc.\r
+;\r
+****************************************************************************/\r
+\r
+#pragma once\r
+\r
+\r
+// Includes...\r
+\r
+#ifdef GSCM_LOCAL_BUILD\r
+#include "..\cengine\goaceng.h"\r
+#else\r
+#include "..\gamespy\cengine\goaceng.h"\r
+#endif\r
+\r
+\r
+// Classes...\r
+\r
+class CGameSpyPlayer\r
+{\r
+       // Member functions...\r
+\r
+public:\r
+       CGameSpyPlayer() { Clear(); }\r
+       ~CGameSpyPlayer() { Term(); }\r
+\r
+       BOOL                            Init(GServer pGServer, int nIndex);\r
+       void                            Term();\r
+\r
+       BOOL                            IsInitialized() { return(m_bInit); }\r
+\r
+       char*                           GetName();\r
+       int                                     GetPing();\r
+       int                                     GetFrags();\r
+       void*                           GetHandle() { return((void*)m_nIndex); }\r
+\r
+       char*                           GetStringValue(char* sKey, char* sDefault = "");\r
+       int                                     GetIntValue(char* sKey, int nDefault = 0);\r
+       float                           GetFloatValue(char* sKey, float fDefault = 0);\r
+\r
+protected:\r
+       void                            Clear();\r
+\r
+\r
+       // Member variables...\r
+\r
+private:\r
+       GServer                         m_pGServer;\r
+       int                                     m_nIndex;\r
+       BOOL                            m_bInit;\r
+};\r
+\r
+\r
diff --git a/LT2/lithshared/gamespy/gamespyclientmgr/GameSpyServer.h b/LT2/lithshared/gamespy/gamespyclientmgr/GameSpyServer.h
new file mode 100644 (file)
index 0000000..2348d8f
--- /dev/null
@@ -0,0 +1,90 @@
+/****************************************************************************\r
+;\r
+;       MODULE:                GAMESPYSERVER (.H)\r
+;\r
+;      PURPOSE:                Game Spy Server Encapsulation Class\r
+;\r
+;      HISTORY:                08/01/00  [blg]  This file was created\r
+;\r
+;      COMMENT:                Copyright (c) 2000, LithTech, Inc.\r
+;\r
+****************************************************************************/\r
+\r
+#pragma once\r
+\r
+\r
+// Includes...\r
+\r
+#ifdef GSCM_LOCAL_BUILD\r
+       #include "..\cengine\goaceng.h"\r
+       #include "gamespyplayer.h"\r
+#else\r
+       #include "..\gamespy\cengine\goaceng.h"\r
+       #include "..\gamespy\gamespyclientmgr\gamespyplayer.h"\r
+#endif\r
+\r
+\r
+// Defines...\r
+\r
+#define        GSS_MAX_PLAYERS         64\r
+\r
+#define GSS_SORT_NAME          0\r
+#define GSS_SORT_PING          1\r
+#define GSS_SORT_FRAGS         2\r
+\r
+\r
+// Classes...\r
+\r
+class CGameSpyServer\r
+{\r
+       // Member functions...\r
+\r
+public:\r
+       CGameSpyServer() { Clear(); }\r
+       ~CGameSpyServer() { Term(); }\r
+\r
+       BOOL                            Init(GServer pServer);\r
+       void                            Term();\r
+\r
+       BOOL                            IsInitialized() { return(m_bInit); }\r
+\r
+       char*                           GetName();\r
+       char*                           GetGameType();\r
+       int                                     GetPing();\r
+       int                                     GetNumPlayers();\r
+       int                                     GetMaxPlayers();\r
+       char*                           GetMap();\r
+       char*                           GetAddress();\r
+       void*                           GetHandle() { return(m_pGServer); }\r
+\r
+       char*                           GetStringValue(char* sKey, char* sDefault = "");\r
+       int                                     GetIntValue(char* sKey, int nDefault = 0);\r
+       float                           GetFloatValue(char* sKey, float fDefault = 0);\r
+\r
+       int                                     UpdatePlayers();\r
+\r
+       CGameSpyPlayer*         GetPlayer(int nIndex);\r
+       CGameSpyPlayer*         GetFirstPlayer();\r
+       CGameSpyPlayer*         GetNextPlayer();\r
+\r
+       void                            SortPlayersByName(BOOL bAscending = TRUE) { SortPlayers(bAscending, GSS_SORT_NAME); }\r
+       void                            SortPlayersByPing(BOOL bAscending = TRUE) { SortPlayers(bAscending, GSS_SORT_PING); }\r
+       void                            SortPlayersByFrags(BOOL bAscending = FALSE) { SortPlayers(bAscending, GSS_SORT_FRAGS); }\r
+\r
+protected:\r
+       void                            Clear();\r
+       void                            SortPlayers(BOOL bAscending, int nKey);\r
+\r
+\r
+       // Member variables...\r
+\r
+private:\r
+       GServer                         m_pGServer;\r
+       BOOL                            m_bInit;\r
+       CGameSpyPlayer          m_aPlayers[GSS_MAX_PLAYERS];\r
+       int                                     m_nNumPlayers;\r
+       int                                     m_nPlayerIndex;\r
+};\r
+\r
+\r
+\r
diff --git a/LT2/lithshared/gamespy/gamespyclientmgr/vssver.scc b/LT2/lithshared/gamespy/gamespyclientmgr/vssver.scc
new file mode 100644 (file)
index 0000000..98e672c
Binary files /dev/null and b/LT2/lithshared/gamespy/gamespyclientmgr/vssver.scc differ
diff --git a/LT2/lithshared/incs/GameSpyClientMgr.h b/LT2/lithshared/incs/GameSpyClientMgr.h
new file mode 100644 (file)
index 0000000..925068a
--- /dev/null
@@ -0,0 +1,105 @@
+/****************************************************************************\r
+;\r
+;       MODULE:                GAMESPYCLIENTMGR (.H)\r
+;\r
+;      PURPOSE:                Game Spy Client Manager\r
+;\r
+;      HISTORY:                08/01/00  [blg]  This file was created\r
+;\r
+;      COMMENT:                Copyright (c) 2000, LithTech, Inc.\r
+;\r
+****************************************************************************/\r
+\r
+#pragma once\r
+\r
+\r
+// Includes...\r
+\r
+#ifdef GSCM_LOCAL_BUILD\r
+       #include "..\cengine\goaceng.h"\r
+       #include "gamespyserver.h"\r
+#else\r
+       #include "..\gamespy\cengine\goaceng.h"\r
+       #include "..\gamespy\gamespyclientmgr\gamespyserver.h"\r
+#endif\r
+\r
+\r
+// Libraries...\r
+\r
+#pragma comment(lib, "wsock32.lib")\r
+\r
+\r
+// Defines...\r
+\r
+#define        GSCM_MAX_STRING         128\r
+#define        GSCM_MAX_UPDATES        12\r
+\r
+\r
+// Classes...\r
+\r
+class CGameSpyClientMgr\r
+{\r
+       // Member functions...\r
+\r
+public:\r
+       CGameSpyClientMgr() { Clear(); }\r
+       ~CGameSpyClientMgr() { Term(); }\r
+\r
+       BOOL                            Init(const char* sGameName, const char* sSecretKey);\r
+       void                            Term();\r
+\r
+       BOOL                            IsInitialized() { return(m_bInit); }\r
+\r
+       int                                     GetNumServers();\r
+       int                                     GetState();\r
+       int                                     GetProgress() { return(m_nProgress); }\r
+\r
+       void                            ClearServers();\r
+       BOOL                            RefreshServers(BOOL bAsync = TRUE);\r
+\r
+       CGameSpyServer*         GetServer(int nIndex);\r
+       CGameSpyServer*         GetServerFromHandle(void* pHandle);\r
+       CGameSpyServer*         GetFirstServer();\r
+       CGameSpyServer*         GetNextServer();\r
+\r
+       BOOL                            ExistNewServer();\r
+\r
+       void                            SortServersByName(BOOL bAscending = TRUE);\r
+       void                            SortServersByPing(BOOL bAscending = TRUE);\r
+       void                            SortServersByPlayers(BOOL bAscending = FALSE);\r
+       void                            SortServersByMap(BOOL bAscending = TRUE);\r
+       void                            SortServersByGameType(BOOL bAscending = TRUE);\r
+       void                            SortServers(BOOL bAscending, char* sSortKey, GCompareMode eCompareMode);\r
+\r
+       void                            Update();\r
+\r
+       void                            HandleCallback(GServerList pServerList, int nMsg, void* pParam1, void* pParam2);\r
+\r
+\r
+protected:\r
+       void                            Clear();\r
+\r
+       BOOL                            CreateServerList();\r
+       void                            FreeServerList();\r
+\r
+       CGameSpyServer*         CreateGameSpyServer(GServer pGServer);\r
+\r
+\r
+       // Member variables...\r
+\r
+private:\r
+       BOOL                            m_bInit;\r
+       GServerList                     m_pServerList;\r
+       char                            m_sGameName[GSCM_MAX_STRING];\r
+       char                            m_sSecretKey[GSCM_MAX_STRING];\r
+       int                                     m_nGetServerIndex;\r
+       int                                     m_nProgress;\r
+       BOOL                            m_bNewServer;\r
+       CGameSpyServer          m_CurServer;\r
+};\r
+\r
+\r
+\r
+\r
+\r
+\r
diff --git a/LT2/lithshared/incs/GameSpyMgr.h b/LT2/lithshared/incs/GameSpyMgr.h
new file mode 100644 (file)
index 0000000..cc28dc8
--- /dev/null
@@ -0,0 +1,184 @@
+/****************************************************************************\r
+;\r
+;       MODULE:                GAMESPYMGR (.H)\r
+;\r
+;      PURPOSE:                Game Spy Manager\r
+;\r
+;      HISTORY:                09/21/98  [blg]  This file was created\r
+;\r
+;      COMMENT:                Copyright (c) 1998, Monolith Productions, Inc.\r
+;\r
+****************************************************************************/\r
+\r
+\r
+#ifndef _GAMESPYMGR_H_\r
+#define _GAMESPYMGR_H_\r
+\r
+\r
+// Defines...\r
+\r
+#define        MAX_RESPONSE            4096\r
+#define TIMER_HEARTBEAT                1 * 60 * 1000\r
+#define VALIDATE_SIZE          6\r
+\r
+#define GSMF_USEGAMEPORTFORHEARTBEAT   0x00000001\r
+\r
+\r
+// Includes...\r
+\r
+#include "mfcstub.h"\r
+\r
+\r
+// Classes...\r
+\r
+class CGameSpyQueryInfo\r
+{\r
+       // Member functions...\r
+\r
+public:\r
+       CGameSpyQueryInfo() { Clear(); }\r
+\r
+       void                                    Clear();\r
+\r
+       BOOL                                    IsValid();\r
+\r
+       CString                                 GetData() { return(m_sData); }\r
+       CString                                 GetAddr() { return(m_sAddr); }\r
+       DWORD                                   GetPort() { return(m_dwPort); }\r
+\r
+       void                                    SetData(const char* sData) { m_sData = sData; }\r
+       void                                    SetAddr(const char* sAddr) { m_sAddr = sAddr; }\r
+       void                                    SetPort(DWORD dwPort) { m_dwPort = dwPort; }\r
+\r
+\r
+       // Member variables...\r
+\r
+private:\r
+       CString                                 m_sData;\r
+       CString                                 m_sAddr;\r
+       DWORD                                   m_dwPort;\r
+};\r
+\r
+class CGameSpySender\r
+{\r
+public:\r
+       virtual void    SendTo(const void* pData, unsigned long len, const char* sAddr, unsigned long port) = 0;\r
+};\r
+\r
+class CGameSpyMgr\r
+{\r
+       // Member functions...\r
+\r
+public:\r
+       CGameSpyMgr() { Clear(); }\r
+       ~CGameSpyMgr() { Term(); }\r
+\r
+       virtual BOOL                    Init(const char* sGameName, const char* sGameVer, const char* sGameKey, int nGameLoc, int nGamePort, int nSpyPort, DWORD dwFlags = 0);\r
+       virtual void                    Term();\r
+       virtual void                    Clear();\r
+\r
+       virtual void                    Update();\r
+\r
+       BOOL                                    OnQuery(CGameSpyQueryInfo* pQueryInfo);\r
+       BOOL                                    OnQuery(char* sAddr, DWORD dwPort, char* sData, int nLen);\r
+       BOOL                                    OnEchoQuery(const char* sQuery);\r
+       BOOL                                    OnSecureQuery(const char* sValue);\r
+       BOOL                                    OnBasicQuery();\r
+       BOOL                                    OnStatusQuery();\r
+\r
+       virtual BOOL                    OnInfoQuery() = 0;\r
+       virtual BOOL                    OnRulesQuery() = 0;\r
+       virtual BOOL                    OnPlayersQuery() = 0;\r
+\r
+       void                                    SendResponseInfo(const char* sKey, const char* sValue);\r
+       void                                    SendResponseInfo(const char* sKey, int nValue);\r
+\r
+       DWORD                                   GetGamePort() { return(m_dwGamePort); }\r
+       DWORD                                   GetSpyPort() { return(m_dwSpyPort); }\r
+\r
+       void                                    SetGameSpyAddr(const char* sAddr) { m_sGameSpyAddr = sAddr; }\r
+       void                                    SetSendHandler(CGameSpySender* pHandler) { m_pSender = pHandler; }\r
+\r
+       BOOL                                    UseGamePortForHeartbeat() { return(m_dwFlags & GSMF_USEGAMEPORTFORHEARTBEAT); }\r
+\r
+private:\r
+       void                                    StartResponse(const char* sAddr, DWORD dwPort);\r
+       void                                    SendResponse();\r
+       void                                    FlushResponse();\r
+\r
+       void                                    AddResponseQueryID();\r
+       BOOL                                    UpdateHeartbeat();\r
+\r
+       CString                                 GetFirstQueryToken(const char* sQuery);\r
+       CString                                 GetNextQueryToken();\r
+\r
+       BOOL                                    SendSocketString(const char* sAddr, DWORD dwPort, const char* sText, int nLength = -1);\r
+\r
+\r
+       // Member variables...\r
+\r
+protected:\r
+       CString                                 m_sGameName;\r
+       CString                                 m_sGameVer;\r
+       CString                                 m_sGameKey;\r
+       CString                                 m_sGameLoc;\r
+       CString                                 m_sGameSpyAddr;\r
+       DWORD                                   m_dwQueryID;\r
+       int                                             m_nPacket;\r
+       char                                    m_sResponse[MAX_RESPONSE + 64];\r
+       DWORD                                   m_timerHeartbeat;\r
+       CGameSpySender*                 m_pSender;\r
+       DWORD                                   m_dwGamePort;\r
+       DWORD                                   m_dwSpyPort;\r
+       CString                                 m_sResponseAddr;\r
+       DWORD                                   m_dwResponsePort;\r
+       DWORD                                   m_dwFlags;\r
+       BOOL                                    m_bInit;\r
+};\r
+\r
+\r
+// Inlines...\r
+\r
+inline void CGameSpyQueryInfo::Clear()\r
+{\r
+       m_sData.Empty();\r
+       m_sAddr.Empty();\r
+       m_dwPort = 0;\r
+}\r
+\r
+inline BOOL CGameSpyQueryInfo::IsValid()\r
+{\r
+       if (m_sData.IsEmpty()) return(FALSE);\r
+       if (m_sAddr.IsEmpty()) return(FALSE);\r
+\r
+       return(TRUE);\r
+}\r
+\r
+inline void CGameSpyMgr::Clear()\r
+{\r
+       m_sGameName.Empty();\r
+       m_sGameVer.Empty();\r
+       m_sGameKey.Empty();\r
+       m_sGameLoc.Empty();\r
+       m_sGameSpyAddr.Empty();\r
+       m_sResponseAddr.Empty();\r
+\r
+       m_sResponse[0] = '\0';\r
+\r
+       m_dwQueryID      = 1;\r
+       m_nPacket        = 0;\r
+       m_timerHeartbeat = 0;\r
+       m_dwGamePort     = 0;\r
+       m_dwSpyPort      = 0;\r
+       m_dwResponsePort = 0;\r
+       m_dwFlags        = 0;\r
+       m_pSender        = NULL;\r
+       m_bInit          = FALSE;\r
+}\r
+\r
+\r
+// EOF...\r
+\r
+#endif\r
+\r
+       
\ No newline at end of file
diff --git a/LT2/lithshared/incs/WonClientMgr.h b/LT2/lithshared/incs/WonClientMgr.h
new file mode 100644 (file)
index 0000000..f0b0706
--- /dev/null
@@ -0,0 +1,172 @@
+/****************************************************************************\r
+;\r
+;       MODULE:                WonClientMgr (.h)\r
+;\r
+;      PURPOSE:                Implements game client side WON functionality\r
+;\r
+;      HISTORY:                11/18/99  [blg]  This file was created\r
+;\r
+;      COMMENT:                Copyright (c) 1999, Monolith Productions, Inc.\r
+;\r
+****************************************************************************/\r
+\r
+\r
+#ifndef _WONCLIENTMGR_H_\r
+#define _WONCLIENTMGR_H_\r
+\r
+\r
+// Includes...\r
+\r
+#include "wonshared.h"\r
+#include <list>\r
+#include <algorithm>\r
+\r
+\r
+// Defines\r
+\r
+#define WCM_MAX_WON_SERVERS                    16              // maximums\r
+\r
+#define WCM_DEFAULT_PING_TIMEOUT       5000    // default ping timeout (in ms)\r
+#define WCM_DEFAULT_GAME_TIMEOUT       10000   // default game timeout (in ms)\r
+\r
+#define WCM_PS_IDLE                                    0               // ping status\r
+#define WCM_PS_BUSY                                    1\r
+\r
+#define WCM_GS_IDLE                                    0               // get status\r
+#define WCM_GS_BUSY                                    1\r
+\r
+#define WCM_DS_UNCHANGED                       0               // data status\r
+#define WCM_DS_CHANGED                         1\r
+\r
+#define WCM_AS_IDLE                                    0               // all status\r
+#define WCM_AS_BUSY                                    1\r
+\r
+#define WCM_PING_FREQ                          100             // next ping frequency (in ms)\r
+\r
+\r
+// Libs...\r
+#ifndef NO_PRAGMA_LIBS\r
+\r
+#ifdef _DEBUG\r
+#pragma comment (lib, "\\proj\\libs\\debug\\wonclientmgr.lib")\r
+#else\r
+#pragma comment (lib, "\\proj\\libs\\release\\wonclientmgr.lib")\r
+#endif\r
+\r
+#endif\r
+\r
+\r
+// Typedefs...\r
+\r
+typedef std::list<CWonGameService*> WONGAMELIST;\r
+typedef WONGAMELIST::iterator          WONGAMELISTITER;\r
+\r
+\r
+// Externs...\r
+\r
+class CWonClientMgr;\r
+\r
+\r
+// Structures...\r
+\r
+typedef struct WonPingInst_struct\r
+{\r
+       CWonClientMgr*          pWonClientMgr;\r
+       CWonGameService*        pGame;\r
+       DWORD                           dwPing;\r
+       HWONCOMPLETION          hCompletion;\r
+\r
+}      WONPINGINST;\r
+\r
+\r
+// Classes...\r
+\r
+class CWonClientMgr\r
+{\r
+       // Member functions...\r
+\r
+public:\r
+       CWonClientMgr() { Clear(); }\r
+       virtual ~CWonClientMgr() { Term(); }\r
+\r
+       virtual LTRESULT                Init(const char* sGameDir, const char* sServiceName, DDWORD dwFlags = 0);\r
+       virtual LTRESULT                Term();\r
+       virtual LTRESULT                Clear();\r
+\r
+       virtual LTRESULT                AddWonServer(CWonNetAddress& wadServer);\r
+\r
+       virtual LTRESULT                GetWonGameServicesAndPingsAsync(DDWORD dwGameTimeOut = WCM_DEFAULT_GAME_TIMEOUT, DWORD dwPingTimeOut = WCM_DEFAULT_PING_TIMEOUT);\r
+       virtual LTRESULT                GetWonGameServices(DDWORD dwTimeOut = WCM_DEFAULT_GAME_TIMEOUT);\r
+       virtual LTRESULT                GetWonGameServicesAsync(DDWORD dwTimeOut = WCM_DEFAULT_GAME_TIMEOUT);\r
+       virtual LTRESULT                GetGameServicePings(DWORD dwTimeOut = WCM_DEFAULT_PING_TIMEOUT);\r
+       virtual LTRESULT                GetGameServicePingsAsync(DWORD dwTimeOut = WCM_DEFAULT_PING_TIMEOUT);\r
+       virtual LTRESULT                GetGameServicePingAsync(CWonGameService* pGame, DWORD dwTimeOut = WCM_DEFAULT_PING_TIMEOUT);\r
+       virtual LTRESULT                GetFirstGameService(CWonGameService** ppGame);\r
+       virtual LTRESULT                GetNextGameService(CWonGameService** ppGame);\r
+       virtual LTRESULT                GetNumGameServices(DDWORD* pNumServices);\r
+       virtual LTRESULT                GetAsyncGameStatus(DDWORD* pGetStatus);\r
+       virtual LTRESULT                GetAsyncPingStatus(DDWORD* pPingStatus);\r
+       virtual LTRESULT                GetAsyncDataStatus(DDWORD* pDataStatus);\r
+       virtual LTRESULT                GetAsyncAllStatus(DDWORD* pDataStatus);\r
+       virtual LTRESULT                GetAsyncGameCompletionPercentage(DDWORD* pPercent);\r
+       virtual LTRESULT                GetAsyncPingCompletionPercentage(DDWORD* pPercent);\r
+       virtual LTRESULT                GetAllGameServiceData(CWonGameService* pGame, DWORD dwTimeOut = WCM_DEFAULT_GAME_TIMEOUT);\r
+       virtual LTRESULT                GetAllGameServiceDataAsync(CWonGameService* pGame, DDWORD dwTimeOut = WCM_DEFAULT_GAME_TIMEOUT);\r
+\r
+       virtual LTRESULT                RemoveAllGameServices();\r
+\r
+       virtual LTRESULT                SortGameServices(DDWORD dwSortKey, DDWORD dwSortDir);\r
+\r
+       virtual LTRESULT                OnGetDirCallback(HWONDIRENTITY hDirEntity);\r
+       virtual LTRESULT                OnAsyncGetGameCompletion();\r
+       virtual LTRESULT                OnAsyncPingCompletion(WONPINGINST* pPingInst);\r
+       virtual LTRESULT                OnAsyncAllDataCompletion();\r
+\r
+       virtual LTRESULT                Update();\r
+\r
+protected:\r
+       virtual BOOL                            PingGameAsync(CWonGameService* pGame);\r
+       virtual CWonGameService*        AddWonGameService(const char* sName, const char* sDisplayName, CWonNetAddress& wadService, CWonGameHeader* pHdr, DDWORD dwFlags = 0);\r
+       virtual void                            PreGetServices();\r
+       virtual CWonGameService*        GetNextGameServiceToPing();\r
+\r
+\r
+       // Member variables...\r
+\r
+protected:\r
+       DDWORD                                  m_dwFlags;\r
+       char                                    m_sGameDir[WSH_MAX_STRING_LEN];\r
+       char                                    m_sService[WSH_MAX_STRING_LEN];\r
+       WONIPAddress                    m_aWonServers[WCM_MAX_WON_SERVERS];\r
+       DDWORD                                  m_dwNumWonServers;\r
+       DDWORD                                  m_dwNumAllWonServices;\r
+       WONGAMELIST                             m_listGames;\r
+       WONGAMELIST                             m_listPingGames;\r
+       WONGAMELISTITER                 m_iterGames;\r
+       WONGAMELISTITER                 m_iterPings;\r
+       DDWORD                                  m_dwAsyncGameStatus;\r
+       DDWORD                                  m_dwAsyncPingStatus;\r
+       DDWORD                                  m_dwAsyncDataStatus;\r
+       DDWORD                                  m_dwAsyncAllStatus;\r
+       DDWORD                                  m_dwNumPingsDone;\r
+       DDWORD                                  m_dwNumGameGetsDone;\r
+       DDWORD                                  m_dwPingTimeOut;\r
+       CWonGameService*                m_pAllDataGame;\r
+       HWONCOMPLETION                  m_hCurPingCompletion;\r
+       HWONCOMPLETION                  m_hGetGameCompletion;\r
+       HWONCOMPLETION                  m_hAllDataCompletion;\r
+       HWONDIRENTITY                   m_hAllDataDirEntity;\r
+       DBOOL                                   m_bWantAsyncPings;\r
+       DBOOL                                   m_bSingleGamePing;\r
+       DBOOL                                   m_bValid;\r
+       DBOOL                                   m_bPingCS;\r
+       CRITICAL_SECTION                m_csPings;\r
+       DDWORD                                  m_timeNextPing;\r
+};\r
+\r
+\r
+// EOF...\r
+\r
+#endif\r
+\r
+\r
diff --git a/LT2/lithshared/incs/WonServerMgr.h b/LT2/lithshared/incs/WonServerMgr.h
new file mode 100644 (file)
index 0000000..98ee572
--- /dev/null
@@ -0,0 +1,96 @@
+/****************************************************************************\r
+;\r
+;       MODULE:                WonServerMgr (.h)\r
+;\r
+;      PURPOSE:                Implements game server side WON functionality\r
+;\r
+;      HISTORY:                11/16/99  [blg]  This file was created\r
+;\r
+;      COMMENT:                Copyright (c) 1999, Monolith Productions, Inc.\r
+;\r
+****************************************************************************/\r
+\r
+\r
+#ifndef _WONSERVERMGR_H_\r
+#define _WONSERVERMGR_H_\r
+\r
+\r
+// Includes...\r
+\r
+#include "wonshared.h"\r
+\r
+\r
+// Defines\r
+\r
+#define WSM_MAX_WON_SERVERS                    16\r
+\r
+#define WSM_DEFAULT_GAME_TIMEOUT       10000\r
+\r
+\r
+// Libs...\r
+#ifndef NO_PRAGMA_LIBS\r
+\r
+#ifdef _DEBUG\r
+#pragma comment (lib, "\\proj\\libs\\debug\\wonservermgr.lib")\r
+#else\r
+#pragma comment (lib, "\\proj\\libs\\release\\wonservermgr.lib")\r
+#endif\r
+\r
+#endif\r
+\r
+// Classes...\r
+\r
+class CWonServerMgr\r
+{\r
+       // Member functions...\r
+\r
+public:\r
+       CWonServerMgr() { Clear(); }\r
+       virtual ~CWonServerMgr() { Term(); }\r
+\r
+       virtual LTRESULT                Init(const char* sGameDir, const char* sServiceName, DDWORD dwUpdateIntervalSeconds = 60, DDWORD dwFlags = 0);\r
+       virtual LTRESULT                Term();\r
+\r
+       virtual LTRESULT                AddWonServer(CWonNetAddress& wadServer);\r
+\r
+       virtual LTRESULT                CreateGameService(const char* sDisplayName, CWonNetAddress& wadService, CWonGameHeader* pHeader, CWonGamePlayers* pPlayers, CWonGameData* pData);\r
+\r
+       virtual LTRESULT                RegisterGameService(DDWORD dwLifeSpan = 300, DDWORD dwTimeOut = WSM_DEFAULT_GAME_TIMEOUT);\r
+\r
+       virtual LTRESULT                GetGameService(CWonGameService** ppGame);\r
+\r
+       virtual LTRESULT                SetUpdateIntervalSeconds(DDWORD dwUpdateIntervalSeconds);\r
+       virtual LTRESULT                SetNextUpdateTime(DDWORD dwNextUpdateTime);\r
+       virtual LTRESULT                ForceNextUpdate();\r
+\r
+       virtual LTRESULT                UpdateGameService(DDWORD dwTimeOut = WSM_DEFAULT_GAME_TIMEOUT);\r
+\r
+       virtual LTRESULT                RemoveGameService(DDWORD dwTimeOut = WSM_DEFAULT_GAME_TIMEOUT);\r
+\r
+       virtual LTRESULT                Update(DDWORD dwTimeOut = WSM_DEFAULT_GAME_TIMEOUT);\r
+\r
+protected:\r
+       void                                    Clear();\r
+\r
+\r
+       // Member variables...\r
+\r
+protected:\r
+       DDWORD                                  m_dwFlags;\r
+       char                                    m_sGameDir[WSH_MAX_STRING_LEN];\r
+       char                                    m_sService[WSH_MAX_STRING_LEN];\r
+       WONIPAddress                    m_aWonServers[WSM_MAX_WON_SERVERS];\r
+       DDWORD                                  m_dwNumWonServers;\r
+       DDWORD                                  m_dwLifeSpan;\r
+       DDWORD                                  m_dwNextUpdateTime;\r
+       DDWORD                                  m_dwUpdateInterval;\r
+       CWonGameService*                m_pGameService;\r
+       DBOOL                                   m_bValid;\r
+};\r
+\r
+\r
+// EOF...\r
+\r
+#endif\r
+\r
+\r
diff --git a/LT2/lithshared/incs/WonShared.h b/LT2/lithshared/incs/WonShared.h
new file mode 100644 (file)
index 0000000..503d629
--- /dev/null
@@ -0,0 +1,78 @@
+/****************************************************************************\r
+;\r
+;       MODULE:                WonShared (.h)\r
+;\r
+;      PURPOSE:                Implements shared server and client side WON functionality\r
+;\r
+;      HISTORY:                11/18/99  [blg]  This file was created\r
+;\r
+;      COMMENT:                Copyright (c) 1999, Monolith Productions, Inc.\r
+;\r
+****************************************************************************/\r
+\r
+\r
+#ifndef _WONSHARED_H_\r
+#define _WONSHARED_H_\r
+\r
+\r
+// Includes...\r
+\r
+#include "..\won\wonshared\wondefs.h"\r
+#include "..\won\wonshared\wonnetaddress.h"\r
+#include "..\won\wonshared\wondataobject.h"\r
+#include "..\won\wonshared\wongameheader.h"\r
+#include "..\won\wonshared\wongameplayers.h"\r
+#include "..\won\wonshared\wongamedata.h"\r
+#include "..\won\wonshared\wongameservice.h"\r
+\r
+\r
+// Libs...\r
+\r
+#define USE_WON_DLL            // comment this line out to statically link!\r
+\r
+#ifndef NO_PRAGMA_LIBS\r
+\r
+#ifdef _DEBUG\r
+#pragma comment (lib, "\\proj\\libs\\debug\\wonshared.lib")\r
+       #ifdef USE_WON_DLL\r
+       #pragma comment (lib, "\\proj\\won\\api\\debug\\wondll.lib")\r
+       #else\r
+       #pragma comment (lib, "\\proj\\won\\api\\debug\\titanapi.lib")\r
+       #endif\r
+#else\r
+#pragma comment (lib, "\\proj\\libs\\release\\wonshared.lib")\r
+       #ifdef USE_WON_DLL\r
+       #pragma comment (lib, "\\proj\\won\\api\\release\\wondll.lib")\r
+       #else\r
+       #pragma comment (lib, "\\proj\\won\\api\\release\\titanapi.lib")\r
+       #endif\r
+#endif\r
+\r
+#endif \r
+\r
+#pragma comment (lib, "winmm.lib")\r
+\r
+\r
+\r
+\r
+// Classes...\r
+\r
+class CWonShared\r
+{\r
+       // Static Member functions...\r
+\r
+public:\r
+       static  void                    Init();\r
+       static  void                    Term();\r
+\r
+\r
+       // Static member variables...\r
+\r
+private:\r
+       static  int                             m_nRef;\r
+};\r
+\r
+\r
+// EOF...\r
+\r
+#endif\r
diff --git a/LT2/lithshared/incs/butemgr.h b/LT2/lithshared/incs/butemgr.h
new file mode 100644 (file)
index 0000000..46d9df3
--- /dev/null
@@ -0,0 +1,592 @@
+#if !defined(_BUTEMGR_H_)\r
+#define _BUTEMGR_H_\r
+\r
+#include "limits.h"\r
+#include "float.h"\r
+#include "fstream.h"\r
+#include "strstrea.h"\r
+#include "ztools.h"\r
+#include "..\cryptmgr\cryptmgr.h"\r
+#include "..\butemgr\avector.h"\r
+#include "..\butemgr\arange.h"\r
+\r
+#if defined(_USE_REZFILE_)\r
+#include "rezmgr.h"\r
+#endif\r
+\r
+#include "..\lith\lithtypes.h"\r
+\r
+\r
+#ifndef NO_PRAGMA_LIBS\r
+       #if defined(_DEBUG) && defined(__AFX_H__) && defined(_AFXDLL)\r
+               #pragma comment (lib, "\\Proj\\Libs\\Debug\\ButeMgrMfcDll.lib")\r
+       #elif !defined(_DEBUG) && defined(__AFX_H__) && defined(_AFXDLL)\r
+               #pragma comment (lib, "\\Proj\\Libs\\Release\\ButeMgrMfcDll.lib")\r
+       #elif defined(_DEBUG) && defined(__AFX_H__) && !defined(_AFXDLL)\r
+               #pragma comment (lib, "\\Proj\\Libs\\Debug\\ButeMgr.lib")\r
+       #elif !defined(_DEBUG) && defined(__AFX_H__) && !defined(_AFXDLL)\r
+               #pragma comment (lib, "\\Proj\\Libs\\Release\\ButeMgr.lib")\r
+       #elif defined(_DEBUG) && !defined(__AFX_H__)\r
+               #pragma comment (lib, "\\Proj\\Libs\\Debug\\ButeMgrNoMFC.lib")\r
+       #elif !defined(_DEBUG) && !defined(__AFX_H__)\r
+               #pragma comment (lib, "\\Proj\\Libs\\Release\\ButeMgrNoMFC.lib")\r
+       #endif\r
+#endif\r
+\r
+\r
+class CButeMgr\r
+{\r
+public:\r
+\r
+       enum SymTypes { NullType, IntType, DwordType, ByteType, BoolType, DoubleType, FloatType, StringType, RectType, PointType, VectorType, RangeType };\r
+\r
+       class CSymTabItem\r
+       {\r
+       public:\r
+\r
+               SymTypes SymType;\r
+\r
+               CSymTabItem(SymTypes t, int val) { SymType = t; data.i = new int(val); }\r
+               CSymTabItem(SymTypes t, DWORD val) { SymType = t; data.dw = new DWORD(val); }\r
+               CSymTabItem(SymTypes t, BYTE val) { SymType = t; data.byte = new BYTE(val); }\r
+               CSymTabItem(SymTypes t, bool val) { SymType = t; data.b = new bool(val); }\r
+               CSymTabItem(SymTypes t, float val) { SymType = t; data.f = new float(val); }\r
+               CSymTabItem(SymTypes t, double val) { SymType = t; data.d = new double(val); }\r
+               CSymTabItem(SymTypes t, const CString& val) { SymType = t; data.s = new CString(val); }\r
+               CSymTabItem(SymTypes t, const CRect& val) { SymType = t; data.r = new CRect(val); }\r
+               CSymTabItem(SymTypes t, const CPoint& val) { SymType = t; data.point = new CPoint(val); }\r
+               CSymTabItem(SymTypes t, const CAVector& val) { SymType = t; data.v = new CAVector(val); }\r
+               CSymTabItem(SymTypes t, const CARange& val) { SymType = t; data.range = new CARange(val); }\r
+\r
+               CSymTabItem(const CSymTabItem& sti)\r
+               {\r
+                       switch (SymType)\r
+                       {\r
+                       case IntType:\r
+                               *data.i = *sti.data.i;\r
+                               break;\r
+                       case DwordType:\r
+                               *data.dw = *sti.data.dw;\r
+                               break;\r
+                       case ByteType:\r
+                               *data.byte = *sti.data.byte;\r
+                               break;\r
+                       case BoolType:\r
+                               *data.b = *sti.data.b;\r
+                               break;\r
+                       case DoubleType:\r
+                               *data.d = *sti.data.d;\r
+                               break;\r
+                       case FloatType:\r
+                               *data.f = *sti.data.f;\r
+                               break;\r
+                       case StringType:\r
+                               *data.s = *sti.data.s;\r
+                               break;\r
+                       case RectType:\r
+                               *data.r = *sti.data.r;\r
+                               break;\r
+                       case PointType:\r
+                               *data.point = *sti.data.point;\r
+                               break;\r
+                       case VectorType:\r
+                               *data.v = *sti.data.v;\r
+                               break;\r
+                       case RangeType:\r
+                               *data.range = *sti.data.range;\r
+                               break;\r
+                       }\r
+               }\r
+\r
+               const CSymTabItem& operator=(const CSymTabItem& sti)\r
+               {\r
+                       switch (SymType)\r
+                       {\r
+                       case IntType:\r
+                               *data.i = *sti.data.i;\r
+                               break;\r
+                       case DwordType:\r
+                               *data.dw = *sti.data.dw;\r
+                               break;\r
+                       case ByteType:\r
+                               *data.byte = *sti.data.byte;\r
+                               break;\r
+                       case BoolType:\r
+                               *data.b = *sti.data.b;\r
+                               break;\r
+                       case DoubleType:\r
+                               *data.d = *sti.data.d;\r
+                               break;\r
+                       case FloatType:\r
+                               *data.f = *sti.data.f;\r
+                               break;\r
+                       case StringType:\r
+                               *data.s = *sti.data.s;\r
+                               break;\r
+                       case RectType:\r
+                               *data.r = *sti.data.r;\r
+                               break;\r
+                       case PointType:\r
+                               *data.point = *sti.data.point;\r
+                               break;\r
+                       case VectorType:\r
+                               *data.v = *sti.data.v;\r
+                               break;\r
+                       case RangeType:\r
+                               *data.range = *sti.data.range;\r
+                               break;\r
+                       }\r
+                       return *this;\r
+               }\r
+\r
+\r
+               ~CSymTabItem()\r
+               {\r
+                       switch (SymType)\r
+                       {\r
+                       case IntType:\r
+                               delete data.i;\r
+                               break;\r
+                       case DwordType:\r
+                               delete data.dw;\r
+                               break;\r
+                       case ByteType:\r
+                               delete data.byte;\r
+                               break;\r
+                       case BoolType:\r
+                               delete data.b;\r
+                               break;\r
+                       case DoubleType:\r
+                               delete data.d;\r
+                               break;\r
+                       case FloatType:\r
+                               delete data.f;\r
+                               break;\r
+                       case StringType:\r
+                               delete data.s;\r
+                               break;\r
+                       case RectType:\r
+                               delete data.r;\r
+                               break;\r
+                       case PointType:\r
+                               delete data.point;\r
+                               break;\r
+                       case VectorType:\r
+                               delete data.v;\r
+                               break;\r
+                       case RangeType:\r
+                               delete data.range;\r
+                               break;\r
+                       }\r
+               }\r
+\r
+               union\r
+               {\r
+                       int* i;\r
+                       DWORD* dw;\r
+                       BYTE* byte;\r
+                       bool* b;\r
+                       double* d;\r
+                       float* f;\r
+                       CString* s;\r
+                       CRect* r;\r
+                       CPoint* point;\r
+                       CAVector* v;\r
+                       CARange* range;\r
+               } data;\r
+       };\r
+\r
+\r
+public:\r
+\r
+       CButeMgr();\r
+       ~CButeMgr() { };\r
+\r
+       void Init();\r
+       void Init(void (*pF)(const char* szMsg));\r
+\r
+       void Term() { };\r
+\r
+       DWORD GetChecksum() { return m_checksum; }\r
+       void SetDisplayFunc(void (*pF)(const char* szMsg)) { m_pDisplayFunc = pF; }\r
+       CString GetErrorString() { return m_sErrorString; }\r
+\r
+#if defined(_USE_REZFILE_)\r
+       bool Parse(CRezItm* pItem, int decryptCode = 0);\r
+       bool Parse(CRezItm* pItem, const char* cryptKey);\r
+#endif\r
+       bool Parse(CString sAttributeFilename, int decryptCode = 0);\r
+       bool Parse(CString sAttributeFilename, const char* cryptKey);\r
+       bool Parse(void* pData, unsigned long size, int decryptCode = 0);\r
+       bool Parse(void* pData, unsigned long size, const char* cryptKey);\r
+\r
+       bool Save(const char* szNewFileName = NULL);\r
+\r
+       void GetTags(void (*pCallback)(const char* szTag, void* pAux), void* pAux = NULL);\r
+       void GetKeys(const char* szTag, void (*pCallback)(const char* szKey, CSymTabItem* pData, void* pAux), void* pAux = NULL);\r
+\r
+       int GetInt(const char* szTagName, const char* szAttName, int defVal);\r
+       int GetInt(const char* szTagName, const char* szAttName);\r
+       void SetInt(const char* szTagName, const char* szAttName, int val);\r
+\r
+       DWORD GetDword(const char* szTagName, const char* szAttName, DWORD defVal);\r
+       DWORD GetDword(const char* szTagName, const char* szAttName);\r
+       void SetDword(const char* szTagName, const char* szAttName, DWORD val);\r
+\r
+       BYTE GetByte(const char* szTagName, const char* szAttName, BYTE defVal);\r
+       BYTE GetByte(const char* szTagName, const char* szAttName);\r
+       void SetByte(const char* szTagName, const char* szAttName, BYTE val);\r
+\r
+       bool GetBool(const char* szTagName, const char* szAttName, bool defVal);\r
+       bool GetBool(const char* szTagName, const char* szAttName);\r
+       void SetBool(const char* szTagName, const char* szAttName, bool val);\r
+\r
+       float GetFloat(const char* szTagName, const char* szAttName, float defVal);\r
+       float GetFloat(const char* szTagName, const char* szAttName);\r
+       void SetFloat(const char* szTagName, const char* szAttName, float val);\r
+\r
+       double GetDouble(const char* szTagName, const char* szAttName, double defVal);\r
+       double GetDouble(const char* szTagName, const char* szAttName);\r
+       void SetDouble(const char* szTagName, const char* szAttName, double val);\r
+\r
+       CString& GetString(const char* szTagName, const char* szAttName, CString& defVal);\r
+       CString& GetString(const char* szTagName, const char* szAttName);\r
+       void SetString(const char* szTagName, const char* szAttName, const CString& val);\r
+\r
+       void GetString(const char* szTagName, const char* szAttName, const char* defVal, char *szResult, DWORD maxLen);\r
+       void GetString(const char* szTagName, const char* szAttName, char *szResult, DWORD maxLen);\r
+\r
+       CRect& GetRect(const char* szTagName, const char* szAttName, CRect& defVal);\r
+       CRect& GetRect(const char* szTagName, const char* szAttName);\r
+       void SetRect(const char* szTagName, const char* szAttName, const CRect& val);\r
+\r
+       CPoint& GetPoint(const char* szTagName, const char* szAttName, CPoint& defVal);\r
+       CPoint& GetPoint(const char* szTagName, const char* szAttName);\r
+       void SetPoint(const char* szTagName, const char* szAttName, const CPoint& val);\r
+\r
+       CAVector& GetVector(const char* szTagName, const char* szAttName, CAVector& defVal);\r
+       CAVector& GetVector(const char* szTagName, const char* szAttName);\r
+       void SetVector(const char* szTagName, const char* szAttName, const CAVector& val);\r
+\r
+       CARange& GetRange(const char* szTagName, const char* szAttName, CARange& defVal);\r
+       CARange& GetRange(const char* szTagName, const char* szAttName);\r
+       void SetRange(const char* szTagName, const char* szAttName, const CARange& val);\r
+\r
+       bool AddTag(const char *szTagName);\r
+\r
+       CButeMgr::SymTypes GetType(const char* szTagName, const char* szAttName);  // returns NullType if tag/key doesn't exist\r
+\r
+       bool Success() { return m_bSuccess; }\r
+       bool Exist(const char* szTagName, const char* szAttName = NULL);\r
+\r
+private:\r
+\r
+       void Reset();\r
+\r
+       void DisplayMessage(const char* szMsg, ...);\r
+\r
+       // Parser stuff\r
+       bool Statement();\r
+       bool StatementList();\r
+       bool Tag();\r
+       bool TagList();\r
+\r
+       // Scanner stuff\r
+       bool Match(int tok);\r
+       void ConsumeChar();\r
+       short CharClass(unsigned char currentChar);\r
+       short Action( short State, unsigned char currentChar );\r
+       short NextState( short State, unsigned char currentChar );\r
+       void LookupCodes( short State, unsigned char currentChar);\r
+       bool ScanTok();\r
+\r
+       DWORD m_decryptCode;\r
+       DWORD m_checksum;\r
+       int m_lineNumber;\r
+       bool m_bLineCounterFlag;\r
+\r
+       bool m_bSuccess;\r
+       bool m_bErrorFlag;\r
+       CString m_sErrorString;\r
+\r
+       void (*m_pDisplayFunc)(const char* szMsg);\r
+\r
+       typedef zSymTab<CSymTabItem> TableOfItems;\r
+       typedef zSymTab<TableOfItems> TableOfTags;\r
+\r
+       TableOfTags m_tagTab;\r
+\r
+       TableOfItems* m_pCurrTabOfItems;\r
+\r
+       TableOfTags m_auxTagTab;\r
+       TableOfTags m_newTagTab;\r
+\r
+       CSymTabItem* GetItem(const char *szTagName, const char* szAttName);\r
+\r
+       static void AuxTabItemsSave(const char* sz, CSymTabItem* pItem, void* p);\r
+       static void NewTabsSave(const char* sz, TableOfItems* pTabOfItems, void* p);\r
+\r
+       struct TagExtraData\r
+       {\r
+               TagExtraData(void (*pCallback)(const char* tag, void* pAux), void* pAux) \r
+               { \r
+                       m_pCallback = pCallback;\r
+                       m_pAux = pAux;\r
+               }\r
+               void (*m_pCallback)(const char* tag, void* pAux);\r
+               void* m_pAux;\r
+       };\r
+       static void TagTraverseFunc(const char* szTag, TableOfItems* pData, void* ExtraData);\r
+\r
+       struct KeyExtraData\r
+       {\r
+               KeyExtraData(void (*pCallback)(const char* szKey, CSymTabItem* pData, void* pAux), void* pAux) \r
+               { \r
+                       m_pCallback = pCallback;\r
+                       m_pAux = pAux;\r
+               }\r
+               void (*m_pCallback)(const char* szKey, CSymTabItem* pData, void* pAux);\r
+               void* m_pAux;\r
+       };\r
+       static void KeyTraverseFunc(const char* szKey, CSymTabItem* pData, void* ExtraData);\r
+\r
+       istream* m_pData;\r
+       iostream *m_pSaveData;\r
+\r
+       unsigned char  m_currentChar;\r
+       short m_token;\r
+       short m_tokenMinor;\r
+\r
+       char m_szTokenString[4096];\r
+\r
+       CString m_sTagName;\r
+       CString m_sAttribute;\r
+\r
+       CString m_sAttributeFilename;\r
+\r
+       bool m_bPutChar;\r
+       bool m_bSaving;\r
+\r
+       bool m_bCrypt;\r
+       CCryptMgr m_cryptMgr;\r
+};\r
+\r
+\r
+\r
+#if defined(_USE_REZFILE_)\r
+inline bool CButeMgr::Parse(CRezItm* pItem, int decryptCode)\r
+{\r
+       if (!pItem)\r
+               return false;\r
+       m_pData = new istrstream((char*)pItem->Load(), pItem->GetSize());\r
+       Reset();\r
+       m_decryptCode = decryptCode;\r
+\r
+       m_tagTab.clear();\r
+       m_auxTagTab.clear();\r
+       m_newTagTab.clear();\r
+\r
+       bool retVal = true;\r
+       if (!TagList())\r
+       {\r
+               m_bErrorFlag = true;\r
+               retVal = false;\r
+       }\r
+       \r
+       pItem->UnLoad();\r
+       delete m_pData;\r
+\r
+       return retVal;\r
+}\r
+\r
+\r
+inline bool CButeMgr::Parse(CRezItm* pItem, const char* cryptKey)\r
+{\r
+       if (!pItem)\r
+               return false;\r
+       m_bCrypt = true;\r
+       char* buf1 = (char*)pItem->Load();\r
+       int len = pItem->GetSize();\r
+       istrstream* pIss = new istrstream(buf1, len);\r
+\r
+       m_cryptMgr.SetKey(cryptKey);\r
+       char* buf2 = new char[len];\r
+       ostrstream* pOss = new ostrstream(buf2, len);\r
+       m_cryptMgr.Decrypt(*pIss, *pOss);\r
+\r
+       m_pData = new istrstream(buf2, pOss->pcount());\r
+\r
+       delete pIss;\r
+       delete pOss;\r
+       pItem->UnLoad();\r
+\r
+       Reset();\r
+\r
+       m_tagTab.clear();\r
+       m_auxTagTab.clear();\r
+       m_newTagTab.clear();\r
+\r
+       bool retVal = true;\r
+       if (!TagList())\r
+       {\r
+               m_bErrorFlag = true;\r
+               retVal = false;\r
+       }\r
+       delete m_pData;\r
+       delete buf2;\r
+       return retVal;\r
+}\r
+#endif\r
+\r
+\r
+\r
+\r
+\r
+inline bool CButeMgr::Parse(void* pData, unsigned long size, int decryptCode)\r
+{\r
+       if (!pData)\r
+               return false;\r
+       m_pData = new istrstream((char*)pData, size);\r
+       Reset();\r
+       m_decryptCode = decryptCode;\r
+\r
+       m_tagTab.clear();\r
+       m_auxTagTab.clear();\r
+       m_newTagTab.clear();\r
+\r
+       bool retVal = true;\r
+       if (!TagList())\r
+       {\r
+               m_bErrorFlag = true;\r
+               retVal = false;\r
+       }\r
+       \r
+       delete m_pData;\r
+\r
+       return retVal;\r
+}\r
+\r
+\r
+\r
+\r
+inline bool CButeMgr::Parse(void* pData, unsigned long size, const char* cryptKey)\r
+{\r
+       if (!pData)\r
+               return false;\r
+       m_bCrypt = true;\r
+       char* buf1 = (char*)pData;\r
+       int len = size;\r
+       istrstream* pIss = new istrstream(buf1, len);\r
+\r
+       m_cryptMgr.SetKey(cryptKey);\r
+       char* buf2 = new char[len];\r
+       ostrstream* pOss = new ostrstream(buf2, len);\r
+       m_cryptMgr.Decrypt(*pIss, *pOss);\r
+\r
+       m_pData = new istrstream(buf2, pOss->pcount());\r
+\r
+       delete pIss;\r
+       delete pOss;\r
+\r
+       Reset();\r
+\r
+       m_tagTab.clear();\r
+       m_auxTagTab.clear();\r
+       m_newTagTab.clear();\r
+\r
+       bool retVal = true;\r
+       if (!TagList())\r
+       {\r
+               m_bErrorFlag = true;\r
+               retVal = false;\r
+       }\r
+       delete m_pData;\r
+       delete buf2;\r
+       return retVal;\r
+}\r
+\r
+\r
+\r
+\r
+inline bool CButeMgr::Parse(CString sAttributeFilename, int decryptCode)\r
+{\r
+       m_pData = new ifstream(sAttributeFilename, ios::in | ios::nocreate);\r
+       if (!m_pData)\r
+               return false;\r
+       if (m_pData->fail())\r
+       {\r
+               delete m_pData;\r
+               return false;\r
+       }\r
+       Reset();\r
+       m_decryptCode = decryptCode;\r
+       m_sAttributeFilename = sAttributeFilename;\r
+\r
+       m_tagTab.clear();\r
+       m_auxTagTab.clear();\r
+       m_newTagTab.clear();\r
+\r
+       bool retVal = true;\r
+       if (!TagList())\r
+       {\r
+               m_bErrorFlag = true;\r
+               retVal = false;\r
+       }\r
+\r
+       delete m_pData;\r
+       return retVal;\r
+}\r
+\r
+\r
+\r
+inline bool CButeMgr::Parse(CString sAttributeFilename, const char* cryptKey)\r
+{\r
+       m_bCrypt = true;\r
+       ifstream* pIs = new ifstream(sAttributeFilename, ios::nocreate | ios::binary);\r
+       if (!pIs)\r
+               return false;\r
+       if (pIs->fail())\r
+       {\r
+               delete pIs;\r
+               return false;\r
+       }\r
+\r
+       pIs->seekg(0, ios::end);\r
+       long len = pIs->tellg();\r
+\r
+       pIs->seekg(0);\r
+\r
+       m_cryptMgr.SetKey(cryptKey);\r
+\r
+       char* buf = new char[len];\r
+       ostrstream* pOss = new ostrstream(buf, len, ios::in | ios::out);\r
+       m_cryptMgr.Decrypt(*pIs, *pOss);\r
+\r
+       m_pData = new istrstream(buf, pOss->pcount());\r
+\r
+       delete pIs;\r
+       delete pOss;\r
+\r
+       Reset();\r
+       m_sAttributeFilename = sAttributeFilename;\r
+\r
+       m_tagTab.clear();\r
+       m_auxTagTab.clear();\r
+       m_newTagTab.clear();\r
+\r
+       bool retVal = true;\r
+       if (!TagList())\r
+       {\r
+               m_bErrorFlag = true;\r
+               retVal = false;\r
+       }\r
+       delete m_pData;\r
+       delete buf;\r
+       return retVal;\r
+}\r
+\r
+\r
+\r
+\r
+\r
+#endif
\ No newline at end of file
diff --git a/LT2/lithshared/incs/controlfilemgr.h b/LT2/lithshared/incs/controlfilemgr.h
new file mode 100644 (file)
index 0000000..0877192
--- /dev/null
@@ -0,0 +1,242 @@
+/****************************************************************************\r
+\r
+       MODULE:         ControlFileMgr (.H)\r
+\r
+       PURPOSE:        Class for reading and parsing control files (like ini's)\r
+\r
+       HISTORY:        \r
+                               Nov-5-1999  : Added new GetVal and GetKeyVal functions for \r
+                                                         floats and doubles.Added new file access \r
+                                                         functions that user can override to do their\r
+                                                         own type of file access.  This is necessary\r
+                                                         to use a control file from a rez file. Added\r
+                                                         even more comments to code. BLB\r
+\r
+                               Sep-22-1999 : Added special commands starting with # (ifdef, \r
+                                                         ifndef, else, endif) they work pretty much like\r
+                                                         c source files.  Also added more comments to\r
+                                                         header file. BLB\r
+\r
+                               04/19/98 [blb]\r
+                               \r
+\r
+       NOTICE:         Copyright (c) 1998, 1999 Monolith Productions, Inc.\r
+\r
+***************************************************************************/\r
+\r
+#ifndef ControlFileMgr_H\r
+#define ControlFileMgr_H\r
+\r
+#include "lith.H"\r
+#include "lithtmpl.h"\r
+#include "stdio.h"\r
+\r
+// Console libs\r
+\r
+#ifndef NO_PRAGMA_LIBS\r
+\r
+#ifdef _CONSOLE\r
+#ifdef _DEBUG\r
+#pragma comment (lib, "\\Proj\\Libs\\Debug Console\\controlfilemgr.lib")\r
+#else\r
+#pragma comment (lib, "\\Proj\\Libs\\Release Console\\controlfilemgr.lib")\r
+#endif\r
+\r
+// Windows libs\r
+\r
+#else\r
+#ifdef _DEBUG\r
+#pragma comment (lib, "\\Proj\\Libs\\Debug\\controlfilemgr.lib")\r
+#else\r
+#pragma comment (lib, "\\Proj\\Libs\\Release\\controlfilemgr.lib")\r
+#endif\r
+#endif\r
+\r
+#endif\r
+\r
+\r
+//**************************************************************************\r
+class CControlFileWord : public CLithBaseListItem<CControlFileWord>\r
+{\r
+public:\r
+       BOOL GetVal(char* sVal, int nMaxStrLen);\r
+       int GetStrLen();\r
+       BOOL GetVal(int& nVal);\r
+       BOOL GetVal(float& nVal);\r
+       BOOL GetVal(double& nVal);\r
+       char* GetVal() { return m_sVal; };\r
+private:\r
+       friend class CControlFileMgr;\r
+       CLithSimpAry<char> m_sVal;\r
+       int m_nStrLen;\r
+};\r
+\r
+\r
+//**************************************************************************\r
+class CControlFileWordList : public CLithBaseList<CControlFileWord> {};\r
+\r
+\r
+//**************************************************************************\r
+class CControlFileKey : public CLithBaseListItem<CControlFileKey>\r
+{\r
+public:\r
+       CControlFileWord* GetFirstWord();\r
+       CControlFileKey* NextWithSameName();\r
+       char* GetKeyName() { return m_sKeyName; };\r
+private:\r
+       friend class CControlFileKeyList;\r
+       friend class CControlFileMgr;\r
+       CLithSimpAry<char> m_sKeyName;\r
+       CControlFileWordList m_lstWords;\r
+};\r
+\r
+\r
+//**************************************************************************\r
+class CControlFileKeyList : public CLithBaseList<CControlFileKey> \r
+{\r
+public:\r
+       CControlFileKey* Find(const char* sKeyName);\r
+};\r
+\r
+\r
+//**************************************************************************\r
+class CControlFileSection : public CLithBaseListItem<CControlFileSection>\r
+{\r
+public:\r
+       CControlFileKey* GetKey(const char* sKeyName = NULL); // NULL gets the first key in the list of keys\r
+       char* GetSectionName() { return m_sSectionName; };\r
+private:\r
+       friend class CControlFileSectionList;\r
+       friend class CControlFileMgr;\r
+       CLithSimpAry<char> m_sSectionName;\r
+       CControlFileKeyList m_lstKeys;\r
+};\r
+\r
+\r
+//**************************************************************************\r
+class CControlFileSectionList : public CLithBaseList<CControlFileSection> \r
+{\r
+public:\r
+       CControlFileSection* Find(const char* sSectionName);\r
+};\r
+\r
+\r
+//**************************************************************************\r
+class CControlFileDefine : public CLithBaseListItem<CControlFileDefine>\r
+{\r
+public:\r
+       char* GetVal() { return m_sVal; };\r
+private:\r
+       friend class CControlFileMgr;\r
+       CLithSimpAry<char> m_sVal;\r
+};\r
+\r
+\r
+//**************************************************************************\r
+class CControlFileDefineList : public CLithBaseList<CControlFileDefine> {};\r
+\r
+\r
+//**************************************************************************\r
+class CControlFileMgr\r
+{\r
+public:\r
+\r
+       // default constructor\r
+       CControlFileMgr();\r
+\r
+       // constructor that also calls Init\r
+       CControlFileMgr(const char* sFileName, const char* sWhiteSpace = NULL);\r
+\r
+       // destructor (calls Term if it has not already been called\r
+       ~CControlFileMgr();\r
+\r
+       // Initialize the Mgr and read in the file\r
+       BOOL Init(const char* sFileName, const char* sWhiteSpace = NULL);\r
+\r
+       // Terminate the Mgr\r
+       void Term();\r
+\r
+       // gets a point to a section of the control file\r
+       CControlFileSection* GetSection(const char* sSectionName = NULL); // NULL gets the first (empty name) section\r
+\r
+       // finds the first occurance of the specified key in the specified section\r
+       CControlFileKey* GetKey(const char* sSectionName, const char* sKeyName);\r
+\r
+       // gets the integer value of the specified key in the specified section and places it in nVal (first word only)\r
+       BOOL GetKeyVal(const char* sSectionName, const char* sKeyName, int& nVal);\r
+\r
+       // gets the integer value of the specified key in the specified section and places it in nVal (first word only)\r
+       BOOL GetKeyVal(const char* sSectionName, const char* sKeyName, float& nVal);\r
+\r
+       // gets the integer value of the specified key in the specified section and places it in nVal (first word only)\r
+       BOOL GetKeyVal(const char* sSectionName, const char* sKeyName, double& nVal);\r
+\r
+       // gets the string value of the specified key in the specified section and places it in sVal (first word only)\r
+       BOOL GetKeyVal(const char* sSectionName, const char* sKeyName, char* sVal, int nMaxStrLen);\r
+\r
+       // find out the string length of the first word in the specified key in the specified section\r
+       int GetKeyValStrLen(const char* sSectionName, const char* sKeyName);\r
+\r
+       // add a define that can be checked with #ifdef or #ifndef special commands\r
+       // this must be done before init is called!\r
+       BOOL AddDefine(const char* sDefine);\r
+\r
+       // clears all defines that have been made with AddDefine\r
+       void ClearDefines();\r
+\r
+       /////////////////////////////////////////////////////////////////////////////////////////////\r
+       // File access functions that the user can override to implement their own file access.\r
+       //\r
+       // These only get used during a call to Init and everything takes place in that one\r
+       // call so you can assume that the file will be opened read and closed when you make a call\r
+       // to Init.\r
+       /////////////////////////////////////////////////////////////////////////////////////////////\r
+\r
+       // open a file for reading in read only text mode\r
+       virtual BOOL FileOpen(const char* sName);\r
+\r
+       // close file \r
+       virtual void FileClose();\r
+       \r
+       // get next character in file\r
+       virtual int FileGetChar();\r
+       \r
+       // return TRUE if we are at the end of the file\r
+       virtual BOOL FileEOF();\r
+\r
+protected:\r
+       // used by file access functions for the default file implementation\r
+       FILE* m_pFile;\r
+\r
+private:\r
+       // returns true if the given string has been passed into AddDefine\r
+       BOOL IsDefined(const char* sDefine);\r
+\r
+       // reads in and processes the specified file\r
+       BOOL ProcessFile(const char* sFileName);\r
+\r
+       // name of the control file that we are using\r
+       CLithSimpAry<char> m_sFileName;\r
+\r
+       // contains all of the characters that are defined as whitespace\r
+       CLithSimpAry<char> m_sWhiteSpace;\r
+\r
+       // contains the various special characters\r
+       char m_cEndOfLine;\r
+       char m_cSectionStart;\r
+       char m_cSectionEnd;\r
+       char m_cComment;\r
+       char m_cStringMarker;\r
+       char m_cSpecialCommand;\r
+\r
+       // list of all the sections in the control file data structure\r
+       CControlFileSectionList m_lstSections;\r
+\r
+       // contains a list of all of the defines that have been created with AddDefine\r
+       CControlFileDefineList m_lstDefines;\r
+\r
+       // if true the mgr has been initialized\r
+       BOOL m_bInitialized;\r
+};\r
+\r
+#endif
\ No newline at end of file
diff --git a/LT2/lithshared/incs/cryptmgr.h b/LT2/lithshared/incs/cryptmgr.h
new file mode 100644 (file)
index 0000000..a0b7e0c
--- /dev/null
@@ -0,0 +1,44 @@
+#if !defined(_CRYPTMGR_H_)\r
+#define _CRYPTMGR_H_\r
+\r
+#include "iostream.h"\r
+\r
+\r
+#ifndef NO_PRAGMA_LIBS\r
+       #if defined(_DEBUG) && defined(_AFXDLL)\r
+               #pragma comment (lib, "\\Proj\\Libs\\Debug\\CryptMgrMfcDll.lib")\r
+       #elif defined(_DEBUG) && !defined(_AFXDLL)\r
+               #pragma comment (lib, "\\Proj\\Libs\\Debug\\CryptMgr.lib")\r
+       #elif !defined(_DEBUG) && defined(_AFXDLL)\r
+               #pragma comment (lib, "\\Proj\\Libs\\Release\\CryptMgrMfcDll.lib")\r
+       #elif !defined(_DEBUG) && !defined(_AFXDLL)\r
+               #pragma comment (lib, "\\Proj\\Libs\\Release\\CryptMgr.lib")\r
+       #endif\r
+#endif\r
+\r
+\r
+\r
+class CCryptMgr\r
+{\r
+public:\r
+\r
+       CCryptMgr();\r
+       CCryptMgr(char* key);\r
+       ~CCryptMgr();\r
+\r
+       void SetKey(const char* key);  // Max of 56 characters\r
+\r
+       // if using fstreams be sure to open them in binary mode\r
+       void Encrypt(istream& is, ostream& os);\r
+\r
+       // if using fstreams be sure to open them in binary mode\r
+       void Decrypt(istream& is, ostream& os);\r
+\r
+};\r
+\r
+\r
+\r
+\r
+\r
+\r
+#endif
\ No newline at end of file
diff --git a/LT2/lithshared/incs/dibmgr.h b/LT2/lithshared/incs/dibmgr.h
new file mode 100644 (file)
index 0000000..9df451c
--- /dev/null
@@ -0,0 +1,170 @@
+/****************************************************************************\r
+;\r
+;       MODULE:                DIBMGR (.H)\r
+;\r
+;      PURPOSE:                DIB Manager Class\r
+;\r
+;      HISTORY:                02/15/96  [blg]  This file was created\r
+;\r
+;      COMMENT:                Copyright (c) 1996, Monolith Inc.\r
+;\r
+****************************************************************************/\r
+\r
+\r
+#ifndef _DIBMGR_H_\r
+#define        _DIBMGR_H_\r
+\r
+\r
+// Includes...\r
+\r
+#include "..\dibmgr\dib.h"\r
+#include "..\dibmgr\dibpal.h"\r
+\r
+\r
+// Libs...\r
+\r
+#ifndef NO_PRAGMA_LIBS\r
+       #ifdef _DEBUG\r
+               #ifdef _AFXDLL\r
+                       #pragma comment (lib, "\\proj\\libs\\debug\\dibmgr_dll.lib")\r
+               #else\r
+                       #pragma comment (lib, "\\proj\\libs\\debug\\dibmgr.lib")\r
+               #endif\r
+       #else\r
+               #ifdef _AFXDLL\r
+                       #pragma comment (lib, "\\proj\\libs\\release\\dibmgr_dll.lib")\r
+               #else\r
+                       #pragma comment (lib, "\\proj\\libs\\release\\dibmgr.lib")\r
+               #endif\r
+       #endif\r
+#endif\r
+\r
+\r
+// Defines...\r
+\r
+#define DMPF_NOIDENTITY                0x00000001\r
+\r
+\r
+// Classes...\r
+\r
+class CDibMgr\r
+{\r
+       // Member functions...\r
+\r
+public:\r
+       CDibMgr();\r
+       ~CDibMgr() { Term(); }\r
+\r
+       BOOL                                    Init(HINSTANCE hInst, HWND hWnd, DWORD flags = 0);\r
+       void                                    Term();\r
+\r
+       BOOL                                    IsValid() { return(!!m_hInst && !!m_hWnd); }\r
+\r
+       int                                             GetNumDibs() { return(m_collDibs.GetCount()); }\r
+       int                                             GetNumPals() { return(m_collPals.GetCount()); }\r
+       DWORD                                   GetFlags() { return(m_dwFlags); }\r
+       CDibPal*                                GetCurPal() { return(m_pCurPal); }\r
+\r
+       void                                    SetCurPal(CDibPal* pPal) { m_pCurPal = pPal; }\r
+       void                                    SetWindowHandle(HWND hWnd);\r
+       void                                    SetPalette(CDib* pDib, CDibPal* pPal, BOOL bOwner = FALSE);\r
+\r
+       CDib*                                   AddDib(int width, int height, int depth = 8, DWORD flags = 0);\r
+       CDib*                                   AddDib(BYTE* pBytes, int width, int height, int depth = 8, DWORD flags = 0);\r
+       CDib*                                   AddDib(BYTE* pBytes, int type, DWORD flags = 0);\r
+       CDib*                                   AddDib(const char* sFile, DWORD flags = 0);\r
+\r
+       CDib*                                   AddDib( CDib *pOriginalDib, CDibPal *pPal );\r
+\r
+       CDibPal*                                AddPal(PALETTEENTRY* pPes, DWORD flags = 0);\r
+       CDibPal*                                AddPal(BYTE* pRgbs, DWORD flags = 0);\r
+       CDibPal*                                AddPal(const char* sFile, DWORD flags = 0);\r
+       CDibPal*                                AddPal(BYTE *pData, DWORD dataLen, int type, DWORD flags = 0);\r
+\r
+       void                                    RemoveDib(CDib* pDib);\r
+       void                                    RemovePal(CDibPal* pPal);\r
+\r
+       BOOL                                    ResizeDib(CDib* pDib, int width, int height, int depth = 8, DWORD flags = 0);\r
+\r
+       HDC                                             GetDC(BOOL bPrep = TRUE, BOOL bBackPal = FALSE);\r
+       BOOL                                    PrepDC(HDC hDC);\r
+       void                                    ReleaseDC(HDC hDC);\r
+\r
+       void                                    RemoveAllDibs();\r
+       void                                    RemoveAllPals();\r
+\r
+       static  HINSTANCE               GetGlobalInstanceHandle() { return(s_hInst); }\r
+\r
+\r
+       // Member variables...\r
+\r
+private:\r
+       HINSTANCE                               m_hInst;\r
+       HWND                                    m_hWnd;\r
+       DWORD                                   m_dwFlags;\r
+       HPALETTE                                m_hOldPal;\r
+\r
+       CPtrList                                m_collDibs;\r
+       CPtrList                                m_collPals;\r
+\r
+       CDibPal*                                m_pCurPal;\r
+\r
+       static  HINSTANCE               s_hInst;\r
+};\r
+\r
+\r
+// Inlines...\r
+\r
+inline CDibMgr::CDibMgr()\r
+{\r
+       m_hInst   = NULL;\r
+       m_hWnd    = NULL;\r
+       m_dwFlags = 0;\r
+       m_pCurPal = NULL;\r
+       m_hOldPal = NULL;\r
+}\r
+\r
+inline HDC CDibMgr::GetDC(BOOL bPrep, BOOL bBackPal)\r
+{\r
+       HDC hDC = ::GetDC(m_hWnd);\r
+       if (bPrep && hDC && m_pCurPal)\r
+       {\r
+               m_hOldPal = SelectPalette(hDC, m_pCurPal->GetHandle(), bBackPal);\r
+               RealizePalette(hDC);\r
+       }\r
+       return(hDC);\r
+}\r
+\r
+inline BOOL CDibMgr::PrepDC(HDC hDC)\r
+{\r
+       if (m_pCurPal)\r
+       {\r
+               m_hOldPal = SelectPalette(hDC, m_pCurPal->GetHandle(), FALSE);\r
+               RealizePalette(hDC);\r
+               return(TRUE);\r
+       }\r
+       return(FALSE);\r
+}\r
+\r
+inline void CDibMgr::ReleaseDC(HDC hDC)\r
+{\r
+       if (m_hOldPal)\r
+       {\r
+               SelectPalette(hDC, m_hOldPal, FALSE);\r
+               m_hOldPal = NULL;\r
+       }\r
+       ::ReleaseDC(m_hWnd, hDC);\r
+}\r
+\r
+inline void CDibMgr::SetWindowHandle(HWND hWnd)\r
+{\r
+       ASSERT(hWnd);\r
+       ASSERT(::IsWindow(hWnd));\r
+\r
+       m_hWnd = hWnd;\r
+}\r
+\r
+\r
+// EOF...\r
+\r
+#endif\r
diff --git a/LT2/lithshared/incs/dprintf.h b/LT2/lithshared/incs/dprintf.h
new file mode 100644 (file)
index 0000000..5e4c944
--- /dev/null
@@ -0,0 +1,26 @@
+/***************************************************************************\r
+  DPRINTF 1.10                                           written in C++\r
+***************************************************************************/\r
+\r
+#ifndef __DPRINTF_H\r
+#define __DPRINTF_H\r
+\r
+\r
+#ifndef NO_PRAGMA_LIBS\r
+       #ifdef _DEBUG\r
+               #pragma comment (lib, "\\Proj\\Libs\\Debug\\lith.lib")\r
+       #else\r
+               #pragma comment (lib, "\\Proj\\Libs\\Release\\lith.lib")\r
+       #endif\r
+#endif\r
+\r
+void dprintf( char*, ... );\r
+void dprintf( unsigned int Level, char*, ... );\r
+void dprintf( int X, int Y, char*, ... );\r
+void dprintf( unsigned int Level, int X, int Y, char*, ... );\r
+void dgotoxy( int X, int Y);\r
+void dgotoxy( unsigned int Level, int X, int Y);\r
+void dclrscr( void );\r
+void dclrscr( unsigned int Level );\r
+\r
+#endif\r
diff --git a/LT2/lithshared/incs/genregmgr.h b/LT2/lithshared/incs/genregmgr.h
new file mode 100644 (file)
index 0000000..ec9b9f5
--- /dev/null
@@ -0,0 +1,63 @@
+#ifndef __GENREGMGR_H\r
+#define __GENREGMGR_H\r
+\r
+#ifndef NO_PRAGMA_LIBS\r
+       #ifdef _DEBUG\r
+               #pragma comment (lib, "\\proj\\libs\\debug\\GenRegMgr.lib")\r
+       #else\r
+               #pragma comment (lib, "\\proj\\libs\\release\\GenRegMgr.lib")\r
+       #endif\r
+#endif\r
+\r
+\r
+class CGenRegMgr\r
+{\r
+public:\r
+\r
+       CGenRegMgr()            { m_pKeys = NULL; m_nKeys = 0; }\r
+       ~CGenRegMgr()           { if (m_pKeys) delete [] m_pKeys; }\r
+\r
+       // in all of the following functions, the first part of the "path" in \r
+       // the string must be one of the following or the function will fail:\r
+       //\r
+       //      HKEY_CLASSES_ROOT\r
+       //      HKEY_CURRENT_USER\r
+       //      HKEY_LOCAL_MACHINE\r
+       //      HKEY_USERS\r
+       //\r
+       //  Example key string: "HKEY_CURRENT_USER/Software/Microsoft/Games/Riot/1.00"\r
+       //\r
+\r
+       // creates the key, creating any necessary intermediate keys\r
+       BOOL    CreateKey (LPCSTR strKey);\r
+\r
+       // deletes the specified key, deleting any sub-keys it may contain\r
+       BOOL    DeleteKey (LPCSTR strKey);\r
+\r
+       // set registry values\r
+       BOOL    SetStringValue (LPCSTR strKey, LPCSTR strValueName, LPCSTR strValue);\r
+       BOOL    SetDwordValue (LPCSTR strKey, LPCSTR strValueName, DWORD dwValue);\r
+       BOOL    SetBinaryValue (LPCSTR strKey, LPCSTR strValueName, void* pData, DWORD dwDataSize);\r
+       BOOL    SetStringBoolValue (LPCSTR strKey, LPCSTR strValueName, BOOL bValue);\r
+\r
+       // retrieve registry value sizes\r
+       DWORD   GetValueSize (LPCSTR strKey, LPCSTR strValueName);\r
+\r
+       // retrieve registry values\r
+       BOOL    GetValue (LPCSTR strKey, LPCSTR strValueName, void* pBuffer, DWORD dwBufferSize);\r
+       BOOL    GetDwordValue (LPCSTR strKey, LPCSTR strValueName, DWORD *pdwBuffer);\r
+       BOOL    GetStringBoolValue (LPCSTR strKey, LPCSTR strValueName, BOOL *pbBuffer);\r
+\r
+protected:\r
+\r
+       HKEY    OpenKey (LPCSTR strKey);\r
+       void    CloseKey (HKEY hKey);\r
+       BOOL    RecurseAndDeleteKey (HKEY hKeyParent, LPCSTR strKey);\r
+\r
+protected:\r
+\r
+       HKEY*   m_pKeys;\r
+       DWORD   m_nKeys;\r
+};\r
+\r
+#endif\r
diff --git a/LT2/lithshared/incs/lith.h b/LT2/lithshared/incs/lith.h
new file mode 100644 (file)
index 0000000..b26edaa
--- /dev/null
@@ -0,0 +1,36 @@
+/****************************************************************************\r
+;\r
+;      MODULE:         LITH (.H)\r
+;\r
+;      PURPOSE:        \r
+;\r
+;      HISTORY:        04/19/98 [blb] \r
+;\r
+;      NOTICE:         Copyright (c) 1998, MONOLITH, Inc.\r
+;\r
+****************************************************************************/\r
+\r
+#ifndef LITH_H\r
+#define LITH_H\r
+\r
+// Includes...\r
+\r
+#include "..\lith\lithtypes.h"\r
+#include "..\lith\baselist.h"\r
+#include "..\lith\basehash.h"\r
+#include "..\lith\virtlist.h"\r
+#include "..\lith\baselistcounter.h"\r
+#include "..\lith\dprintf.h"\r
+\r
+\r
+#ifndef NO_PRAGMA_LIBS\r
+       #ifdef _DEBUG\r
+               #pragma comment (lib, "\\Proj\\Libs\\Debug\\lith.lib")\r
+       #else\r
+               #pragma comment (lib, "\\Proj\\Libs\\Release\\lith.lib")\r
+       #endif\r
+#endif\r
+\r
+\r
+\r
+#endif\r
diff --git a/LT2/lithshared/incs/lithfontdefs.h b/LT2/lithshared/incs/lithfontdefs.h
new file mode 100644 (file)
index 0000000..992b946
--- /dev/null
@@ -0,0 +1,351 @@
+//*********************************************************************************\r
+//*********************************************************************************\r
+// Project:            Lith Tech Font Manager\r
+// Purpose:            A general font method for bitmap and system fonts\r
+//*********************************************************************************\r
+// File:               LithFontDefs.h\r
+// Created:            April 7, 1999\r
+// Updated:            October 6, 1999\r
+// Author:             Andy Mattingly\r
+//*********************************************************************************\r
+//*********************************************************************************\r
+\r
+#ifndef                _LITHTECH_FONT_DEFS_H_\r
+#define                _LITHTECH_FONT_DEFS_H_\r
+\r
+//*********************************************************************************\r
+\r
+#ifdef _LITHTECH2\r
+       #include "ltbasedefs.h"\r
+#else\r
+       #include "basedefs_de.h"\r
+#endif\r
+\r
+//*********************************************************************************\r
+\r
+//---------------------------------------------------------------------------------\r
+//---------------------------------------------------------------------------------\r
+// ***** SPECIAL NOTE ABOUT BITMAP FONTS!!! *****\r
+//\r
+// Be careful not to have any vertical lines of transparency for characters within\r
+// the font itself.  The only blank lines should be between the individual characters\r
+// so that the calculation of the widths can be accurate.  Otherwise, you'll end\r
+// up with characters that look like 'half letters' and any characters after the bad\r
+// ones will be off on the acsii chart.\r
+//\r
+// Pay special attention to characters like " because of it's inherent blank space.\r
+// LithFontMgr WILL count this as two characters unless you fill in that gap. A creative\r
+// way to do this would be just to angle the two lines so there's no straight vertical\r
+// space.   If you notice weirdness with the font letters... check for this problem\r
+// before anything else.\r
+//---------------------------------------------------------------------------------\r
+//---------------------------------------------------------------------------------\r
+\r
+//*********************************************************************************\r
+\r
+//---------------------------------------------------------------------------------\r
+//---------------------------------------------------------------------------------\r
+// ***** SPECIAL NOTE ABOUT LITH CURSORS!!! *****\r
+//\r
+// It is recommended that you use one cursor per string when drawing simutanious lines\r
+// at once. This is due to the fact that the cursor stores data about how the string\r
+// is currently being drawn... so if you use the same cursor to draw multiple strings\r
+// in the same frame, you may lose data from one string to the next.  Plus, there are\r
+// some enhancements that speed up the formatting of the string data when you use one\r
+// cursor per string.\r
+//---------------------------------------------------------------------------------\r
+//---------------------------------------------------------------------------------\r
+\r
+//*********************************************************************************\r
+\r
+#define                LTF_OFFSETS_FILENAME            "FontData.fnt"\r
+\r
+//*********************************************************************************\r
+// Defined flags for LithFontCreateStruct::nGroupFlags\r
+\r
+#define                LTF_INCLUDE_SYMBOLS_1           0x01\r
+#define                LTF_INCLUDE_NUMBERS                     0x02\r
+#define                LTF_INCLUDE_SYMBOLS_2           0x04\r
+#define                LTF_INCLUDE_UPPERCASE           0x08\r
+#define                LTF_INCLUDE_SYMBOLS_3           0x10\r
+#define                LTF_INCLUDE_LOWERCASE           0x20\r
+#define                LTF_INCLUDE_SYMBOLS_4           0x40\r
+#define                LTF_INCLUDE_FIXED_END           0x80            // This extra flag calculates the font so the first transparent space\r
+                                                                                                       // after a letter is where the width breaks (otherwise, it will take an\r
+                                                                                                       // average of the transparent space between two letters and place the\r
+                                                                                                       // break there)\r
+#define                LTF_INCLUDE_SYMBOLS                     0x55\r
+#define                LTF_INCLUDE_LETTERS                     0x28\r
+#define                LTF_INCLUDE_ALL                         0x7F\r
+#define                LTF_INCLUDE_ALL_FIXED_END       0xFF\r
+\r
+#define                LTF_INCLUDE_TOTAL_GROUPS        7\r
+\r
+//*********************************************************************************\r
+// Defined flags for LithFontDrawData::dwFlags\r
+\r
+#define                LTF_DRAW_NORMAL                         0x00000000      // *** Not used - just for reference ***\r
+#define                LTF_DRAW_SOLID                          0x00000001      // Draws the text in a solid color from hColor\r
+#define                LTF_DRAW_FORMATTED                      0x00000002      // Automatically formats the text to a certain width\r
+#define                LTF_DRAW_TIMED                          0x00000004      // Draws the text using the timed method\r
+#define                LTF_DRAW_ALL                            0x000000FF\r
+\r
+#define                LTF_USE_NONE                            0x00000000      // *** Not used - just for reference ***\r
+#define                LTF_USE_OFFSETS                         0x00000100      // Use the offsets specified in the draw data\r
+#define                LTF_USE_CLIPRECT_X                      0x00000200      // Use the X positions of the clipping rect\r
+#define                LTF_USE_CLIPRECT_Y                      0x00000400      // Use the Y positions of the clipping rect\r
+#define                LTF_USE_CLIPRECT                        0x00000600      // Use the X and Y positions of the clipping rect\r
+#define                LTF_USE_EXCLUSIVE_CLIP          0x00000800      // Use the clip rect exclusively (if any part of a line is out of the rect, it won't be drawn)\r
+#define                LTF_USE_ALL                                     0x0000FF00\r
+\r
+#define                LTF_TIMED_NONE                          0x00000000      // *** Not used - just for reference ***\r
+#define                LTF_TIMED_LETTERS                       0x00010000      // Use the letter delay time\r
+#define                LTF_TIMED_LINES                         0x00020000      // Use the line delay time\r
+#define                LTF_TIMED_SCROLL                        0x00040000      // Scroll each line\r
+#define                LTF_TIMED_ALL                           0x00FF0000\r
+\r
+#define                LTF_EXTRA_NONE                          0x00000000      // *** Not used - just for reference ***\r
+#define                LTF_EXTRA_NEWLINE_UP            0x01000000      // Make new lines go up instead of down\r
+#define                LTF_EXTRA_LOCKLAST                      0x02000000      // Locks the last text line at the cursor position\r
+#define                LTF_EXTRA_ALL                           0xFF000000\r
+\r
+//*********************************************************************************\r
+// Defined values for LithFontDrawData::byJustify\r
+\r
+#define                LTF_JUSTIFY_LEFT                        0\r
+#define                LTF_JUSTIFY_RIGHT                       1\r
+#define                LTF_JUSTIFY_CENTER                      2\r
+\r
+//*********************************************************************************\r
+// Defined values for LithFont states\r
+\r
+#define                LTF_STATE_NONE                          0                       // No state\r
+#define                LTF_STATE_DRAW                          1                       // State draw (normal)\r
+#define                LTF_STATE_DRAW_UPDATING         2                       // State draw (timed); text updating\r
+#define                LTF_STATE_DRAW_LINE_DELAY       3                       // State draw (timed); text paused\r
+#define                LTF_STATE_DRAW_SCROLLING        4                       // Start draw (timed); text scrolling\r
+#define                LTF_STATE_DRAW_FINISHED         5                       // State draw (timed); text finished\r
+#define                LTF_STATE_EXTENTS                       6                       // State extents\r
+\r
+//*********************************************************************************\r
+// General defines used internally by LithBitmapFont\r
+\r
+#define                LTF_NUM_SYMBOLS_1                       15\r
+#define                LTF_NUM_NUMBERS                         10\r
+#define                LTF_NUM_SYMBOLS_2                       7\r
+#define                LTF_NUM_LETTERS                         26\r
+#define                LTF_NUM_SYMBOLS_3                       6\r
+#define                LTF_NUM_SYMBOLS_4                       4\r
+\r
+#define                LTF_NUM_TOTAL_CHARS                     94\r
+\r
+//*********************************************************************************\r
+// General defines used internally by LithFontMgr\r
+\r
+#define                LTF_MGR_MAX_FONTS                       32\r
+#define                LTF_MGR_MAX_CURSORS                     64\r
+\r
+//*********************************************************************************\r
+// General defines used internally by all classes\r
+\r
+#define                LTF_REF_NAME_SIZE                       64\r
+#define                LTF_MAX_STRING_SIZE                     512\r
+#define                LTF_OFFSETS_NAME_SIZE           256\r
+#define                LTF_MAX_FORMAT_LINES            512\r
+\r
+//*********************************************************************************\r
+// Font create structure\r
+//*********************************************************************************\r
+\r
+struct LITHFONTCREATESTRUCT\r
+{\r
+       LITHFONTCREATESTRUCT::LITHFONTCREATESTRUCT();\r
+\r
+       // General font information\r
+       char            *szRefName;                     // Reference name from each font (will be set automatically if not provided)\r
+\r
+       // Variables needed to init a bitmap font\r
+       char            *szFontBitmap;\r
+       uint32          nGroupFlags;\r
+       HLTCOLOR        hTransColor;\r
+       LTBOOL          bChromaKey;\r
+       uint8           nFixedPitch;\r
+\r
+       // Variables needed to init a system font\r
+       char            *szFontName;\r
+       int                     nWidth;\r
+       int                     nHeight;\r
+       LTBOOL          bItalic;\r
+       LTBOOL          bUnderline;\r
+       LTBOOL          bBold;\r
+};\r
+\r
+//---------------------------------------------------------------------------------\r
+\r
+inline LITHFONTCREATESTRUCT::LITHFONTCREATESTRUCT()\r
+{\r
+       memset(this, 0, sizeof(LITHFONTCREATESTRUCT));\r
+\r
+       szFontName = "Arial";\r
+       nWidth = 10;\r
+       nHeight = 14;\r
+}\r
+\r
+//*********************************************************************************\r
+// Font formatting data\r
+//*********************************************************************************\r
+\r
+struct LITHFONTFORMATDATA\r
+{\r
+       LITHFONTFORMATDATA::LITHFONTFORMATDATA();\r
+\r
+       uint32          nNumChars;\r
+       uint32          nNumLines;\r
+       uint32          pIndex[LTF_MAX_FORMAT_LINES];\r
+       uint32          pWidths[LTF_MAX_FORMAT_LINES];\r
+       LTFLOAT         pTimes[LTF_MAX_FORMAT_LINES];\r
+};\r
+\r
+//---------------------------------------------------------------------------------\r
+\r
+inline LITHFONTFORMATDATA::LITHFONTFORMATDATA()\r
+{\r
+       memset(this, 0, sizeof(LITHFONTFORMATDATA));\r
+}\r
+\r
+//*********************************************************************************\r
+// Drawing data structure\r
+//*********************************************************************************\r
+\r
+struct LITHFONTDRAWDATA\r
+{\r
+       LITHFONTDRAWDATA::LITHFONTDRAWDATA();\r
+\r
+       // Variables used to tell how to draw the string\r
+       uint32          dwFlags;\r
+\r
+       // Justification of the text\r
+       uint8           byJustify;\r
+\r
+       // Drawing offsets from the cursor position (if not from cursor, then top-left of surface)\r
+       int                     nXOffset;\r
+       int                     nYOffset;\r
+\r
+       // Force the string to be reformatted, even if the string remains the same\r
+       uint8           bForceFormat;\r
+\r
+       // Formatting data\r
+       uint32          dwFormatWidth;                                  // The width to format with (for word wrapping)\r
+       LTRect          rcClip;                                                 // The rectangle to clip the text onto\r
+\r
+       // Spacing data\r
+       int                     nLetterSpace;                                   // Pixel offset for distance between letters\r
+       int                     nLineSpace;                                             // Pixel offset for distance between lines\r
+\r
+       // Color and translucency information\r
+       HLTCOLOR        hColor;                                                 // The solid color to draw the font with\r
+       LTFLOAT         fAlpha;                                                 // The alpha value to use when blitting the font (direct to screen only)\r
+\r
+       // Timed drawing variables\r
+       LTFLOAT         fLetterDelay;                                   // Time it takes to draw one letter (0.1 would draw 10 letters a second)\r
+       LTFLOAT         fLineDelay;                                             // Time the drawing will delay inbetween lines\r
+       LTFLOAT         fLineScrollTime;                                // Time it takes to scroll to the next line\r
+       uint32          nNumWaitLines;                                  // Number of lines to wait until scrolling the text or locking the last line\r
+};\r
+\r
+//---------------------------------------------------------------------------------\r
+\r
+inline LITHFONTDRAWDATA::LITHFONTDRAWDATA()\r
+{\r
+       memset(this, 0, sizeof(LITHFONTDRAWDATA));\r
+\r
+       fAlpha = 1.0f;\r
+       nNumWaitLines = 1;\r
+}\r
+\r
+//*********************************************************************************\r
+// Drawing data structure\r
+//*********************************************************************************\r
+\r
+struct LITHFONTSAVEDATA\r
+{\r
+       LITHFONTSAVEDATA::LITHFONTSAVEDATA();\r
+\r
+       // Times for drawing with the _TIMED method\r
+       LTFLOAT         fStartDrawTime;                                         // Start time of drawing\r
+       LTFLOAT         fTotalDrawTime;                                         // Time to draw the entire string\r
+\r
+       // General formatting data for all drawing methods\r
+       LITHFONTFORMATDATA              lfFD;\r
+\r
+       // The previous string that was drawn\r
+       char *          szPrevString;\r
+\r
+       // The last method used by the font\r
+       uint8           byLastState;\r
+\r
+       // ***** System fonts only *****\r
+       int                     nLastLetterSpace;                                       // The last letter space value used\r
+};\r
+\r
+//---------------------------------------------------------------------------------\r
+\r
+inline LITHFONTSAVEDATA::LITHFONTSAVEDATA()\r
+{\r
+       memset(this, 0, sizeof(LITHFONTSAVEDATA));\r
+}\r
+\r
+//*********************************************************************************\r
+// Font offsets data structure\r
+//*********************************************************************************\r
+\r
+struct LITHFONTOFFSETDATA\r
+{\r
+       LITHFONTOFFSETDATA::LITHFONTOFFSETDATA();\r
+\r
+       char            szRefName[LTF_OFFSETS_NAME_SIZE];\r
+       uint32          pOffsets[LTF_NUM_TOTAL_CHARS + 1];\r
+       uint32          pWidths[LTF_NUM_TOTAL_CHARS];\r
+};\r
+\r
+//---------------------------------------------------------------------------------\r
+\r
+inline LITHFONTOFFSETDATA::LITHFONTOFFSETDATA()\r
+{\r
+       memset(this, 0, sizeof(LITHFONTOFFSETDATA));\r
+}\r
+\r
+//*********************************************************************************\r
+// Cursor create structure\r
+//*********************************************************************************\r
+\r
+class LithFont;\r
+\r
+struct LITHCURSORCREATESTRUCT\r
+{\r
+       LITHCURSORCREATESTRUCT::LITHCURSORCREATESTRUCT();\r
+\r
+       // General cursor information\r
+       char            *szRefName;                     // Reference name from each cursor (will NOT be set automatically)\r
+\r
+       // Initial values of the cursor variables\r
+       LithFont        *pFont;\r
+       HSURFACE        pDest;\r
+\r
+       int                     nXLoc;\r
+       int                     nYLoc;\r
+\r
+       // Initial drawing data for this cursor\r
+       LITHFONTDRAWDATA        lfDD;\r
+};\r
+\r
+//---------------------------------------------------------------------------------\r
+\r
+inline LITHCURSORCREATESTRUCT::LITHCURSORCREATESTRUCT()\r
+{\r
+       memset(this, 0, sizeof(LITHCURSORCREATESTRUCT));\r
+}\r
+\r
+//*********************************************************************************\r
+\r
+#endif\r
diff --git a/LT2/lithshared/incs/lithfontmgr.h b/LT2/lithshared/incs/lithfontmgr.h
new file mode 100644 (file)
index 0000000..6f58a12
--- /dev/null
@@ -0,0 +1,148 @@
+//*********************************************************************************\r
+//*********************************************************************************\r
+// Project:            Lith Tech Font Manager\r
+// Purpose:            A general font method for bitmap and system fonts\r
+//*********************************************************************************\r
+// File:               LithFontMgr.h\r
+// Created:            April 8, 1999\r
+// Updated:            April 8, 1999\r
+// Author:             Andy Mattingly\r
+//*********************************************************************************\r
+//*********************************************************************************\r
+\r
+#ifndef                _LITHTECH_FONT_MGR_H_\r
+#define                _LITHTECH_FONT_MGR_H_\r
+\r
+//*********************************************************************************\r
+\r
+#include "..\lithfontmgr\lithfontdefs.h"\r
+#include "..\lithfontmgr\lithbitmapfont.h"\r
+#include "..\lithfontmgr\lithsystemfont.h"\r
+#include "..\lithfontmgr\lithcursor.h"\r
+\r
+\r
+#ifndef NO_PRAGMA_LIBS\r
+       #ifdef _LITHTECH2\r
+               #ifdef _DEBUG                            \r
+                       #pragma comment (lib, "\\proj\\libs\\debug\\LithFontMgr_LT2.lib")\r
+               #else\r
+                       #pragma comment (lib, "\\proj\\libs\\release\\LithFontMgr_LT2.lib")\r
+               #endif\r
+       #else\r
+               #ifdef _DEBUG                            \r
+                       #pragma comment (lib, "\\proj\\libs\\debug\\LithFontMgr.lib")\r
+               #else\r
+                       #pragma comment (lib, "\\proj\\libs\\release\\LithFontMgr.lib")\r
+               #endif\r
+       #endif\r
+#endif\r
+\r
+//*********************************************************************************\r
+\r
+//---------------------------------------------------------------------------------\r
+//---------------------------------------------------------------------------------\r
+// ***** SPECIAL NOTE ABOUT BITMAP FONTS!!! *****\r
+//\r
+// Be careful not to have any vertical lines of transparency for characters within\r
+// the font itself.  The only blank lines should be between the individual characters\r
+// so that the calculation of the widths can be accurate.  Otherwise, you'll end\r
+// up with characters that look like 'half letters' and any characters after the bad\r
+// ones will be off on the ascii chart.\r
+//\r
+// Pay special attention to characters like " because of it's inherent blank space.\r
+// LithFontMgr WILL count this as two characters unless you fill in that gap. A creative\r
+// way to do this would be just to angle the two lines so there's no straight vertical\r
+// space.   If you notice weirdness with the font letters... check for this problem\r
+// before anything else.\r
+//---------------------------------------------------------------------------------\r
+//---------------------------------------------------------------------------------\r
+\r
+//*********************************************************************************\r
+\r
+//---------------------------------------------------------------------------------\r
+//---------------------------------------------------------------------------------\r
+// ***** SPECIAL NOTE ABOUT LITH CURSORS!!! *****\r
+//\r
+// It is recommended that you use one cursor per string when drawing simutanious lines\r
+// at once. This is due to the fact that the cursor stores data about how the string\r
+// is currently being drawn... so if you use the same cursor to draw multiple strings\r
+// in the same frame, you may lose data from one string to the next.  Plus, there are\r
+// some enhancements that speed up the formatting of the string data when you use one\r
+// cursor per string.\r
+//---------------------------------------------------------------------------------\r
+//---------------------------------------------------------------------------------\r
+// ***** LITHCURSORCREATESTRUCT *****\r
+//\r
+// Here are the members of LITHCURSORCREATESTRUCT:\r
+//\r
+// char                        *szRefName;             // Reference name from each cursor (will NOT be set automatically)\r
+// LithFont            *pFont;                 // The font to use when drawing the string\r
+// HSURFACE            pDest;                  // The surface to draw the string onto\r
+// int                 nXLoc;                  // X location of the cursor on the destination surface\r
+// int                 nYLoc;                  // Y location of the cursor on the destination surface\r
+// LITHFONTDRAWDATA    lfDD;           // Initial drawing data for this cursor\r
+//---------------------------------------------------------------------------------\r
+//---------------------------------------------------------------------------------\r
+\r
+//*********************************************************************************\r
+// Use these functions for general purpose creating and deleting fonts and cursors\r
+\r
+extern LithFont*       CreateLithFont(ILTClient *pClient, LITHFONTCREATESTRUCT *lfCS, LTBOOL bEnglish = LTTRUE);\r
+extern void                    FreeLithFont(LithFont* lf);\r
+extern LithCursor*     CreateLithCursor(ILTClient *pClient, LITHCURSORCREATESTRUCT *lcCS);\r
+extern void                    FreeLithCursor(LithCursor* lc);\r
+\r
+//*********************************************************************************\r
+// Use this class if you want the fonts and cursors managed for you and accessible\r
+// by their reference names or indexes\r
+\r
+class LithFontMgr\r
+{\r
+       public:\r
+               // Constructors and destructors\r
+               LithFontMgr();\r
+               ~LithFontMgr();\r
+\r
+               // Initialization and deallocation functions\r
+               void    Init(ILTClient *pClient, LTBOOL bEnglish);\r
+               void    Free();\r
+\r
+               // Font functions\r
+               LithFont*       AddFont(LITHFONTCREATESTRUCT *lfCS, int nIndex = -1);   // -1 places the font at the first available slot\r
+               LTBOOL          DeleteFont(int nIndex);\r
+               LTBOOL          DeleteFont(char *szName);\r
+\r
+               LithFont*       Font(int nIndex);\r
+               LithFont*       Font(char *szName);\r
+\r
+               // Cursor functions\r
+               LithCursor*     AddCursor(LITHCURSORCREATESTRUCT *lcCS, int nIndex = -1);// -1 places the cursor at the first available slot\r
+               LTBOOL          DeleteCursor(int nIndex);\r
+               LTBOOL          DeleteCursor(char *szName);\r
+\r
+               LithCursor*     Cursor(int nIndex);\r
+               LithCursor*     Cursor(char *szName);\r
+\r
+               // Easy drawing functions\r
+               LTBOOL          Draw(int nCursor, HSTRING szString);\r
+               LTBOOL          Draw(char *szCursor, HSTRING szString);\r
+               LTBOOL          Draw(int nCursor, int nFont, HSTRING szString);\r
+               LTBOOL          Draw(char *szCursor, char *szFont, HSTRING szString);\r
+\r
+       protected:\r
+               // Client data\r
+               ILTClient               *m_pClient;\r