summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Morgan <sjm@eml.cc>2013-04-09 20:53:33 +0100
committerSimon Morgan <sjm@eml.cc>2013-04-09 20:53:33 +0100
commit9a3bfdf2c0173224391d4b1680e4317fb7675303 (patch)
tree65ce7a5463c8bc7939bc9c89b4927619ef327321
downloadjediacademyxbox-9a3bfdf2c0173224391d4b1680e4317fb7675303.tar.gz
jediacademyxbox-9a3bfdf2c0173224391d4b1680e4317fb7675303.tar.bz2
jediacademyxbox-9a3bfdf2c0173224391d4b1680e4317fb7675303.zip
Initial import.HEADmaster
-rw-r--r--base/default.cfg109
-rw-r--r--base/ext_data/MP/netf_overrides.txt155
-rw-r--r--base/ext_data/MP/psf_overrides.txt181
-rw-r--r--base/ext_data/MP/vssver.sccbin0 -> 64 bytes
-rw-r--r--base/ext_data/dms.dat1757
-rw-r--r--base/ext_data/items.dat782
-rw-r--r--base/ext_data/npcs/Bartender.npc25
-rw-r--r--base/ext_data/npcs/BespinCop.npc57
-rw-r--r--base/ext_data/npcs/Desann.npc53
-rw-r--r--base/ext_data/npcs/Elder.npc55
-rw-r--r--base/ext_data/npcs/Galak.npc22
-rw-r--r--base/ext_data/npcs/Galak_Mech.npc36
-rw-r--r--base/ext_data/npcs/Glider.npc21
-rw-r--r--base/ext_data/npcs/Gran.npc125
-rw-r--r--base/ext_data/npcs/HazardTrooper.npc92
-rw-r--r--base/ext_data/npcs/Howler.npc23
-rw-r--r--base/ext_data/npcs/ImpCommander.npc34
-rw-r--r--base/ext_data/npcs/ImpOfficer.npc30
-rw-r--r--base/ext_data/npcs/ImpWorker.npc101
-rw-r--r--base/ext_data/npcs/Imperial.npc29
-rw-r--r--base/ext_data/npcs/Jan.npc30
-rw-r--r--base/ext_data/npcs/Jedi.npc102
-rw-r--r--base/ext_data/npcs/JediF.npc49
-rw-r--r--base/ext_data/npcs/JediMaster.npc47
-rw-r--r--base/ext_data/npcs/JediTrainer.npc48
-rw-r--r--base/ext_data/npcs/Kyle.npc91
-rw-r--r--base/ext_data/npcs/Lando.npc62
-rw-r--r--base/ext_data/npcs/Luke.npc49
-rw-r--r--base/ext_data/npcs/Merchant.npc27
-rw-r--r--base/ext_data/npcs/Minemonster.npc24
-rw-r--r--base/ext_data/npcs/MonMothma.npc25
-rw-r--r--base/ext_data/npcs/MorganKatarn.npc25
-rw-r--r--base/ext_data/npcs/Noghri.npc27
-rw-r--r--base/ext_data/npcs/Prisoner.npc54
-rw-r--r--base/ext_data/npcs/Ragnos.npc20
-rw-r--r--base/ext_data/npcs/Rax.npc25
-rw-r--r--base/ext_data/npcs/Rebel.npc61
-rw-r--r--base/ext_data/npcs/Rebel2.npc27
-rw-r--r--base/ext_data/npcs/Reborn.npc50
-rw-r--r--base/ext_data/npcs/RebornAcrobat.npc51
-rw-r--r--base/ext_data/npcs/RebornBoss.npc51
-rw-r--r--base/ext_data/npcs/RebornChiss.npc54
-rw-r--r--base/ext_data/npcs/RebornFencer.npc52
-rw-r--r--base/ext_data/npcs/RebornForceUser.npc51
-rw-r--r--base/ext_data/npcs/RebornRodian.npc52
-rw-r--r--base/ext_data/npcs/RebornTrandoshan.npc50
-rw-r--r--base/ext_data/npcs/RebornWeequay.npc49
-rw-r--r--base/ext_data/npcs/Reborn_dual.npc103
-rw-r--r--base/ext_data/npcs/Reborn_new.npc104
-rw-r--r--base/ext_data/npcs/Reborn_staff.npc103
-rw-r--r--base/ext_data/npcs/Reborn_twin.npc275
-rw-r--r--base/ext_data/npcs/Reelo.npc30
-rw-r--r--base/ext_data/npcs/RocketTrooper.npc37
-rw-r--r--base/ext_data/npcs/Rodian.npc66
-rw-r--r--base/ext_data/npcs/STCommander.npc37
-rw-r--r--base/ext_data/npcs/STOfficer.npc74
-rw-r--r--base/ext_data/npcs/STOfficerAlt.npc37
-rw-r--r--base/ext_data/npcs/ShadowTrooper.npc100
-rw-r--r--base/ext_data/npcs/StormPilot.npc35
-rw-r--r--base/ext_data/npcs/StormTrooper.npc67
-rw-r--r--base/ext_data/npcs/SwampTrooper.npc63
-rw-r--r--base/ext_data/npcs/Tavion.npc50
-rw-r--r--base/ext_data/npcs/Tavion_new.npc152
-rw-r--r--base/ext_data/npcs/Trandoshan.npc30
-rw-r--r--base/ext_data/npcs/Ugnaught.npc55
-rw-r--r--base/ext_data/npcs/alora.npc103
-rw-r--r--base/ext_data/npcs/assassin_droid.npc32
-rw-r--r--base/ext_data/npcs/atst.npc36
-rw-r--r--base/ext_data/npcs/atst_vehicle.npc13
-rw-r--r--base/ext_data/npcs/boba_fett.npc44
-rw-r--r--base/ext_data/npcs/chewie.npc86
-rw-r--r--base/ext_data/npcs/cultist.npc38
-rw-r--r--base/ext_data/npcs/cultist_destroyer.npc31
-rw-r--r--base/ext_data/npcs/cultist_drain.npc37
-rw-r--r--base/ext_data/npcs/cultist_grip.npc38
-rw-r--r--base/ext_data/npcs/cultist_lightning.npc37
-rw-r--r--base/ext_data/npcs/cultist_saber.npc294
-rw-r--r--base/ext_data/npcs/cultist_saber_powers.npc305
-rw-r--r--base/ext_data/npcs/cultistcommando.npc31
-rw-r--r--base/ext_data/npcs/gonk.npc23
-rw-r--r--base/ext_data/npcs/human_merc.npc372
-rw-r--r--base/ext_data/npcs/interrogator.npc24
-rw-r--r--base/ext_data/npcs/jawa.npc54
-rw-r--r--base/ext_data/npcs/jedi_random.npc648
-rw-r--r--base/ext_data/npcs/lambdashuttle.npc12
-rw-r--r--base/ext_data/npcs/mark1.npc24
-rw-r--r--base/ext_data/npcs/mark2.npc21
-rw-r--r--base/ext_data/npcs/mouse.npc25
-rw-r--r--base/ext_data/npcs/nullDriver.npc10
-rw-r--r--base/ext_data/npcs/player.npc7
-rw-r--r--base/ext_data/npcs/probe.npc33
-rw-r--r--base/ext_data/npcs/protocol.npc24
-rw-r--r--base/ext_data/npcs/protocol_imp.npc27
-rw-r--r--base/ext_data/npcs/r2d2.npc31
-rw-r--r--base/ext_data/npcs/r2d2_imp.npc32
-rw-r--r--base/ext_data/npcs/r5d2.npc31
-rw-r--r--base/ext_data/npcs/r5d2_imp.npc33
-rw-r--r--base/ext_data/npcs/rancor.npc70
-rw-r--r--base/ext_data/npcs/rancor_vehicle.npc14
-rw-r--r--base/ext_data/npcs/remote.npc53
-rw-r--r--base/ext_data/npcs/rockettrooper2.npc71
-rw-r--r--base/ext_data/npcs/rockettrooper_w.npc35
-rw-r--r--base/ext_data/npcs/rocks.npc28
-rw-r--r--base/ext_data/npcs/rosh_penin.npc124
-rw-r--r--base/ext_data/npcs/saber_droid.npc66
-rw-r--r--base/ext_data/npcs/saboteur.npc61
-rw-r--r--base/ext_data/npcs/saboteurpistol.npc29
-rw-r--r--base/ext_data/npcs/saboteursniper.npc30
-rw-r--r--base/ext_data/npcs/sand_creature.npc48
-rw-r--r--base/ext_data/npcs/seeker.npc26
-rw-r--r--base/ext_data/npcs/sentry.npc25
-rw-r--r--base/ext_data/npcs/snowtrooper.npc33
-rw-r--r--base/ext_data/npcs/swoop.npc115
-rw-r--r--base/ext_data/npcs/tauntaun.npc11
-rw-r--r--base/ext_data/npcs/test.npc8
-rw-r--r--base/ext_data/npcs/tie-bomber.npc19
-rw-r--r--base/ext_data/npcs/tie-fighter.npc11
-rw-r--r--base/ext_data/npcs/tusken.npc27
-rw-r--r--base/ext_data/npcs/tuskensniper.npc29
-rw-r--r--base/ext_data/npcs/vssver.sccbin0 -> 1840 bytes
-rw-r--r--base/ext_data/vssver.sccbin0 -> 80 bytes
-rw-r--r--base/ext_data/weapons.dat744
-rw-r--r--base/high.cfg18
-rw-r--r--base/low.cfg22
-rw-r--r--base/med.cfg18
-rw-r--r--base/mpdefault.cfg141
-rw-r--r--base/noMotion.cfg5
-rw-r--r--base/productid.txt1
-rw-r--r--base/restoreMotion.cfg5
-rw-r--r--base/vssver.sccbin0 -> 160 bytes
-rw-r--r--code/0_compiled_first/0_SH_Leak.cpp774
-rw-r--r--code/0_compiled_first/vssver.sccbin0 -> 48 bytes
-rw-r--r--code/ALut.libbin0 -> 4702 bytes
-rw-r--r--code/EaxMan.dllbin0 -> 94208 bytes
-rw-r--r--code/IFC22.dllbin0 -> 200704 bytes
-rw-r--r--code/JediAcademy.sln88
-rw-r--r--code/JediAcademy.vssscc10
-rw-r--r--code/OpenAL32.dllbin0 -> 221184 bytes
-rw-r--r--code/OpenAL32.libbin0 -> 16866 bytes
-rw-r--r--code/RMG/RM_Area.cpp480
-rw-r--r--code/RMG/RM_Area.h99
-rw-r--r--code/RMG/RM_Headers.h71
-rw-r--r--code/RMG/RM_Instance.cpp191
-rw-r--r--code/RMG/RM_Instance.h122
-rw-r--r--code/RMG/RM_InstanceFile.cpp200
-rw-r--r--code/RMG/RM_InstanceFile.h28
-rw-r--r--code/RMG/RM_Instance_BSP.cpp294
-rw-r--r--code/RMG/RM_Instance_BSP.h35
-rw-r--r--code/RMG/RM_Instance_Group.cpp343
-rw-r--r--code/RMG/RM_Instance_Group.h41
-rw-r--r--code/RMG/RM_Instance_Random.cpp187
-rw-r--r--code/RMG/RM_Instance_Random.h40
-rw-r--r--code/RMG/RM_Instance_Void.cpp53
-rw-r--r--code/RMG/RM_Instance_Void.h18
-rw-r--r--code/RMG/RM_Manager.cpp402
-rw-r--r--code/RMG/RM_Manager.h55
-rw-r--r--code/RMG/RM_Mission.cpp1930
-rw-r--r--code/RMG/RM_Mission.h129
-rw-r--r--code/RMG/RM_Objective.cpp134
-rw-r--r--code/RMG/RM_Objective.h65
-rw-r--r--code/RMG/RM_Path.cpp721
-rw-r--r--code/RMG/RM_Path.h223
-rw-r--r--code/RMG/RM_Terrain.cpp533
-rw-r--r--code/RMG/RM_Terrain.h97
-rw-r--r--code/RMG/vssver.sccbin0 -> 432 bytes
-rw-r--r--code/Ragl/graph_region.h419
-rw-r--r--code/Ragl/graph_triangulate.h833
-rw-r--r--code/Ragl/graph_vs.h1776
-rw-r--r--code/Ragl/kdtree_vs.h458
-rw-r--r--code/Ragl/ragl_common.h232
-rw-r--r--code/Ragl/vssver.sccbin0 -> 112 bytes
-rw-r--r--code/Ratl/array_vs.h73
-rw-r--r--code/Ratl/bits_vs.h218
-rw-r--r--code/Ratl/grid_vs.h526
-rw-r--r--code/Ratl/handle_pool_vs.h291
-rw-r--r--code/Ratl/hash_pool_vs.h200
-rw-r--r--code/Ratl/heap_vs.h324
-rw-r--r--code/Ratl/list_vs.h751
-rw-r--r--code/Ratl/map_vs.h1629
-rw-r--r--code/Ratl/pool_vs.h570
-rw-r--r--code/Ratl/queue_vs.h231
-rw-r--r--code/Ratl/ratl.cpp130
-rw-r--r--code/Ratl/ratl_common.h1180
-rw-r--r--code/Ratl/scheduler_vs.h218
-rw-r--r--code/Ratl/stack_vs.h197
-rw-r--r--code/Ratl/string_vs.h366
-rw-r--r--code/Ratl/vector_vs.h757
-rw-r--r--code/Ratl/vssver.sccbin0 -> 288 bytes
-rw-r--r--code/Ravl/CBounds.cpp366
-rw-r--r--code/Ravl/CBounds.h188
-rw-r--r--code/Ravl/CMatrix.h165
-rw-r--r--code/Ravl/CVec.cpp1154
-rw-r--r--code/Ravl/CVec.h1002
-rw-r--r--code/Ravl/vssver.sccbin0 -> 112 bytes
-rw-r--r--code/Rufl/hfile.cpp378
-rw-r--r--code/Rufl/hfile.h61
-rw-r--r--code/Rufl/hstring.cpp185
-rw-r--r--code/Rufl/hstring.h106
-rw-r--r--code/Rufl/random.cpp0
-rw-r--r--code/Rufl/random.h0
-rw-r--r--code/Rufl/vssver.sccbin0 -> 128 bytes
-rw-r--r--code/SHDebug/HA312W32.DLLbin0 -> 382464 bytes
-rw-r--r--code/SHDebug/SHW32.DLLbin0 -> 112720 bytes
-rw-r--r--code/SHDebug/vssver.sccbin0 -> 64 bytes
-rw-r--r--code/VU.bat1
-rw-r--r--code/cgame/FX_ATSTMain.cpp105
-rw-r--r--code/cgame/FX_Blaster.cpp95
-rw-r--r--code/cgame/FX_Bowcaster.cpp66
-rw-r--r--code/cgame/FX_BryarPistol.cpp156
-rw-r--r--code/cgame/FX_Concussion.cpp98
-rw-r--r--code/cgame/FX_DEMP2.cpp92
-rw-r--r--code/cgame/FX_Disruptor.cpp98
-rw-r--r--code/cgame/FX_Emplaced.cpp146
-rw-r--r--code/cgame/FX_Flechette.cpp73
-rw-r--r--code/cgame/FX_HeavyRepeater.cpp92
-rw-r--r--code/cgame/FX_NoghriShot.cpp72
-rw-r--r--code/cgame/FX_RocketLauncher.cpp66
-rw-r--r--code/cgame/FX_TuskenShot.cpp70
-rw-r--r--code/cgame/FxParsing.cpp5
-rw-r--r--code/cgame/FxParsing.h6
-rw-r--r--code/cgame/FxPrimitives.cpp2289
-rw-r--r--code/cgame/FxPrimitives.h572
-rw-r--r--code/cgame/FxScheduler.cpp2085
-rw-r--r--code/cgame/FxScheduler.h497
-rw-r--r--code/cgame/FxSystem.cpp215
-rw-r--r--code/cgame/FxSystem.h84
-rw-r--r--code/cgame/FxTemplate.cpp2370
-rw-r--r--code/cgame/FxUtil.cpp1400
-rw-r--r--code/cgame/FxUtil.h130
-rw-r--r--code/cgame/animtable.h1792
-rw-r--r--code/cgame/cg_camera.cpp1955
-rw-r--r--code/cgame/cg_camera.h164
-rw-r--r--code/cgame/cg_consolecmds.cpp324
-rw-r--r--code/cgame/cg_credits.cpp654
-rw-r--r--code/cgame/cg_draw.cpp4134
-rw-r--r--code/cgame/cg_drawtools.cpp473
-rw-r--r--code/cgame/cg_effects.cpp1087
-rw-r--r--code/cgame/cg_ents.cpp2684
-rw-r--r--code/cgame/cg_event.cpp1279
-rw-r--r--code/cgame/cg_headers.cpp3
-rw-r--r--code/cgame/cg_headers.h20
-rw-r--r--code/cgame/cg_info.cpp905
-rw-r--r--code/cgame/cg_lights.cpp87
-rw-r--r--code/cgame/cg_lights.h16
-rw-r--r--code/cgame/cg_local.h1233
-rw-r--r--code/cgame/cg_localents.cpp599
-rw-r--r--code/cgame/cg_main.cpp4549
-rw-r--r--code/cgame/cg_marks.cpp264
-rw-r--r--code/cgame/cg_media.h413
-rw-r--r--code/cgame/cg_players.cpp8541
-rw-r--r--code/cgame/cg_playerstate.cpp364
-rw-r--r--code/cgame/cg_predict.cpp780
-rw-r--r--code/cgame/cg_public.h214
-rw-r--r--code/cgame/cg_scoreboard.cpp373
-rw-r--r--code/cgame/cg_servercmds.cpp254
-rw-r--r--code/cgame/cg_snapshot.cpp407
-rw-r--r--code/cgame/cg_syscalls.cpp646
-rw-r--r--code/cgame/cg_text.cpp768
-rw-r--r--code/cgame/cg_view.cpp2249
-rw-r--r--code/cgame/cg_weapons.cpp3306
-rw-r--r--code/cgame/common_headers.h10
-rw-r--r--code/cgame/strip_objectives.h82
-rw-r--r--code/cgame/vssver.sccbin0 -> 944 bytes
-rw-r--r--code/client/BinkVideo.cpp389
-rw-r--r--code/client/BinkVideo.h63
-rw-r--r--code/client/OpenAL/al.h564
-rw-r--r--code/client/OpenAL/alc.h97
-rw-r--r--code/client/OpenAL/alctypes.h133
-rw-r--r--code/client/OpenAL/altypes.h351
-rw-r--r--code/client/OpenAL/alu.h34
-rw-r--r--code/client/OpenAL/alut.h24
-rw-r--r--code/client/OpenAL/vssver.sccbin0 -> 128 bytes
-rw-r--r--code/client/cl_cgame.cpp1312
-rw-r--r--code/client/cl_cin.cpp1950
-rw-r--r--code/client/cl_cin_console.cpp413
-rw-r--r--code/client/cl_console.cpp727
-rw-r--r--code/client/cl_input.cpp1091
-rw-r--r--code/client/cl_input_hotswap.cpp246
-rw-r--r--code/client/cl_input_hotswap.h64
-rw-r--r--code/client/cl_keys.cpp1478
-rw-r--r--code/client/cl_main.cpp1487
-rw-r--r--code/client/cl_mp3.cpp554
-rw-r--r--code/client/cl_mp3.h87
-rw-r--r--code/client/cl_mp3.org419
-rw-r--r--code/client/cl_parse.cpp510
-rw-r--r--code/client/cl_scrn.cpp568
-rw-r--r--code/client/cl_ui.cpp504
-rw-r--r--code/client/client.h465
-rw-r--r--code/client/client_ui.h13
-rw-r--r--code/client/eax/EaxMan.h171
-rw-r--r--code/client/eax/eax.h1562
-rw-r--r--code/client/eax/vssver.sccbin0 -> 64 bytes
-rw-r--r--code/client/fffx.h129
-rw-r--r--code/client/keycodes.h347
-rw-r--r--code/client/keys.h61
-rw-r--r--code/client/snd_ambient.cpp1165
-rw-r--r--code/client/snd_ambient.h118
-rw-r--r--code/client/snd_dma.cpp6280
-rw-r--r--code/client/snd_dma_console.cpp3090
-rw-r--r--code/client/snd_local.h228
-rw-r--r--code/client/snd_local_console.h128
-rw-r--r--code/client/snd_mem.cpp1015
-rw-r--r--code/client/snd_mem_console.cpp359
-rw-r--r--code/client/snd_mix.cpp471
-rw-r--r--code/client/snd_music.cpp1155
-rw-r--r--code/client/snd_music.h67
-rw-r--r--code/client/snd_public.h55
-rw-r--r--code/client/vmachine.cpp39
-rw-r--r--code/client/vmachine.h93
-rw-r--r--code/client/vssver.sccbin0 -> 608 bytes
-rw-r--r--code/ff/IFC/FeelitAPI.h1228
-rw-r--r--code/ff/IFC/IFC.h79
-rw-r--r--code/ff/IFC/IFC22.dllbin0 -> 200704 bytes
-rw-r--r--code/ff/IFC/IFC22.libbin0 -> 199282 bytes
-rw-r--r--code/ff/IFC/IFCErrors.h181
-rw-r--r--code/ff/IFC/ImmBaseTypes.h359
-rw-r--r--code/ff/IFC/ImmBox.h170
-rw-r--r--code/ff/IFC/ImmCompoundEffect.h228
-rw-r--r--code/ff/IFC/ImmCondition.h451
-rw-r--r--code/ff/IFC/ImmConstant.h219
-rw-r--r--code/ff/IFC/ImmDXDevice.h148
-rw-r--r--code/ff/IFC/ImmDamper.h185
-rw-r--r--code/ff/IFC/ImmDevice.h281
-rw-r--r--code/ff/IFC/ImmDevices.h156
-rw-r--r--code/ff/IFC/ImmEffect.h440
-rw-r--r--code/ff/IFC/ImmEffectSuite.h103
-rw-r--r--code/ff/IFC/ImmEllipse.h295
-rw-r--r--code/ff/IFC/ImmEnclosure.h325
-rw-r--r--code/ff/IFC/ImmFriction.h176
-rw-r--r--code/ff/IFC/ImmGrid.h179
-rw-r--r--code/ff/IFC/ImmIFR.h308
-rw-r--r--code/ff/IFC/ImmInertia.h183
-rw-r--r--code/ff/IFC/ImmMouse.h164
-rw-r--r--code/ff/IFC/ImmPeriodic.h259
-rw-r--r--code/ff/IFC/ImmProjects.h392
-rw-r--r--code/ff/IFC/ImmRamp.h225
-rw-r--r--code/ff/IFC/ImmSpring.h183
-rw-r--r--code/ff/IFC/ImmTexture.h407
-rw-r--r--code/ff/IFC/vssver.sccbin0 -> 480 bytes
-rw-r--r--code/ff/cl_ff.cpp72
-rw-r--r--code/ff/cl_ff.h13
-rw-r--r--code/ff/common_headers.h50
-rw-r--r--code/ff/ff.cpp383
-rw-r--r--code/ff/ff.h33
-rw-r--r--code/ff/ff_ChannelCompound.h64
-rw-r--r--code/ff/ff_ChannelSet.cpp162
-rw-r--r--code/ff/ff_ChannelSet.h59
-rw-r--r--code/ff/ff_ConfigParser.cpp483
-rw-r--r--code/ff/ff_ConfigParser.h51
-rw-r--r--code/ff/ff_HandleTable.cpp133
-rw-r--r--code/ff/ff_HandleTable.h61
-rw-r--r--code/ff/ff_MultiCompound.cpp201
-rw-r--r--code/ff/ff_MultiCompound.h54
-rw-r--r--code/ff/ff_MultiEffect.cpp281
-rw-r--r--code/ff/ff_MultiEffect.h59
-rw-r--r--code/ff/ff_MultiSet.cpp140
-rw-r--r--code/ff/ff_MultiSet.h43
-rw-r--r--code/ff/ff_console.cpp248
-rw-r--r--code/ff/ff_ffset.cpp356
-rw-r--r--code/ff/ff_ffset.h64
-rw-r--r--code/ff/ff_local.h24
-rw-r--r--code/ff/ff_public.h43
-rw-r--r--code/ff/ff_snd.cpp503
-rw-r--r--code/ff/ff_snd.h11
-rw-r--r--code/ff/ff_system.cpp151
-rw-r--r--code/ff/ff_system.h117
-rw-r--r--code/ff/ff_utils.cpp105
-rw-r--r--code/ff/ff_utils.h154
-rw-r--r--code/ff/vssver.sccbin0 -> 496 bytes
-rw-r--r--code/game/AI_Animal.cpp390
-rw-r--r--code/game/AI_AssassinDroid.cpp197
-rw-r--r--code/game/AI_Atst.cpp315
-rw-r--r--code/game/AI_BobaFett.cpp1266
-rw-r--r--code/game/AI_Civilian.cpp43
-rw-r--r--code/game/AI_Default.cpp958
-rw-r--r--code/game/AI_Droid.cpp556
-rw-r--r--code/game/AI_GalakMech.cpp743
-rw-r--r--code/game/AI_Glider.cpp3
-rw-r--r--code/game/AI_Grenadier.cpp669
-rw-r--r--code/game/AI_HazardTrooper.cpp1571
-rw-r--r--code/game/AI_Howler.cpp852
-rw-r--r--code/game/AI_ImperialProbe.cpp597
-rw-r--r--code/game/AI_Interrogator.cpp456
-rw-r--r--code/game/AI_Jedi.cpp7667
-rw-r--r--code/game/AI_Mark1.cpp746
-rw-r--r--code/game/AI_Mark2.cpp358
-rw-r--r--code/game/AI_MineMonster.cpp269
-rw-r--r--code/game/AI_Rancor.cpp1684
-rw-r--r--code/game/AI_Remote.cpp389
-rw-r--r--code/game/AI_RocketTrooper.cpp908
-rw-r--r--code/game/AI_SaberDroid.cpp443
-rw-r--r--code/game/AI_SandCreature.cpp818
-rw-r--r--code/game/AI_Seeker.cpp539
-rw-r--r--code/game/AI_Sentry.cpp569
-rw-r--r--code/game/AI_Sniper.cpp911
-rw-r--r--code/game/AI_Stormtrooper.cpp2722
-rw-r--r--code/game/AI_Tusken.cpp512
-rw-r--r--code/game/AI_Utils.cpp1055
-rw-r--r--code/game/AI_Wampa.cpp904
-rw-r--r--code/game/AnimalNPC.c1065
-rw-r--r--code/game/FighterNPC.c1751
-rw-r--r--code/game/G_Timer.cpp397
-rw-r--r--code/game/NPC.cpp2731
-rw-r--r--code/game/NPC_behavior.cpp2067
-rw-r--r--code/game/NPC_combat.cpp3317
-rw-r--r--code/game/NPC_goal.cpp188
-rw-r--r--code/game/NPC_misc.cpp79
-rw-r--r--code/game/NPC_move.cpp844
-rw-r--r--code/game/NPC_reactions.cpp1164
-rw-r--r--code/game/NPC_senses.cpp1106
-rw-r--r--code/game/NPC_sounds.cpp118
-rw-r--r--code/game/NPC_spawn.cpp4376
-rw-r--r--code/game/NPC_stats.cpp4090
-rw-r--r--code/game/NPC_utils.cpp1668
-rw-r--r--code/game/Q3_Interface.cpp11277
-rw-r--r--code/game/Q3_Interface.h704
-rw-r--r--code/game/SpeederNPC.c1180
-rw-r--r--code/game/WalkerNPC.c573
-rw-r--r--code/game/ai.h134
-rw-r--r--code/game/anims.h1797
-rw-r--r--code/game/b_local.h353
-rw-r--r--code/game/b_public.h401
-rw-r--r--code/game/bg_lib.cpp656
-rw-r--r--code/game/bg_local.h56
-rw-r--r--code/game/bg_misc.cpp754
-rw-r--r--code/game/bg_pangles.cpp1842
-rw-r--r--code/game/bg_panimate.cpp7206
-rw-r--r--code/game/bg_pmove.cpp15345
-rw-r--r--code/game/bg_public.h746
-rw-r--r--code/game/bg_slidemove.cpp573
-rw-r--r--code/game/bg_vehicleLoad.c1670
-rw-r--r--code/game/bset.h24
-rw-r--r--code/game/bstate.h29
-rw-r--r--code/game/channels.h22
-rw-r--r--code/game/characters.h52
-rw-r--r--code/game/common_headers.h26
-rw-r--r--code/game/dmstates.h15
-rw-r--r--code/game/events.h10
-rw-r--r--code/game/fields.h64
-rw-r--r--code/game/g_active.cpp5803
-rw-r--r--code/game/g_breakable.cpp1535
-rw-r--r--code/game/g_camera.cpp256
-rw-r--r--code/game/g_client.cpp2479
-rw-r--r--code/game/g_cmds.cpp1615
-rw-r--r--code/game/g_combat.cpp7032
-rw-r--r--code/game/g_emplaced.cpp1133
-rw-r--r--code/game/g_functions.cpp412
-rw-r--r--code/game/g_functions.h630
-rw-r--r--code/game/g_fx.cpp1236
-rw-r--r--code/game/g_headers.cpp8
-rw-r--r--code/game/g_headers.h32
-rw-r--r--code/game/g_inventory.cpp137
-rw-r--r--code/game/g_itemLoad.cpp730
-rw-r--r--code/game/g_items.cpp1633
-rw-r--r--code/game/g_items.h94
-rw-r--r--code/game/g_local.h631
-rw-r--r--code/game/g_main.cpp2147
-rw-r--r--code/game/g_mem.cpp38
-rw-r--r--code/game/g_misc.cpp3297
-rw-r--r--code/game/g_misc_model.cpp792
-rw-r--r--code/game/g_missile.cpp1534
-rw-r--r--code/game/g_mover.cpp2657
-rw-r--r--code/game/g_nav.cpp407
-rw-r--r--code/game/g_nav.h30
-rw-r--r--code/game/g_navigator.cpp5508
-rw-r--r--code/game/g_navigator.h269
-rw-r--r--code/game/g_navnew.cpp227
-rw-r--r--code/game/g_object.cpp356
-rw-r--r--code/game/g_objectives.cpp85
-rw-r--r--code/game/g_public.h531
-rw-r--r--code/game/g_rail.cpp975
-rw-r--r--code/game/g_ref.cpp402
-rw-r--r--code/game/g_roff.cpp646
-rw-r--r--code/game/g_roff.h88
-rw-r--r--code/game/g_savegame.cpp1356
-rw-r--r--code/game/g_session.cpp221
-rw-r--r--code/game/g_shared.h930
-rw-r--r--code/game/g_spawn.cpp1657
-rw-r--r--code/game/g_svcmds.cpp1422
-rw-r--r--code/game/g_target.cpp1234
-rw-r--r--code/game/g_trigger.cpp1685
-rw-r--r--code/game/g_turret.cpp2516
-rw-r--r--code/game/g_usable.cpp251
-rw-r--r--code/game/g_utils.cpp2163
-rw-r--r--code/game/g_vehicleLoad.cpp432
-rw-r--r--code/game/g_vehicles.c3196
-rw-r--r--code/game/g_vehicles.h625
-rw-r--r--code/game/g_weapon.cpp5357
-rw-r--r--code/game/g_weaponLoad.cpp1362
-rw-r--r--code/game/game.def4
-rw-r--r--code/game/game.vcproj2916
-rw-r--r--code/game/game.vcproj.vspscc10
-rw-r--r--code/game/game.zipbin0 -> 896134 bytes
-rw-r--r--code/game/genericparser2.cpp1136
-rw-r--r--code/game/genericparser2.h211
-rw-r--r--code/game/ghoul2_shared.h495
-rw-r--r--code/game/hitlocs.h35
-rw-r--r--code/game/mssccprj.scc5
-rw-r--r--code/game/npc_headers.h7
-rw-r--r--code/game/objectives.h341
-rw-r--r--code/game/q_math.cpp1273
-rw-r--r--code/game/q_shared.cpp1213
-rw-r--r--code/game/q_shared.h2708
-rw-r--r--code/game/say.h30
-rw-r--r--code/game/statindex.h26
-rw-r--r--code/game/surfaceflags.h190
-rw-r--r--code/game/teams.h92
-rw-r--r--code/game/vssver.sccbin0 -> 2272 bytes
-rw-r--r--code/game/weapons.h149
-rw-r--r--code/game/wp_saber.cpp14571
-rw-r--r--code/game/wp_saber.h444
-rw-r--r--code/game/wp_saberLoad.cpp2672
-rw-r--r--code/ghoul2/G2.h201
-rw-r--r--code/ghoul2/G2_API.cpp2145
-rw-r--r--code/ghoul2/G2_bolts.cpp253
-rw-r--r--code/ghoul2/G2_bones.cpp4756
-rw-r--r--code/ghoul2/G2_misc.cpp1927
-rw-r--r--code/ghoul2/G2_surfaces.cpp428
-rw-r--r--code/ghoul2/ghoul2_gore.h191
-rw-r--r--code/ghoul2/vssver.sccbin0 -> 144 bytes
-rw-r--r--code/goblib/goblib.cpp1876
-rw-r--r--code/goblib/goblib.h299
-rw-r--r--code/goblib/goblib.vcproj461
-rw-r--r--code/goblib/goblib.vcproj.vspscc10
-rw-r--r--code/goblib/mssccprj.scc5
-rw-r--r--code/goblib/vssver.sccbin0 -> 96 bytes
-rw-r--r--code/icarus/BlockStream.cpp586
-rw-r--r--code/icarus/IcarusImplementation.cpp809
-rw-r--r--code/icarus/IcarusImplementation.h253
-rw-r--r--code/icarus/IcarusInterface.h143
-rw-r--r--code/icarus/Sequence.cpp674
-rw-r--r--code/icarus/Sequencer.cpp2614
-rw-r--r--code/icarus/StdAfx.h19
-rw-r--r--code/icarus/TaskManager.cpp2036
-rw-r--r--code/icarus/blockstream.h213
-rw-r--r--code/icarus/sequence.h115
-rw-r--r--code/icarus/sequencer.h163
-rw-r--r--code/icarus/taskmanager.h227
-rw-r--r--code/icarus/vssver.sccbin0 -> 224 bytes
-rw-r--r--code/ja_melee_code.zipbin0 -> 875150 bytes
-rw-r--r--code/jpeg-6/jcapimin.cpp234
-rw-r--r--code/jpeg-6/jccoefct.cpp454
-rw-r--r--code/jpeg-6/jccolor.cpp465
-rw-r--r--code/jpeg-6/jcdctmgr.cpp397
-rw-r--r--code/jpeg-6/jchuff.cpp853
-rw-r--r--code/jpeg-6/jchuff.h34
-rw-r--r--code/jpeg-6/jcinit.cpp79
-rw-r--r--code/jpeg-6/jcmainct.cpp302
-rw-r--r--code/jpeg-6/jcmarker.cpp645
-rw-r--r--code/jpeg-6/jcmaster.cpp584
-rw-r--r--code/jpeg-6/jcomapi.cpp100
-rw-r--r--code/jpeg-6/jconfig.h41
-rw-r--r--code/jpeg-6/jcparam.cpp580
-rw-r--r--code/jpeg-6/jcphuff.cpp835
-rw-r--r--code/jpeg-6/jcprepct.cpp377
-rw-r--r--code/jpeg-6/jcsample.cpp525
-rw-r--r--code/jpeg-6/jctrans.cpp378
-rw-r--r--code/jpeg-6/jdapimin.cpp404
-rw-r--r--code/jpeg-6/jdapistd.cpp281
-rw-r--r--code/jpeg-6/jdatadst.cpp158
-rw-r--r--code/jpeg-6/jdatasrc.cpp210
-rw-r--r--code/jpeg-6/jdcoefct.cpp731
-rw-r--r--code/jpeg-6/jdcolor.cpp373
-rw-r--r--code/jpeg-6/jdct.h176
-rw-r--r--code/jpeg-6/jddctmgr.cpp276
-rw-r--r--code/jpeg-6/jdhuff.cpp580
-rw-r--r--code/jpeg-6/jdhuff.h202
-rw-r--r--code/jpeg-6/jdinput.cpp386
-rw-r--r--code/jpeg-6/jdmainct.cpp525
-rw-r--r--code/jpeg-6/jdmarker.cpp1058
-rw-r--r--code/jpeg-6/jdmaster.cpp562
-rw-r--r--code/jpeg-6/jdpostct.cpp296
-rw-r--r--code/jpeg-6/jdsample.cpp484
-rw-r--r--code/jpeg-6/jdtrans.cpp129
-rw-r--r--code/jpeg-6/jerror.cpp239
-rw-r--r--code/jpeg-6/jerror.h273
-rw-r--r--code/jpeg-6/jfdctflt.cpp174
-rw-r--r--code/jpeg-6/jidctflt.cpp246
-rw-r--r--code/jpeg-6/jinclude.h116
-rw-r--r--code/jpeg-6/jmemmgr.cpp1120
-rw-r--r--code/jpeg-6/jmemnobs.cpp111
-rw-r--r--code/jpeg-6/jmemsys.h182
-rw-r--r--code/jpeg-6/jmorecfg.h349
-rw-r--r--code/jpeg-6/jpegint.h388
-rw-r--r--code/jpeg-6/jpeglib.h1065
-rw-r--r--code/jpeg-6/jutils.cpp179
-rw-r--r--code/jpeg-6/jversion.h14
-rw-r--r--code/jpeg-6/vssver.sccbin0 -> 784 bytes
-rw-r--r--code/mac/MacGamma.c487
-rw-r--r--code/mac/MacGamma.cpp474
-rw-r--r--code/mac/MacGamma.h82
-rw-r--r--code/mac/MacQuake3bin0 -> 141015 bytes
-rw-r--r--code/mac/mac_console.c119
-rw-r--r--code/mac/mac_event.c357
-rw-r--r--code/mac/mac_glimp.c829
-rw-r--r--code/mac/mac_input.c212
-rw-r--r--code/mac/mac_local.h321
-rw-r--r--code/mac/mac_main.c693
-rw-r--r--code/mac/mac_net.c527
-rw-r--r--code/mac/mac_snddma.c140
-rw-r--r--code/mac/macprefix.h3
-rw-r--r--code/mac/q3.rsrc0
-rw-r--r--code/mac/vssver.sccbin0 -> 256 bytes
-rw-r--r--code/mp3code/cdct.c320
-rw-r--r--code/mp3code/config.h136
-rw-r--r--code/mp3code/copyright.h19
-rw-r--r--code/mp3code/csbt.c355
-rw-r--r--code/mp3code/csbtb.c279
-rw-r--r--code/mp3code/csbtl3.c309
-rw-r--r--code/mp3code/cup.c546
-rw-r--r--code/mp3code/cupini.c401
-rw-r--r--code/mp3code/cupl1.c325
-rw-r--r--code/mp3code/cupl3.c1287
-rw-r--r--code/mp3code/cwin.c470
-rw-r--r--code/mp3code/cwinb.c465
-rw-r--r--code/mp3code/cwinm.c55
-rw-r--r--code/mp3code/htable.h999
-rw-r--r--code/mp3code/hwin.c264
-rw-r--r--code/mp3code/jdw.h28
-rw-r--r--code/mp3code/l3.h187
-rw-r--r--code/mp3code/l3dq.c262
-rw-r--r--code/mp3code/l3init.c422
-rw-r--r--code/mp3code/mdct.c229
-rw-r--r--code/mp3code/mhead.c328
-rw-r--r--code/mp3code/mhead.h102
-rw-r--r--code/mp3code/mp3struct.h141
-rw-r--r--code/mp3code/msis.c296
-rw-r--r--code/mp3code/port.h80
-rw-r--r--code/mp3code/small_header.h34
-rw-r--r--code/mp3code/tableawd.h93
-rw-r--r--code/mp3code/towave.c766
-rw-r--r--code/mp3code/uph.c507
-rw-r--r--code/mp3code/upsf.c404
-rw-r--r--code/mp3code/vssver.sccbin0 -> 528 bytes
-rw-r--r--code/mp3code/wavep.c96
-rw-r--r--code/mssccprj.scc9
-rw-r--r--code/null/mac_net.c44
-rw-r--r--code/null/null_glimp.c39
-rw-r--r--code/null/null_main.c94
-rw-r--r--code/null/null_net.c43
-rw-r--r--code/null/null_snddma.c27
-rw-r--r--code/null/vssver.sccbin0 -> 112 bytes
-rw-r--r--code/png/png.cpp783
-rw-r--r--code/png/png.h73
-rw-r--r--code/png/vssver.sccbin0 -> 64 bytes
-rw-r--r--code/qcommon/MiniHeap.h67
-rw-r--r--code/qcommon/chash.h162
-rw-r--r--code/qcommon/cm_draw.cpp1488
-rw-r--r--code/qcommon/cm_draw.h245
-rw-r--r--code/qcommon/cm_landscape.h271
-rw-r--r--code/qcommon/cm_load.cpp1298
-rw-r--r--code/qcommon/cm_load_xbox.cpp1249
-rw-r--r--code/qcommon/cm_local.h321
-rw-r--r--code/qcommon/cm_patch.cpp2930
-rw-r--r--code/qcommon/cm_patch.h121
-rw-r--r--code/qcommon/cm_polylib.cpp711
-rw-r--r--code/qcommon/cm_polylib.h51
-rw-r--r--code/qcommon/cm_public.h72
-rw-r--r--code/qcommon/cm_randomterrain.cpp1086
-rw-r--r--code/qcommon/cm_randomterrain.h89
-rw-r--r--code/qcommon/cm_shader.cpp529
-rw-r--r--code/qcommon/cm_terrain.cpp1714
-rw-r--r--code/qcommon/cm_terrainmap.cpp489
-rw-r--r--code/qcommon/cm_terrainmap.h77
-rw-r--r--code/qcommon/cm_test.cpp793
-rw-r--r--code/qcommon/cm_trace.cpp1244
-rw-r--r--code/qcommon/cmd.cpp708
-rw-r--r--code/qcommon/common.cpp1580
-rw-r--r--code/qcommon/cvar.cpp951
-rw-r--r--code/qcommon/files.h118
-rw-r--r--code/qcommon/files_common.cpp588
-rw-r--r--code/qcommon/files_console.cpp1033
-rw-r--r--code/qcommon/files_pc.cpp1741
-rw-r--r--code/qcommon/fixedmap.h149
-rw-r--r--code/qcommon/hstring.cpp525
-rw-r--r--code/qcommon/hstring.h219
-rw-r--r--code/qcommon/md4.cpp274
-rw-r--r--code/qcommon/msg.cpp1248
-rw-r--r--code/qcommon/net_chan.cpp566
-rw-r--r--code/qcommon/platform.h17
-rw-r--r--code/qcommon/qcommon.h850
-rw-r--r--code/qcommon/qfiles.h633
-rw-r--r--code/qcommon/sparc.h725
-rw-r--r--code/qcommon/sstring.h120
-rw-r--r--code/qcommon/stringed_ingame.cpp1264
-rw-r--r--code/qcommon/stringed_ingame.h110
-rw-r--r--code/qcommon/stringed_interface.cpp215
-rw-r--r--code/qcommon/stringed_interface.h21
-rw-r--r--code/qcommon/stv_version.h13
-rw-r--r--code/qcommon/tags.h54
-rw-r--r--code/qcommon/timing.h62
-rw-r--r--code/qcommon/tri_coll_test.cpp506
-rw-r--r--code/qcommon/unzip.cpp1348
-rw-r--r--code/qcommon/unzip.h286
-rw-r--r--code/qcommon/vssver.sccbin0 -> 848 bytes
-rw-r--r--code/qcommon/z_memman_console.cpp1843
-rw-r--r--code/qcommon/z_memman_pc.cpp958
-rw-r--r--code/renderer/amd3d.h471
-rw-r--r--code/renderer/glext.h2920
-rw-r--r--code/renderer/glext_console.h2521
-rw-r--r--code/renderer/matcomp.c361
-rw-r--r--code/renderer/matcomp.h31
-rw-r--r--code/renderer/mdx_format.h434
-rw-r--r--code/renderer/qgl.h734
-rw-r--r--code/renderer/qgl_console.h1207
-rw-r--r--code/renderer/qgl_linked.h336
-rw-r--r--code/renderer/ref_trin.def2
-rw-r--r--code/renderer/tr_WorldEffects.cpp2283
-rw-r--r--code/renderer/tr_WorldEffects.h43
-rw-r--r--code/renderer/tr_animation.cpp478
-rw-r--r--code/renderer/tr_arioche.cpp149
-rw-r--r--code/renderer/tr_backend.cpp1963
-rw-r--r--code/renderer/tr_bsp.cpp1458
-rw-r--r--code/renderer/tr_bsp_xbox.cpp1666
-rw-r--r--code/renderer/tr_cmds.cpp512
-rw-r--r--code/renderer/tr_curve.cpp903
-rw-r--r--code/renderer/tr_draw.cpp1124
-rw-r--r--code/renderer/tr_flares.cpp427
-rw-r--r--code/renderer/tr_font.cpp1714
-rw-r--r--code/renderer/tr_font.h34
-rw-r--r--code/renderer/tr_ghoul2.cpp4374
-rw-r--r--code/renderer/tr_image.cpp3373
-rw-r--r--code/renderer/tr_init.cpp1637
-rw-r--r--code/renderer/tr_jpeg_interface.cpp541
-rw-r--r--code/renderer/tr_jpeg_interface.h40
-rw-r--r--code/renderer/tr_landscape.h193
-rw-r--r--code/renderer/tr_light.cpp572
-rw-r--r--code/renderer/tr_local.h2170
-rw-r--r--code/renderer/tr_main.cpp1726
-rw-r--r--code/renderer/tr_marks.cpp500
-rw-r--r--code/renderer/tr_mesh.cpp437
-rw-r--r--code/renderer/tr_model.cpp1197
-rw-r--r--code/renderer/tr_noise.cpp89
-rw-r--r--code/renderer/tr_public.h147
-rw-r--r--code/renderer/tr_quicksprite.cpp229
-rw-r--r--code/renderer/tr_quicksprite.h48
-rw-r--r--code/renderer/tr_scene.cpp402
-rw-r--r--code/renderer/tr_shade.cpp2776
-rw-r--r--code/renderer/tr_shade_calc.cpp1587
-rw-r--r--code/renderer/tr_shader.cpp4122
-rw-r--r--code/renderer/tr_shadows.cpp809
-rw-r--r--code/renderer/tr_sky.cpp845
-rw-r--r--code/renderer/tr_stl.cpp76
-rw-r--r--code/renderer/tr_stl.h31
-rw-r--r--code/renderer/tr_surface.cpp2383
-rw-r--r--code/renderer/tr_surfacesprites.cpp1492
-rw-r--r--code/renderer/tr_terrain.cpp1047
-rw-r--r--code/renderer/tr_types.h240
-rw-r--r--code/renderer/tr_world.cpp1021
-rw-r--r--code/renderer/vssver.sccbin0 -> 864 bytes
-rw-r--r--code/server/exe_headers.cpp5
-rw-r--r--code/server/exe_headers.h13
-rw-r--r--code/server/server.h321
-rw-r--r--code/server/sv_ccmds.cpp487
-rw-r--r--code/server/sv_client.cpp605
-rw-r--r--code/server/sv_game.cpp715
-rw-r--r--code/server/sv_init.cpp596
-rw-r--r--code/server/sv_main.cpp572
-rw-r--r--code/server/sv_savegame.cpp2002
-rw-r--r--code/server/sv_snapshot.cpp749
-rw-r--r--code/server/sv_world.cpp1012
-rw-r--r--code/server/vssver.sccbin0 -> 208 bytes
-rw-r--r--code/smartheap/HAW32M.LIBbin0 -> 212108 bytes
-rw-r--r--code/smartheap/HEAPAGNT.H442
-rw-r--r--code/smartheap/SMRTHEAP.C54
-rw-r--r--code/smartheap/SMRTHEAP.H847
-rw-r--r--code/smartheap/smrtheap.hpp197
-rw-r--r--code/smartheap/vssver.sccbin0 -> 112 bytes
-rw-r--r--code/starwars.vcproj6784
-rw-r--r--code/starwars.vcproj.vspscc10
-rw-r--r--code/tonet.bat10
-rw-r--r--code/tosend.bat6
-rw-r--r--code/ui/gameinfo.cpp35
-rw-r--r--code/ui/gameinfo.h24
-rw-r--r--code/ui/menudef.h138
-rw-r--r--code/ui/ui.def4
-rw-r--r--code/ui/ui_atoms.cpp480
-rw-r--r--code/ui/ui_connect.cpp95
-rw-r--r--code/ui/ui_debug.cpp747
-rw-r--r--code/ui/ui_local.h221
-rw-r--r--code/ui/ui_main.cpp6531
-rw-r--r--code/ui/ui_public.h250
-rw-r--r--code/ui/ui_saber.cpp897
-rw-r--r--code/ui/ui_shared.cpp12018
-rw-r--r--code/ui/ui_shared.h528
-rw-r--r--code/ui/ui_splash.cpp290
-rw-r--r--code/ui/ui_splash.h11
-rw-r--r--code/ui/ui_syscalls.cpp177
-rw-r--r--code/ui/vssver.sccbin0 -> 288 bytes
-rw-r--r--code/unix/Makefile988
-rw-r--r--code/unix/linux_glimp.c1387
-rw-r--r--code/unix/linux_qgl.c4111
-rw-r--r--code/unix/linux_snd.c244
-rw-r--r--code/unix/matha.s402
-rw-r--r--code/unix/q3test.spec.sh41
-rw-r--r--code/unix/qasm.h459
-rw-r--r--code/unix/quake3.gifbin0 -> 1378 bytes
-rw-r--r--code/unix/snd_mixa.s197
-rw-r--r--code/unix/sys_dosa.s94
-rw-r--r--code/unix/ui_video.c702
-rw-r--r--code/unix/unix_glw.h17
-rw-r--r--code/unix/unix_main.c809
-rw-r--r--code/unix/unix_net.c443
-rw-r--r--code/unix/unix_shared.c369
-rw-r--r--code/unix/vssver.sccbin0 -> 272 bytes
-rw-r--r--code/update_spents.bat1
-rw-r--r--code/vssver.sccbin0 -> 240 bytes
-rw-r--r--code/win32/AutoVersion.h85
-rw-r--r--code/win32/FeelIt/FEELitIFR.h247
-rw-r--r--code/win32/FeelIt/FFC.h78
-rw-r--r--code/win32/FeelIt/FFC10.dllbin0 -> 126976 bytes
-rw-r--r--code/win32/FeelIt/FFC10.libbin0 -> 232332 bytes
-rw-r--r--code/win32/FeelIt/FFC10d.dllbin0 -> 405591 bytes
-rw-r--r--code/win32/FeelIt/FFC10d.libbin0 -> 232598 bytes
-rw-r--r--code/win32/FeelIt/FFCErrors.h171
-rw-r--r--code/win32/FeelIt/FeelBaseTypes.h265
-rw-r--r--code/win32/FeelIt/FeelBox.h178
-rw-r--r--code/win32/FeelIt/FeelCompoundEffect.h184
-rw-r--r--code/win32/FeelIt/FeelCondition.h345
-rw-r--r--code/win32/FeelIt/FeelConstant.h193
-rw-r--r--code/win32/FeelIt/FeelDXDevice.h126
-rw-r--r--code/win32/FeelIt/FeelDamper.h177
-rw-r--r--code/win32/FeelIt/FeelDevice.h196
-rw-r--r--code/win32/FeelIt/FeelEffect.h344
-rw-r--r--code/win32/FeelIt/FeelEllipse.h253
-rw-r--r--code/win32/FeelIt/FeelEnclosure.h268
-rw-r--r--code/win32/FeelIt/FeelFriction.h172
-rw-r--r--code/win32/FeelIt/FeelGrid.h171
-rw-r--r--code/win32/FeelIt/FeelInertia.h178
-rw-r--r--code/win32/FeelIt/FeelMouse.h143
-rw-r--r--code/win32/FeelIt/FeelPeriodic.h227
-rw-r--r--code/win32/FeelIt/FeelProjects.h302
-rw-r--r--code/win32/FeelIt/FeelRamp.h194
-rw-r--r--code/win32/FeelIt/FeelSpring.h191
-rw-r--r--code/win32/FeelIt/FeelTexture.h287
-rw-r--r--code/win32/FeelIt/FeelitAPI.h1252
-rw-r--r--code/win32/FeelIt/fffx.cpp680
-rw-r--r--code/win32/FeelIt/fffx_feel.cpp689
-rw-r--r--code/win32/FeelIt/fffx_feel.h29
-rw-r--r--code/win32/FeelIt/vssver.sccbin0 -> 528 bytes
-rw-r--r--code/win32/background.bmpbin0 -> 197688 bytes
-rw-r--r--code/win32/bink.h620
-rw-r--r--code/win32/binkw32.libbin0 -> 58414 bytes
-rw-r--r--code/win32/clear.bmpbin0 -> 5174 bytes
-rw-r--r--code/win32/dbg_console_xbox.cpp172
-rw-r--r--code/win32/dbg_console_xbox.h34
-rw-r--r--code/win32/game.rc104
-rw-r--r--code/win32/glw_win.h30
-rw-r--r--code/win32/glw_win_dx8.h180
-rw-r--r--code/win32/rad.h962
-rw-r--r--code/win32/resource.h21
-rw-r--r--code/win32/snd_fx_img.h85
-rw-r--r--code/win32/starwars.icobin0 -> 3638 bytes
-rw-r--r--code/win32/vssver.sccbin0 -> 704 bytes
-rw-r--r--code/win32/win_file.h33
-rw-r--r--code/win32/win_file_xbox.cpp173
-rw-r--r--code/win32/win_filecode.cpp346
-rw-r--r--code/win32/win_gamma.cpp141
-rw-r--r--code/win32/win_gamma_console.cpp73
-rw-r--r--code/win32/win_glimp.cpp1815
-rw-r--r--code/win32/win_glimp_console.cpp261
-rw-r--r--code/win32/win_input.cpp1147
-rw-r--r--code/win32/win_input.h101
-rw-r--r--code/win32/win_input_console.cpp523
-rw-r--r--code/win32/win_input_rumble.cpp707
-rw-r--r--code/win32/win_input_xbox.cpp306
-rw-r--r--code/win32/win_local.h76
-rw-r--r--code/win32/win_main.cpp1241
-rw-r--r--code/win32/win_main_common.cpp332
-rw-r--r--code/win32/win_main_console.cpp584
-rw-r--r--code/win32/win_qal_xbox.cpp1301
-rw-r--r--code/win32/win_qgl.cpp4276
-rw-r--r--code/win32/win_qgl_dx8.cpp6680
-rw-r--r--code/win32/win_shared.cpp281
-rw-r--r--code/win32/win_snd.cpp414
-rw-r--r--code/win32/win_stencilshadow.cpp437
-rw-r--r--code/win32/win_stencilshadow.h45
-rw-r--r--code/win32/win_stream_dx8.cpp290
-rw-r--r--code/win32/win_syscon.cpp536
-rw-r--r--code/win32/win_video.cpp325
-rw-r--r--code/win32/win_wndproc.cpp532
-rw-r--r--code/win32/winquake.rc101
-rw-r--r--code/x_exe/mssccprj.scc5
-rw-r--r--code/x_exe/vssver.sccbin0 -> 48 bytes
-rw-r--r--code/x_exe/x_exe.vcproj1062
-rw-r--r--code/x_game/mssccprj.scc5
-rw-r--r--code/x_game/vssver.sccbin0 -> 48 bytes
-rw-r--r--code/x_game/x_game.vcproj1019
-rw-r--r--code/zlib32/deflate.cpp2078
-rw-r--r--code/zlib32/deflate.h231
-rw-r--r--code/zlib32/inflate.cpp1839
-rw-r--r--code/zlib32/inflate.h145
-rw-r--r--code/zlib32/vssver.sccbin0 -> 128 bytes
-rw-r--r--code/zlib32/zip.h195
-rw-r--r--code/zlib32/zipcommon.cpp117
-rw-r--r--codemp/ALut.libbin0 -> 4702 bytes
-rw-r--r--codemp/CommandLine.txt3
-rw-r--r--codemp/Debug/HA312W32.DLLbin0 -> 382464 bytes
-rw-r--r--codemp/Debug/SHW32.DLLbin0 -> 112720 bytes
-rw-r--r--codemp/Debug/vssver.sccbin0 -> 64 bytes
-rw-r--r--codemp/EaxMan.dllbin0 -> 94208 bytes
-rw-r--r--codemp/JKA_mp.sln176
-rw-r--r--codemp/JKA_mp.vssscc10
-rw-r--r--codemp/OpenAL32.dllbin0 -> 221184 bytes
-rw-r--r--codemp/OpenAL32.libbin0 -> 16866 bytes
-rw-r--r--codemp/RMG/RM_Area.cpp478
-rw-r--r--codemp/RMG/RM_Area.h99
-rw-r--r--codemp/RMG/RM_Headers.h73
-rw-r--r--codemp/RMG/RM_Instance.cpp195
-rw-r--r--codemp/RMG/RM_Instance.h122
-rw-r--r--codemp/RMG/RM_InstanceFile.cpp201
-rw-r--r--codemp/RMG/RM_InstanceFile.h28
-rw-r--r--codemp/RMG/RM_Instance_BSP.cpp282
-rw-r--r--codemp/RMG/RM_Instance_BSP.h35
-rw-r--r--codemp/RMG/RM_Instance_Group.cpp344
-rw-r--r--codemp/RMG/RM_Instance_Group.h41
-rw-r--r--codemp/RMG/RM_Instance_Random.cpp188
-rw-r--r--codemp/RMG/RM_Instance_Random.h40
-rw-r--r--codemp/RMG/RM_Instance_Void.cpp54
-rw-r--r--codemp/RMG/RM_Instance_Void.h18
-rw-r--r--codemp/RMG/RM_Manager.cpp474
-rw-r--r--codemp/RMG/RM_Manager.h63
-rw-r--r--codemp/RMG/RM_Mission.cpp1940
-rw-r--r--codemp/RMG/RM_Mission.h129
-rw-r--r--codemp/RMG/RM_Objective.cpp135
-rw-r--r--codemp/RMG/RM_Objective.h65
-rw-r--r--codemp/RMG/RM_Path.cpp723
-rw-r--r--codemp/RMG/RM_Path.h223
-rw-r--r--codemp/RMG/RM_Terrain.cpp517
-rw-r--r--codemp/RMG/RM_Terrain.h97
-rw-r--r--codemp/RMG/vssver.sccbin0 -> 432 bytes
-rw-r--r--codemp/Ratl/bits_vs.h218
-rw-r--r--codemp/Ratl/ratl_common.h1180
-rw-r--r--codemp/Ratl/vector_vs.h757
-rw-r--r--codemp/Ratl/vssver.sccbin0 -> 80 bytes
-rw-r--r--codemp/Ravl/CVec.h1002
-rw-r--r--codemp/Ravl/vssver.sccbin0 -> 48 bytes
-rw-r--r--codemp/Splines/Splines.dsp156
-rw-r--r--codemp/Splines/math_angles.cpp129
-rw-r--r--codemp/Splines/math_angles.h174
-rw-r--r--codemp/Splines/math_matrix.cpp113
-rw-r--r--codemp/Splines/math_matrix.h202
-rw-r--r--codemp/Splines/math_quaternion.cpp57
-rw-r--r--codemp/Splines/math_quaternion.h169
-rw-r--r--codemp/Splines/math_vector.cpp123
-rw-r--r--codemp/Splines/math_vector.h553
-rw-r--r--codemp/Splines/mssccprj.scc5
-rw-r--r--codemp/Splines/q_parse.cpp514
-rw-r--r--codemp/Splines/q_shared.cpp955
-rw-r--r--codemp/Splines/q_shared.h792
-rw-r--r--codemp/Splines/splines.cpp1226
-rw-r--r--codemp/Splines/splines.h1061
-rw-r--r--codemp/Splines/util_list.h325
-rw-r--r--codemp/Splines/util_str.cpp598
-rw-r--r--codemp/Splines/util_str.h796
-rw-r--r--codemp/Splines/vssver.sccbin0 -> 304 bytes
-rw-r--r--codemp/VU.bat1
-rw-r--r--codemp/WinDed.dsp1123
-rw-r--r--codemp/WinDed.vcproj904
-rw-r--r--codemp/WinDed.vcproj.vspscc10
-rw-r--r--codemp/botlib/aasfile.h246
-rw-r--r--codemp/botlib/be_aas_bsp.h72
-rw-r--r--codemp/botlib/be_aas_bspq3.cpp470
-rw-r--r--codemp/botlib/be_aas_cluster.cpp1528
-rw-r--r--codemp/botlib/be_aas_cluster.h21
-rw-r--r--codemp/botlib/be_aas_debug.cpp760
-rw-r--r--codemp/botlib/be_aas_debug.h45
-rw-r--r--codemp/botlib/be_aas_def.h295
-rw-r--r--codemp/botlib/be_aas_entity.cpp420
-rw-r--r--codemp/botlib/be_aas_entity.h46
-rw-r--r--codemp/botlib/be_aas_file.cpp565
-rw-r--r--codemp/botlib/be_aas_file.h25
-rw-r--r--codemp/botlib/be_aas_funcs.h30
-rw-r--r--codemp/botlib/be_aas_main.cpp412
-rw-r--r--codemp/botlib/be_aas_main.h44
-rw-r--r--codemp/botlib/be_aas_move.cpp1084
-rw-r--r--codemp/botlib/be_aas_move.h54
-rw-r--r--codemp/botlib/be_aas_optimize.cpp295
-rw-r--r--codemp/botlib/be_aas_optimize.h16
-rw-r--r--codemp/botlib/be_aas_reach.cpp4525
-rw-r--r--codemp/botlib/be_aas_reach.h51
-rw-r--r--codemp/botlib/be_aas_route.cpp2192
-rw-r--r--codemp/botlib/be_aas_route.h50
-rw-r--r--codemp/botlib/be_aas_routealt.cpp223
-rw-r--r--codemp/botlib/be_aas_routealt.h23
-rw-r--r--codemp/botlib/be_aas_sample.cpp1377
-rw-r--r--codemp/botlib/be_aas_sample.h52
-rw-r--r--codemp/botlib/be_ai_char.cpp773
-rw-r--r--codemp/botlib/be_ai_chat.cpp3000
-rw-r--r--codemp/botlib/be_ai_gen.cpp117
-rw-r--r--codemp/botlib/be_ai_goal.cpp1805
-rw-r--r--codemp/botlib/be_ai_move.cpp3593
-rw-r--r--codemp/botlib/be_ai_weap.cpp526
-rw-r--r--codemp/botlib/be_ai_weight.cpp895
-rw-r--r--codemp/botlib/be_ai_weight.h66
-rw-r--r--codemp/botlib/be_ea.cpp519
-rw-r--r--codemp/botlib/be_interface.cpp869
-rw-r--r--codemp/botlib/be_interface.h40
-rw-r--r--codemp/botlib/botlib.vcproj434
-rw-r--r--codemp/botlib/botlib.vcproj.vspscc10
-rw-r--r--codemp/botlib/l_crc.cpp134
-rw-r--r--codemp/botlib/l_crc.h16
-rw-r--r--codemp/botlib/l_libvar.cpp277
-rw-r--r--codemp/botlib/l_libvar.h46
-rw-r--r--codemp/botlib/l_log.cpp152
-rw-r--r--codemp/botlib/l_log.h29
-rw-r--r--codemp/botlib/l_memory.cpp446
-rw-r--r--codemp/botlib/l_memory.h59
-rw-r--r--codemp/botlib/l_precomp.cpp3324
-rw-r--r--codemp/botlib/l_precomp.h168
-rw-r--r--codemp/botlib/l_script.cpp1418
-rw-r--r--codemp/botlib/l_script.h232
-rw-r--r--codemp/botlib/l_struct.cpp445
-rw-r--r--codemp/botlib/l_struct.h58
-rw-r--r--codemp/botlib/l_utils.h18
-rw-r--r--codemp/botlib/mssccprj.scc5
-rw-r--r--codemp/botlib/vssver.sccbin0 -> 912 bytes
-rw-r--r--codemp/buildvms.bat8
-rw-r--r--codemp/cgame/JK2_cgame.def3
-rw-r--r--codemp/cgame/JK2_cgame.vcproj563
-rw-r--r--codemp/cgame/JK2_cgame.vcproj.vspscc10
-rw-r--r--codemp/cgame/animtable.h1792
-rw-r--r--codemp/cgame/asm2mak.cfg36
-rw-r--r--codemp/cgame/cg_consolecmds.c391
-rw-r--r--codemp/cgame/cg_draw.c8585
-rw-r--r--codemp/cgame/cg_drawtools.c690
-rw-r--r--codemp/cgame/cg_effects.c1546
-rw-r--r--codemp/cgame/cg_ents.c3809
-rw-r--r--codemp/cgame/cg_event.c3731
-rw-r--r--codemp/cgame/cg_info.c461
-rw-r--r--codemp/cgame/cg_light.c85
-rw-r--r--codemp/cgame/cg_lights.h16
-rw-r--r--codemp/cgame/cg_local.h2613
-rw-r--r--codemp/cgame/cg_localents.c869
-rw-r--r--codemp/cgame/cg_main.c4170
-rw-r--r--codemp/cgame/cg_marks.c2272
-rw-r--r--codemp/cgame/cg_media.h0
-rw-r--r--codemp/cgame/cg_newDraw.c899
-rw-r--r--codemp/cgame/cg_playeranimate.c0
-rw-r--r--codemp/cgame/cg_players.c11274
-rw-r--r--codemp/cgame/cg_playerstate.c535
-rw-r--r--codemp/cgame/cg_predict.c1512
-rw-r--r--codemp/cgame/cg_public.h597
-rw-r--r--codemp/cgame/cg_saga.c1094
-rw-r--r--codemp/cgame/cg_scoreboard.c639
-rw-r--r--codemp/cgame/cg_servercmds.c1687
-rw-r--r--codemp/cgame/cg_snapshot.c414
-rw-r--r--codemp/cgame/cg_strap.c73
-rw-r--r--codemp/cgame/cg_syscalls.c1124
-rw-r--r--codemp/cgame/cg_turret.c242
-rw-r--r--codemp/cgame/cg_view.c2763
-rw-r--r--codemp/cgame/cg_weaponinit.c592
-rw-r--r--codemp/cgame/cg_weapons.c2582
-rw-r--r--codemp/cgame/cgame.bat19
-rw-r--r--codemp/cgame/cgame.q3asm48
-rw-r--r--codemp/cgame/fx_blaster.c65
-rw-r--r--codemp/cgame/fx_bowcaster.c62
-rw-r--r--codemp/cgame/fx_bryarpistol.c237
-rw-r--r--codemp/cgame/fx_demp2.c259
-rw-r--r--codemp/cgame/fx_disruptor.c148
-rw-r--r--codemp/cgame/fx_flechette.c67
-rw-r--r--codemp/cgame/fx_force.c16
-rw-r--r--codemp/cgame/fx_heavyrepeater.c155
-rw-r--r--codemp/cgame/fx_local.h63
-rw-r--r--codemp/cgame/fx_rocketlauncher.c61
-rw-r--r--codemp/cgame/holocronicons.h24
-rw-r--r--codemp/cgame/mssccprj.scc5
-rw-r--r--codemp/cgame/tr_types.h339
-rw-r--r--codemp/cgame/vssver.sccbin0 -> 816 bytes
-rw-r--r--codemp/cleanvms.bat11
-rw-r--r--codemp/client/0_SH_Leak.cpp412
-rw-r--r--codemp/client/BinkVideo.cpp524
-rw-r--r--codemp/client/BinkVideo.h73
-rw-r--r--codemp/client/FXExport.cpp105
-rw-r--r--codemp/client/FXExport.h23
-rw-r--r--codemp/client/FxPrimitives.cpp2344
-rw-r--r--codemp/client/FxPrimitives.h611
-rw-r--r--codemp/client/FxScheduler.cpp1750
-rw-r--r--codemp/client/FxScheduler.h505
-rw-r--r--codemp/client/FxSystem.cpp129
-rw-r--r--codemp/client/FxSystem.h223
-rw-r--r--codemp/client/FxTemplate.cpp2386
-rw-r--r--codemp/client/FxUtil.cpp1232
-rw-r--r--codemp/client/FxUtil.h116
-rw-r--r--codemp/client/OpenAL/al.h564
-rw-r--r--codemp/client/OpenAL/alc.h97
-rw-r--r--codemp/client/OpenAL/alctypes.h133
-rw-r--r--codemp/client/OpenAL/altypes.h351
-rw-r--r--codemp/client/OpenAL/alu.h34
-rw-r--r--codemp/client/OpenAL/alut.h24
-rw-r--r--codemp/client/OpenAL/vssver.sccbin0 -> 128 bytes
-rw-r--r--codemp/client/cl_cgame.cpp2108
-rw-r--r--codemp/client/cl_cin.cpp1494
-rw-r--r--codemp/client/cl_cin_console.cpp332
-rw-r--r--codemp/client/cl_console.cpp831
-rw-r--r--codemp/client/cl_input.cpp1897
-rw-r--r--codemp/client/cl_keys.cpp1704
-rw-r--r--codemp/client/cl_main.cpp3685
-rw-r--r--codemp/client/cl_net_chan.cpp175
-rw-r--r--codemp/client/cl_parse.cpp1033
-rw-r--r--codemp/client/cl_scrn.cpp624
-rw-r--r--codemp/client/cl_ui.cpp1519
-rw-r--r--codemp/client/client.h622
-rw-r--r--codemp/client/eax/EaxMan.h171
-rw-r--r--codemp/client/eax/eax.h1562
-rw-r--r--codemp/client/eax/vssver.sccbin0 -> 64 bytes
-rw-r--r--codemp/client/fffx.h129
-rw-r--r--codemp/client/keycodes.h347
-rw-r--r--codemp/client/keys.h66
-rw-r--r--codemp/client/snd_ambient.cpp1137
-rw-r--r--codemp/client/snd_ambient.h118
-rw-r--r--codemp/client/snd_dma.cpp6325
-rw-r--r--codemp/client/snd_dma_console.cpp2933
-rw-r--r--codemp/client/snd_local.h228
-rw-r--r--codemp/client/snd_local_console.h121
-rw-r--r--codemp/client/snd_mem.cpp1015
-rw-r--r--codemp/client/snd_mem_console.cpp355
-rw-r--r--codemp/client/snd_mix.cpp470
-rw-r--r--codemp/client/snd_mp3.cpp553
-rw-r--r--codemp/client/snd_mp3.h87
-rw-r--r--codemp/client/snd_music.cpp1153
-rw-r--r--codemp/client/snd_music.h65
-rw-r--r--codemp/client/snd_public.h63
-rw-r--r--codemp/client/vssver.sccbin0 -> 720 bytes
-rw-r--r--codemp/encryption/encryption.h6
-rw-r--r--codemp/encryption/vssver.sccbin0 -> 48 bytes
-rw-r--r--codemp/ff/ff_console.cpp248
-rw-r--r--codemp/ff/vssver.sccbin0 -> 48 bytes
-rw-r--r--codemp/game/AnimalNPC.c946
-rw-r--r--codemp/game/FighterNPC.c2035
-rw-r--r--codemp/game/JK2_game.def3
-rw-r--r--codemp/game/JK2_game.vcproj744
-rw-r--r--codemp/game/JK2_game.vcproj.vspscc10
-rw-r--r--codemp/game/NPC.c2110
-rw-r--r--codemp/game/NPC_AI_Atst.c328
-rw-r--r--codemp/game/NPC_AI_Default.c957
-rw-r--r--codemp/game/NPC_AI_Droid.c621
-rw-r--r--codemp/game/NPC_AI_GalakMech.c1297
-rw-r--r--codemp/game/NPC_AI_Grenadier.c679
-rw-r--r--codemp/game/NPC_AI_Howler.c218
-rw-r--r--codemp/game/NPC_AI_ImperialProbe.c609
-rw-r--r--codemp/game/NPC_AI_Interrogator.c467
-rw-r--r--codemp/game/NPC_AI_Jedi.c6220
-rw-r--r--codemp/game/NPC_AI_Mark1.c764
-rw-r--r--codemp/game/NPC_AI_Mark2.c362
-rw-r--r--codemp/game/NPC_AI_MineMonster.c278
-rw-r--r--codemp/game/NPC_AI_Rancor.c955
-rw-r--r--codemp/game/NPC_AI_Remote.c389
-rw-r--r--codemp/game/NPC_AI_Seeker.c574
-rw-r--r--codemp/game/NPC_AI_Sentry.c577
-rw-r--r--codemp/game/NPC_AI_Sniper.c864
-rw-r--r--codemp/game/NPC_AI_Stormtrooper.c2742
-rw-r--r--codemp/game/NPC_AI_Utils.c1139
-rw-r--r--codemp/game/NPC_AI_Wampa.c654
-rw-r--r--codemp/game/NPC_behavior.c1748
-rw-r--r--codemp/game/NPC_combat.c3145
-rw-r--r--codemp/game/NPC_goal.c267
-rw-r--r--codemp/game/NPC_misc.c73
-rw-r--r--codemp/game/NPC_move.c505
-rw-r--r--codemp/game/NPC_reactions.c1125
-rw-r--r--codemp/game/NPC_senses.c934
-rw-r--r--codemp/game/NPC_sounds.c93
-rw-r--r--codemp/game/NPC_spawn.c4243
-rw-r--r--codemp/game/NPC_stats.c3302
-rw-r--r--codemp/game/NPC_utils.c1782
-rw-r--r--codemp/game/SpeederNPC.c1134
-rw-r--r--codemp/game/WalkerNPC.c636
-rw-r--r--codemp/game/ai.h126
-rw-r--r--codemp/game/ai_main.c7642
-rw-r--r--codemp/game/ai_main.h411
-rw-r--r--codemp/game/ai_util.c867
-rw-r--r--codemp/game/ai_wpnav.c3813
-rw-r--r--codemp/game/anims.h1797
-rw-r--r--codemp/game/asm2mak.cfg34
-rw-r--r--codemp/game/b_local.h329
-rw-r--r--codemp/game/b_public.h355
-rw-r--r--codemp/game/be_aas.h205
-rw-r--r--codemp/game/be_ai_char.h32
-rw-r--r--codemp/game/be_ai_chat.h97
-rw-r--r--codemp/game/be_ai_gen.h17
-rw-r--r--codemp/game/be_ai_goal.h102
-rw-r--r--codemp/game/be_ai_move.h126
-rw-r--r--codemp/game/be_ai_weap.h88
-rw-r--r--codemp/game/be_ea.h52
-rw-r--r--codemp/game/bg_g2_utils.c124
-rw-r--r--codemp/game/bg_lib.c1318
-rw-r--r--codemp/game/bg_lib.h70
-rw-r--r--codemp/game/bg_local.h109
-rw-r--r--codemp/game/bg_misc.c3399
-rw-r--r--codemp/game/bg_panimate.c3042
-rw-r--r--codemp/game/bg_pmove.c11217
-rw-r--r--codemp/game/bg_public.h1684
-rw-r--r--codemp/game/bg_saber.c4143
-rw-r--r--codemp/game/bg_saberLoad.c3011
-rw-r--r--codemp/game/bg_saga.c1508
-rw-r--r--codemp/game/bg_saga.h115
-rw-r--r--codemp/game/bg_slidemove.c1076
-rw-r--r--codemp/game/bg_strap.h38
-rw-r--r--codemp/game/bg_vehicleLoad.c1670
-rw-r--r--codemp/game/bg_vehicles.h629
-rw-r--r--codemp/game/bg_weapons.c402
-rw-r--r--codemp/game/bg_weapons.h113
-rw-r--r--codemp/game/botlib.h508
-rw-r--r--codemp/game/chars.h124
-rw-r--r--codemp/game/g_ICARUScb.c6074
-rw-r--r--codemp/game/g_ICARUScb.h15
-rw-r--r--codemp/game/g_active.c3876
-rw-r--r--codemp/game/g_arenas.c343
-rw-r--r--codemp/game/g_bot.c1311
-rw-r--r--codemp/game/g_client.c3940
-rw-r--r--codemp/game/g_cmds.c4083
-rw-r--r--codemp/game/g_combat.c5943
-rw-r--r--codemp/game/g_exphysics.c232
-rw-r--r--codemp/game/g_headers.h4
-rw-r--r--codemp/game/g_items.c3243
-rw-r--r--codemp/game/g_local.h1985
-rw-r--r--codemp/game/g_log.c1752
-rw-r--r--codemp/game/g_main.c4120
-rw-r--r--codemp/game/g_mem.c41
-rw-r--r--codemp/game/g_misc.c3494
-rw-r--r--codemp/game/g_missile.c1026
-rw-r--r--codemp/game/g_mover.c3279
-rw-r--r--codemp/game/g_nav.c1917
-rw-r--r--codemp/game/g_nav.h78
-rw-r--r--codemp/game/g_navnew.c865
-rw-r--r--codemp/game/g_object.c287
-rw-r--r--codemp/game/g_public.h925
-rw-r--r--codemp/game/g_saga.c1886
-rw-r--r--codemp/game/g_session.c322
-rw-r--r--codemp/game/g_spawn.c1479
-rw-r--r--codemp/game/g_strap.c73
-rw-r--r--codemp/game/g_svcmds.c576
-rw-r--r--codemp/game/g_syscalls.c1493
-rw-r--r--codemp/game/g_target.c1002
-rw-r--r--codemp/game/g_team.c1234
-rw-r--r--codemp/game/g_team.h50
-rw-r--r--codemp/game/g_timer.c294
-rw-r--r--codemp/game/g_trigger.c2007
-rw-r--r--codemp/game/g_turret.c861
-rw-r--r--codemp/game/g_turret_G2.c1297
-rw-r--r--codemp/game/g_utils.c2315
-rw-r--r--codemp/game/g_vehicleTurret.c444
-rw-r--r--codemp/game/g_vehicles.c3331
-rw-r--r--codemp/game/g_weapon.c5027
-rw-r--r--codemp/game/game.bat19
-rw-r--r--codemp/game/game.q3asm80
-rw-r--r--codemp/game/inv.h104
-rw-r--r--codemp/game/match.h122
-rw-r--r--codemp/game/mssccprj.scc5
-rw-r--r--codemp/game/npc_headers.h7
-rw-r--r--codemp/game/q_math.c1670
-rw-r--r--codemp/game/q_shared.c1370
-rw-r--r--codemp/game/q_shared.h3186
-rw-r--r--codemp/game/say.h30
-rw-r--r--codemp/game/surfaceflags.h122
-rw-r--r--codemp/game/syn.h20
-rw-r--r--codemp/game/teams.h79
-rw-r--r--codemp/game/tri_coll_test.c292
-rw-r--r--codemp/game/vssver.sccbin0 -> 2144 bytes
-rw-r--r--codemp/game/w_force.c5801
-rw-r--r--codemp/game/w_saber.c9485
-rw-r--r--codemp/game/w_saber.h74
-rw-r--r--codemp/ghoul2/G2.h44
-rw-r--r--codemp/ghoul2/G2_API.cpp2783
-rw-r--r--codemp/ghoul2/G2_bolts.cpp331
-rw-r--r--codemp/ghoul2/G2_bones.cpp4908
-rw-r--r--codemp/ghoul2/G2_gore.h201
-rw-r--r--codemp/ghoul2/G2_local.h225
-rw-r--r--codemp/ghoul2/G2_misc.cpp1950
-rw-r--r--codemp/ghoul2/G2_surfaces.cpp677
-rw-r--r--codemp/ghoul2/ghoul2_shared.h475
-rw-r--r--codemp/ghoul2/vssver.sccbin0 -> 176 bytes
-rw-r--r--codemp/goblib/goblib.cpp1876
-rw-r--r--codemp/goblib/goblib.h299
-rw-r--r--codemp/goblib/goblib.vcproj339
-rw-r--r--codemp/goblib/mssccprj.scc5
-rw-r--r--codemp/goblib/vssver.sccbin0 -> 80 bytes
-rw-r--r--codemp/icarus/BlockStream.cpp698
-rw-r--r--codemp/icarus/GameInterface.cpp733
-rw-r--r--codemp/icarus/GameInterface.h36
-rw-r--r--codemp/icarus/Instance.cpp655
-rw-r--r--codemp/icarus/Interface.cpp24
-rw-r--r--codemp/icarus/Interpreter.cpp2506
-rw-r--r--codemp/icarus/Memory.cpp20
-rw-r--r--codemp/icarus/Q3_Interface.cpp1009
-rw-r--r--codemp/icarus/Q3_Interface.h297
-rw-r--r--codemp/icarus/Q3_Registers.cpp429
-rw-r--r--codemp/icarus/Q3_Registers.h36
-rw-r--r--codemp/icarus/Sequence.cpp559
-rw-r--r--codemp/icarus/Sequencer.cpp2483
-rw-r--r--codemp/icarus/TaskManager.cpp1994
-rw-r--r--codemp/icarus/Tokenizer.cpp2837
-rw-r--r--codemp/icarus/blockstream.h198
-rw-r--r--codemp/icarus/icarus.h32
-rw-r--r--codemp/icarus/instance.h81
-rw-r--r--codemp/icarus/interface.h72
-rw-r--r--codemp/icarus/interpreter.h224
-rw-r--r--codemp/icarus/module.h1
-rw-r--r--codemp/icarus/sequence.h98
-rw-r--r--codemp/icarus/sequencer.h189
-rw-r--r--codemp/icarus/taskmanager.h191
-rw-r--r--codemp/icarus/tokenizer.h601
-rw-r--r--codemp/icarus/vssver.sccbin0 -> 432 bytes
-rw-r--r--codemp/install.bat1
-rw-r--r--codemp/installvms.bat4
-rw-r--r--codemp/jk2mp.vcproj6986
-rw-r--r--codemp/jk2mp.vcproj.vspscc10
-rw-r--r--codemp/jpeg-6/jcapimin.cpp230
-rw-r--r--codemp/jpeg-6/jccoefct.cpp450
-rw-r--r--codemp/jpeg-6/jccolor.cpp461
-rw-r--r--codemp/jpeg-6/jcdctmgr.cpp393
-rw-r--r--codemp/jpeg-6/jchuff.cpp848
-rw-r--r--codemp/jpeg-6/jchuff.h34
-rw-r--r--codemp/jpeg-6/jcinit.cpp74
-rw-r--r--codemp/jpeg-6/jcmainct.cpp298
-rw-r--r--codemp/jpeg-6/jcmarker.cpp641
-rw-r--r--codemp/jpeg-6/jcmaster.cpp580
-rw-r--r--codemp/jpeg-6/jcomapi.cpp96
-rw-r--r--codemp/jpeg-6/jconfig.h41
-rw-r--r--codemp/jpeg-6/jcparam.cpp577
-rw-r--r--codemp/jpeg-6/jcphuff.cpp831
-rw-r--r--codemp/jpeg-6/jcprepct.cpp373
-rw-r--r--codemp/jpeg-6/jcsample.cpp521
-rw-r--r--codemp/jpeg-6/jctrans.cpp373
-rw-r--r--codemp/jpeg-6/jdapimin.cpp400
-rw-r--r--codemp/jpeg-6/jdapistd.cpp277
-rw-r--r--codemp/jpeg-6/jdatadst.cpp153
-rw-r--r--codemp/jpeg-6/jdatasrc.cpp206
-rw-r--r--codemp/jpeg-6/jdcoefct.cpp727
-rw-r--r--codemp/jpeg-6/jdcolor.cpp369
-rw-r--r--codemp/jpeg-6/jdct.h176
-rw-r--r--codemp/jpeg-6/jddctmgr.cpp272
-rw-r--r--codemp/jpeg-6/jdhuff.cpp576
-rw-r--r--codemp/jpeg-6/jdhuff.h202
-rw-r--r--codemp/jpeg-6/jdinput.cpp383
-rw-r--r--codemp/jpeg-6/jdmainct.cpp522
-rw-r--r--codemp/jpeg-6/jdmarker.cpp1054
-rw-r--r--codemp/jpeg-6/jdmaster.cpp559
-rw-r--r--codemp/jpeg-6/jdpostct.cpp292
-rw-r--r--codemp/jpeg-6/jdsample.cpp480
-rw-r--r--codemp/jpeg-6/jdtrans.cpp124
-rw-r--r--codemp/jpeg-6/jerror.cpp234
-rw-r--r--codemp/jpeg-6/jerror.h273
-rw-r--r--codemp/jpeg-6/jfdctflt.cpp170
-rw-r--r--codemp/jpeg-6/jidctflt.cpp243
-rw-r--r--codemp/jpeg-6/jinclude.h116
-rw-r--r--codemp/jpeg-6/jmemmgr.cpp1117
-rw-r--r--codemp/jpeg-6/jmemnobs.cpp107
-rw-r--r--codemp/jpeg-6/jmemsys.h182
-rw-r--r--codemp/jpeg-6/jmorecfg.h349
-rw-r--r--codemp/jpeg-6/jpegint.h388
-rw-r--r--codemp/jpeg-6/jpeglib.h1055
-rw-r--r--codemp/jpeg-6/jutils.cpp177
-rw-r--r--codemp/jpeg-6/jversion.h14
-rw-r--r--codemp/jpeg-6/vssver.sccbin0 -> 784 bytes
-rw-r--r--codemp/mp3code/cdct.c320
-rw-r--r--codemp/mp3code/config.h136
-rw-r--r--codemp/mp3code/copyright.h19
-rw-r--r--codemp/mp3code/csbt.c355
-rw-r--r--codemp/mp3code/csbtb.c279
-rw-r--r--codemp/mp3code/csbtl3.c309
-rw-r--r--codemp/mp3code/cup.c546
-rw-r--r--codemp/mp3code/cupini.c401
-rw-r--r--codemp/mp3code/cupl1.c325
-rw-r--r--codemp/mp3code/cupl3.c1287
-rw-r--r--codemp/mp3code/cwin.c470
-rw-r--r--codemp/mp3code/cwinb.c465
-rw-r--r--codemp/mp3code/cwinm.c55
-rw-r--r--codemp/mp3code/htable.h999
-rw-r--r--codemp/mp3code/hwin.c264
-rw-r--r--codemp/mp3code/jdw.h28
-rw-r--r--codemp/mp3code/l3.h187
-rw-r--r--codemp/mp3code/l3dq.c262
-rw-r--r--codemp/mp3code/l3init.c422
-rw-r--r--codemp/mp3code/mdct.c229
-rw-r--r--codemp/mp3code/mhead.c328
-rw-r--r--codemp/mp3code/mhead.h102
-rw-r--r--codemp/mp3code/mp3struct.h140
-rw-r--r--codemp/mp3code/msis.c296
-rw-r--r--codemp/mp3code/port.h80
-rw-r--r--codemp/mp3code/small_header.h34
-rw-r--r--codemp/mp3code/tableawd.h93
-rw-r--r--codemp/mp3code/towave.c760
-rw-r--r--codemp/mp3code/uph.c507
-rw-r--r--codemp/mp3code/upsf.c404
-rw-r--r--codemp/mp3code/vssver.sccbin0 -> 528 bytes
-rw-r--r--codemp/mp3code/wavep.c96
-rw-r--r--codemp/mssccprj.scc17
-rw-r--r--codemp/namespace_begin.h15
-rw-r--r--codemp/namespace_end.h17
-rw-r--r--codemp/null/mac_net.c44
-rw-r--r--codemp/null/null_client.cpp68
-rw-r--r--codemp/null/null_glimp.cpp74
-rw-r--r--codemp/null/null_input.cpp14
-rw-r--r--codemp/null/null_main.c95
-rw-r--r--codemp/null/null_net.c43
-rw-r--r--codemp/null/null_renderer.cpp21
-rw-r--r--codemp/null/null_snddma.cpp49
-rw-r--r--codemp/null/vssver.sccbin0 -> 176 bytes
-rw-r--r--codemp/null/win_main.cpp1504
-rw-r--r--codemp/png/png.cpp783
-rw-r--r--codemp/png/png.h73
-rw-r--r--codemp/png/vssver.sccbin0 -> 64 bytes
-rw-r--r--codemp/qcommon/CNetProfile.cpp97
-rw-r--r--codemp/qcommon/GenericParser2.cpp1203
-rw-r--r--codemp/qcommon/GenericParser2.h204
-rw-r--r--codemp/qcommon/INetProfile.h20
-rw-r--r--codemp/qcommon/MiniHeap.h57
-rw-r--r--codemp/qcommon/RoffSystem.cpp1040
-rw-r--r--codemp/qcommon/RoffSystem.h185
-rw-r--r--codemp/qcommon/chash.h162
-rw-r--r--codemp/qcommon/cm_draw.cpp1490
-rw-r--r--codemp/qcommon/cm_draw.h250
-rw-r--r--codemp/qcommon/cm_landscape.h271
-rw-r--r--codemp/qcommon/cm_load.cpp1184
-rw-r--r--codemp/qcommon/cm_load_xbox.cpp1127
-rw-r--r--codemp/qcommon/cm_local.h310
-rw-r--r--codemp/qcommon/cm_patch.cpp1809
-rw-r--r--codemp/qcommon/cm_patch.h128
-rw-r--r--codemp/qcommon/cm_patch_xbox.cpp1782
-rw-r--r--codemp/qcommon/cm_polylib.cpp713
-rw-r--r--codemp/qcommon/cm_polylib.h47
-rw-r--r--codemp/qcommon/cm_public.h74
-rw-r--r--codemp/qcommon/cm_randomterrain.cpp1091
-rw-r--r--codemp/qcommon/cm_randomterrain.h89
-rw-r--r--codemp/qcommon/cm_shader.cpp538
-rw-r--r--codemp/qcommon/cm_terrain.cpp1720
-rw-r--r--codemp/qcommon/cm_terrainmap.cpp497
-rw-r--r--codemp/qcommon/cm_terrainmap.h83
-rw-r--r--codemp/qcommon/cm_test.cpp573
-rw-r--r--codemp/qcommon/cm_trace.cpp1992
-rw-r--r--codemp/qcommon/cmd_common.cpp508
-rw-r--r--codemp/qcommon/cmd_console.cpp165
-rw-r--r--codemp/qcommon/cmd_pc.cpp174
-rw-r--r--codemp/qcommon/common.cpp2240
-rw-r--r--codemp/qcommon/cvar.cpp1019
-rw-r--r--codemp/qcommon/disablewarnings.h38
-rw-r--r--codemp/qcommon/exe_headers.cpp3
-rw-r--r--codemp/qcommon/exe_headers.h5
-rw-r--r--codemp/qcommon/files.cpp3614
-rw-r--r--codemp/qcommon/files.h158
-rw-r--r--codemp/qcommon/files_common.cpp512
-rw-r--r--codemp/qcommon/files_console.cpp1031
-rw-r--r--codemp/qcommon/files_pc.cpp3130
-rw-r--r--codemp/qcommon/fixedmap.h148
-rw-r--r--codemp/qcommon/game_version.h14
-rw-r--r--codemp/qcommon/hstring.cpp501
-rw-r--r--codemp/qcommon/hstring.h229
-rw-r--r--codemp/qcommon/huffman.cpp417
-rw-r--r--codemp/qcommon/md4.cpp296
-rw-r--r--codemp/qcommon/msg.cpp3318
-rw-r--r--codemp/qcommon/net_chan.cpp657
-rw-r--r--codemp/qcommon/platform.h22
-rw-r--r--codemp/qcommon/q_math.cpp4
-rw-r--r--codemp/qcommon/q_shared.cpp4
-rw-r--r--codemp/qcommon/qcommon.h1134
-rw-r--r--codemp/qcommon/qfiles.h606
-rw-r--r--codemp/qcommon/sparc.h725
-rw-r--r--codemp/qcommon/sstring.h120
-rw-r--r--codemp/qcommon/stringed_ingame.cpp1264
-rw-r--r--codemp/qcommon/stringed_ingame.h110
-rw-r--r--codemp/qcommon/stringed_interface.cpp215
-rw-r--r--codemp/qcommon/stringed_interface.h21
-rw-r--r--codemp/qcommon/tags.h75
-rw-r--r--codemp/qcommon/timing.h61
-rw-r--r--codemp/qcommon/unzip.cpp1337
-rw-r--r--codemp/qcommon/unzip.h289
-rw-r--r--codemp/qcommon/vm.cpp954
-rw-r--r--codemp/qcommon/vm_console.cpp229
-rw-r--r--codemp/qcommon/vm_interpreted.cpp905
-rw-r--r--codemp/qcommon/vm_local.h182
-rw-r--r--codemp/qcommon/vm_ppc.cpp1274
-rw-r--r--codemp/qcommon/vm_x86.cpp1166
-rw-r--r--codemp/qcommon/vssver.sccbin0 -> 1184 bytes
-rw-r--r--codemp/qcommon/z_memman_console.cpp1825
-rw-r--r--codemp/qcommon/z_memman_pc.cpp832
-rw-r--r--codemp/renderer/glext.h3037
-rw-r--r--codemp/renderer/glext_console.h2521
-rw-r--r--codemp/renderer/matcomp.c293
-rw-r--r--codemp/renderer/matcomp.h31
-rw-r--r--codemp/renderer/mdx_format.h434
-rw-r--r--codemp/renderer/qgl.h757
-rw-r--r--codemp/renderer/qgl_console.h1205
-rw-r--r--codemp/renderer/tr_WorldEffects.cpp2020
-rw-r--r--codemp/renderer/tr_WorldEffects.h108
-rw-r--r--codemp/renderer/tr_animation.cpp16
-rw-r--r--codemp/renderer/tr_arioche.cpp117
-rw-r--r--codemp/renderer/tr_backend.cpp2328
-rw-r--r--codemp/renderer/tr_bsp.cpp2123
-rw-r--r--codemp/renderer/tr_bsp_xbox.cpp1765
-rw-r--r--codemp/renderer/tr_cmds.cpp476
-rw-r--r--codemp/renderer/tr_curve.cpp612
-rw-r--r--codemp/renderer/tr_curve_xbox.cpp536
-rw-r--r--codemp/renderer/tr_flares.cpp428
-rw-r--r--codemp/renderer/tr_font.cpp1714
-rw-r--r--codemp/renderer/tr_font.h34
-rw-r--r--codemp/renderer/tr_ghoul2.cpp5509
-rw-r--r--codemp/renderer/tr_image.cpp3373
-rw-r--r--codemp/renderer/tr_image_xbox.cpp2579
-rw-r--r--codemp/renderer/tr_init.cpp1532
-rw-r--r--codemp/renderer/tr_landscape.h191
-rw-r--r--codemp/renderer/tr_light.cpp483
-rw-r--r--codemp/renderer/tr_local.h2365
-rw-r--r--codemp/renderer/tr_main.cpp1631
-rw-r--r--codemp/renderer/tr_marks.cpp449
-rw-r--r--codemp/renderer/tr_mesh.cpp423
-rw-r--r--codemp/renderer/tr_model.cpp1838
-rw-r--r--codemp/renderer/tr_noise.cpp84
-rw-r--r--codemp/renderer/tr_public.h118
-rw-r--r--codemp/renderer/tr_quicksprite.cpp222
-rw-r--r--codemp/renderer/tr_quicksprite.h47
-rw-r--r--codemp/renderer/tr_scene.cpp886
-rw-r--r--codemp/renderer/tr_shade.cpp2475
-rw-r--r--codemp/renderer/tr_shade_calc.cpp1671
-rw-r--r--codemp/renderer/tr_shader.cpp4283
-rw-r--r--codemp/renderer/tr_shadows.cpp709
-rw-r--r--codemp/renderer/tr_sky.cpp849
-rw-r--r--codemp/renderer/tr_surface.cpp2033
-rw-r--r--codemp/renderer/tr_surfacesprites.cpp1463
-rw-r--r--codemp/renderer/tr_terrain.cpp1056
-rw-r--r--codemp/renderer/tr_world.cpp1959
-rw-r--r--codemp/renderer/vssver.sccbin0 -> 752 bytes
-rw-r--r--codemp/server/NPCNav/gameCallbacks.cpp49
-rw-r--r--codemp/server/NPCNav/navigator.cpp2783
-rw-r--r--codemp/server/NPCNav/navigator.h280
-rw-r--r--codemp/server/NPCNav/vssver.sccbin0 -> 80 bytes
-rw-r--r--codemp/server/exe_headers.h13
-rw-r--r--codemp/server/server.h438
-rw-r--r--codemp/server/sv_bot.cpp797
-rw-r--r--codemp/server/sv_ccmds.cpp1019
-rw-r--r--codemp/server/sv_client.cpp1855
-rw-r--r--codemp/server/sv_game.cpp1773
-rw-r--r--codemp/server/sv_init.cpp990
-rw-r--r--codemp/server/sv_main.cpp940
-rw-r--r--codemp/server/sv_net_chan.cpp169
-rw-r--r--codemp/server/sv_snapshot.cpp833
-rw-r--r--codemp/server/sv_world.cpp905
-rw-r--r--codemp/server/vssver.sccbin0 -> 208 bytes
-rw-r--r--codemp/smartheap/HA312W32.DLLbin0 -> 382464 bytes
-rw-r--r--codemp/smartheap/HAW32M.LIBbin0 -> 212108 bytes
-rw-r--r--codemp/smartheap/HEAPAGNT.H442
-rw-r--r--codemp/smartheap/SHW32.DLLbin0 -> 112720 bytes
-rw-r--r--codemp/smartheap/SMRTHEAP.C54
-rw-r--r--codemp/smartheap/SMRTHEAP.H847
-rw-r--r--codemp/smartheap/smrtheap.hpp197
-rw-r--r--codemp/smartheap/vssver.sccbin0 -> 144 bytes
-rw-r--r--codemp/strings/str_server.h23
-rw-r--r--codemp/strings/vssver.sccbin0 -> 48 bytes
-rw-r--r--codemp/tonet.bat30
-rw-r--r--codemp/tosend.bat5
-rw-r--r--codemp/ui/asm2mak.cfg34
-rw-r--r--codemp/ui/keycodes.h349
-rw-r--r--codemp/ui/mssccprj.scc5
-rw-r--r--codemp/ui/ui.bat19
-rw-r--r--codemp/ui/ui.def3
-rw-r--r--codemp/ui/ui.q3asm14
-rw-r--r--codemp/ui/ui.vcproj433
-rw-r--r--codemp/ui/ui.vcproj.vspscc10
-rw-r--r--codemp/ui/ui_atoms.c493
-rw-r--r--codemp/ui/ui_force.c1345
-rw-r--r--codemp/ui/ui_force.h33
-rw-r--r--codemp/ui/ui_gameinfo.c336
-rw-r--r--codemp/ui/ui_local.h1146
-rw-r--r--codemp/ui/ui_main.c11689
-rw-r--r--codemp/ui/ui_players.c1338
-rw-r--r--codemp/ui/ui_public.h253
-rw-r--r--codemp/ui/ui_saber.c1143
-rw-r--r--codemp/ui/ui_shared.c10163
-rw-r--r--codemp/ui/ui_shared.h624
-rw-r--r--codemp/ui/ui_syscalls.c669
-rw-r--r--codemp/ui/ui_util.c11
-rw-r--r--codemp/ui/vssver.sccbin0 -> 352 bytes
-rw-r--r--codemp/unix/ftol.nasm131
-rw-r--r--codemp/unix/linux_common.c323
-rw-r--r--codemp/unix/linux_glimp.c1543
-rw-r--r--codemp/unix/linux_joystick.c186
-rw-r--r--codemp/unix/linux_local.h29
-rw-r--r--codemp/unix/linux_qgl.c4132
-rw-r--r--codemp/unix/linux_snd.c237
-rw-r--r--codemp/unix/makefile1616
-rw-r--r--codemp/unix/snapvector.nasm75
-rw-r--r--codemp/unix/unix_main.c1175
-rw-r--r--codemp/unix/unix_net.c599
-rw-r--r--codemp/unix/unix_shared.cpp350
-rw-r--r--codemp/unix/vm_x86.c8
-rw-r--r--codemp/unix/vssver.sccbin0 -> 240 bytes
-rw-r--r--codemp/update_MPents.bat1
-rw-r--r--codemp/vssver.sccbin0 -> 384 bytes
-rw-r--r--codemp/win32/AutoVersion.h101
-rw-r--r--codemp/win32/JK2cgame.rc104
-rw-r--r--codemp/win32/JK2game.rc104
-rw-r--r--codemp/win32/WinDed.rc105
-rw-r--r--codemp/win32/dbg_console_xbox.cpp172
-rw-r--r--codemp/win32/dbg_console_xbox.h34
-rw-r--r--codemp/win32/glw_win.h33
-rw-r--r--codemp/win32/glw_win_dx8.h180
-rw-r--r--codemp/win32/qe3.icobin0 -> 3638 bytes
-rw-r--r--codemp/win32/resource.h23
-rw-r--r--codemp/win32/snd_fx_img.h85
-rw-r--r--codemp/win32/ui.rc104
-rw-r--r--codemp/win32/vssver.sccbin0 -> 640 bytes
-rw-r--r--codemp/win32/win_file.h32
-rw-r--r--codemp/win32/win_file_xbox.cpp171
-rw-r--r--codemp/win32/win_filecode.cpp345
-rw-r--r--codemp/win32/win_gamma.cpp165
-rw-r--r--codemp/win32/win_gamma_console.cpp73
-rw-r--r--codemp/win32/win_glimp.cpp2095
-rw-r--r--codemp/win32/win_glimp_console.cpp281
-rw-r--r--codemp/win32/win_input.cpp1141
-rw-r--r--codemp/win32/win_input.h101
-rw-r--r--codemp/win32/win_input_console.cpp648
-rw-r--r--codemp/win32/win_input_rumble.cpp705
-rw-r--r--codemp/win32/win_input_xbox.cpp309
-rw-r--r--codemp/win32/win_local.h84
-rw-r--r--codemp/win32/win_main.cpp1609
-rw-r--r--codemp/win32/win_main_common.cpp331
-rw-r--r--codemp/win32/win_main_console.cpp615
-rw-r--r--codemp/win32/win_net.cpp1222
-rw-r--r--codemp/win32/win_qal_xbox.cpp1321
-rw-r--r--codemp/win32/win_qgl.cpp4271
-rw-r--r--codemp/win32/win_qgl_dx8.cpp6495
-rw-r--r--codemp/win32/win_shared.cpp547
-rw-r--r--codemp/win32/win_snd.cpp382
-rw-r--r--codemp/win32/win_stream_dx8.cpp290
-rw-r--r--codemp/win32/win_syscon.cpp574
-rw-r--r--codemp/win32/win_wndproc.cpp547
-rw-r--r--codemp/win32/winquake.rc101
-rw-r--r--codemp/x_botlib/mssccprj.scc5
-rw-r--r--codemp/x_botlib/vssver.sccbin0 -> 48 bytes
-rw-r--r--codemp/x_botlib/x_botlib.vcproj470
-rw-r--r--codemp/x_exe/mssccprj.scc5
-rw-r--r--codemp/x_exe/vssver.sccbin0 -> 48 bytes
-rw-r--r--codemp/x_exe/x_exe.vcproj1144
-rw-r--r--codemp/x_jk2cgame/mssccprj.scc5
-rw-r--r--codemp/x_jk2cgame/vssver.sccbin0 -> 48 bytes
-rw-r--r--codemp/x_jk2cgame/x_jk2cgame.vcproj977
-rw-r--r--codemp/x_jk2game/mssccprj.scc5
-rw-r--r--codemp/x_jk2game/vssver.sccbin0 -> 48 bytes
-rw-r--r--codemp/x_jk2game/x_jk2game.vcproj1648
-rw-r--r--codemp/x_ui/mssccprj.scc5
-rw-r--r--codemp/x_ui/vssver.sccbin0 -> 48 bytes
-rw-r--r--codemp/x_ui/x_ui.vcproj361
-rw-r--r--codemp/zlib32/deflate.cpp2078
-rw-r--r--codemp/zlib32/deflate.h231
-rw-r--r--codemp/zlib32/inflate.cpp1839
-rw-r--r--codemp/zlib32/inflate.h145
-rw-r--r--codemp/zlib32/vssver.sccbin0 -> 128 bytes
-rw-r--r--codemp/zlib32/zip.h195
-rw-r--r--codemp/zlib32/zipcommon.cpp117
1649 files changed, 1171721 insertions, 0 deletions
diff --git a/base/default.cfg b/base/default.cfg
new file mode 100644
index 0000000..b8fa8b4
--- /dev/null
+++ b/base/default.cfg
@@ -0,0 +1,109 @@
+//
+// SP JEDI ACADEMY DEFAULT CONFIG
+//
+
+unbindall
+
+//
+// WEAPONS
+//
+bind 1 "weapon 1"
+bind 2 "weapon 2"
+bind 3 "weapon 3"
+bind 4 "weapon 4"
+bind 5 "weapon 5"
+bind 6 "weapon 6"
+bind 7 "weapon 7"
+bind 8 "weapon 8"
+bind 9 "weapon 13"
+bind 0 "weapon 9"
+bind - "weapon 10"
+bind = "weapon 0"
+
+bind \ weapongrabbed
+bind [ weapprev
+bind ] weapnext
+bind mwheelup weapprev
+bind mwheeldown weapnext
+
+//
+// CHARACTER CONTROLS
+//
+bind CTRL +attack
+bind ALT +altattack
+bind SHIFT +speed
+bind v +strafe
+bind PGUP +lookup
+bind PGDN +lookdown
+bind END centerview
+bind c +movedown
+bind SPACE +moveup
+bind ENTER +use
+bind r +use
+
+
+bind UPARROW +forward
+bind DOWNARROW +back
+bind LEFTARROW +left
+bind RIGHTARROW +right
+bind w +forward
+bind a +moveleft
+bind s +back
+bind d +moveright
+bind , +moveleft
+bind . +moveright
+
+//
+// FORCE POWERS
+//
+
+bind F1 force_throw
+bind F2 force_pull
+bind F3 force_speed
+bind F4 force_sight
+
+bind f +useforce
+bind e forcenext
+bind q forceprev
+
+bind TAB datapad
+bind m datapad
+bind p "cg_thirdperson !"
+bind l saberAttackCycle
+
+//
+// INVENTORY
+//
+
+//
+// QUICK KEYS
+//
+
+//single only
+bind F9 "load quick"
+bind F10 "uimenu ingameloadmenu"
+bind F11 "uimenu ingamesavemenu"
+bind F12 "save quick"
+
+//
+// MOUSE OPTIONS
+//
+
+bind / +mlook
+
+//
+// MOUSE BUTTONS
+//
+
+bind MOUSE1 +attack
+bind MOUSE2 +altattack
+bind MOUSE3 saberAttackCycle
+
+
+//
+// CLIENT ENVIRONMENT COMMANDS
+//
+
+bind ~ "toggleconsole"
+bind ` "toggleconsole"
+
diff --git a/base/ext_data/MP/netf_overrides.txt b/base/ext_data/MP/netf_overrides.txt
new file mode 100644
index 0000000..79d689f
--- /dev/null
+++ b/base/ext_data/MP/netf_overrides.txt
@@ -0,0 +1,155 @@
+;rww - this file will allow you to override the number of bits any given
+;entityState value is sent across the network in for your mod. Do not
+;mess with this unless you know what you're doing as it's easily possible
+;to mess something up terribly. Just remove the ; in front of any of the
+;values that you want to override and use the desired bit num. 0 is a
+;special-case value, it means to send across as a float. GENTITYNUM_BITS
+;means to send in as many bits as it takes to send the highest possible
+;entity number.
+;
+;pos.trTime, 32
+;pos.trBase[0], 0
+;pos.trBase[1], 0
+;pos.trDelta[0], 0
+;pos.trDelta[1], 0
+;pos.trBase[2], 0
+;apos.trBase[1], 0
+;pos.trDelta[2], 0
+;apos.trBase[0], 0
+;event, 10
+;angles2[1], 0
+;eType, 8
+;torsoAnim, 16
+;forceFrame, 16
+;eventParm, 8
+;legsAnim, 16
+;torsoFlip, 1
+;legsFlip, 1
+;groundEntityNum, GENTITYNUM_BITS
+;pos.trType, 8
+;eFlags, 32
+;bolt1, 8
+;bolt2, GENTITYNUM_BITS
+;trickedentindex, 16
+;trickedentindex2, 16
+;trickedentindex3, 16
+;trickedentindex4, 16
+;speed, 0
+;fireflag, 2
+;genericenemyindex, 32
+;activeForcePass, 6
+;emplacedOwner, 32
+;otherEntityNum, GENTITYNUM_BITS
+;weapon, 32
+;clientNum, GENTITYNUM_BITS
+;angles[1], 0
+;pos.trDuration, 32
+;apos.trType, 8
+;origin[0], 0
+;origin[1], 0
+;origin[2], 0
+;solid, 24
+;owner, GENTITYNUM_BITS
+;teamowner, 8
+;shouldtarget, 1
+;powerups, 16
+;modelGhoul2, 8
+;g2radius, 8
+;modelindex, -16
+;otherEntityNum2, GENTITYNUM_BITS
+;loopSound, 8
+;loopIsSoundset, 1
+;soundSetIndex, 8
+;generic1, 8
+;origin2[2], 0
+;origin2[0], 0
+;origin2[1], 0
+;modelindex2, 8
+;angles[0], 0
+;time, 32
+;apos.trTime, 32
+;apos.trDuration, 32
+;apos.trBase[2], 0
+;apos.trDelta[0], 0
+;apos.trDelta[1], 0
+;apos.trDelta[2], 0
+;time2, 32
+;angles[2], 0
+;angles2[0], 0
+;angles2[2], 0
+;constantLight, 32
+;frame, 16
+;saberInFlight, 1
+;saberEntityNum, GENTITYNUM_BITS
+;saberMove, 8
+;forcePowersActive, 32
+;isJediMaster, 1
+;isPortalEnt, 1
+;heldByClient, 6
+;ragAttach, GENTITYNUM_BITS
+;iModelScale, 10
+;brokenLimbs, 8
+;boltToPlayer, 6
+;hasLookTarget, 1
+;lookTarget, GENTITYNUM_BITS
+;
+;customRGBA[0], 8
+;customRGBA[1], 8
+;customRGBA[2], 8
+;customRGBA[3], 8
+;
+;health, 10
+;maxhealth, 10
+;
+;npcSaber1, 9
+;npcSaber2, 9
+;
+;csSounds_Std, 8
+;csSounds_Combat, 8
+;csSounds_Extra, 8
+;csSounds_Jedi, 8
+;
+;surfacesOn, 32
+;surfacesOff, 32
+;
+;boneIndex1, 6
+;boneIndex2, 6
+;boneIndex3, 6
+;boneIndex4, 6
+;
+;boneOrient, 9
+;
+;boneAngles1[0], 0
+;boneAngles1[1], 0
+;boneAngles1[2], 0
+;
+;boneAngles2[0], 0
+;boneAngles2[1], 0
+;boneAngles2[2], 0
+;
+;boneAngles3[0], 0
+;boneAngles3[1], 0
+;boneAngles3[2], 0
+;
+;boneAngles4[0], 0
+;boneAngles4[1], 0
+;boneAngles4[2], 0
+;
+;NPC_class, 8
+;
+;m_iVehicleNum, 10
+;
+;eFlags2,10
+;
+;userInt1, 1
+;userInt2, 1
+;userInt3, 1
+;userFloat1, 1
+;userFloat2, 1
+;userFloat3, 1
+;userVec1[0], 1
+;userVec1[1], 1
+;userVec1[2], 1
+;userVec2[0], 1
+;userVec2[1], 1
+;userVec2[2], 1
diff --git a/base/ext_data/MP/psf_overrides.txt b/base/ext_data/MP/psf_overrides.txt
new file mode 100644
index 0000000..d1d2bb2
--- /dev/null
+++ b/base/ext_data/MP/psf_overrides.txt
@@ -0,0 +1,181 @@
+;rww - this file will allow you to override the number of bits any given
+;playerState value is sent across the network in for your mod. Do not
+;mess with this unless you know what you're doing as it's easily possible
+;to mess something up terribly. Just remove the ; in front of any of the
+;values that you want to override and use the desired bit num. 0 is a
+;special-case value, it means to send across as a float. GENTITYNUM_BITS
+;means to send in as many bits as it takes to send the highest possible
+;entity number.
+;
+;commandTime, 32
+;origin[0], 0
+;origin[1], 0
+;bobCycle, 8
+;velocity[0], 0
+;velocity[1], 0
+;viewangles[1], 0
+;viewangles[0], 0
+;
+;weaponTime, -16
+;weaponChargeTime, 32
+;weaponChargeSubtractTime, 32
+;origin[2], 0
+;velocity[2], 0
+;pm_time, -16
+;eventSequence, 16
+;torsoAnim, 16
+;torsoTimer, 16
+;legsAnim, 16
+;legsTimer, 16
+;legsFlip, 1
+;torsoFlip, 1
+;movementDir, 4
+;events[0], 10
+;events[1], 10
+;pm_flags, 16
+;groundEntityNum, GENTITYNUM_BITS
+;weaponstate, 4
+;eFlags, 32
+;externalEvent, 10
+;gravity, 16
+;speed, -16
+;basespeed, -16
+;delta_angles[1], 16
+;externalEventParm, 8
+;viewheight, -8
+;damageEvent, 8
+;damageYaw, 8
+;damagePitch, 8
+;damageCount, 8
+;damageType, 2
+;generic1, 8
+;pm_type, 8
+;delta_angles[0], 16
+;delta_angles[2], 16
+;eventParms[0], -16
+;eventParms[1], 8
+;clientNum, GENTITYNUM_BITS
+;weapon, 8
+;viewangles[2], 0
+;
+;jumppad_ent, 10
+;loopSound, 16
+;loopIsSoundset, 1
+;
+;zoomMode, 2
+;zoomTime, 32
+;zoomLocked, 1
+;zoomFov, 0
+;
+;fd.forcePowersActive, 32
+;fd.forceMindtrickTargetIndex, 16
+;fd.forceMindtrickTargetIndex2, 16
+;fd.forceMindtrickTargetIndex3, 16
+;fd.forceMindtrickTargetIndex4, 16
+;fd.forceJumpZStart, 0
+;fd.forcePowerSelected, 8
+;fd.forcePowersKnown, 32
+;fd.forcePower, 8
+;fd.forceSide, 2
+;fd.sentryDeployed, 1
+;fd.forcePowerLevel[FP_LEVITATION], 2
+;fd.forcePowerLevel[FP_SEE], 2
+;fd.forceGripCripple, 1
+;genericEnemyIndex, 32
+;activeForcePass, 6
+;hasDetPackPlanted, 1
+;emplacedIndex, GENTITYNUM_BITS
+;fd.forceRageRecoveryTime, 32
+;rocketLockIndex, GENTITYNUM_BITS
+;rocketLockTime, 32
+;rocketTargetTime, 32
+;holocronBits, 32
+;isJediMaster, 1
+;forceRestricted, 1
+;trueJedi, 1
+;trueNonJedi, 1
+;fallingToDeath, 32
+;electrifyTime, 32
+;
+;fd.forcePowerDebounce[FP_LEVITATION], 32
+;
+;saberMove, 32
+;saberActive, 1
+;saberInFlight, 1
+;saberBlocked, 8
+;saberEntityNum, GENTITYNUM_BITS
+;saberCanThrow, 1
+;forceHandExtend, 8
+;forceDodgeAnim, 16
+;fd.saberAnimLevel, 4
+;fd.saberDrawAnimLevel, 4
+;saberAttackChainCount, 4
+;saberHolstered, 1
+;
+;jetpackFuel, 8
+;cloakFuel, 8
+;
+;duelIndex, GENTITYNUM_BITS
+;duelTime, 32
+;duelInProgress, 1
+;
+;saberLockTime, 32
+;saberLockEnemy, GENTITYNUM_BITS
+;saberLockFrame, 16
+;saberLockAdvance, 1
+;
+;inAirAnim, 1
+;
+;lastHitLoc[2], 0
+;lastHitLoc[0], 0
+;lastHitLoc[1], 0
+;
+;heldByClient, 6
+;ragAttach, GENTITYNUM_BITS
+;iModelScale, 10
+;brokenLimbs, 8
+;hasLookTarget, 1
+;lookTarget, GENTITYNUM_BITS
+;
+;customRGBA[0], 8
+;customRGBA[1], 8
+;customRGBA[2], 8
+;customRGBA[3], 8
+;
+;standheight, 10
+;crouchheight, 10
+;
+;m_iVehicleNum, GENTITYNUM_BITS
+;
+;vehOrientation[0], 0
+;vehOrientation[1], 0
+;vehOrientation[2], 0
+;
+;vehSurfaces, 16
+;
+;vehTurnaroundIndex, GENTITYNUM_BITS
+;vehTurnaroundTime, 32
+;
+;moveDir[0], 0
+;moveDir[1], 0
+;moveDir[2], 0
+;
+;vehBoarding, 1
+;
+;hackingTime, 32
+;hackingBaseTime, 16
+;
+;eFlags2,10
+;
+;userInt1, 1
+;userInt2, 1
+;userInt3, 1
+;userFloat1, 1
+;userFloat2, 1
+;userFloat3, 1
+;userVec1[0], 1
+;userVec1[1], 1
+;userVec1[2], 1
+;userVec2[0], 1
+;userVec2[1], 1
+;userVec2[2], 1
diff --git a/base/ext_data/MP/vssver.scc b/base/ext_data/MP/vssver.scc
new file mode 100644
index 0000000..fa23a9e
--- /dev/null
+++ b/base/ext_data/MP/vssver.scc
Binary files differ
diff --git a/base/ext_data/dms.dat b/base/ext_data/dms.dat
new file mode 100644
index 0000000..fc5cc9b
--- /dev/null
+++ b/base/ext_data/dms.dat
@@ -0,0 +1,1757 @@
+musicfiles
+{
+ kejimbase_explore
+ {
+ entry
+ {
+ marker0 0.000
+ marker1 22.070
+ marker2 53.723
+ marker3 90.926
+ }
+ exit
+ {
+ nextfile kejimbase_etr00
+ time00 3.337
+ time01 5.668
+ time02 22.040
+ time03 29.889
+ time04 50.124
+ time05 37.168
+ time06 53.473
+ time07 65.923
+ time08 90.478
+ time09 143.233
+ time10 156.166
+ time11 176.608
+ time12 193.505
+ }
+ exit
+ {
+ nextfile kejimbase_etr01
+ time00 45.555
+ time01 81.525
+ time02 106.406
+ time03 128.648
+ time04 185.168
+ time05 209.309
+ }
+ }
+ kejimbase_action
+ {
+ entry
+ {
+ marker0 0.00
+ marker1 42.585
+ marker2 87.664
+ }
+ exit
+ {
+ nextfile kejimbase_atr00
+ nextmark marker0
+ time00 69.347
+ time01 72.142
+ time02 80.444
+ time03 87.608
+ time04 90.185
+ }
+ exit
+ {
+ nextfile kejimbase_atr01
+ nextmark marker1
+ time00 2.434
+ time01 5.667
+ time02 20.281
+ }
+ exit
+ {
+ nextfile kejimbase_atr02
+ nextmark marker2
+ time00 62.894
+ }
+ exit
+ {
+ nextfile kejimbase_atr03
+ nextmark marker3
+ time00 12.397
+ time01 28.679
+ time02 35.492
+ time03 45.328
+ }
+ }
+ ImpBaseB_Explore
+ {
+ entry
+ {
+ marker0 0
+ marker1 37
+ marker2 69.81
+ marker3 119.97
+ }
+ exit
+ {
+ nextfile ImpBaseB_Etr00
+ time0 37
+ time1 54.0
+ time2 62.35
+ time3 69.81
+ time4 79.85
+ time5 119.97
+ time6 132.75
+ time7 146.88
+ }
+ exit
+ {
+ nextfile ImpBaseB_Etr01
+ time0 13.67
+ time1 26.96
+ time2 89.42
+ time3 96.92
+ time4 107.77
+ }
+
+ }
+ ImpBaseB_Action
+ {
+ entry
+ {
+ marker0 0
+ marker1 30.23
+ marker2 45.45
+ marker3 104.48
+ }
+ exit
+ {
+ nextfile ImpBaseB_Atr00
+ nextmark marker3
+ time0 38.22
+ time1 50.31
+ time2 59.23
+ time3 64.47
+ time4 80.41
+ time5 87.69
+ time6 92.01
+ time7 98.07
+ time8 104.48
+ }
+ exit
+ {
+ nextfile ImpBaseB_Atr01
+ nextmark marker2
+ time0 8.91
+ time1 20.89
+ }
+ exit
+ {
+ nextfile ImpBaseB_Atr02
+ nextmark marker1
+ time0 25.45
+ time1 30.23
+ }
+ exit
+ {
+ nextfile ImpBaseB_Atr03
+ nextmark marker0
+ time0 4.97
+ time1 11.33
+ time2 16.11
+ time3 45.45
+ time4 70.61
+ time5 74.66
+ }
+ }
+ ImpBaseC_explore
+ {
+ entry
+ {
+ marker0 0.000
+ marker1 55.831
+ marker2 11.160
+ marker3 11.160
+
+ }
+ exit
+ {
+ nextfile ImpBaseC_etr00
+ time00 42.904
+ time01 71.172
+ time02 127.721
+ time03 150.290
+ time04 171.618
+
+ }
+ exit
+ {
+ nextfile ImpBaseC_etr01
+ time00 19.096
+ time01 26.412
+ time02 88.211
+ time03 101.169
+
+ }
+ }
+ ImpBaseC_action
+ {
+ entry
+ {
+ marker0 0.00
+ marker1 19.468
+ marker2 33.480
+ }
+ exit
+ {
+ nextfile ImpBaseC_atr00
+ nextmark marker0
+ time00 2.542
+ time01 5.440
+ time02 9.470
+ time03 19.366
+ }
+ exit
+ {
+ nextfile ImpBaseC_atr01
+ nextmark marker1
+ time00 25.544
+ time01 29.140
+ }
+ exit
+ {
+ nextfile ImpBaseC_atr02
+ nextmark marker2
+ time00 44.888
+ }
+ exit
+ {
+ nextfile ImpBaseC_atr03
+ nextmark marker3
+ time00 34.272
+ time01 65.224
+ }
+ }
+ BespinA_Explore
+ {
+ entry
+ {
+ marker0 6.74
+ marker1 17.51
+ marker2 95.95
+ marker3 149.87
+ }
+ exit
+ {
+ nextfile BespinA_Etr00
+ time00 42.01
+ }
+ exit
+ {
+ nextfile BespinA_Etr01
+ time00 165.65
+ }
+ exit
+ {
+ nextfile BespinA_Etr02
+ time00 17.51
+ time01 29.50
+ time02 54.80
+ time03 70.21
+ time04 90.25
+ time05 106.40
+ time06 120.53
+ time07 149.87
+ time08 178.36
+ }
+ }
+ BespinA_Action
+ {
+ entry
+ {
+ marker0 0.00
+ marker1 42.585
+ marker2 87.664
+ }
+ exit
+ {
+ nextfile BespinA_Atr00
+ nextmark marker0
+ time00 3.08
+ time01 6.19
+ time02 35.26
+ }
+ exit
+ {
+ nextfile BespinA_Atr01
+ nextmark marker1
+ time00 8.98
+ time01 14.76
+ time02 20.65
+ time03 44.34
+ time04 47.28
+ }
+ exit
+ {
+ nextfile BespinA_Atr02
+ nextmark marker2
+ time00 51.82
+ time01 58.00
+ }
+ exit
+ {
+ nextfile BespinA_Atr03
+ nextmark marker3
+ time00 28.90
+ time01 64.78
+ }
+ }
+
+ besplat_explore
+ {
+ entry
+ {
+ marker0 46.78
+ marker1 69.05
+ marker2 85.85
+ }
+ exit
+ {
+ nextfile besplat_etr00
+ time0 6.89
+ time1 21.26
+ time3 55.52
+ time4 69.75
+ time5 85.87
+ time6 98.12
+ time7 119.44
+ time8 131.95
+ time9 157.58
+ }
+ exit
+ {
+ nextfile besplat_etr01
+ time0 34.15
+ time1 141.84
+ time2 174.72
+ time3 183.05
+ }
+ }
+
+ besplat_action
+ {
+ entry
+ {
+ marker0 0
+ marker1 16.56
+ marker2 24.86
+ marker3 62.37
+ }
+ exit
+ {
+ nextfile besplat_atr00
+ nextmark marker1
+ time0 2.82
+ time1 68.46
+ }
+ exit
+ {
+ nextfile besplat_atr01
+ nextmark marker2
+ time0 41.23
+ time1 54.20
+ time2 59.31
+ time3 76.51
+ }
+ exit
+ {
+ nextfile besplat_atr02
+ nextmark marker0
+ time0 13.47
+ time1 21.19
+ time2 24.65
+ time3 28.82
+ time4 83.53
+ }
+ }
+
+ besplat_boss
+ {
+ }
+
+ yavtrial_explore
+ {
+ entry
+ {
+ marker0 124.126
+ marker1 102.326
+ marker2 24.853
+ marker3 0.00
+ }
+ exit
+ {
+ nextfile yavtrial_etr00
+ time00 3.095
+ time01 23.931
+ time02 24.937
+ time03 46.905
+ time04 61.268
+ time05 79.042
+ time06 101.750
+ time07 118.136
+ time08 147.951
+ }
+ exit
+ {
+ nextfile yavtrial_etr01
+ time00 161.783
+ }
+ }
+ yavtrial_action
+ {
+ entry
+ {
+ marker0 0.00
+ marker1 60.145
+ marker2 85.922
+ }
+ exit
+ {
+ nextfile yavtrial_atr00
+ nextmark marker0
+ time00 3.553
+ time01 6.118
+ time02 8.718
+ time03 41.152
+ time04 103.559
+ }
+ exit
+ {
+ nextfile yavtrial_atr01
+ nextmark marker1
+ time00 9.307
+ time01 12.310
+ time02 16.719
+ time03 20.045
+ time04 26.229
+ time05 35.160
+ }
+ exit
+ {
+ nextfile yavtrial_atr02
+ nextmark marker2
+ time00 59.302
+ time01 65.837
+ time02 74.429
+ }
+ exit
+ {
+ nextfile yavtrial_atr03
+ nextmark marker3
+ time00 38.325
+ time01 49.857
+ }
+ }
+ alienha_explore
+ {
+ entry
+ {
+ marker0 0
+ marker1 65.84
+ marker2 93.63
+ }
+ exit
+ {
+ nextfile alienha_etr00
+ time0 5.80
+ time1 33.04
+ time3 67.61
+ }
+ exit
+ {
+ nextfile alienha_etr01
+ time0 94.47
+ time1 103.06
+ time2 115.75
+ time3 127.32
+ time4 138.36
+ time5 152.10
+ time6 166.11
+ time7 180.29
+ }
+ }
+ alienha_action
+ {
+ entry
+ {
+ marker0 0
+ marker1 40.96
+ marker2 63.33
+ }
+ exit
+ {
+ nextfile alienha_atr00
+ nextmark marker2
+ time0 3.35
+ time1 6.85
+ time3 15.70
+ time4 22.61
+ }
+ exit
+ {
+ nextfile alienha_atr01
+ nextmark marker0
+ time0 31.85
+ time1 41.42
+ time2 47.06
+ }
+ exit
+ {
+ nextfile alienha_atr03
+ nextmark marker1
+ time0 53.01
+ time1 58.57
+ time2 62.87
+ time3 72.03
+ time4 89.64
+ time5 96.94
+ }
+ }
+ tunnels_explore
+ {
+ entry
+ {
+ marker0 0
+ marker1 64.20
+ marker2 96.47
+ }
+ exit
+ {
+ nextfile tunnels_etr00
+ time0 6.06
+ time1 18.26
+ time3 35.01
+ time4 42.98
+ time5 69.73
+ time6 84.16
+ }
+ exit
+ {
+ nextfile tunnels_etr01
+ time0 94.81
+ time1 111.25
+ time2 121.77
+ time3 134.68
+ }
+ }
+ tunnels_action
+ {
+ entry
+ {
+ marker0 0
+ marker1 22.39
+ }
+ exit
+ {
+ nextfile tunnels_atr00
+ nextmark marker0
+ time0 0.29
+ }
+ exit
+ {
+ nextfile tunnels_atr01
+ nextmark marker2
+ time0 15.62
+ time1 22.94
+ }
+ exit
+ {
+ nextfile tunnels_atr02
+ nextmark marker2
+ time0 29.14
+ time1 35.63
+ time2 45.33
+ time3 51.78
+ time4 58.67
+ }
+ exit
+ {
+ nextfile tunnels_atr03
+ nextmark marker1
+ time0 64.81
+ time1 68.53
+ time2 72.28
+ time3 75.89
+ }
+ }
+ IMPBaseD_explore
+ {
+ entry
+ {
+ marker0 0.000
+ marker1 66.790
+ marker2 102.874
+ marker3 150.554
+ }
+ exit
+ {
+ nextfile IMPBaseD_etr00
+ time00 7.997
+ time01 16.678
+ time02 44.664
+ time03 70.836
+
+ }
+ exit
+ {
+ nextfile IMPBaseD_etr01
+ time00 89.986
+ time01 111.971
+ time02 130.629
+ time03 166.389
+ time04 172.530
+ }
+ }
+ IMPBaseD_action
+ {
+ entry
+ {
+ marker0 6.607
+ marker1 60.118
+ marker2 140.053
+ }
+ exit
+ {
+ nextfile IMPBaseD_atr00
+ nextmark marker0
+ time00 6.457
+ time01 13.265
+ time02 18.757
+ time03 25.194
+ time04 152.772
+ }
+ exit
+ {
+ nextfile IMPBaseD_atr01
+ nextmark marker1
+ time00 30.336
+ time01 37.883
+ time02 46.802
+ time03 61.122
+ }
+ exit
+ {
+ nextfile IMPBaseD_atr02
+ nextmark marker2
+ time00 78.257
+ time01 85.312
+ time02 92.170
+ time03 140.866
+ time04 149.597
+ }
+ exit
+ {
+ nextfile IMPBaseD_atr03
+ nextmark marker3
+ time00 105.982
+ time01 115.569
+ time02 128.476
+ }
+ }
+ swamp_explore
+ {
+ entry
+ {
+ marker0 0.000
+ marker1 16.916
+ marker2 80.714
+ marker3 31.761
+
+ }
+ exit
+ {
+ nextfile swamp_etr00
+ time00 11.185
+ time01 20.989
+ time02 51.408
+ time03 63.196
+ time04 71.293
+
+ }
+ exit
+ {
+ nextfile swamp_etr01
+ time00 42.044
+ time01 78.362
+ time02 95.485
+ time03 113.023
+
+ }
+ }
+ swamp_action
+ {
+ entry
+ {
+ marker0 0.00
+ marker1 36.318
+ marker2 45.982
+ }
+ exit
+ {
+ nextfile swamp_atr00
+ nextmark marker0
+ time00 1.035
+ }
+ exit
+ {
+ nextfile swamp_atr01
+ nextmark marker1
+ time00 6.835
+ time01 11.323
+ time02 18.592
+ time03 36.230
+ time04 59.793
+ }
+ exit
+ {
+ nextfile swamp_atr02
+ nextmark marker2
+ time00 34.108
+ time01 79.955
+ time02 89.847
+ time03 126.994
+
+ }
+ exit
+ {
+ nextfile swamp_atr03
+ nextmark marker3
+ time00 102.414
+ time01 115.382
+ time02 120.039
+ }
+ }
+ yavtemp2_explore
+ {
+ entry
+ {
+ marker0 88.28
+ marker1 48.10
+ marker2 117.47
+ marker3 0
+ }
+ exit
+ {
+ nextfile yavtemp2_etr00
+ time0 46.23
+ time1 53.44
+ time2 62.08
+ time3 69.09
+ time4 77.08
+ time5 87.03
+ time6 96.49
+ }
+ exit
+ {
+ nextfile yavtemp2_etr01
+ time0 15.24
+ time1 31.79
+ time2 42.78
+ time3 114.18
+ time4 134.25
+ time5 144.89
+ time6 160.03
+ time7 168.03
+ }
+ }
+ yavtemp2_action
+ {
+ entry
+ {
+ marker0 0
+ marker1 17.35
+ marker2 43.31
+ marker3 60.39
+ }
+ exit
+ {
+ nextfile yavtemp2_atr00
+ nextmark marker0
+ time0 0
+ time1 8.78
+ time2 13.47
+ }
+ exit
+ {
+ nextfile yavtemp2_atr01
+ nextmark marker1
+ time0 23.89
+ time1 28.62
+ time2 41.11
+ time3 46.73
+ }
+ exit
+ {
+ nextfile yavtemp2_atr02
+ nextmark marker2
+ time0 48.95
+ time1 60.59
+ time2 69.13
+ time3 97.63
+ }
+ exit
+ {
+ nextfile yavtemp2_atr03
+ nextmark marker3
+ time0 91.11
+ }
+ }
+ ImpBaseE_explore
+ {
+ entry
+ {
+ marker0 0.000
+ marker1 13.805
+ marker2 29.265
+ marker3 137.915
+
+ }
+ exit
+ {
+ nextfile ImpBaseE_etr00
+ time00 13.712
+ time01 37.872
+ time02 52.541
+ time03 131.875
+ time04 232.256
+
+ }
+ exit
+ {
+ nextfile ImpBaseE_etr01
+ time00 120.057
+ time01 157.080
+ time02 176.388
+
+ }
+ }
+ ImpBaseE_action
+ {
+ entry
+ {
+ marker0 0.00
+ marker1 18.336
+ marker2 52.491
+ }
+ exit
+ {
+ nextfile ImpBaseE_atr00
+ nextmark marker0
+ time00 22.012
+ time01 32.861
+ time02 73.853
+ time03 77.808
+ }
+ exit
+ {
+ nextfile ImpBaseE_atr01
+ nextmark marker1
+ time00 5.824
+ time01 18.457
+ time02 81.088
+ time03 114.805
+ }
+ exit
+ {
+ nextfile ImpBaseE_atr02
+ nextmark marker2
+ time00 1.923
+ time01 26.892
+ time02 30.703
+ time03 59.294
+ time04 65.331
+ time05 88.803
+ time06 91.876
+
+ }
+ exit
+ {
+ nextfile ImpBaseE_atr03
+ nextmark marker3
+ time00 11.958
+ time01 43.027
+ time02 48.014
+ time04 96.757
+ time05 107.858
+ time06 130.437
+ }
+ }
+ alienhb_explore
+ {
+ entry
+ {
+ marker0 127.71
+ marker1 36.56
+ marker2 89.94
+ }
+ exit
+ {
+ nextfile alienhb_etr00
+ time0 13.60
+ time1 22.58
+ time3 31.69
+ time4 41.08
+ time5 53.08
+ time6 67.91
+ time7 89.29
+ time8 181.41
+ }
+ exit
+ {
+ nextfile alienhb_etr01
+ time0 109.08
+ time1 123.18
+ time2 134.76
+ time3 149.54
+ time4 160.53
+ time5 174.10
+ }
+ }
+ alienhb_action
+ {
+ entry
+ {
+ marker0 0
+ marker1 6.85
+ marker2 31.84
+ marker3 66.77
+ }
+ exit
+ {
+ nextfile alienhb_atr00
+ nextmark marker0
+ time0 5.29
+ time1 21.54
+ time3 26.21
+ time4 120.30
+ }
+ exit
+ {
+ nextfile alienhb_atr01
+ nextmark marker1
+ time0 10.35
+ time1 17.03
+ }
+ exit
+ {
+ nextfile alienhb_atr02
+ nextmark marker2
+ time0 60.27
+ time1 70.21
+ time2 80.36
+ time3 93.55
+ time4 100.47
+ time5 111.75
+ }
+ }
+ yavfinal_explore
+ {
+ entry
+ {
+ marker0 0.000
+ marker1 18.664
+ marker2 53.390
+ marker3 97.161
+
+ }
+ exit
+ {
+ nextfile yavfinal_etr00
+ time00 53.434
+ time01 83.935
+
+ }
+ exit
+ {
+ nextfile yavfinal_etr01
+ time00 9.852
+ time01 94.171
+ time02 104.106
+
+ }
+ }
+ yavfinal_action
+ {
+ entry
+ {
+ marker0 0.00
+ marker1 43.094
+ marker2 73.785
+ }
+ exit
+ {
+ nextfile yavfinal_atr00
+ nextmark marker0
+ time00 53.502
+ time01 61.386
+ }
+ exit
+ {
+ nextfile yavfinal_atr01
+ nextmark marker1
+ time00 3.623
+ time01 96.341
+ }
+ exit
+ {
+ nextfile yavfinal_atr02
+ nextmark marker2
+ time00 9.019
+ time01 11.707
+ time02 15.535
+ time03 29.107
+ time04 35.847
+ time05 75.327
+ time06 101.992
+
+ }
+ exit
+ {
+ nextfile yavfinal_atr03
+ nextmark marker3
+ time00 21.257
+ time01 25.167
+ time02 43.800
+ time03 106.249
+ time04 113.638
+
+ }
+ }
+ yavfinal_boss
+ {
+ }
+ narshaada_explore
+ {
+ entry
+ {
+ marker0 123.18
+ marker1 0
+ marker2 43.30
+ marker3 12.27
+ }
+ exit
+ {
+ nextfile narshaada_etr00
+ time0 55.86
+ time1 70.17
+ time2 78.63
+ time3 88.61
+ time4 106.57
+
+ }
+ exit
+ {
+ nextfile narshaada_etr01
+ time0 13.75
+ time1 31.29
+ time2 43.84
+ time4 123.91
+ time5 134.92
+ time6 149.29
+ time7 168.16
+ time8 184.19
+ }
+ }
+ narshaada_action
+ {
+ entry
+ {
+ marker0 0
+ marker1 15.65
+ marker2 47.07
+ }
+ exit
+ {
+ nextfile narshaada_atr00
+ nextmark marker0
+ time0 2.72
+ time1 59.84
+ time2 63.90
+ time3 74.16
+ time4 82.37
+ }
+ exit
+ {
+ nextfile narshaada_atr01
+ nextmark marker1
+ time0 10.89
+ time1 20.59
+ time2 28.15
+ time3 39.65
+ time4 46.35
+ }
+ exit
+ {
+ nextfile narshaada_atr02
+ nextmark marker2
+ time0 48.98
+ time1 69.05
+ }
+ exit
+ {
+ nextfile narshaada_atr03
+ nextmark marker3
+ time0 86.14
+ time1 90.73
+ time2 96.40
+ time3 101.09
+ }
+ }
+ tusken_explore
+ {
+ entry
+ {
+ marker0 0.000
+ marker1 10.583
+ marker2 71.039
+ marker3 135.541
+ }
+ exit
+ {
+ nextfile tusken_etr00
+ time00 10.861
+ time01 71.150
+ time02 90.767
+ time03 120.357
+ }
+ exit
+ {
+ nextfile tusken_etr01
+ time00 37.902
+ time01 54.526
+ time02 83.563
+ }
+ }
+ tusken_action
+ {
+ entry
+ {
+ marker0 0.00
+ marker1 12.897
+ marker2 43.0
+ marker3 91.709
+ }
+ exit
+ {
+ nextfile tusken_atr00
+ nextmark marker0
+ time00 6.123
+ time01 8.034
+ time02 16.540
+ time03 23.633
+ time04 104.980
+ }
+ exit
+ {
+ nextfile tusken_atr01
+ nextmark marker1
+ time00 57.368
+ time01 63.503
+ time02 66.717
+ time03 77.926
+ time04 90.472
+ time05 93.797
+ time06 98.102
+ time07 108.327
+ }
+ exit
+ {
+ nextfile tusken_atr02
+ nextmark marker2
+ time00 32.583
+ }
+ exit
+ {
+ nextfile tusken_atr03
+ nextmark marker3
+ time00 31.374
+ time01 40.811
+ time02 43.581
+ time03 46.745
+ time04 53.173
+ time05 71.815
+ time06 74.780
+ time07 82.316
+ time08 87.553
+ }
+ }
+ hoth2_explore
+ {
+ entry
+ {
+ marker0 0
+ marker1 43.374
+ marker2 101.295
+ marker3 128
+ }
+ exit
+ {
+ nextfile hoth2_etr00
+ time00 0.6
+ time01 68.013
+ time02 102.813
+ time03 140.937
+ }
+ exit
+ {
+ nextfile hoth2_etr01
+ time00 39.663
+ time01 53.196
+ time02 96.547
+ time03 119.562
+ time04 142.523
+ }
+
+ }
+ hoth2_action
+ {
+ entry
+ {
+ marker0 0
+ marker1 27.263
+ marker2 87.276
+ marker3 117.919
+ }
+ exit
+ {
+ nextfile hoth2_atr00
+ nextmark marker0
+ time00 7.092
+ time01 14.241
+ time02 20.347
+ time03 67.703
+ time04 69.517
+ time05 71.844
+ time06 75.125
+ time07 78
+ time08 82.965
+ time09 129.589
+ time10 158.426
+ }
+ exit
+ {
+ nextfile hoth2_atr01
+ nextmark marker1
+ time00 25.993
+ time01 29.983
+ time02 35.6
+ time03 38.318
+ time04 40.995
+ time05 42.335
+ time06 52.587
+ time07 57.297
+ time08 60.622
+ time09 62.617
+ time10 84.422
+ time11 96.308
+ time12 98.358
+ time13 102.459
+ time14 104.409
+ time15 109.8
+ time16 118.721
+ time17 141.128
+ time18 145.861
+ time19 150.9
+ }
+ exit
+ {
+ nextfile hoth2_atr02
+ nextmark marker2
+ time00 32.915
+
+ }
+ exit
+ {
+ nextfile hoth2_atr03
+ nextmark marker3
+ time00 42.924
+ time01 46.027
+ time02 48.611
+ time03 50.384
+ time04 52.047
+ time05 86.486
+ time06 90.032
+ time07 94.786
+ time08 124.69
+ time09 153.883
+ }
+ }
+ dealsour_explore
+ {
+ entry
+ {
+ marker0 0.000
+ marker1 100.492
+ marker2 126.154
+
+ }
+ exit
+ {
+ nextfile dealsour_etr00
+ time00 5.153
+ time01 26.487
+ time02 64.556
+ time03 93.205
+ time04 108.166
+ time05 138.145
+ }
+ exit
+ {
+ nextfile dealsour_etr01
+ time00 9.143
+ time01 21.223
+ time02 43.388
+ time03 87.830
+ time04 116.589
+ }
+ }
+ dealsour_action
+ {
+ entry
+ {
+ marker0 0.00
+ marker1 65.166
+ marker2 100.575
+ }
+ exit
+ {
+ nextfile dealsour_atr00
+ nextmark marker0
+ time00 4.765
+ time01 17.278
+ time02 26.365
+ time03 53.352
+ time04 57.175
+ time05 82.776
+ }
+ exit
+ {
+ nextfile dealsour_atr01
+ nextmark marker1
+ time00 13.321
+ time01 91.953
+ time02 104.975
+ }
+ exit
+ {
+ nextfile dealsour_atr02
+ nextmark marker2
+ time00 36.351
+ time01 44.386
+ time02 59.624
+ time03 70.075
+ time04 79.435
+ time05 95.511
+ }
+ }
+ rancor_explore
+ {
+ entry
+ {
+ marker0 0
+ marker1 46.103
+ marker2 88.328
+
+ }
+ exit
+ {
+ nextfile rancor_etr00
+ time00 0.775
+ time01 5.319
+ time02 16.291
+ time03 43.222
+ time04 49.539
+ time05 63.725
+ time06 84.0
+ time07 103.623
+
+
+ }
+ exit
+ {
+ nextfile rancor_etr01
+ time00 10.08
+ time01 26.820
+ time02 51.645
+ time03 68.213
+ time04 129.279
+ }
+
+ }
+ rancor_action
+ {
+ entry
+ {
+ marker0 0
+ marker1 54.928
+ marker2 88.315
+ }
+ exit
+ {
+ nextfile rancor_atr00
+ nextmark marker0
+ time00 0.05
+ time01 2.737
+ time02 7.918
+ time03 10.079
+ time04 84.256
+ time05 90.440
+ time06 95.759
+ time07 105.562
+ time08 105.562
+ time09 111.159
+ time10 113.985
+ time11 118.03
+ }
+ exit
+ {
+ nextfile rancor_atr01
+ nextmark marker1
+ time00 8.921
+ time01 24.975
+ time02 31.458
+ time03 35.586
+ time04 38.523
+ time05 56.3
+ time06 60
+ time07 65.549
+ time08 73.223
+ time09 77.467
+ time10 102.791
+ time11 123.9
+ time12 141.193
+ time13 144.02
+ time14 146.296
+ time15 151.234
+ time16 155.057
+ time17 157.329
+ }
+ exit
+ {
+ nextfile rancor_atr02
+ nextmark marker2
+ time00 5.098
+ time01 9.309
+ time02 19.508
+ time03 74.323
+ time04 80.898
+ time05 86.123
+ time06 99.754
+ time07 132.448
+ time08 136.504
+ time09 148.230
+ time10 161.263
+ }
+ }
+ korrib_lite_explore
+ {
+ entry
+ {
+ marker0 0.000
+ marker1 20.170
+ marker2 51.645
+ marker3 73.201
+ }
+ exit
+ {
+ nextfile korrib_lite_etr00
+ time00 40.866
+ time01 55.635
+ time02 68.222
+ }
+ exit
+ {
+ nextfile korrib_lite_etr01
+ time00 0.200
+ time01 15.472
+ time02 77.914
+ time03 80.977
+ }
+ }
+ korrib_dark_explore
+ {
+ entry
+ {
+ marker0 0.000
+ marker1 56.300
+ marker2 81.901
+ marker3 97.970
+ }
+ exit
+ {
+ nextfile korrib_dark_etr00
+ time00 0.100
+ time01 55.719
+ time02 69.607
+ time03 105.397
+ }
+ exit
+ {
+ nextfile korrib_dark_etr01
+ time00 29.202
+ time01 82.004
+ }
+ }
+ korrib_action
+ {
+ entry
+ {
+ marker0 0.00
+ marker1 41.495
+ marker2 63.586
+ marker3 96.124
+ }
+ exit
+ {
+ nextfile korrib_atr00
+ nextmark marker0
+ time00 0.100
+ time01 2.769
+ time02 7.929
+ time03 35.142
+ time04 41.429
+ time05 66.838
+ time06 101.731
+ time07 115.125
+ }
+ exit
+ {
+ nextfile korrib_atr01
+ nextmark marker1
+ time00 10.161
+ time01 31.271
+ time02 33.499
+ time03 45.925
+ time04 48.117
+ time05 53.043
+ time06 63.397
+ time07 105.512
+ time08 108.174
+ }
+ exit
+ {
+ nextfile korrib_atr02
+ nextmark marker2
+ time00 6.125
+ time01 15.027
+ time02 18.225
+ time03 38.181
+ time04 59.245
+ time05 76.386
+ time06 80.120
+ time07 92.516
+ }
+ exit
+ {
+ nextfile korrib_atr03
+ nextmark marker3
+ time00 20.844
+ time01 24.075
+ time02 74.372
+ time03 85.475
+ time04 89.990
+ time05 117.480
+ }
+ }
+ final_battle
+ {
+ }
+ vjun3_explore
+ {
+
+ entry
+ {
+ marker0 0.000
+ marker1 41.670
+ marker2 146.402
+ }
+ exit
+ {
+ nextfile vjun3_etr00
+ time00 132.271
+ time01 144.739
+ }
+ exit
+ {
+ nextfile vjun3_etr01
+ time00 13.138
+ time01 25.994
+ time02 85.175
+ }
+ }
+ vjun3_action
+ {
+ entry
+ {
+ marker0 0.00
+ marker1 8.256
+ marker2 65.554
+ }
+ exit
+ {
+ nextfile vjun3_atr00
+ nextmark marker0
+ time00 7.785
+ time01 32.66
+ time02 47.516
+ time03 51.710
+ time04 65.674
+ time05 87.719
+ time06 105.684
+ time07 119.798
+ time08 125.561
+ time09 128.004
+ }
+ exit
+ {
+ nextfile vjun3_atr01
+ nextmark marker1
+ time00 13.243
+ time01 20.037
+ time02 23.944
+ time03 36.96
+ time04 39.62
+ time05 54.14
+ time06 57.372
+ time07 81.623
+ time08 99.91
+ }
+ exit
+ {
+ nextfile vjun3_atr02
+ nextmark marker2
+ time00 2.271
+ time01 15.017
+ time02 28.210
+ time03 42.557
+ time04 45.80
+ time05 69.571
+ time06 73.505
+ time07 93.482
+ time08 115.814
+ }
+ }
+}
+levelmusic
+{
+ yavin1
+ {
+ explore swamp_explore
+ action swamp_action
+ }
+ yavin1b
+ {
+ uses yavin1
+ }
+ yavin2
+ {
+ explore yavtemp2_explore
+ action yavtemp2_action
+ }
+ t1_fatal
+ {
+ explore tunnels_explore
+ action tunnels_action
+ }
+ t1_sour
+ {
+ explore dealsour_explore
+ action dealsour_action
+ }
+ t1_surprise
+ {
+ explore tusken_explore
+ action tusken_action
+ }
+ t1_danger
+ {
+ uses t1_surprise
+ }
+ hoth2
+ {
+ explore hoth2_explore
+ action hoth2_action
+ }
+ hoth3
+ {
+ uses hoth2
+ }
+ t2_dpred
+ {
+ explore ImpBaseB_Explore
+ action ImpBaseB_Action
+ }
+ t2_wedge
+ {
+ explore besplat_explore
+ action besplat_action
+ boss besplat_boss
+ }
+ t2_rancor
+ {
+ explore rancor_explore
+ action rancor_action
+ }
+ t2_rogue
+ {
+ explore narshaada_explore
+ action narshaada_action
+ }
+ vjun1
+ {
+ uses yavin2
+ }
+ vjun2
+ {
+ explore ImpBaseE_explore
+ action ImpBaseE_action
+ }
+ vjun3
+ {
+ explore vjun3_explore
+ action vjun3_action
+ }
+ t3_bounty
+ {
+ uses t1_sour
+ }
+ t3_byss
+ {
+ explore alienhb_explore
+ action alienhb_action
+ }
+ t3_hevil
+ {
+ uses t2_wedge
+ }
+ t3_rift
+ {
+ uses yavin2
+ }
+ taspir1
+ {
+ uses vjun2
+ }
+ taspir2
+ {
+ uses vjun2
+ }
+ kor_lite
+ {
+ explore korrib_lite_explore
+ action korrib_action
+ boss final_battle
+ }
+ kor_dark
+ {
+ explore korrib_dark_explore
+ action korrib_action
+ boss final_battle
+ }
+}
diff --git a/base/ext_data/items.dat b/base/ext_data/items.dat
new file mode 100644
index 0000000..0b28718
--- /dev/null
+++ b/base/ext_data/items.dat
@@ -0,0 +1,782 @@
+// EXTERNAL ITEM DATA
+//
+
+//Fields
+//pickupsound STRING; DEFAULT = sound/weapons/w_pkup.wav
+//itemname STRING;
+//classname STRING;
+//count INT; ammount of ammo or health given with item
+//icon STRING;
+//min VECTOR; item bounds min, DEFAULT = -16 -16 -2
+//max VECTOR; item bounds max, DEFAULT = 16 16 16
+//pickupname STRING; name to show in inventory
+//tag ENUM; WP_, or AMMO_
+//type ENUM; IT_WEAPON, IT_AMMO, IT_ARMOR, IT_HEALTH
+//worldmodel STRING; model to show on ground or in hand
+
+{
+itemname ITM_SABER_PICKUP
+
+classname weapon_saber
+worldmodel models/weapons2/saber/saber_w.md3
+icon gfx/hud/w_icon_lightsaber
+// Amount of ammo given with weapon
+count 50
+type IT_WEAPON
+tag WP_SABER
+min -16 -16 -8
+max 16 16 16
+}
+
+
+{
+itemname ITM_BRYAR_PISTOL_PICKUP
+
+classname weapon_bryar_pistol
+worldmodel models/weapons2/briar_pistol/briar_pistol_w.glm
+icon gfx/hud/w_icon_briar
+// Amount of ammo given with weapon
+count 10
+type IT_WEAPON
+tag WP_BRYAR_PISTOL
+min -10 -10 -2
+max 10 10 12
+}
+
+{
+itemname ITM_BLASTER_PISTOL_PICKUP
+
+classname weapon_blaster_pistol
+worldmodel models/weapons2/blaster_pistol/blaster_pistol_w.glm
+icon gfx/hud/w_icon_blaster_pistol
+// Amount of ammo given with weapon
+count 10
+type IT_WEAPON
+tag WP_BLASTER_PISTOL
+min -10 -10 -2
+max 10 10 12
+}
+
+{
+itemname ITM_BLASTER_PICKUP
+
+classname weapon_blaster
+worldmodel models/weapons2/blaster_r/blaster_w.glm
+icon gfx/hud/w_icon_blaster
+// Amount of ammo given with weapon
+count 10
+type IT_WEAPON
+tag WP_BLASTER
+min -10 -10 -2
+max 10 10 12
+}
+
+{
+itemname ITM_DISRUPTOR_PICKUP
+
+classname weapon_disruptor
+worldmodel models/weapons2/disruptor/disruptor_w.glm
+icon gfx/hud/w_icon_disruptor
+// Amount of ammo given with weapon
+count 50
+type IT_WEAPON
+tag WP_DISRUPTOR
+min -10 -10 -2
+max 10 10 12
+}
+
+{
+itemname ITM_BOWCASTER_PICKUP
+
+classname weapon_bowcaster
+worldmodel models/weapons2/bowcaster/bowcaster_w.glm
+icon gfx/hud/w_icon_bowcaster
+// Amount of ammo given with weapon
+count 50
+type IT_WEAPON
+tag WP_BOWCASTER
+min -10 -10 -2
+max 10 10 12
+}
+
+{
+itemname ITM_REPEATER_PICKUP
+
+classname weapon_repeater
+worldmodel models/weapons2/heavy_repeater/heavy_repeater_w.glm
+icon gfx/hud/w_icon_repeater
+// Amount of ammo given with weapon
+count 50
+type IT_WEAPON
+tag WP_REPEATER
+min -10 -10 -2
+max 10 10 12
+}
+
+{
+itemname ITM_DEMP2_PICKUP
+
+classname weapon_demp2
+worldmodel models/weapons2/demp2/demp2_w.glm
+icon gfx/hud/w_icon_demp2
+// Amount of ammo given with weapon
+count 50
+type IT_WEAPON
+tag WP_DEMP2
+min -10 -10 -2
+max 10 10 12
+}
+
+
+{
+itemname ITM_FLECHETTE_PICKUP
+
+classname weapon_flechette
+worldmodel models/weapons2/golan_arms/golan_arms_w.glm
+icon gfx/hud/w_icon_flechette
+// Amount of ammo given with weapon
+count 50
+type IT_WEAPON
+tag WP_FLECHETTE
+min -10 -10 -2
+max 10 10 12
+}
+
+{
+itemname ITM_CONCUSSION_RIFLE_PICKUP
+
+classname weapon_concussion_rifle
+worldmodel models/weapons2/concussion/c_rifle_w.glm
+icon gfx/hud/w_icon_c_rifle
+// Amount of ammo given with weapon
+count 50
+type IT_WEAPON
+tag WP_CONCUSSION
+min -10 -10 -2
+max 10 10 12
+}
+
+{
+itemname ITM_ROCKET_LAUNCHER_PICKUP
+
+classname weapon_rocket_launcher
+worldmodel models/weapons2/merr_sonn/merr_sonn_w.glm
+icon gfx/hud/w_icon_merrsonn
+// Amount of ammo given with weapon
+count 50
+type IT_WEAPON
+tag WP_ROCKET_LAUNCHER
+min -10 -10 -2
+max 10 10 12
+}
+
+
+{
+itemname ITM_THERMAL_DET_PICKUP
+
+classname weapon_thermal
+worldmodel models/weapons2/thermal/thermal_pu.md3
+icon gfx/hud/w_icon_thermal
+// Amount of ammo given with weapon
+count 50
+type IT_WEAPON
+tag WP_THERMAL
+min -10 -10 -2
+max 10 10 12
+}
+
+{
+itemname ITM_TRIP_MINE_PICKUP
+
+classname weapon_trip_mine
+worldmodel models/weapons2/laser_trap/laser_trap_pu.md3
+icon gfx/hud/w_icon_tripmine
+// Amount of ammo given with weapon
+count 50
+type IT_WEAPON
+tag WP_TRIP_MINE
+min -10 -10 -2
+max 10 10 12
+}
+
+{
+itemname ITM_DET_PACK_PICKUP
+
+classname weapon_det_pack
+worldmodel models/weapons2/detpack/det_pack_pu.md3
+icon gfx/hud/w_icon_detpack
+// Amount of ammo given with weapon
+count 50
+type IT_WEAPON
+tag WP_DET_PACK
+min -10 -10 -2
+max 10 10 12
+}
+
+{
+itemname ITM_STUN_BATON_PICKUP
+
+classname weapon_stun_baton
+worldmodel models/weapons2/stun_baton/stunbaton_w.glm
+icon gfx/hud/w_icon_stunbaton
+// Amount of ammo given with weapon
+count 50
+type IT_WEAPON
+tag WP_STUN_BATON
+}
+
+
+{
+itemname ITM_BOT_LASER_PICKUP
+
+classname weapon_botwelder
+worldmodel models/weapons2/noweap/noweap.md3
+// Amount of ammo given with weapon
+count 400
+type IT_WEAPON
+tag WP_BOT_LASER
+}
+
+{
+itemname ITM_MELEE
+
+classname weapon_melee
+worldmodel models/weapons2/noweap/noweap.md3
+icon gfx/hud/w_icon_melee
+// Amount of ammo given with weapon
+count 400
+type IT_WEAPON
+tag WP_MELEE
+min -16 -16 -2
+max 16 16 16
+}
+
+{
+itemname ITM_EMPLACED_GUN_PICKUP
+
+classname weapon_emplaced_gun
+worldmodel models/weapons2/noweap/noweap.md3
+// Amount of ammo given with weapon
+count 800
+type IT_WEAPON
+tag WP_EMPLACED_GUN
+}
+
+{
+itemname ITM_TURRET_PICKUP
+
+classname weapon_turret
+worldmodel models/weapons2/noweap/noweap.md3
+// Amount of ammo given with weapon
+count 400
+type IT_WEAPON
+tag WP_TURRET
+}
+
+{
+itemname ITM_ATST_MAIN_PICKUP
+
+classname weapon_atst_main
+worldmodel models/weapons2/noweap/noweap.md3
+icon gfx/hud/w_icon_atst
+// Amount of ammo given with weapon
+count 400
+type IT_WEAPON
+tag WP_ATST_MAIN
+}
+
+{
+itemname ITM_ATST_SIDE_PICKUP
+
+classname weapon_atst_side
+worldmodel models/weapons2/noweap/noweap.md3
+icon gfx/hud/w_icon_atstside
+// Amount of ammo given with weapon
+count 400
+type IT_WEAPON
+tag WP_ATST_SIDE
+}
+
+{
+itemname ITM_TIE_FIGHTER_PICKUP
+
+classname weapon_tie_fighter
+worldmodel models/weapons2/noweap/noweap.md3
+// Amount of ammo given with weapon
+count 400
+type IT_WEAPON
+tag WP_TIE_FIGHTER
+}
+
+{
+itemname ITM_RAPID_FIRE_CONC_PICKUP
+
+classname weapon_rapid_concussion
+worldmodel models/weapons2/noweap/noweap.md3
+// Amount of ammo given with weapon
+count 400
+type IT_WEAPON
+tag WP_RAPID_FIRE_CONC
+}
+
+{
+itemname ITM_JAWA_PICKUP
+
+classname weapon_jawa
+worldmodel models/weapons2/jawa/jawa_gun.md3
+// Amount of ammo given with weapon
+count 400
+type IT_WEAPON
+tag WP_JAWA
+}
+
+{
+itemname ITM_TUSKEN_RIFLE_PICKUP
+
+classname weapon_tusken_rifle
+worldmodel models/weapons2/tusken_rifle/tusken_rifle.md3
+// Amount of ammo given with weapon
+count 400
+type IT_WEAPON
+tag WP_TUSKEN_RIFLE
+}
+
+{
+itemname ITM_TUSKEN_STAFF_PICKUP
+
+classname weapon_tusken_staff
+worldmodel models/weapons2/tusken_staff/tusken_staff.md3
+// Amount of ammo given with weapon
+count 400
+type IT_WEAPON
+tag WP_TUSKEN_STAFF
+}
+
+{
+itemname ITM_SCEPTER_PICKUP
+
+classname weapon_scepter
+worldmodel models/weapons2/sith_scepter/sith_scepter.md3
+// Amount of ammo given with weapon
+count 400
+type IT_WEAPON
+tag WP_SCEPTER
+}
+
+{
+itemname ITM_NOGHRI_STICK_PICKUP
+
+classname weapon_noghri_stick
+worldmodel models/weapons2/noghri_stick/noghri_stick.md3
+// Amount of ammo given with weapon
+count 400
+type IT_WEAPON
+tag WP_NOGHRI_STICK
+}
+//
+//Items
+//
+
+// AMMO Items
+//-------------
+{
+itemname ITM_AMMO_FORCE_PICKUP
+
+classname ammo_force
+worldmodel models/items/forcegem.md3
+pickupsound sound/player/enlightenment.wav
+icon gfx/hud/forcegem_icon2
+count 100
+type IT_AMMO
+tag AMMO_FORCE
+max 8 8 16
+min -8 -8 -0
+}
+
+{
+itemname ITM_AMMO_BLASTER_PICKUP
+
+classname ammo_blaster
+worldmodel models/items/energy_cell.md3
+icon gfx/hud/energy_cell
+count 25
+type IT_AMMO
+tag AMMO_BLASTER
+max 8 8 16
+min -8 -8 -0
+}
+
+{
+itemname ITM_AMMO_POWERCELL_PICKUP
+
+classname ammo_powercell
+worldmodel models/items/power_cell.md3
+icon gfx/hud/power_cell
+count 100
+type IT_AMMO
+tag AMMO_POWERCELL
+max 8 8 16
+min -8 -8 -0
+}
+
+
+{
+itemname ITM_AMMO_METAL_BOLTS_PICKUP
+
+classname ammo_metallic_bolts
+worldmodel models/items/metallic_bolts.md3
+icon gfx/hud/metallic_bolts
+count 100
+type IT_AMMO
+tag AMMO_METAL_BOLTS
+max 8 8 16
+min -8 -8 -0
+}
+
+{
+itemname ITM_AMMO_ROCKETS_PICKUP
+
+classname ammo_rockets
+worldmodel models/items/rockets.md3
+icon gfx/hud/rockets
+count 3
+type IT_AMMO
+tag AMMO_ROCKETS
+max 8 8 16
+min -8 -8 -0
+}
+
+{
+itemname ITM_AMMO_EMPLACED_PICKUP
+
+classname ammo_emplaced
+worldmodel models/weapons2/noweap/noweap.md3
+count 100
+type IT_AMMO
+tag AMMO_EMPLACED
+max 8 8 16
+min -8 -8 -0
+}
+
+{
+itemname ITM_AMMO_THERMAL_PICKUP
+
+classname ammo_thermal
+worldmodel models/weapons2/thermal/thermal_pu.md3
+icon gfx/hud/w_icon_thermal
+count 4
+type IT_AMMO
+tag AMMO_THERMAL
+max 16 16 16
+min -16 -16 -0
+}
+
+{
+itemname ITM_AMMO_TRIPMINE_PICKUP
+
+classname ammo_tripmine
+worldmodel models/weapons2/laser_trap/laser_trap_pu.md3
+icon gfx/hud/w_icon_tripmine
+count 3
+type IT_AMMO
+tag AMMO_TRIPMINE
+max 8 8 16
+min -8 -8 -0
+}
+
+{
+itemname ITM_AMMO_DETPACK_PICKUP
+
+classname ammo_detpack
+worldmodel models/weapons2/detpack/det_pack_pu.md3
+icon gfx/hud/w_icon_detpack
+count 3
+type IT_AMMO
+tag AMMO_DETPACK
+max 8 8 16
+min -8 -8 -0
+}
+
+
+
+{
+itemname ITM_BATTERY_PICKUP
+
+classname item_battery
+worldmodel models/items/battery.md3
+icon gfx/hud/battery
+count 1000
+type IT_BATTERY
+tag ITM_BATTERY_PICKUP
+max 8 8 16
+min -8 -8 -0
+}
+
+{
+itemname ITM_SEEKER_PICKUP
+classname item_seeker
+worldmodel models/items/remote.md3
+icon gfx/hud/i_icon_seeker
+count 120
+type IT_HOLDABLE
+tag INV_SEEKER
+max 8 8 16
+min -8 -8 -4
+}
+
+{
+itemname ITM_SHIELD_PICKUP
+classname item_enviro
+worldmodel models/items/shield.md3
+icon gfx/hud/i_icon_shieldwall
+count 100
+type IT_HOLDABLE
+tag ITM_SHIELD_PICKUP
+max 8 8 16
+min -8 -8 -0
+}
+
+{
+itemname ITM_BACTA_PICKUP
+classname item_bacta
+worldmodel models/items/bacta.md3
+icon gfx/hud/i_icon_bacta
+count 25
+type IT_HEALTH
+tag ITM_MEDPAK_PICKUP
+max 8 8 16
+min -8 -8 -0
+}
+
+{
+itemname ITM_DATAPAD_PICKUP
+classname item_datapad
+worldmodel models/items/datapad.md3
+count 1
+type IT_HOLDABLE
+tag ITM_DATAPAD_PICKUP
+max 8 8 16
+min -8 -8 -0
+}
+
+{
+itemname ITM_BINOCULARS_PICKUP
+classname item_binoculars
+worldmodel models/items/binoculars.md3
+icon gfx/hud/i_icon_zoom
+count 1
+type IT_HOLDABLE
+tag INV_ELECTROBINOCULARS
+max 8 8 16
+min -8 -8 -0
+}
+
+{
+itemname ITM_SENTRY_GUN_PICKUP
+classname item_sentry_gun
+worldmodel models/items/psgun.glm
+icon gfx/hud/i_icon_sentrygun
+count 120
+type IT_HOLDABLE
+tag INV_SENTRY
+max 8 8 16
+min -8 -8 -0
+}
+
+{
+itemname ITM_LA_GOGGLES_PICKUP
+classname item_la_goggles
+worldmodel models/items/binoculars.md3
+icon gfx/hud/i_icon_goggles
+count 30
+type IT_HOLDABLE
+tag INV_LIGHTAMP_GOGGLES
+max 8 8 16
+min -8 -8 -0
+}
+
+{
+itemname ITM_MEDPAK_PICKUP
+classname item_medpak_instant
+worldmodel models/items/medpac.md3
+icon gfx/hud/i_icon_medkit
+count 20
+type IT_HEALTH
+tag ITM_MEDPAK_PICKUP
+max 8 8 16
+min -8 -8 -3
+}
+
+{
+itemname ITM_SHIELD_SM_PICKUP
+classname item_shield_sm_instant
+worldmodel models/items/psd_sm.md3
+icon gfx/hud/psd_small
+count 25
+type IT_ARMOR
+tag ITM_SHIELD_SM_PICKUP
+max 8 8 16
+min -8 -8 -0
+}
+
+{
+itemname ITM_SHIELD_LRG_PICKUP
+classname item_shield_lrg_instant
+worldmodel models/items/psd.md3
+icon gfx/hud/psd_medium
+count 50
+type IT_ARMOR
+tag ITM_SHIELD_LRG_PICKUP
+max 8 8 16
+min -8 -8 -4
+}
+
+
+{
+itemname ITM_GOODIE_KEY_PICKUP
+classname item_goodie_key
+worldmodel models/items/key.md3
+icon gfx/hud/i_icon_goodie_key
+type IT_HOLDABLE
+tag INV_GOODIE_KEY
+max 8 8 16
+min -8 -8 -0
+}
+
+
+{
+itemname ITM_SECURITY_KEY_PICKUP
+classname item_security_key
+worldmodel models/items/key.md3
+icon gfx/hud/i_icon_security_key
+type IT_HOLDABLE
+tag INV_SECURITY_KEY
+max 8 8 16
+min -8 -8 -0
+}
+
+{
+itemname ITM_FORCE_HEAL_PICKUP
+
+classname holocron_force_heal
+worldmodel models/map_objects/force_holocrons/heal.md3
+pickupsound sound/player/holocron.wav
+icon gfx/hud/f_icon_heal
+count 1
+type IT_HOLOCRON
+tag FP_HEAL
+max 8 8 16
+min -8 -8 -0
+}
+
+{
+itemname ITM_FORCE_LEVITATION_PICKUP
+
+classname holocron_force_levitation
+worldmodel models/map_objects/force_holocrons/jump.md3
+pickupsound sound/player/holocron.wav
+icon gfx/hud/f_icon_levitation
+count 1
+type IT_HOLOCRON
+tag FP_LEVITATION
+max 8 8 16
+min -8 -8 -0
+}
+
+{
+itemname ITM_FORCE_SPEED_PICKUP
+
+classname holocron_force_speed
+worldmodel models/map_objects/force_holocrons/speed.md3
+pickupsound sound/player/holocron.wav
+icon gfx/hud/f_icon_speed
+count 1
+type IT_HOLOCRON
+tag FP_SPEED
+max 8 8 16
+min -8 -8 -0
+}
+
+{
+itemname ITM_FORCE_PUSH_PICKUP
+
+classname holocron_force_push
+worldmodel models/map_objects/force_holocrons/push.md3
+pickupsound sound/player/holocron.wav
+icon gfx/hud/f_icon_push
+count 1
+type IT_HOLOCRON
+tag FP_PUSH
+max 8 8 16
+min -8 -8 -0
+}
+
+{
+itemname ITM_FORCE_PULL_PICKUP
+
+classname holocron_force_pull
+worldmodel models/map_objects/force_holocrons/pull.md3
+pickupsound sound/player/holocron.wav
+icon gfx/hud/f_icon_pull
+count 1
+type IT_HOLOCRON
+tag FP_PULL
+max 8 8 16
+min -8 -8 -0
+}
+
+{
+itemname ITM_FORCE_TELEPATHY_PICKUP
+
+classname holocron_force_telepathy
+worldmodel models/map_objects/force_holocrons/telepathy.md3
+pickupsound sound/player/holocron.wav
+icon gfx/hud/f_icon_telepathy
+count 1
+type IT_HOLOCRON
+tag FP_TELEPATHY
+max 8 8 16
+min -8 -8 -0
+}
+
+{
+itemname ITM_FORCE_GRIP_PICKUP
+
+classname holocron_force_grip
+worldmodel models/map_objects/force_holocrons/grip.md3
+pickupsound sound/player/holocron.wav
+icon gfx/hud/f_icon_grip
+count 1
+type IT_HOLOCRON
+tag FP_GRIP
+max 8 8 16
+min -8 -8 -0
+}
+
+{
+itemname ITM_FORCE_LIGHTNING_PICKUP
+
+classname holocron_force_lightning
+worldmodel models/map_objects/force_holocrons/lightning.md3
+pickupsound sound/player/holocron.wav
+icon gfx/hud/f_icon_lightning
+count 1
+type IT_HOLOCRON
+tag FP_LIGHTNING
+max 8 8 16
+min -8 -8 -0
+}
+
+{
+itemname ITM_FORCE_SABERTHROW_PICKUP
+
+classname holocron_force_saberthrow
+worldmodel models/map_objects/force_holocrons/saberthrow.md3
+pickupsound sound/player/holocron.wav
+icon gfx/hud/f_icon_saberthrow
+count 1
+type IT_HOLOCRON
+tag FP_SABERTHROW
+max 8 8 16
+min -8 -8 -0
+}
diff --git a/base/ext_data/npcs/Bartender.npc b/base/ext_data/npcs/Bartender.npc
new file mode 100644
index 0000000..4b0db4a
--- /dev/null
+++ b/base/ext_data/npcs/Bartender.npc
@@ -0,0 +1,25 @@
+Bartender
+{
+ playerModel chiss
+ weapon WP_NONE
+ snd bartender
+ reactions 3
+ aim 1
+ move 3
+ aggression 3
+ evasion 1
+ intelligence 5
+ rank crewman
+ playerTeam TEAM_NEUTRAL
+ enemyTeam TEAM_NEUTRAL
+// race human
+ class CLASS_BARTENDER
+ walkSpeed 55
+ runSpeed 200
+ yawspeed 90
+ dismemberProbHead 0
+ dismemberProbArms 0
+ dismemberProbLegs 0
+ dismemberProbHands 0
+ dismemberProbWaist 0
+} \ No newline at end of file
diff --git a/base/ext_data/npcs/BespinCop.npc b/base/ext_data/npcs/BespinCop.npc
new file mode 100644
index 0000000..f022f1c
--- /dev/null
+++ b/base/ext_data/npcs/BespinCop.npc
@@ -0,0 +1,57 @@
+BespinCop
+{
+ playerModel bespin_cop
+ weapon WP_BLASTER_PISTOL
+ health 40
+ reactions 3
+ aim 1
+ move 3
+ aggression 3
+ evasion 1
+ intelligence 5
+ rank crewman
+ playerTeam TEAM_PLAYER
+ enemyTeam TEAM_ENEMY
+ walkSpeed 55
+ runSpeed 200
+ yawspeed 120
+ dismemberProbHead 0
+ dismemberProbArms 10
+ dismemberProbLegs 0
+ dismemberProbHands 20
+ dismemberProbWaist 0
+// race bespincop
+ class CLASS_BESPIN_COP
+ snd bespincop1
+ sndcombat bespincop1
+ sndextra bespincop1
+}
+
+BespinCop2
+{
+ playerModel bespin_cop
+ weapon WP_BLASTER_PISTOL
+ health 40
+ reactions 3
+ aim 1
+ move 3
+ aggression 3
+ evasion 1
+ intelligence 5
+ rank crewman
+ playerTeam TEAM_PLAYER
+ enemyTeam TEAM_ENEMY
+ walkSpeed 55
+ runSpeed 200
+ yawspeed 120
+ dismemberProbHead 0
+ dismemberProbArms 10
+ dismemberProbLegs 0
+ dismemberProbHands 20
+ dismemberProbWaist 0
+// race bespincop
+ class CLASS_BESPIN_COP
+ snd bespincop2
+ sndcombat bespincop2
+ sndextra bespincop2
+} \ No newline at end of file
diff --git a/base/ext_data/npcs/Desann.npc b/base/ext_data/npcs/Desann.npc
new file mode 100644
index 0000000..646ea2f
--- /dev/null
+++ b/base/ext_data/npcs/Desann.npc
@@ -0,0 +1,53 @@
+Desann
+{
+ playerModel desann
+ saber desann
+ weapon WP_SABER
+ saberStyle 4
+ FP_HEAL 0
+ FP_LEVITATION 3
+ FP_SPEED 3
+ FP_PUSH 3
+ FP_PULL 3
+ FP_TELEPATHY 0
+ FP_GRIP 3
+ FP_LIGHTNING 3
+ FP_RAGE 3
+ FP_PROTECT 0
+ FP_ABSORB 0
+ FP_DRAIN 3
+ FP_SEE 3
+ FP_SABERTHROW 3
+ FP_SABER_DEFENSE 3
+ FP_SABER_OFFENSE 3
+ forceRegenRate 50
+ rank captain
+ reactions 3
+ aim 3
+ move 5
+ aggression 3
+ evasion 5
+ intelligence 5
+ hfov 160
+ vfov 160
+ scale 135
+ height 78
+ crouchheight 42
+ width 18
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+// race human
+ class CLASS_DESANN
+ yawSpeed 120
+ walkSpeed 55
+ runSpeed 200
+ snd desann
+ sndcombat desann
+ sndjedi desann
+ health 500
+ dismemberProbHead 0
+ dismemberProbArms 0
+ dismemberProbLegs 0
+ dismemberProbHands 0
+ dismemberProbWaist 0
+} \ No newline at end of file
diff --git a/base/ext_data/npcs/Elder.npc b/base/ext_data/npcs/Elder.npc
new file mode 100644
index 0000000..0c0fd3c
--- /dev/null
+++ b/base/ext_data/npcs/Elder.npc
@@ -0,0 +1,55 @@
+Elder
+{
+ playerModel prisoner
+ weapon WP_NONE
+ customSkin elder
+ reactions 3
+ aim 1
+ move 3
+ aggression 3
+ evasion 1
+ intelligence 5
+ rank crewman
+ playerTeam TEAM_PLAYER
+ enemyTeam TEAM_ENEMY
+ class CLASS_PRISONER
+ snd prisoner1
+ sndcombat prisoner1
+ sndextra prisoner1
+ walkSpeed 55
+ runSpeed 200
+ yawspeed 110
+ dismemberProbHead 0
+ dismemberProbArms 5
+ dismemberProbLegs 0
+ dismemberProbHands 10
+ dismemberProbWaist 0
+}
+
+Elder2
+{
+ playerModel prisoner
+ weapon WP_NONE
+ customSkin elder2
+ reactions 3
+ aim 1
+ move 3
+ aggression 3
+ evasion 1
+ intelligence 5
+ rank crewman
+ playerTeam TEAM_PLAYER
+ enemyTeam TEAM_ENEMY
+ class CLASS_PRISONER
+ snd prisoner2
+ sndcombat prisoner2
+ sndextra prisoner2
+ walkSpeed 55
+ runSpeed 200
+ yawspeed 110
+ dismemberProbHead 0
+ dismemberProbArms 5
+ dismemberProbLegs 0
+ dismemberProbHands 10
+ dismemberProbWaist 0
+} \ No newline at end of file
diff --git a/base/ext_data/npcs/Galak.npc b/base/ext_data/npcs/Galak.npc
new file mode 100644
index 0000000..4b5ab60
--- /dev/null
+++ b/base/ext_data/npcs/Galak.npc
@@ -0,0 +1,22 @@
+Galak
+{
+ playerModel galak
+ weapon WP_BLASTER
+ altFire 1
+ rank commander
+ snd galak
+ reactions 3
+ aim 1
+ move 3
+ aggression 3
+ evasion 1
+ intelligence 5
+ rank captain
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+// race klingon
+ class CLASS_IMPERIAL
+ yawspeed 90
+ walkSpeed 55
+ runSpeed 200
+} \ No newline at end of file
diff --git a/base/ext_data/npcs/Galak_Mech.npc b/base/ext_data/npcs/Galak_Mech.npc
new file mode 100644
index 0000000..76d00f8
--- /dev/null
+++ b/base/ext_data/npcs/Galak_Mech.npc
@@ -0,0 +1,36 @@
+Galak_Mech
+{
+ playerModel galak_mech
+ weapon WP_REPEATER
+ health 1000
+ width 20
+ height 88
+ crouchheight 88
+ snd galak_mech
+ reactions 3
+ aim 5
+ move 3
+ aggression 3
+ evasion 1
+ intelligence 5
+ rank crewman
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+// race klingon
+ class CLASS_GALAK_MECH
+ snd galak
+ sndcombat galak
+ sndextra galak
+ yawSpeed 50
+ walkSpeed 45
+ runSpeed 150
+ dismemberProbHead 0
+ dismemberProbArms 0
+ dismemberProbHands 0
+ dismemberProbLegs 0
+ dismemberProbWaist 0
+ headPitchRangeUp 60
+ headPitchRangeDown 60
+ torsoPitchRangeUp 60
+ torsoPitchRangeDown 60
+} \ No newline at end of file
diff --git a/base/ext_data/npcs/Glider.npc b/base/ext_data/npcs/Glider.npc
new file mode 100644
index 0000000..f133bb7
--- /dev/null
+++ b/base/ext_data/npcs/Glider.npc
@@ -0,0 +1,21 @@
+Glider
+{
+ playerModel glider
+ weapon WP_MELEE
+ reactions 3
+ aim 1
+ move 3
+ aggression 3
+ evasion 1
+ intelligence 5
+ playerTeam TEAM_NEUTRAL
+ enemyTeam TEAM_NEUTRAL
+// race harvester
+ class CLASS_GLIDER
+ yawSpeed 60
+ runSpeed 150
+ walkSpeed 50
+ hFOV 120
+ vfov 45
+ snd glider
+} \ No newline at end of file
diff --git a/base/ext_data/npcs/Gran.npc b/base/ext_data/npcs/Gran.npc
new file mode 100644
index 0000000..52ca56c
--- /dev/null
+++ b/base/ext_data/npcs/Gran.npc
@@ -0,0 +1,125 @@
+Gran
+{
+ playerModel gran
+ customSkin sp
+ customRGBA random1
+ weapon WP_THERMAL
+ weapon WP_MELEE
+ reactions 3
+ aim 1
+ move 3
+ aggression 3
+ evasion 1
+ intelligence 5
+ rank crewman
+ health 30
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+ class CLASS_GRAN
+ snd gran1
+ sndcombat gran1
+ sndextra gran1
+ yawspeed 90
+ walkSpeed 55
+ runSpeed 200
+ dismemberProbHead 0
+ dismemberProbArms 10
+ dismemberProbLegs 1
+ dismemberProbHands 20
+ dismemberProbWaist 0
+}
+
+Gran2
+{
+ playerModel gran
+ customSkin sp
+ customRGBA random1
+ weapon WP_THERMAL
+ weapon WP_MELEE
+ reactions 3
+ aim 1
+ move 3
+ aggression 3
+ evasion 1
+ intelligence 5
+ rank crewman
+ health 30
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+ class CLASS_GRAN
+ snd gran2
+ sndcombat gran2
+ sndextra gran2
+ yawspeed 90
+ walkSpeed 55
+ runSpeed 200
+ dismemberProbHead 0
+ dismemberProbArms 10
+ dismemberProbLegs 1
+ dismemberProbHands 20
+ dismemberProbWaist 0
+}
+
+GranBoxer
+{
+ playerModel gran
+ customSkin sp
+ customRGBA random1
+ weapon WP_MELEE
+ surfOff "l_leg_kneeguard r_leg_kneeguard"
+ reactions 3
+ aim 1
+ move 3
+ aggression 3
+ evasion 1
+ intelligence 5
+ health 50
+ rank crewman
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+// race klingon
+ class CLASS_GRAN
+ snd gran2
+ sndcombat gran2
+ sndextra gran2
+ yawspeed 90
+ walkSpeed 55
+ runSpeed 200
+ dismemberProbHead 0
+ dismemberProbArms 10
+ dismemberProbLegs 1
+ dismemberProbHands 20
+ dismemberProbWaist 0
+}
+
+GranShooter
+{
+ playerModel gran
+ customSkin sp
+ customRGBA random1
+ weapon WP_BLASTER
+ surfOff "l_leg_kneeguard"
+ reactions 3
+ aim 5
+ move 3
+ aggression 3
+ evasion 1
+ intelligence 5
+ health 40
+ rank crewman
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+// race klingon
+ class CLASS_GRAN
+ snd gran1
+ sndcombat gran1
+ sndextra gran1
+ yawspeed 90
+ walkSpeed 55
+ runSpeed 200
+ dismemberProbHead 0
+ dismemberProbArms 10
+ dismemberProbLegs 1
+ dismemberProbHands 20
+ dismemberProbWaist 0
+} \ No newline at end of file
diff --git a/base/ext_data/npcs/HazardTrooper.npc b/base/ext_data/npcs/HazardTrooper.npc
new file mode 100644
index 0000000..45a307a
--- /dev/null
+++ b/base/ext_data/npcs/HazardTrooper.npc
@@ -0,0 +1,92 @@
+hazardtrooper
+{
+ playerModel hazardtrooper
+ weapon WP_REPEATER
+ health 150
+ headPitchRangeDown 30
+ reactions 3
+ aim 1
+ move 3
+ aggression 3
+ evasion 1
+ intelligence 5
+ rank crewman
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+ class CLASS_HAZARD_TROOPER
+ height 80
+ crouchheight 48
+ snd st1
+ sndcombat st1
+ sndextra st1
+ yawspeed 100
+ walkSpeed 55
+ runSpeed 65
+ dismemberProbHead 0
+ dismemberProbArms 10
+ dismemberProbLegs 0
+ dismemberProbHands 20
+ dismemberProbWaist 0
+}
+
+hazardtrooperconcussion
+{
+ playerModel hazardtrooper
+ weapon WP_CONCUSSION
+ health 150
+ headPitchRangeDown 30
+ reactions 3
+ aim 1
+ move 3
+ aggression 3
+ evasion 1
+ intelligence 5
+ rank crewman
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+ class CLASS_HAZARD_TROOPER
+ height 80
+ crouchheight 48
+ snd st1
+ sndcombat st1
+ sndextra st1
+ yawspeed 100
+ walkSpeed 55
+ runSpeed 65
+ dismemberProbHead 0
+ dismemberProbArms 10
+ dismemberProbLegs 0
+ dismemberProbHands 20
+ dismemberProbWaist 0
+}
+
+hazardtrooperofficer
+{
+ playerModel hazardtrooper
+ weapon WP_FLECHETTE
+ health 150
+ headPitchRangeDown 30
+ reactions 4
+ aim 3
+ move 4
+ aggression 5
+ evasion 2
+ intelligence 5
+ rank lt
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+ class CLASS_HAZARD_TROOPER
+ height 64
+ crouchheight 48
+ snd stofficer1
+ sndcombat stofficer1
+ sndextra stofficer1
+ yawspeed 100
+ walkSpeed 55
+ runSpeed 65
+ dismemberProbHead 0
+ dismemberProbArms 10
+ dismemberProbLegs 0
+ dismemberProbHands 20
+ dismemberProbWaist 0
+}
diff --git a/base/ext_data/npcs/Howler.npc b/base/ext_data/npcs/Howler.npc
new file mode 100644
index 0000000..eb03c94
--- /dev/null
+++ b/base/ext_data/npcs/Howler.npc
@@ -0,0 +1,23 @@
+Howler
+{
+ playerModel howler
+ weapon WP_MELEE
+ height 32
+ crouchheight 32
+ reactions 4
+ aim 1
+ move 5
+ aggression 3
+ evasion 5
+ intelligence 2
+ playerTeam TEAM_FREE
+ enemyTeam TEAM_FREE
+ class CLASS_HOWLER
+ yawSpeed 60
+ runSpeed 300
+ walkSpeed 100
+ hFOV 120
+ vfov 45
+ snd howler
+ health 60
+} \ No newline at end of file
diff --git a/base/ext_data/npcs/ImpCommander.npc b/base/ext_data/npcs/ImpCommander.npc
new file mode 100644
index 0000000..585f3f0
--- /dev/null
+++ b/base/ext_data/npcs/ImpCommander.npc
@@ -0,0 +1,34 @@
+ImpCommander
+{
+ playerModel imperial
+ weapon WP_BLASTER
+ altFire 1
+ surfOff l_arm_key
+ customSkin commander
+ health 80
+ reactions 4
+ aim 4
+ move 4
+ aggression 4
+ evasion 4
+ intelligence 4
+ rank commander
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+// race klingon
+ class CLASS_IMPERIAL
+// snd io3
+// sndcombat io3
+// sndextra io3
+ snd io1
+ sndcombat io1
+ sndextra io1
+ yawspeed 110
+ walkSpeed 55
+ runSpeed 200
+ dismemberProbHead 0
+ dismemberProbArms 10
+ dismemberProbLegs 0
+ dismemberProbHands 20
+ dismemberProbWaist 0
+} \ No newline at end of file
diff --git a/base/ext_data/npcs/ImpOfficer.npc b/base/ext_data/npcs/ImpOfficer.npc
new file mode 100644
index 0000000..dd408f0
--- /dev/null
+++ b/base/ext_data/npcs/ImpOfficer.npc
@@ -0,0 +1,30 @@
+ImpOfficer
+{
+ playerModel imperial
+ weapon WP_BLASTER
+ surfOff l_arm_key
+ customSkin officer
+ health 40
+ reactions 3
+ aim 3
+ move 3
+ aggression 3
+ evasion 3
+ intelligence 3
+ rank ltcomm
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+// race klingon
+ class CLASS_IMPERIAL
+ snd io1
+ sndcombat io1
+ sndextra io1
+ yawspeed 110
+ walkSpeed 55
+ runSpeed 200
+ dismemberProbHead 0
+ dismemberProbArms 10
+ dismemberProbLegs 0
+ dismemberProbHands 20
+ dismemberProbWaist 0
+} \ No newline at end of file
diff --git a/base/ext_data/npcs/ImpWorker.npc b/base/ext_data/npcs/ImpWorker.npc
new file mode 100644
index 0000000..7b9ad15
--- /dev/null
+++ b/base/ext_data/npcs/ImpWorker.npc
@@ -0,0 +1,101 @@
+ImpWorker
+{
+ playerModel imperial_worker
+ weapon WP_BLASTER_PISTOL
+ headPitchRangeDown 30
+ health 30
+ reactions 3
+ aim 1
+ move 3
+ aggression 3
+ evasion 1
+ intelligence 5
+ rank crewman
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+// race imperial
+ class CLASS_IMPWORKER
+ height 64
+ crouchheight 48
+ walkSpeed 51
+ runSpeed 200
+ snd worker1
+ sndcombat worker1
+ sndextra worker1
+ yawspeed 90
+ walkSpeed 55
+ runSpeed 200
+ dismemberProbHead 0
+ dismemberProbArms 10
+ dismemberProbLegs 0
+ dismemberProbHands 20
+ dismemberProbWaist 0
+}
+
+ImpWorker2
+{
+ playerModel imperial_worker
+ weapon WP_BLASTER_PISTOL
+ headPitchRangeDown 30
+ health 30
+ reactions 3
+ aim 1
+ move 3
+ aggression 3
+ evasion 1
+ intelligence 5
+ rank crewman
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+// race imperial
+ class CLASS_IMPWORKER
+ height 64
+ crouchheight 48
+ walkSpeed 51
+ runSpeed 200
+ snd worker2
+ sndcombat worker2
+ sndextra worker2
+ yawspeed 90
+ walkSpeed 55
+ runSpeed 200
+ dismemberProbHead 0
+ dismemberProbArms 10
+ dismemberProbLegs 0
+ dismemberProbHands 20
+ dismemberProbWaist 0
+}
+
+ImpWorker3
+{
+ playerModel imperial_worker
+ weapon WP_BLASTER_PISTOL
+ headPitchRangeDown 30
+ health 30
+ reactions 3
+ aim 1
+ move 3
+ aggression 3
+ evasion 1
+ intelligence 5
+ rank crewman
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+// race imperial
+ class CLASS_IMPWORKER
+ height 64
+ crouchheight 48
+ walkSpeed 51
+ runSpeed 200
+ snd worker3
+ sndcombat worker3
+ sndextra worker3
+ yawspeed 90
+ walkSpeed 55
+ runSpeed 200
+ dismemberProbHead 0
+ dismemberProbArms 10
+ dismemberProbLegs 0
+ dismemberProbHands 20
+ dismemberProbWaist 0
+}
diff --git a/base/ext_data/npcs/Imperial.npc b/base/ext_data/npcs/Imperial.npc
new file mode 100644
index 0000000..2e1ea9e
--- /dev/null
+++ b/base/ext_data/npcs/Imperial.npc
@@ -0,0 +1,29 @@
+Imperial
+{
+ playerModel imperial
+ weapon WP_BLASTER_PISTOL
+ surfOff l_arm_key
+ health 20
+ reactions 2
+ aim 2
+ move 2
+ aggression 2
+ evasion 2
+ intelligence 2
+ rank lt
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+// race klingon
+ class CLASS_IMPERIAL
+ snd io2
+ sndcombat io2
+ sndextra io2
+ yawspeed 110
+ walkSpeed 55
+ runSpeed 200
+ dismemberProbHead 0
+ dismemberProbArms 10
+ dismemberProbLegs 0
+ dismemberProbHands 20
+ dismemberProbWaist 0
+} \ No newline at end of file
diff --git a/base/ext_data/npcs/Jan.npc b/base/ext_data/npcs/Jan.npc
new file mode 100644
index 0000000..ceb7499
--- /dev/null
+++ b/base/ext_data/npcs/Jan.npc
@@ -0,0 +1,30 @@
+Jan
+{
+ playerModel jan
+ weapon WP_BLASTER
+ altFire 1
+ rank lt
+ reactions 3
+ aim 5
+ move 3
+ aggression 3
+ evasion 3
+ intelligence 3
+ playerTeam TEAM_PLAYER
+ enemyTeam TEAM_ENEMY
+ class CLASS_JAN
+ sex female
+ snd jan
+ sndcombat jan
+ sndextra jan
+ yawSpeed 140
+ walkSpeed 55
+ runSpeed 200
+// race human
+ snd jan
+ dismemberProbHead 0
+ dismemberProbArms 0
+ dismemberProbHands 1
+ dismemberProbLegs 0
+ dismemberProbWaist 0
+} \ No newline at end of file
diff --git a/base/ext_data/npcs/Jedi.npc b/base/ext_data/npcs/Jedi.npc
new file mode 100644
index 0000000..41a62dc
--- /dev/null
+++ b/base/ext_data/npcs/Jedi.npc
@@ -0,0 +1,102 @@
+Jedi
+{
+ playerModel jedi
+ saber single_2
+ saberColor yellow
+ weapon WP_SABER
+ saberStyle 1
+ saberStyle 3
+ saberStyle 2
+ FP_HEAL 1
+ FP_LEVITATION 2
+ FP_SPEED 2
+ FP_PUSH 2
+ FP_PULL 1
+ FP_TELEPATHY 1
+ FP_GRIP 0
+ FP_LIGHTNING 0
+ FP_RAGE 0
+ FP_PROTECT 1
+ FP_ABSORB 1
+ FP_DRAIN 0
+ FP_SEE 1
+ FP_SABERTHROW 2
+ FP_SABER_DEFENSE 3
+ FP_SABER_OFFENSE 3
+ forceRegenRate 150
+ forcePowerMax 90
+ rank lt
+ reactions 3
+ aim 3
+ move 3
+ aggression 3
+ evasion 2
+ intelligence 3
+ playerTeam TEAM_PLAYER
+ enemyTeam TEAM_ENEMY
+ class CLASS_JEDI
+ yawSpeed 140
+ walkSpeed 55
+ runSpeed 200
+ snd jedi1
+ sndcombat jedi1
+ sndjedi jedi1
+ health 200
+ dismemberProbHead 0
+ dismemberProbArms 5
+ dismemberProbLegs 0
+ dismemberProbHands 10
+ dismemberProbWaist 0
+}
+
+Jedi2
+{
+ playerModel jedi
+ saber single_7
+ saberColor orange
+ weapon WP_SABER
+ saberStyle 1
+ saberStyle 2
+ saberStyle 3
+ FP_HEAL 1
+ FP_LEVITATION 2
+ FP_SPEED 2
+ FP_PUSH 2
+ FP_PULL 1
+ FP_TELEPATHY 1
+ FP_GRIP 0
+ FP_LIGHTNING 0
+ FP_RAGE 0
+ FP_PROTECT 1
+ FP_ABSORB 1
+ FP_DRAIN 0
+ FP_SEE 1
+ FP_SABERTHROW 2
+ FP_SABER_DEFENSE 3
+ FP_SABER_OFFENSE 3
+ forceRegenRate 200
+ forcePowerMax 75
+ rank lt
+ customSkin j2
+ reactions 3
+ aim 3
+ move 3
+ aggression 3
+ evasion 2
+ intelligence 3
+ playerTeam TEAM_PLAYER
+ enemyTeam TEAM_ENEMY
+ class CLASS_JEDI
+ yawSpeed 140
+ walkSpeed 55
+ runSpeed 200
+ snd jedi2
+ sndcombat jedi2
+ sndjedi jedi2
+ health 200
+ dismemberProbHead 0
+ dismemberProbArms 5
+ dismemberProbLegs 0
+ dismemberProbHands 10
+ dismemberProbWaist 0
+} \ No newline at end of file
diff --git a/base/ext_data/npcs/JediF.npc b/base/ext_data/npcs/JediF.npc
new file mode 100644
index 0000000..673b974
--- /dev/null
+++ b/base/ext_data/npcs/JediF.npc
@@ -0,0 +1,49 @@
+JediF
+{
+ playerModel jan
+ surfOff "torso_vest hips_chaps torso_computer head_goggles torso_comp hips_belt"
+ surfOn "torso_augment hips_augment hips_torso"
+ saber dual_3
+ saberColor random
+ weapon WP_SABER
+ saberStyle 7
+ FP_HEAL 1
+ FP_LEVITATION 2
+ FP_SPEED 2
+ FP_PUSH 2
+ FP_PULL 1
+ FP_TELEPATHY 1
+ FP_GRIP 0
+ FP_LIGHTNING 0
+ FP_RAGE 0
+ FP_PROTECT 1
+ FP_ABSORB 1
+ FP_DRAIN 0
+ FP_SEE 2
+ FP_SABERTHROW 2
+ FP_SABER_DEFENSE 3
+ FP_SABER_OFFENSE 3
+ rank lt
+ reactions 3
+ aim 3
+ move 3
+ aggression 3
+ evasion 2
+ intelligence 3
+ playerTeam TEAM_PLAYER
+ enemyTeam TEAM_ENEMY
+ class CLASS_JEDI
+ yawSpeed 140
+ walkSpeed 55
+ runSpeed 200
+ sex female
+ snd jan
+ sndcombat jan
+ sndjedi jan
+ health 200
+ dismemberProbHead 0
+ dismemberProbArms 5
+ dismemberProbLegs 0
+ dismemberProbHands 10
+ dismemberProbWaist 0
+} \ No newline at end of file
diff --git a/base/ext_data/npcs/JediMaster.npc b/base/ext_data/npcs/JediMaster.npc
new file mode 100644
index 0000000..10dabd7
--- /dev/null
+++ b/base/ext_data/npcs/JediMaster.npc
@@ -0,0 +1,47 @@
+JediMaster
+{
+ playerModel jedi
+ customSkin master
+ saber dual_3
+ saberColor green
+ weapon WP_SABER
+ saberStyle 7
+ FP_HEAL 2
+ FP_LEVITATION 3
+ FP_SPEED 3
+ FP_PUSH 3
+ FP_PULL 2
+ FP_TELEPATHY 2
+ FP_GRIP 0
+ FP_LIGHTNING 0
+ FP_RAGE 0
+ FP_PROTECT 2
+ FP_ABSORB 2
+ FP_DRAIN 0
+ FP_SEE 2
+ FP_SABERTHROW 3
+ FP_SABER_DEFENSE 3
+ FP_SABER_OFFENSE 3
+ rank commander
+ reactions 5
+ aim 5
+ move 5
+ aggression 5
+ evasion 5
+ intelligence 5
+ playerTeam TEAM_PLAYER
+ enemyTeam TEAM_ENEMY
+ class CLASS_JEDI
+ yawSpeed 140
+ walkSpeed 55
+ runSpeed 200
+ snd jedi2
+ sndcombat jedi2
+ sndjedi jedi2
+ health 400
+ dismemberProbHead 0
+ dismemberProbArms 5
+ dismemberProbLegs 0
+ dismemberProbHands 10
+ dismemberProbWaist 0
+} \ No newline at end of file
diff --git a/base/ext_data/npcs/JediTrainer.npc b/base/ext_data/npcs/JediTrainer.npc
new file mode 100644
index 0000000..0fd02f6
--- /dev/null
+++ b/base/ext_data/npcs/JediTrainer.npc
@@ -0,0 +1,48 @@
+JediTrainer
+{
+ playerModel jeditrainer
+ saber jedi
+ saber2 jedi
+ saberColor purple
+ saber2Color purple
+ weapon WP_SABER
+ saberStyle 6
+ FP_HEAL 2
+ FP_LEVITATION 3
+ FP_SPEED 3
+ FP_PUSH 3
+ FP_PULL 2
+ FP_TELEPATHY 2
+ FP_GRIP 0
+ FP_LIGHTNING 0
+ FP_RAGE 0
+ FP_PROTECT 2
+ FP_ABSORB 2
+ FP_DRAIN 0
+ FP_SEE 2
+ FP_SABERTHROW 3
+ FP_SABER_DEFENSE 3
+ FP_SABER_OFFENSE 3
+ rank commander
+ reactions 5
+ aim 5
+ move 5
+ aggression 5
+ evasion 5
+ intelligence 5
+ playerTeam TEAM_PLAYER
+ enemyTeam TEAM_ENEMY
+ class CLASS_JEDI
+ yawSpeed 140
+ walkSpeed 55
+ runSpeed 200
+ snd jedi2
+ sndcombat jedi2
+ sndjedi jedi2
+ health 400
+ dismemberProbHead 0
+ dismemberProbArms 5
+ dismemberProbLegs 0
+ dismemberProbHands 10
+ dismemberProbWaist 0
+} \ No newline at end of file
diff --git a/base/ext_data/npcs/Kyle.npc b/base/ext_data/npcs/Kyle.npc
new file mode 100644
index 0000000..c522636
--- /dev/null
+++ b/base/ext_data/npcs/Kyle.npc
@@ -0,0 +1,91 @@
+Kyle
+{
+ playerModel kyle
+ saber kyle
+ rank commander
+ health 1000
+ weapon WP_BRYAR_PISTOL
+ weapon WP_SABER
+ saberStyle 1
+ saberStyle 3
+ saberStyle 2
+ FP_HEAL 3
+ FP_LEVITATION 3
+ FP_SPEED 3
+ FP_PUSH 3
+ FP_PULL 3
+ FP_TELEPATHY 3
+ FP_GRIP 3
+ FP_LIGHTNING 2
+ FP_SABERTHROW 3
+ FP_RAGE 0
+ FP_PROTECT 3
+ FP_ABSORB 3
+ FP_DRAIN 0
+ FP_SEE 3
+ FP_SABER_DEFENSE 3
+ FP_SABER_OFFENSE 3
+ forcePowerMax 200
+ reactions 4
+ aim 5
+ move 3
+ aggression 5
+ evasion 5
+ intelligence 5
+ playerTeam TEAM_PLAYER
+ class CLASS_KYLE
+ snd kyle
+ sndcombat kyle
+ sndjedi kyle
+ dismemberProbHead 0
+ dismemberProbArms 0
+ dismemberProbHands 0
+ dismemberProbLegs 0
+ dismemberProbWaist 0
+}
+
+Kyle_boss
+{
+ playerModel kyle
+ saber kyle_boss
+ rank captain
+ health 300
+ weapon WP_SABER
+ saberStyle 1
+ saberStyle 2
+ saberStyle 3
+ FP_HEAL 3
+ FP_LEVITATION 3
+ FP_SPEED 3
+ FP_PUSH 3
+ FP_PULL 3
+ FP_TELEPATHY 3
+ FP_GRIP 3
+ FP_LIGHTNING 0
+// FP_SABERTHROW 3
+ FP_SABERTHROW 0
+ FP_RAGE 0
+ FP_PROTECT 3
+ FP_ABSORB 3
+ FP_DRAIN 0
+ FP_SEE 3
+ FP_SABER_DEFENSE 3
+ FP_SABER_OFFENSE 3
+ reactions 4
+ aim 5
+ move 3
+ aggression 5
+ evasion 5
+ intelligence 5
+ playerTeam TEAM_PLAYER
+ class CLASS_KYLE
+ snd kyle_boss
+ sndcombat kyle_boss
+ sndjedi kyle_boss
+ dismemberProbHead 0
+ dismemberProbArms 0
+ dismemberProbHands 0
+ dismemberProbLegs 0
+ dismemberProbWaist 0
+}
+
diff --git a/base/ext_data/npcs/Lando.npc b/base/ext_data/npcs/Lando.npc
new file mode 100644
index 0000000..360aa72
--- /dev/null
+++ b/base/ext_data/npcs/Lando.npc
@@ -0,0 +1,62 @@
+Lando
+{
+ playerModel lando
+ weapon WP_BLASTER
+ rank captain
+ altFire 1
+ snd lando
+ reactions 3
+ aim 1
+ move 3
+ aggression 3
+ evasion 1
+ intelligence 5
+ rank crewman
+ playerTeam TEAM_PLAYER
+ enemyTeam TEAM_ENEMY
+// race human
+ class CLASS_LANDO
+ snd lando
+ sndcombat lando
+ sndextra lando
+ sndjedi lando
+ walkSpeed 55
+ runSpeed 200
+ yawspeed 120
+ dismemberProbHead 0
+ dismemberProbArms 0
+ dismemberProbHands 0
+ dismemberProbLegs 0
+ dismemberProbWaist 0
+}
+
+Lando_cin
+{
+ playerModel lando
+ rank captain
+ altFire 1
+ snd lando
+ reactions 3
+ aim 1
+ move 3
+ aggression 3
+ evasion 1
+ intelligence 5
+ rank crewman
+ playerTeam TEAM_PLAYER
+ enemyTeam TEAM_ENEMY
+// race human
+ class CLASS_LANDO
+ snd lando
+ sndcombat lando
+ sndextra lando
+ sndjedi lando
+ walkSpeed 52
+ runSpeed 200
+ yawspeed 120
+ dismemberProbHead 0
+ dismemberProbArms 0
+ dismemberProbHands 0
+ dismemberProbLegs 0
+ dismemberProbWaist 0
+}
diff --git a/base/ext_data/npcs/Luke.npc b/base/ext_data/npcs/Luke.npc
new file mode 100644
index 0000000..b6c1176
--- /dev/null
+++ b/base/ext_data/npcs/Luke.npc
@@ -0,0 +1,49 @@
+Luke
+{
+ playerModel luke
+ saber luke
+ weapon WP_SABER
+ saberStyle 1
+ saberStyle 3
+ saberStyle 2
+ FP_HEAL 3
+ FP_LEVITATION 3
+ FP_SPEED 3
+ FP_PUSH 3
+ FP_PULL 3
+ FP_TELEPATHY 3
+ FP_GRIP 0
+ FP_LIGHTNING 0
+ FP_SABERTHROW 3
+ FP_RAGE 0
+ FP_PROTECT 3
+ FP_ABSORB 3
+ FP_DRAIN 0
+ FP_SEE 3
+ FP_SABER_DEFENSE 3
+ FP_SABER_OFFENSE 3
+ forcePowerMax 200
+ rank captain
+ reactions 3
+ aim 3
+ move 3
+ aggression 3
+ evasion 5
+ intelligence 3
+ playerTeam TEAM_PLAYER
+ enemyTeam TEAM_ENEMY
+ class CLASS_LUKE
+ yawSpeed 140
+ walkSpeed 55
+ runSpeed 200
+// race human
+ snd luke
+ sndcombat luke
+ sndjedi luke
+ health 200
+ dismemberProbHead 0
+ dismemberProbArms 0
+ dismemberProbLegs 0
+ dismemberProbHands 0
+ dismemberProbWaist 0
+} \ No newline at end of file
diff --git a/base/ext_data/npcs/Merchant.npc b/base/ext_data/npcs/Merchant.npc
new file mode 100644
index 0000000..ec2a7f5
--- /dev/null
+++ b/base/ext_data/npcs/Merchant.npc
@@ -0,0 +1,27 @@
+Merchant
+{
+ playerModel prisoner
+ weapon WP_NONE
+ customSkin merchant
+ reactions 3
+ aim 1
+ move 3
+ aggression 3
+ evasion 1
+ intelligence 5
+ rank crewman
+ playerTeam TEAM_PLAYER
+ enemyTeam TEAM_ENEMY
+ class CLASS_PRISONER
+ snd prisoner2
+ sndcombat prisoner2
+ sndextra prisoner2
+ walkSpeed 55
+ runSpeed 200
+ yawspeed 110
+ dismemberProbHead 0
+ dismemberProbArms 5
+ dismemberProbLegs 0
+ dismemberProbHands 10
+ dismemberProbWaist 0
+} \ No newline at end of file
diff --git a/base/ext_data/npcs/Minemonster.npc b/base/ext_data/npcs/Minemonster.npc
new file mode 100644
index 0000000..6782dfe
--- /dev/null
+++ b/base/ext_data/npcs/Minemonster.npc
@@ -0,0 +1,24 @@
+Minemonster
+{
+ playerModel minemonster
+ weapon WP_MELEE
+ reactions 3
+ aim 1
+ move 3
+ aggression 3
+ evasion 1
+ intelligence 5
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+ class CLASS_MINEMONSTER
+ snd mine
+ yawSpeed 160
+ runSpeed 210
+ walkSpeed 50
+ hFOV 120
+ vfov 45
+ height 30
+ width 9
+ snd mine
+ health 40
+} \ No newline at end of file
diff --git a/base/ext_data/npcs/MonMothma.npc b/base/ext_data/npcs/MonMothma.npc
new file mode 100644
index 0000000..a8ab731
--- /dev/null
+++ b/base/ext_data/npcs/MonMothma.npc
@@ -0,0 +1,25 @@
+MonMothma
+{
+ playerModel monmothma
+ weapon WP_NONE
+ snd monmothma
+ reactions 3
+ aim 1
+ move 3
+ aggression 3
+ evasion 1
+ intelligence 5
+ rank crewman
+ playerTeam TEAM_PLAYER
+ enemyTeam TEAM_ENEMY
+// race human
+ class CLASS_MONMOTHMA
+ walkSpeed 55
+ runSpeed 200
+ yawspeed 90
+ dismemberProbHead 0
+ dismemberProbArms 0
+ dismemberProbLegs 0
+ dismemberProbHands 0
+ dismemberProbWaist 0
+} \ No newline at end of file
diff --git a/base/ext_data/npcs/MorganKatarn.npc b/base/ext_data/npcs/MorganKatarn.npc
new file mode 100644
index 0000000..13e025b
--- /dev/null
+++ b/base/ext_data/npcs/MorganKatarn.npc
@@ -0,0 +1,25 @@
+MorganKatarn
+{
+ playerModel morgan
+ weapon WP_NONE
+ snd morgan
+ reactions 3
+ aim 1
+ move 3
+ aggression 3
+ evasion 1
+ intelligence 5
+ rank crewman
+ playerTeam TEAM_NEUTRAL
+ enemyTeam TEAM_NEUTRAL
+// race human
+ class CLASS_MORGAN
+ walkSpeed 55
+ runSpeed 200
+ yawspeed 90
+ dismemberProbHead 0
+ dismemberProbArms 0
+ dismemberProbLegs 0
+ dismemberProbHands 0
+ dismemberProbWaist 0
+} \ No newline at end of file
diff --git a/base/ext_data/npcs/Noghri.npc b/base/ext_data/npcs/Noghri.npc
new file mode 100644
index 0000000..5306e84
--- /dev/null
+++ b/base/ext_data/npcs/Noghri.npc
@@ -0,0 +1,27 @@
+Noghri
+{
+ playerModel noghri
+ weapon WP_NOGHRI_STICK
+ reactions 4
+ aim 2
+ move 5
+ aggression 3
+ evasion 5
+ intelligence 3
+ rank crewman
+ health 100
+ playerTeam TEAM_FREE
+ enemyTeam TEAM_FREE
+ class CLASS_NOGHRI
+ snd noghri1
+ sndcombat noghri1
+ sndextra noghri1
+ yawspeed 90
+ walkSpeed 55
+ runSpeed 200
+ dismemberProbHead 0
+ dismemberProbArms 10
+ dismemberProbLegs 1
+ dismemberProbHands 20
+ dismemberProbWaist 0
+} \ No newline at end of file
diff --git a/base/ext_data/npcs/Prisoner.npc b/base/ext_data/npcs/Prisoner.npc
new file mode 100644
index 0000000..1ff30d6
--- /dev/null
+++ b/base/ext_data/npcs/Prisoner.npc
@@ -0,0 +1,54 @@
+Prisoner
+{
+ playerModel prisoner
+ weapon WP_NONE
+ reactions 3
+ aim 1
+ move 3
+ aggression 3
+ evasion 1
+ intelligence 5
+ rank crewman
+ playerTeam TEAM_PLAYER
+ enemyTeam TEAM_ENEMY
+ class CLASS_PRISONER
+ snd prisoner1
+ sndcombat prisoner1
+ sndextra prisoner1
+ walkSpeed 55
+ runSpeed 200
+ yawspeed 110
+ dismemberProbHead 0
+ dismemberProbArms 5
+ dismemberProbLegs 0
+ dismemberProbHands 10
+ dismemberProbWaist 0
+}
+
+Prisoner2
+{
+ playerModel prisoner
+ weapon WP_NONE
+ customSkin prisoner2
+ reactions 3
+ aim 1
+ move 3
+ aggression 3
+ evasion 1
+ intelligence 5
+ rank crewman
+ playerTeam TEAM_PLAYER
+ enemyTeam TEAM_ENEMY
+ class CLASS_PRISONER
+ snd prisoner2
+ sndcombat prisoner2
+ sndextra prisoner2
+ walkSpeed 55
+ runSpeed 200
+ yawspeed 110
+ dismemberProbHead 0
+ dismemberProbArms 5
+ dismemberProbLegs 0
+ dismemberProbHands 10
+ dismemberProbWaist 0
+} \ No newline at end of file
diff --git a/base/ext_data/npcs/Ragnos.npc b/base/ext_data/npcs/Ragnos.npc
new file mode 100644
index 0000000..16709ca
--- /dev/null
+++ b/base/ext_data/npcs/Ragnos.npc
@@ -0,0 +1,20 @@
+Ragnos
+{
+ playerModel marka_ragnos
+ weapon WP_NONE
+ rank captain
+ snd ragnos
+ reactions 5
+ aim 5
+ move 5
+ aggression 5
+ evasion 5
+ intelligence 5
+ rank captain
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+ class CLASS_GRAN
+ yawspeed 90
+ walkSpeed 55
+ runSpeed 200
+} \ No newline at end of file
diff --git a/base/ext_data/npcs/Rax.npc b/base/ext_data/npcs/Rax.npc
new file mode 100644
index 0000000..b6d4231
--- /dev/null
+++ b/base/ext_data/npcs/Rax.npc
@@ -0,0 +1,25 @@
+Rax
+{
+ playerModel rax_joris
+ weapon WP_CONCUSSION
+ altFire 1
+ rank commander
+ snd rax
+ sndcombat rax
+ sndextra rax
+ reactions 3
+ aim 1
+ move 3
+ aggression 3
+ evasion 1
+ intelligence 4
+ rank captain
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+ class CLASS_IMPERIAL
+ yawspeed 90
+ walkSpeed 55
+ runSpeed 200
+ health 300
+ visrange 3000
+} \ No newline at end of file
diff --git a/base/ext_data/npcs/Rebel.npc b/base/ext_data/npcs/Rebel.npc
new file mode 100644
index 0000000..3ecc94a
--- /dev/null
+++ b/base/ext_data/npcs/Rebel.npc
@@ -0,0 +1,61 @@
+Rebel
+{
+ playerModel rebel
+ weapon WP_BLASTER
+ reactions 3
+ aim 1
+ move 3
+ aggression 3
+ evasion 1
+ intelligence 5
+ rank crewman
+ playerTeam TEAM_PLAYER
+ enemyTeam TEAM_ENEMY
+// race human
+ class CLASS_REBEL
+// snd rebel1
+// sndcombat rebel1
+// sndextra rebel1
+ snd rebel_pilot1
+ sndcombat rebel_pilot1
+ sndextra rebel_pilot1
+ yawspeed 120
+ walkSpeed 55
+ runSpeed 200
+ dismemberProbHead 0
+ dismemberProbArms 10
+ dismemberProbLegs 0
+ dismemberProbHands 20
+ dismemberProbWaist 0
+}
+
+Rebel2
+{
+ playerModel rebel
+ weapon WP_BLASTER
+ reactions 3
+ aim 1
+ move 3
+ aggression 3
+ evasion 1
+ intelligence 5
+ rank crewman
+ playerTeam TEAM_PLAYER
+ enemyTeam TEAM_ENEMY
+// race human
+ class CLASS_REBEL
+// snd rebel2
+// sndcombat rebel2
+// sndextra rebel2
+ snd rebel_pilot1
+ sndcombat rebel_pilot1
+ sndextra rebel_pilot1
+ yawspeed 120
+ walkSpeed 55
+ runSpeed 200
+ dismemberProbHead 0
+ dismemberProbArms 10
+ dismemberProbLegs 0
+ dismemberProbHands 20
+ dismemberProbWaist 0
+} \ No newline at end of file
diff --git a/base/ext_data/npcs/Rebel2.npc b/base/ext_data/npcs/Rebel2.npc
new file mode 100644
index 0000000..c163ffa
--- /dev/null
+++ b/base/ext_data/npcs/Rebel2.npc
@@ -0,0 +1,27 @@
+Rebel2
+{
+ playerModel rebel
+ weapon WP_BLASTER
+ reactions 3
+ aim 1
+ move 3
+ aggression 3
+ evasion 1
+ intelligence 5
+ rank crewman
+ playerTeam TEAM_PLAYER
+ enemyTeam TEAM_ENEMY
+// race human
+ class CLASS_REBEL
+ snd rebel_pilot1
+ sndcombat rebel_pilot1
+ sndextra rebel_pilot1
+ yawspeed 120
+ walkSpeed 55
+ runSpeed 200
+ dismemberProbHead 0
+ dismemberProbArms 10
+ dismemberProbLegs 0
+ dismemberProbHands 20
+ dismemberProbWaist 0
+} \ No newline at end of file
diff --git a/base/ext_data/npcs/Reborn.npc b/base/ext_data/npcs/Reborn.npc
new file mode 100644
index 0000000..b29fc1f
--- /dev/null
+++ b/base/ext_data/npcs/Reborn.npc
@@ -0,0 +1,50 @@
+Reborn
+{
+ playerModel reborn
+ saber reborn
+ weapon WP_SABER
+ saberStyle 1
+ FP_HEAL 0
+ FP_LEVITATION 1
+ FP_SPEED 1
+ FP_PUSH 0
+ FP_PULL 0
+ FP_TELEPATHY 0
+ FP_GRIP 0
+ FP_LIGHTNING 0
+ FP_RAGE 0
+ FP_PROTECT 0
+ FP_ABSORB 0
+ FP_DRAIN 0
+ FP_SEE 0
+ FP_SABERTHROW 0
+ FP_SABER_DEFENSE 1
+ FP_SABER_OFFENSE 1
+ forcePowerMax 50
+ forceRegenRate 200
+ reactions 1
+ aim 1
+ move 1
+ aggression 1
+ evasion 1
+ intelligence 1
+ hfov 120
+ vfov 120
+ scale 94
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+// race human
+ class CLASS_REBORN
+ snd reborn1
+ sndcombat reborn1
+ sndjedi reborn1
+ yawSpeed 60
+ walkSpeed 45
+ runSpeed 180
+ health 40
+ dismemberProbHead 0
+ dismemberProbArms 20
+ dismemberProbLegs 0
+ dismemberProbHands 30
+ dismemberProbWaist 0
+} \ No newline at end of file
diff --git a/base/ext_data/npcs/RebornAcrobat.npc b/base/ext_data/npcs/RebornAcrobat.npc
new file mode 100644
index 0000000..1f82848
--- /dev/null
+++ b/base/ext_data/npcs/RebornAcrobat.npc
@@ -0,0 +1,51 @@
+RebornAcrobat
+{
+ playerModel reborn
+ customSkin acrobat
+ saber reborn
+ saberColor red
+ weapon WP_SABER
+ saberStyle 2
+ FP_HEAL 0
+ FP_LEVITATION 2
+ FP_SPEED 1
+ FP_PUSH 0
+ FP_PULL 0
+ FP_TELEPATHY 0
+ FP_GRIP 0
+ FP_LIGHTNING 0
+ FP_RAGE 0
+ FP_PROTECT 0
+ FP_ABSORB 0
+ FP_DRAIN 0
+ FP_SEE 0
+ FP_SABERTHROW 0
+ FP_SABER_DEFENSE 1
+ FP_SABER_OFFENSE 1
+ rank crewman
+ reactions 3
+ aim 3
+ move 5
+ aggression 3
+ evasion 3
+ intelligence 5
+ hfov 160
+ vfov 160
+ scale 96
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+// race human
+ class CLASS_REBORN
+ snd reborn1
+ sndcombat reborn1
+ sndjedi reborn1
+ yawSpeed 140
+ walkSpeed 55
+ runSpeed 200
+ health 100
+ dismemberProbHead 0
+ dismemberProbArms 20
+ dismemberProbLegs 0
+ dismemberProbHands 30
+ dismemberProbWaist 0
+} \ No newline at end of file
diff --git a/base/ext_data/npcs/RebornBoss.npc b/base/ext_data/npcs/RebornBoss.npc
new file mode 100644
index 0000000..61488eb
--- /dev/null
+++ b/base/ext_data/npcs/RebornBoss.npc
@@ -0,0 +1,51 @@
+RebornBoss
+{
+ playerModel reborn
+ customSkin boss
+ saber shadowtrooper
+ weapon WP_SABER
+ saberStyle 1
+ saberStyle 2
+ saberStyle 3
+ FP_HEAL 0
+ FP_LEVITATION 2
+ FP_SPEED 2
+ FP_PUSH 2
+ FP_PULL 1
+ FP_TELEPATHY 0
+ FP_GRIP 2
+ FP_LIGHTNING 0
+ FP_RAGE 1
+ FP_PROTECT 0
+ FP_ABSORB 0
+ FP_DRAIN 1
+ FP_SEE 1
+ FP_SABERTHROW 2
+ FP_SABER_DEFENSE 3
+ FP_SABER_OFFENSE 3
+ rank lt
+ reactions 3
+ aim 3
+ move 5
+ aggression 4
+ evasion 3
+ intelligence 5
+ hfov 160
+ vfov 160
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+// race human
+ class CLASS_REBORN
+ snd reborn3
+ sndcombat reborn3
+ sndjedi reborn3
+ yawSpeed 140
+ walkSpeed 55
+ runSpeed 200
+ health 150
+ dismemberProbHead 0
+ dismemberProbArms 20
+ dismemberProbLegs 0
+ dismemberProbHands 30
+ dismemberProbWaist 0
+} \ No newline at end of file
diff --git a/base/ext_data/npcs/RebornChiss.npc b/base/ext_data/npcs/RebornChiss.npc
new file mode 100644
index 0000000..dbc1c2e
--- /dev/null
+++ b/base/ext_data/npcs/RebornChiss.npc
@@ -0,0 +1,54 @@
+RebornChiss
+{
+ playerModel chiss
+ saber reborn
+ saber2 sabersai
+ saber2color red
+ weapon WP_SABER
+ saberStyle 6
+ FP_HEAL 0
+ FP_LEVITATION 0
+ FP_SPEED 1
+ FP_PUSH 2
+ FP_PULL 0
+ FP_TELEPATHY 0
+ FP_GRIP 0
+ FP_LIGHTNING 0
+ FP_RAGE 1
+ FP_PROTECT 0
+ FP_ABSORB 0
+ FP_DRAIN 0
+ FP_SEE 1
+ FP_SABERTHROW 2
+ FP_SABER_DEFENSE 3
+ FP_SABER_OFFENSE 2
+ rank ltjg
+ reactions 3
+ aim 3
+ move 5
+ aggression 4
+ evasion 2
+ intelligence 5
+ hfov 160
+ vfov 160
+ scale 96
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+// race human
+ class CLASS_REBORN
+ snd bartender
+ sndcombat bartender
+ sndjedi bartender
+// snd reborn2
+// sndcombat reborn2
+// sndjedi reborn2
+ yawSpeed 140
+ walkSpeed 55
+ runSpeed 200
+ health 100
+ dismemberProbHead 0
+ dismemberProbArms 20
+ dismemberProbLegs 0
+ dismemberProbHands 30
+ dismemberProbWaist 0
+} \ No newline at end of file
diff --git a/base/ext_data/npcs/RebornFencer.npc b/base/ext_data/npcs/RebornFencer.npc
new file mode 100644
index 0000000..9d49e8e
--- /dev/null
+++ b/base/ext_data/npcs/RebornFencer.npc
@@ -0,0 +1,52 @@
+RebornFencer
+{
+ playerModel reborn
+ customSkin fencer
+ saber reborn
+ weapon WP_SABER
+ saberStyle 1
+ FP_HEAL 0
+ FP_LEVITATION 0
+ FP_SPEED 1
+ FP_PUSH 2
+ FP_PULL 0
+ FP_TELEPATHY 0
+ FP_GRIP 0
+ FP_LIGHTNING 0
+ FP_RAGE 1
+ FP_PROTECT 0
+ FP_ABSORB 0
+ FP_DRAIN 0
+ FP_SEE 0
+ FP_SABERTHROW 2
+ FP_SABER_DEFENSE 3
+ FP_SABER_OFFENSE 2
+ forcePowerMax 75
+ forceRegenRate 200
+ rank ltjg
+ reactions 3
+ aim 3
+ move 5
+ aggression 4
+ evasion 2
+ intelligence 5
+ hfov 160
+ vfov 160
+ scale 96
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+// race human
+ class CLASS_REBORN
+ snd reborn2
+ sndcombat reborn2
+ sndjedi reborn2
+ yawSpeed 140
+ walkSpeed 55
+ runSpeed 200
+ health 100
+ dismemberProbHead 0
+ dismemberProbArms 20
+ dismemberProbLegs 0
+ dismemberProbHands 30
+ dismemberProbWaist 0
+} \ No newline at end of file
diff --git a/base/ext_data/npcs/RebornForceUser.npc b/base/ext_data/npcs/RebornForceUser.npc
new file mode 100644
index 0000000..76859ce
--- /dev/null
+++ b/base/ext_data/npcs/RebornForceUser.npc
@@ -0,0 +1,51 @@
+RebornForceUser
+{
+ playerModel reborn
+ customSkin forceuser
+ saber reborn
+ weapon WP_SABER
+ saberStyle 2
+ FP_HEAL 0
+ FP_LEVITATION 1
+ FP_SPEED 1
+ FP_PUSH 2
+ FP_PULL 1
+ FP_TELEPATHY 0
+ FP_GRIP 0
+ FP_LIGHTNING 0
+ FP_RAGE 0
+ FP_PROTECT 0
+ FP_ABSORB 0
+ FP_DRAIN 0
+ FP_SEE 1
+ FP_SABERTHROW 0
+ FP_SABER_DEFENSE 1
+ FP_SABER_OFFENSE 1
+ forceRegenRate 150
+ rank ensign
+ reactions 3
+ aim 3
+ move 5
+ aggression 2
+ evasion 2
+ intelligence 5
+ hfov 160
+ vfov 160
+ scale 96
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+// race human
+ class CLASS_REBORN
+ snd reborn2
+ sndcombat reborn2
+ sndjedi reborn2
+ yawSpeed 80
+ walkSpeed 55
+ runSpeed 200
+ health 100
+ dismemberProbHead 0
+ dismemberProbArms 20
+ dismemberProbLegs 0
+ dismemberProbHands 30
+ dismemberProbWaist 0
+} \ No newline at end of file
diff --git a/base/ext_data/npcs/RebornRodian.npc b/base/ext_data/npcs/RebornRodian.npc
new file mode 100644
index 0000000..13e7127
--- /dev/null
+++ b/base/ext_data/npcs/RebornRodian.npc
@@ -0,0 +1,52 @@
+RebornRodian
+{
+ playerModel rodian
+ weapon WP_SABER
+ saber saberstar2
+ saber2 saberstar2
+ saberColor red
+ saber2Color red
+ saberStyle 6
+ FP_HEAL 0
+ FP_LEVITATION 3
+ FP_SPEED 2
+ FP_PUSH 1
+ FP_PULL 1
+ FP_TELEPATHY 0
+ FP_GRIP 0
+ FP_LIGHTNING 0
+ FP_RAGE 0
+ FP_PROTECT 0
+ FP_ABSORB 0
+ FP_DRAIN 0
+ FP_SEE 1
+ FP_SABERTHROW 2
+ FP_SABER_DEFENSE 3
+ FP_SABER_OFFENSE 2
+ rank lt
+ reactions 3
+ aim 3
+ move 5
+ aggression 3
+ evasion 3
+ intelligence 5
+ hfov 160
+ vfov 160
+ scale 96
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+// race human
+ class CLASS_REBORN
+ snd rodian1
+ sndcombat rodian1
+ sndjedi rodian1
+ yawSpeed 140
+ walkSpeed 55
+ runSpeed 200
+ health 100
+ dismemberProbHead 0
+ dismemberProbArms 20
+ dismemberProbLegs 0
+ dismemberProbHands 30
+ dismemberProbWaist 0
+} \ No newline at end of file
diff --git a/base/ext_data/npcs/RebornTrandoshan.npc b/base/ext_data/npcs/RebornTrandoshan.npc
new file mode 100644
index 0000000..cdc99e5
--- /dev/null
+++ b/base/ext_data/npcs/RebornTrandoshan.npc
@@ -0,0 +1,50 @@
+RebornTrandoshan
+{
+ playerModel trandoshan
+ weapon WP_SABER
+ saber sabertrident
+ saberColor red
+ saberColor2 red
+ saberColor3 red
+ saberColor4 red
+ FP_HEAL 0
+ FP_LEVITATION 2
+ FP_SPEED 0
+ FP_PUSH 2
+ FP_PULL 2
+ FP_TELEPATHY 0
+ FP_GRIP 1
+ FP_LIGHTNING 0
+ FP_RAGE 1
+ FP_PROTECT 0
+ FP_ABSORB 0
+ FP_DRAIN 1
+ FP_SEE 0
+ FP_SABERTHROW 0
+ FP_SABER_DEFENSE 3
+ FP_SABER_OFFENSE 2
+ rank lt
+ reactions 3
+ aim 3
+ move 5
+ aggression 4
+ evasion 3
+ intelligence 5
+ hfov 160
+ vfov 160
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+ class CLASS_REBORN
+ snd trandoshan1
+ sndcombat trandoshan1
+ sndjedi trandoshan1
+ yawSpeed 140
+ walkSpeed 55
+ runSpeed 200
+ health 150
+ dismemberProbHead 0
+ dismemberProbArms 20
+ dismemberProbLegs 0
+ dismemberProbHands 30
+ dismemberProbWaist 0
+} \ No newline at end of file
diff --git a/base/ext_data/npcs/RebornWeequay.npc b/base/ext_data/npcs/RebornWeequay.npc
new file mode 100644
index 0000000..cf4e5b4
--- /dev/null
+++ b/base/ext_data/npcs/RebornWeequay.npc
@@ -0,0 +1,49 @@
+RebornWeequay
+{
+ playerModel weequay
+ weapon WP_SABER
+ saber saberbroad
+ saberColor red
+ saberColor2 red
+ saberStyle 3
+ FP_HEAL 0
+ FP_LEVITATION 2
+ FP_SPEED 0
+ FP_PUSH 3
+ FP_PULL 3
+ FP_TELEPATHY 0
+ FP_GRIP 1
+ FP_LIGHTNING 0
+ FP_RAGE 2
+ FP_PROTECT 0
+ FP_ABSORB 0
+ FP_DRAIN 1
+ FP_SEE 0
+ FP_SABERTHROW 1
+ FP_SABER_DEFENSE 3
+ FP_SABER_OFFENSE 2
+ rank lt
+ reactions 3
+ aim 3
+ move 5
+ aggression 4
+ evasion 3
+ intelligence 5
+ hfov 160
+ vfov 160
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+ class CLASS_REBORN
+ snd weequay
+ sndcombat weequay
+ sndjedi weequay
+ yawSpeed 140
+ walkSpeed 55
+ runSpeed 200
+ health 150
+ dismemberProbHead 0
+ dismemberProbArms 20
+ dismemberProbLegs 0
+ dismemberProbHands 30
+ dismemberProbWaist 0
+} \ No newline at end of file
diff --git a/base/ext_data/npcs/Reborn_dual.npc b/base/ext_data/npcs/Reborn_dual.npc
new file mode 100644
index 0000000..95b5330
--- /dev/null
+++ b/base/ext_data/npcs/Reborn_dual.npc
@@ -0,0 +1,103 @@
+reborn_dual
+{
+ playerModel reborn_new
+ customSkin red
+ saber reborn
+ saber2 reborn
+ weapon WP_SABER
+ saberStyle 6
+ FP_HEAL 0
+ FP_LEVITATION 3
+ FP_SPEED 3
+ FP_PUSH 3
+ FP_PULL 2
+ FP_TELEPATHY 0
+ FP_GRIP 2
+ FP_LIGHTNING 1
+ FP_RAGE 2
+ FP_PROTECT 0
+ FP_ABSORB 0
+ FP_DRAIN 2
+ FP_SEE 2
+ FP_SABERTHROW 2
+ FP_SABER_DEFENSE 3
+ FP_SABER_OFFENSE 3
+ rank ltcomm
+ reactions 5
+ aim 5
+ move 5
+ aggression 5
+ evasion 5
+ intelligence 5
+ hfov 160
+ vfov 160
+ hfov 120
+ vfov 120
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+ class CLASS_REBORN
+ snd reborn2
+ sndcombat reborn2
+ sndjedi reborn2
+ yawSpeed 140
+ walkSpeed 55
+ runSpeed 200
+ health 300
+ dismemberProbHead 0
+ dismemberProbArms 20
+ dismemberProbLegs 0
+ dismemberProbHands 30
+ dismemberProbWaist 0
+}
+
+reborn_dual2
+{
+ playerModel reborn_new
+ customSkin blue
+ saber reborn
+ saber2 reborn
+ weapon WP_SABER
+ saberStyle 6
+ FP_HEAL 0
+ FP_LEVITATION 3
+ FP_SPEED 1
+ FP_PUSH 2
+ FP_PULL 1
+ FP_TELEPATHY 0
+ FP_GRIP 0
+ FP_LIGHTNING 0
+ FP_RAGE 1
+ FP_PROTECT 0
+ FP_ABSORB 0
+ FP_DRAIN 0
+ FP_SEE 0
+ FP_SABERTHROW 2
+ FP_SABER_DEFENSE 2
+ FP_SABER_OFFENSE 3
+ rank lt
+ reactions 5
+ aim 5
+ move 5
+ aggression 4
+ evasion 4
+ intelligence 5
+ hfov 160
+ vfov 160
+ hfov 120
+ vfov 120
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+ class CLASS_REBORN
+ snd reborn2
+ sndcombat reborn2
+ sndjedi reborn2
+ yawSpeed 140
+ walkSpeed 55
+ runSpeed 200
+ health 175
+ dismemberProbHead 0
+ dismemberProbArms 20
+ dismemberProbLegs 0
+ dismemberProbHands 30
+ dismemberProbWaist 0
+}
diff --git a/base/ext_data/npcs/Reborn_new.npc b/base/ext_data/npcs/Reborn_new.npc
new file mode 100644
index 0000000..901a6a3
--- /dev/null
+++ b/base/ext_data/npcs/Reborn_new.npc
@@ -0,0 +1,104 @@
+reborn_new
+{
+ playerModel reborn_new
+ saber reborn_new
+ weapon WP_SABER
+ saberStyle 1
+ saberStyle 3
+ saberStyle 2
+ FP_HEAL 0
+ FP_LEVITATION 3
+ FP_SPEED 3
+ FP_PUSH 3
+ FP_PULL 2
+ FP_TELEPATHY 0
+ FP_GRIP 3
+ FP_LIGHTNING 1
+ FP_RAGE 2
+ FP_PROTECT 0
+ FP_ABSORB 0
+ FP_DRAIN 2
+ FP_SEE 2
+ FP_SABERTHROW 2
+ FP_SABER_DEFENSE 3
+ FP_SABER_OFFENSE 3
+ rank ltcomm
+ reactions 5
+ aim 5
+ move 5
+ aggression 5
+ evasion 5
+ intelligence 5
+ hfov 160
+ vfov 160
+ hfov 120
+ vfov 120
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+ class CLASS_REBORN
+ snd reborn2
+ sndcombat reborn2
+ sndjedi reborn2
+ yawSpeed 140
+ walkSpeed 55
+ runSpeed 200
+ health 300
+ dismemberProbHead 0
+ dismemberProbArms 20
+ dismemberProbLegs 0
+ dismemberProbHands 30
+ dismemberProbWaist 0
+}
+
+reborn_new2
+{
+ playerModel reborn_new
+ customSkin blue
+ saber shadowtrooper
+ weapon WP_SABER
+ saberStyle 1
+ saberStyle 3
+ saberStyle 2
+ FP_HEAL 0
+ FP_LEVITATION 3
+ FP_SPEED 1
+ FP_PUSH 2
+ FP_PULL 1
+ FP_TELEPATHY 0
+ FP_GRIP 2
+ FP_LIGHTNING 0
+ FP_RAGE 1
+ FP_PROTECT 0
+ FP_ABSORB 0
+ FP_DRAIN 0
+ FP_SEE 0
+ FP_SABERTHROW 2
+ FP_SABER_DEFENSE 2
+ FP_SABER_OFFENSE 3
+ rank lt
+ reactions 5
+ aim 5
+ move 5
+ aggression 4
+ evasion 4
+ intelligence 5
+ hfov 160
+ vfov 160
+ hfov 120
+ vfov 120
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+ class CLASS_REBORN
+ snd reborn2
+ sndcombat reborn2
+ sndjedi reborn2
+ yawSpeed 140
+ walkSpeed 55
+ runSpeed 200
+ health 175
+ dismemberProbHead 0
+ dismemberProbArms 20
+ dismemberProbLegs 0
+ dismemberProbHands 30
+ dismemberProbWaist 0
+}
diff --git a/base/ext_data/npcs/Reborn_staff.npc b/base/ext_data/npcs/Reborn_staff.npc
new file mode 100644
index 0000000..4413232
--- /dev/null
+++ b/base/ext_data/npcs/Reborn_staff.npc
@@ -0,0 +1,103 @@
+reborn_staff
+{
+ playerModel reborn_new
+ customSkin red
+ saber dual_1
+ saberColor red
+ weapon WP_SABER
+ saberStyle 7
+ FP_HEAL 0
+ FP_LEVITATION 3
+ FP_SPEED 3
+ FP_PUSH 3
+ FP_PULL 2
+ FP_TELEPATHY 0
+ FP_GRIP 2
+ FP_LIGHTNING 1
+ FP_RAGE 2
+ FP_PROTECT 0
+ FP_ABSORB 0
+ FP_DRAIN 2
+ FP_SEE 2
+ FP_SABERTHROW 2
+ FP_SABER_DEFENSE 3
+ FP_SABER_OFFENSE 3
+ rank ltcomm
+ reactions 5
+ aim 5
+ move 5
+ aggression 5
+ evasion 5
+ intelligence 5
+ hfov 160
+ vfov 160
+ hfov 120
+ vfov 120
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+ class CLASS_REBORN
+ snd reborn1
+ sndcombat reborn1
+ sndjedi reborn1
+ yawSpeed 140
+ walkSpeed 55
+ runSpeed 200
+ health 300
+ dismemberProbHead 0
+ dismemberProbArms 20
+ dismemberProbLegs 0
+ dismemberProbHands 30
+ dismemberProbWaist 0
+}
+
+reborn_staff2
+{
+ playerModel reborn_new
+ customSkin blue
+ saber dual_1
+ saberColor red
+ weapon WP_SABER
+ saberStyle 7
+ FP_HEAL 0
+ FP_LEVITATION 3
+ FP_SPEED 1
+ FP_PUSH 2
+ FP_PULL 1
+ FP_TELEPATHY 0
+ FP_GRIP 0
+ FP_LIGHTNING 0
+ FP_RAGE 1
+ FP_PROTECT 0
+ FP_ABSORB 0
+ FP_DRAIN 0
+ FP_SEE 0
+ FP_SABERTHROW 2
+ FP_SABER_DEFENSE 2
+ FP_SABER_OFFENSE 3
+ rank lt
+ reactions 5
+ aim 5
+ move 5
+ aggression 5
+ evasion 4
+ intelligence 5
+ hfov 160
+ vfov 160
+ hfov 120
+ vfov 120
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+ class CLASS_REBORN
+ snd reborn1
+ sndcombat reborn1
+ sndjedi reborn1
+ yawSpeed 140
+ walkSpeed 55
+ runSpeed 200
+ health 175
+ dismemberProbHead 0
+ dismemberProbArms 20
+ dismemberProbLegs 0
+ dismemberProbHands 30
+ dismemberProbWaist 0
+}
diff --git a/base/ext_data/npcs/Reborn_twin.npc b/base/ext_data/npcs/Reborn_twin.npc
new file mode 100644
index 0000000..781110b
--- /dev/null
+++ b/base/ext_data/npcs/Reborn_twin.npc
@@ -0,0 +1,275 @@
+DKothos
+{
+ playerModel reborn_twin
+// customSkin ?
+ weapon WP_MELEE
+ health 500
+ FP_HEAL 0
+ FP_LEVITATION 3
+ FP_SPEED 2
+ FP_PUSH 3
+ FP_PULL 0
+ FP_TELEPATHY 0
+ FP_GRIP 2
+ FP_LIGHTNING 2
+ FP_RAGE 0
+ FP_PROTECT 2
+ FP_ABSORB 2
+ FP_DRAIN 2
+ FP_SEE 0
+ FP_SABERTHROW 0
+ FP_SABER_DEFENSE 0
+ FP_SABER_OFFENSE 0
+ forcePowerMax 200
+ forceRegenRate 50
+ forceRegenAmount 2
+ rank captain
+ reactions 5
+ aim 5
+ move 5
+ aggression 1
+ evasion 5
+ intelligence 5
+ hfov 160
+ vfov 160
+ hfov 120
+ vfov 120
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+ class CLASS_REBORN
+ snd kothos
+ sndcombat kothos
+ sndjedi kothos
+ yawSpeed 140
+ walkSpeed 55
+ runSpeed 200
+ dismemberProbHead 0
+ dismemberProbArms 20
+ dismemberProbLegs 0
+ dismemberProbHands 30
+ dismemberProbWaist 0
+}
+
+VKothos
+{
+ playerModel reborn_twin
+// customSkin ?
+ weapon WP_MELEE
+ health 500
+ FP_HEAL 0
+ FP_LEVITATION 3
+ FP_SPEED 2
+ FP_PUSH 3
+ FP_PULL 0
+ FP_TELEPATHY 0
+ FP_GRIP 2
+ FP_LIGHTNING 2
+ FP_RAGE 0
+ FP_PROTECT 2
+ FP_ABSORB 2
+ FP_DRAIN 2
+ FP_SEE 0
+ FP_SABERTHROW 0
+ FP_SABER_DEFENSE 0
+ FP_SABER_OFFENSE 0
+ forcePowerMax 200
+ forceRegenRate 50
+ forceRegenAmount 2
+ rank captain
+ reactions 5
+ aim 5
+ move 5
+ aggression 5
+ evasion 4
+ intelligence 5
+ hfov 160
+ vfov 160
+ hfov 120
+ vfov 120
+ scale 100
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+ class CLASS_REBORN
+ snd kothos
+ sndcombat kothos
+ sndjedi kothos
+ yawSpeed 140
+ walkSpeed 55
+ runSpeed 200
+ dismemberProbHead 0
+ dismemberProbArms 20
+ dismemberProbLegs 0
+ dismemberProbHands 30
+ dismemberProbWaist 0
+}
+
+RebornMaster
+{
+ playerModel reborn_twin
+ customSkin boss
+ saber rebornmaster
+ weapon WP_SABER
+ saberStyle 1
+ saberStyle 2
+ saberStyle 3
+ health 200
+ FP_HEAL 3
+ FP_LEVITATION 3
+ FP_SPEED 3
+ FP_PUSH 3
+ FP_PULL 3
+ FP_TELEPATHY 0
+ FP_GRIP 3
+ FP_LIGHTNING 3
+ FP_RAGE 3
+ FP_PROTECT 2
+ FP_ABSORB 2
+ FP_DRAIN 2
+ FP_SEE 0
+ FP_SABERTHROW 3
+ FP_SABER_DEFENSE 3
+ FP_SABER_OFFENSE 3
+ forcePowerMax 200
+ forceRegenRate 50
+ forceRegenAmount 2
+ rank captain
+ reactions 5
+ aim 5
+ move 5
+ aggression 5
+ evasion 5
+ intelligence 5
+ hfov 160
+ vfov 160
+ hfov 120
+ vfov 120
+ scale 100
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+ class CLASS_SHADOWTROOPER
+ snd reborn1
+ sndcombat reborn1
+ sndjedi reborn1
+ yawSpeed 140
+ walkSpeed 55
+ runSpeed 200
+ dismemberProbHead 0
+ dismemberProbArms 20
+ dismemberProbLegs 0
+ dismemberProbHands 30
+ dismemberProbWaist 0
+}
+
+RebornMasterDual
+{
+ playerModel reborn_twin
+ customSkin boss
+ saber shadowtrooper
+ saber2 shadowtrooper
+ weapon WP_SABER
+ saberStyle 6
+ health 200
+ FP_HEAL 3
+ FP_LEVITATION 3
+ FP_SPEED 3
+ FP_PUSH 3
+ FP_PULL 3
+ FP_TELEPATHY 0
+ FP_GRIP 3
+ FP_LIGHTNING 3
+ FP_RAGE 3
+ FP_PROTECT 2
+ FP_ABSORB 2
+ FP_DRAIN 2
+ FP_SEE 0
+ FP_SABERTHROW 3
+ FP_SABER_DEFENSE 3
+ FP_SABER_OFFENSE 3
+ forcePowerMax 200
+ forceRegenRate 50
+ forceRegenAmount 2
+ rank captain
+ reactions 5
+ aim 5
+ move 5
+ aggression 5
+ evasion 5
+ intelligence 5
+ hfov 160
+ vfov 160
+ hfov 120
+ vfov 120
+ scale 100
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+ class CLASS_SHADOWTROOPER
+ snd reborn2
+ sndcombat reborn2
+ sndjedi reborn2
+ yawSpeed 140
+ walkSpeed 55
+ runSpeed 200
+ dismemberProbHead 0
+ dismemberProbArms 20
+ dismemberProbLegs 0
+ dismemberProbHands 30
+ dismemberProbWaist 0
+}
+
+
+RebornMasterStaff
+{
+ playerModel reborn_twin
+ customSkin boss
+ saber dual_1
+ saberColor red
+ weapon WP_SABER
+ saberStyle 7
+ health 200
+ FP_HEAL 3
+ FP_LEVITATION 3
+ FP_SPEED 3
+ FP_PUSH 3
+ FP_PULL 3
+ FP_TELEPATHY 0
+ FP_GRIP 3
+ FP_LIGHTNING 3
+ FP_RAGE 3
+ FP_PROTECT 2
+ FP_ABSORB 2
+ FP_DRAIN 2
+ FP_SEE 0
+ FP_SABERTHROW 3
+ FP_SABER_DEFENSE 3
+ FP_SABER_OFFENSE 3
+ forcePowerMax 200
+ forceRegenRate 50
+ forceRegenAmount 2
+ rank captain
+ reactions 5
+ aim 5
+ move 5
+ aggression 5
+ evasion 5
+ intelligence 5
+ hfov 160
+ vfov 160
+ hfov 120
+ vfov 120
+ scale 100
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+ class CLASS_SHADOWTROOPER
+ snd reborn2
+ sndcombat reborn2
+ sndjedi reborn2
+ yawSpeed 140
+ walkSpeed 55
+ runSpeed 200
+ dismemberProbHead 0
+ dismemberProbArms 20
+ dismemberProbLegs 0
+ dismemberProbHands 30
+ dismemberProbWaist 0
+}
+
diff --git a/base/ext_data/npcs/Reelo.npc b/base/ext_data/npcs/Reelo.npc
new file mode 100644
index 0000000..f27c47d
--- /dev/null
+++ b/base/ext_data/npcs/Reelo.npc
@@ -0,0 +1,30 @@
+Reelo
+{
+ playerModel reelo
+ weapon WP_BLASTER
+ rank commander
+ altFire 1
+ snd reelo
+ reactions 3
+ aim 1
+ move 3
+ aggression 3
+ evasion 1
+ intelligence 5
+ rank crewman
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+// race klingon
+ class CLASS_REELO
+ snd reelo
+ sndcombat reelo
+ sndextra reelo
+ yawspeed 90
+ walkSpeed 55
+ runSpeed 200
+ dismemberProbHead 0
+ dismemberProbArms 0
+ dismemberProbHands 0
+ dismemberProbLegs 0
+ dismemberProbWaist 0
+} \ No newline at end of file
diff --git a/base/ext_data/npcs/RocketTrooper.npc b/base/ext_data/npcs/RocketTrooper.npc
new file mode 100644
index 0000000..8dad542
--- /dev/null
+++ b/base/ext_data/npcs/RocketTrooper.npc
@@ -0,0 +1,37 @@
+RocketTrooper
+{
+ playerModel stormtrooper
+// surfOn torso_pauldron
+// surfOff "torso_armor_neck_augment torso_body_neck_augment"
+ customSkin officer
+ weapon WP_ROCKET_LAUNCHER
+ health 60
+ headPitchRangeDown 30
+ reactions 5
+ aim 5
+ move 5
+ aggression 5
+ evasion 5
+ intelligence 5
+ rank ensign
+ scale 110
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+// race klingon
+ class CLASS_STORMTROOPER
+ height 68
+ crouchheight 52
+ walkSpeed 51
+ runSpeed 200
+ snd stofficer1
+ sndcombat stofficer1
+ sndextra stofficer1
+ yawspeed 100
+ walkSpeed 55
+ runSpeed 200
+ dismemberProbHead 0
+ dismemberProbArms 10
+ dismemberProbLegs 0
+ dismemberProbHands 20
+ dismemberProbWaist 0
+} \ No newline at end of file
diff --git a/base/ext_data/npcs/Rodian.npc b/base/ext_data/npcs/Rodian.npc
new file mode 100644
index 0000000..c20d435
--- /dev/null
+++ b/base/ext_data/npcs/Rodian.npc
@@ -0,0 +1,66 @@
+Rodian
+{
+ playerModel rodian
+ customSkin sp
+ customRGBA random1
+ weapon WP_DISRUPTOR
+ altFire 1
+ reactions 3
+ aim 1
+ move 3
+ aggression 3
+ evasion 1
+ intelligence 5
+ health 25
+ rank crewman
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+// race klingon
+ class CLASS_RODIAN
+ snd rodian1
+ sndcombat rodian1
+ sndextra rodian1
+ yawspeed 90
+ walkSpeed 55
+ runSpeed 200
+ visrange 8192
+ dismemberProbHead 0
+ dismemberProbArms 10
+ dismemberProbLegs 1
+ dismemberProbHands 20
+ dismemberProbWaist 0
+}
+
+Rodian2
+{
+ playerModel rodian
+ customSkin sp
+ customRGBA random1
+ weapon WP_BLASTER
+ altFire 1
+ surfOff "hips_belt torso_vest"
+ surfOn "torso_augment"
+ reactions 3
+ aim 1
+ move 3
+ aggression 3
+ evasion 1
+ intelligence 5
+ health 20
+ rank crewman
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+// race klingon
+ class CLASS_RODIAN
+ snd rodian2
+ sndcombat rodian2
+ sndextra rodian2
+ yawspeed 90
+ walkSpeed 55
+ runSpeed 200
+ dismemberProbHead 0
+ dismemberProbArms 10
+ dismemberProbLegs 1
+ dismemberProbHands 20
+ dismemberProbWaist 0
+} \ No newline at end of file
diff --git a/base/ext_data/npcs/STCommander.npc b/base/ext_data/npcs/STCommander.npc
new file mode 100644
index 0000000..788081a
--- /dev/null
+++ b/base/ext_data/npcs/STCommander.npc
@@ -0,0 +1,37 @@
+STCommander
+{
+ playerModel stormtrooper
+// surfOn torso_pauldron
+// surfOff "torso_armor_neck_augment torso_body_neck_augment"
+ customSkin officer
+ weapon WP_REPEATER
+ health 60
+ headPitchRangeDown 30
+ reactions 5
+ aim 5
+ move 5
+ aggression 5
+ evasion 5
+ intelligence 5
+ rank ensign
+ scale 105
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+// race klingon
+ class CLASS_STORMTROOPER
+ height 68
+ crouchheight 52
+ walkSpeed 51
+ runSpeed 200
+ snd stofficer1
+ sndcombat stofficer1
+ sndextra stofficer1
+ yawspeed 110
+ walkSpeed 55
+ runSpeed 200
+ dismemberProbHead 0
+ dismemberProbArms 10
+ dismemberProbLegs 0
+ dismemberProbHands 20
+ dismemberProbWaist 0
+} \ No newline at end of file
diff --git a/base/ext_data/npcs/STOfficer.npc b/base/ext_data/npcs/STOfficer.npc
new file mode 100644
index 0000000..822e5ae
--- /dev/null
+++ b/base/ext_data/npcs/STOfficer.npc
@@ -0,0 +1,74 @@
+STOfficer
+{
+ playerModel stormtrooper
+// surfOn torso_pauldron
+// surfOff "torso_armor_neck_augment torso_body_neck_augment"
+ customSkin officer
+ weapon WP_FLECHETTE
+ health 60
+ headPitchRangeDown 30
+ reactions 5
+ aim 5
+ move 5
+ aggression 5
+ evasion 5
+ intelligence 5
+ rank ensign
+ scale 105
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+ class CLASS_STORMTROOPER
+ height 68
+ crouchheight 52
+ walkSpeed 51
+ runSpeed 200
+ snd stofficer1
+ sndcombat stofficer1
+ sndextra stofficer1
+ yawspeed 90
+ walkSpeed 55
+ runSpeed 200
+ dismemberProbHead 0
+ dismemberProbArms 10
+ dismemberProbLegs 0
+ dismemberProbHands 20
+ dismemberProbWaist 0
+}
+
+STOfficerAlt
+{
+ playerModel stormtrooper
+// surfOn torso_pauldron
+// surfOff "torso_armor_neck_augment torso_body_neck_augment"
+ customSkin officer
+ weapon WP_FLECHETTE
+ altFire 1
+ health 60
+ headPitchRangeDown 30
+ reactions 5
+ aim 5
+ move 5
+ aggression 5
+ evasion 5
+ intelligence 5
+ rank ensign
+ scale 105
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+ class CLASS_STORMTROOPER
+ height 68
+ crouchheight 52
+ walkSpeed 51
+ runSpeed 200
+ snd stofficer1
+ sndcombat stofficer1
+ sndextra stofficer1
+ yawspeed 90
+ walkSpeed 55
+ runSpeed 200
+ dismemberProbHead 0
+ dismemberProbArms 10
+ dismemberProbLegs 0
+ dismemberProbHands 20
+ dismemberProbWaist 0
+} \ No newline at end of file
diff --git a/base/ext_data/npcs/STOfficerAlt.npc b/base/ext_data/npcs/STOfficerAlt.npc
new file mode 100644
index 0000000..6524cb4
--- /dev/null
+++ b/base/ext_data/npcs/STOfficerAlt.npc
@@ -0,0 +1,37 @@
+STOfficerAlt
+{
+ playerModel stormtrooper
+ weapon WP_FLECHETTE
+ altFire 1
+ surfOn torso_pauldron
+ surfOff "torso_armor_neck_augment torso_body_neck_augment"
+ health 60
+ headPitchRangeDown 30
+ reactions 5
+ aim 5
+ move 5
+ aggression 5
+ evasion 5
+ intelligence 5
+ rank ensign
+ scale 105
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+// race klingon
+ class CLASS_STORMTROOPER
+ height 68
+ crouchheight 52
+ walkSpeed 51
+ runSpeed 200
+ snd stofficer1
+ sndcombat stofficer1
+ sndextra stofficer1
+ yawspeed 90
+ walkSpeed 55
+ runSpeed 200
+ dismemberProbHead 0
+ dismemberProbArms 10
+ dismemberProbLegs 0
+ dismemberProbHands 20
+ dismemberProbWaist 0
+} \ No newline at end of file
diff --git a/base/ext_data/npcs/ShadowTrooper.npc b/base/ext_data/npcs/ShadowTrooper.npc
new file mode 100644
index 0000000..5c99019
--- /dev/null
+++ b/base/ext_data/npcs/ShadowTrooper.npc
@@ -0,0 +1,100 @@
+ShadowTrooper
+{
+ playerModel shadowtrooper
+ saber shadowtrooper
+ weapon WP_SABER
+ saberStyle 1
+ saberStyle 3
+ saberStyle 2
+ FP_HEAL 0
+ FP_LEVITATION 3
+ FP_SPEED 3
+ FP_PUSH 3
+ FP_PULL 2
+ FP_TELEPATHY 0
+ FP_GRIP 2
+ FP_LIGHTNING 1
+ FP_RAGE 2
+ FP_PROTECT 0
+ FP_ABSORB 0
+ FP_DRAIN 2
+ FP_SEE 2
+ FP_SABERTHROW 2
+ FP_SABER_DEFENSE 3
+ FP_SABER_OFFENSE 3
+ rank ltcomm
+ reactions 5
+ aim 5
+ move 5
+ aggression 5
+ evasion 4
+ intelligence 5
+ hfov 160
+ vfov 160
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+// race human
+ class CLASS_SHADOWTROOPER
+ snd shadow1
+ sndcombat shadow1
+ yawSpeed 140
+ walkSpeed 55
+ runSpeed 200
+ health 200
+ dismemberProbHead 0
+ dismemberProbArms 10
+ dismemberProbLegs 0
+ dismemberProbHands 20
+ dismemberProbWaist 0
+}
+
+ShadowTrooper2
+{
+ playerModel shadowtrooper
+ saber shadowtrooper
+ saberColor red
+ weapon WP_SABER
+ saberStyle 3
+ saberStyle 2
+ saberStyle 1
+ FP_HEAL 0
+ FP_LEVITATION 3
+ FP_SPEED 3
+ FP_PUSH 3
+ FP_PULL 2
+ FP_TELEPATHY 0
+ FP_GRIP 2
+ FP_LIGHTNING 1
+ FP_RAGE 2
+ FP_PROTECT 0
+ FP_ABSORB 0
+ FP_DRAIN 2
+ FP_SEE 2
+ FP_SABERTHROW 2
+ FP_SABER_DEFENSE 3
+ FP_SABER_OFFENSE 3
+ rank lt
+ reactions 5
+ aim 5
+ move 5
+ aggression 5
+ evasion 4
+ intelligence 5
+ hfov 160
+ vfov 160
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+// race human
+ class CLASS_SHADOWTROOPER
+ snd shadow2
+ sndcombat shadow2
+ yawSpeed 140
+ walkSpeed 55
+ runSpeed 200
+ health 200
+ dismemberProbHead 0
+ dismemberProbArms 10
+ dismemberProbLegs 0
+ dismemberProbHands 20
+ dismemberProbWaist 0
+}
diff --git a/base/ext_data/npcs/StormPilot.npc b/base/ext_data/npcs/StormPilot.npc
new file mode 100644
index 0000000..463abe7
--- /dev/null
+++ b/base/ext_data/npcs/StormPilot.npc
@@ -0,0 +1,35 @@
+StormPilot
+{
+ playerModel stormpilot
+ weapon WP_BLASTER_PISTOL
+ health 30
+ headPitchRangeDown 30
+ reactions 3
+ aim 5
+ move 3
+ aggression 3
+ evasion 1
+ intelligence 5
+ rank crewman
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+ class CLASS_STORMTROOPER
+ height 64
+ crouchheight 48
+ walkSpeed 51
+ runSpeed 200
+// snd stofficer1
+// sndcombat stofficer1
+// sndextra stofficer1
+ snd worker2
+ sndcombat worker2
+ sndextra worker2
+ yawspeed 80
+ walkSpeed 55
+ runSpeed 200
+ dismemberProbHead 0
+ dismemberProbArms 10
+ dismemberProbLegs 0
+ dismemberProbHands 20
+ dismemberProbWaist 0
+} \ No newline at end of file
diff --git a/base/ext_data/npcs/StormTrooper.npc b/base/ext_data/npcs/StormTrooper.npc
new file mode 100644
index 0000000..efa850d
--- /dev/null
+++ b/base/ext_data/npcs/StormTrooper.npc
@@ -0,0 +1,67 @@
+StormTrooper
+{
+ playerModel stormtrooper
+ weapon WP_BLASTER
+ health 30
+ headPitchRangeDown 30
+ reactions 3
+ aim 1
+ move 3
+ aggression 3
+ evasion 1
+ intelligence 5
+ rank crewman
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+// race klingon
+ class CLASS_STORMTROOPER
+ height 64
+ crouchheight 38
+ walkSpeed 51
+ runSpeed 200
+ snd st1
+ sndcombat st1
+ sndextra st1
+ yawspeed 70
+ walkSpeed 55
+ runSpeed 200
+ dismemberProbHead 0
+ dismemberProbArms 10
+ dismemberProbLegs 0
+ dismemberProbHands 20
+ dismemberProbWaist 0
+}
+
+StormTrooper2
+{
+ playerModel stormtrooper
+ weapon WP_BLASTER
+ health 30
+ headPitchRangeDown 30
+ reactions 3
+ aim 1
+ move 3
+ aggression 3
+ evasion 1
+ intelligence 5
+ rank crewman
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+// race klingon
+ class CLASS_STORMTROOPER
+ height 64
+ crouchheight 38
+ walkSpeed 51
+ runSpeed 200
+ snd st2
+ sndcombat st2
+ sndextra st2
+ yawspeed 70
+ walkSpeed 55
+ runSpeed 200
+ dismemberProbHead 0
+ dismemberProbArms 10
+ dismemberProbLegs 0
+ dismemberProbHands 20
+ dismemberProbWaist 0
+}
diff --git a/base/ext_data/npcs/SwampTrooper.npc b/base/ext_data/npcs/SwampTrooper.npc
new file mode 100644
index 0000000..763336e
--- /dev/null
+++ b/base/ext_data/npcs/SwampTrooper.npc
@@ -0,0 +1,63 @@
+SwampTrooper
+{
+ playerModel swamptrooper
+ weapon WP_FLECHETTE
+ headPitchRangeDown 30
+ health 70
+ reactions 3
+ aim 3
+ move 3
+ aggression 3
+ evasion 3
+ intelligence 3
+ scale 110
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+// race klingon
+ class CLASS_SWAMPTROOPER
+ height 68
+ crouchheight 52
+ snd swamp1
+ sndcombat swamp1
+ sndextra swamp1
+ yawspeed 100
+ walkSpeed 55
+ runSpeed 200
+ dismemberProbHead 0
+ dismemberProbArms 10
+ dismemberProbLegs 0
+ dismemberProbHands 20
+ dismemberProbWaist 0
+}
+
+SwampTrooper2
+{
+ playerModel swamptrooper
+ weapon WP_REPEATER
+ headPitchRangeDown 30
+ health 70
+ reactions 3
+ aim 3
+ move 3
+ aggression 3
+ evasion 3
+ intelligence 3
+ scale 110
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+// race klingon
+ class CLASS_SWAMPTROOPER
+ height 68
+ crouchheight 52
+ snd swamp2
+ sndcombat swamp2
+ sndextra swamp2
+ yawspeed 100
+ walkSpeed 55
+ runSpeed 200
+ dismemberProbHead 0
+ dismemberProbArms 10
+ dismemberProbLegs 0
+ dismemberProbHands 20
+ dismemberProbWaist 0
+} \ No newline at end of file
diff --git a/base/ext_data/npcs/Tavion.npc b/base/ext_data/npcs/Tavion.npc
new file mode 100644
index 0000000..f0f3c9e
--- /dev/null
+++ b/base/ext_data/npcs/Tavion.npc
@@ -0,0 +1,50 @@
+Tavion
+{
+ playerModel tavion
+ rank commander
+ saber tavion
+ saberColor red
+ weapon WP_SABER
+ saberStyle 5
+ FP_HEAL 0
+ FP_LEVITATION 3
+ FP_SPEED 3
+ FP_PUSH 3
+ FP_PULL 2
+ FP_TELEPATHY 0
+ FP_GRIP 2
+ FP_LIGHTNING 2
+ FP_RAGE 2
+ FP_PROTECT 0
+ FP_ABSORB 0
+ FP_DRAIN 1
+ FP_SEE 1
+ FP_SABERTHROW 3
+ FP_SABER_DEFENSE 3
+ FP_SABER_OFFENSE 3
+ reactions 3
+ aim 3
+ move 5
+ aggression 3
+ evasion 4
+ intelligence 5
+ hfov 160
+ vfov 160
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+// race human
+ class CLASS_TAVION
+ sex female
+ snd tavion
+ sndcombat tavion
+ sndjedi tavion
+ yawSpeed 120
+ walkSpeed 55
+ runSpeed 200
+ health 300
+ dismemberProbHead 0
+ dismemberProbArms 0
+ dismemberProbLegs 0
+ dismemberProbHands 0
+ dismemberProbWaist 0
+} \ No newline at end of file
diff --git a/base/ext_data/npcs/Tavion_new.npc b/base/ext_data/npcs/Tavion_new.npc
new file mode 100644
index 0000000..91233ea
--- /dev/null
+++ b/base/ext_data/npcs/Tavion_new.npc
@@ -0,0 +1,152 @@
+Tavion_new
+{
+ playerModel tavion_new
+ rank commander
+ saber tavion
+ saberColor red
+ weapon WP_SABER
+ saberStyle 5
+ FP_HEAL 0
+ FP_LEVITATION 3
+ FP_SPEED 3
+ FP_PUSH 3
+ FP_PULL 2
+ FP_TELEPATHY 0
+ FP_GRIP 3
+ FP_LIGHTNING 2
+ FP_RAGE 2
+ FP_PROTECT 0
+ FP_ABSORB 0
+ FP_DRAIN 2
+ FP_SEE 1
+ FP_SABERTHROW 3
+ FP_SABER_DEFENSE 3
+ FP_SABER_OFFENSE 3
+ reactions 3
+ aim 3
+ move 5
+ aggression 3
+ evasion 4
+ intelligence 5
+ hfov 160
+ vfov 160
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+// race human
+ class CLASS_TAVION
+ sex female
+ snd tavion
+ sndcombat tavion
+ sndjedi tavion
+ yawSpeed 120
+ walkSpeed 55
+ runSpeed 200
+ health 300
+ dismemberProbHead 0
+ dismemberProbArms 0
+ dismemberProbLegs 0
+ dismemberProbHands 0
+ dismemberProbWaist 0
+}
+
+Tavion_scepter
+{
+ playerModel tavion_new
+ rank commander
+ saber tavion
+ saberColor red
+ weapon WP_SCEPTER
+ weapon WP_SABER
+ saberStyle 6
+ health 400
+ FP_HEAL 0
+ FP_LEVITATION 3
+ FP_SPEED 3
+ FP_PUSH 3
+ FP_PULL 3
+ FP_TELEPATHY 0
+ FP_GRIP 0
+ FP_LIGHTNING 0
+ FP_RAGE 0
+ FP_PROTECT 0
+ FP_ABSORB 0
+ FP_DRAIN 0
+ FP_SEE 0
+ FP_SABERTHROW 3
+ FP_SABER_DEFENSE 3
+ FP_SABER_OFFENSE 3
+ reactions 5
+ aim 5
+ move 5
+ aggression 5
+ evasion 5
+ intelligence 5
+ hfov 160
+ vfov 160
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+ class CLASS_REBORN
+ sex female
+ snd tavion
+ sndcombat tavion
+ sndjedi tavion
+ yawSpeed 120
+ walkSpeed 55
+ runSpeed 200
+ dismemberProbHead 0
+ dismemberProbArms 0
+ dismemberProbLegs 0
+ dismemberProbHands 0
+ dismemberProbWaist 0
+}
+
+Tavion_sith_sword
+{
+ playerModel tavion_new
+ customSkin possessed
+ rank captain
+ weapon WP_SABER
+ saber sith_sword
+ saberStyle 4
+ health 250
+ FP_HEAL 0
+ FP_LEVITATION 3
+ FP_SPEED 3
+ FP_PUSH 3
+ FP_PULL 3
+ FP_TELEPATHY 0
+ FP_GRIP 3
+ FP_LIGHTNING 3
+ FP_RAGE 3
+ FP_PROTECT 0
+ FP_ABSORB 0
+ FP_DRAIN 3
+ FP_SEE 0
+ FP_SABERTHROW 3
+ FP_SABER_DEFENSE 3
+ FP_SABER_OFFENSE 3
+ reactions 5
+ aim 5
+ move 5
+ aggression 5
+ evasion 5
+ intelligence 5
+ hfov 160
+ vfov 160
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+ class CLASS_DESANN
+ sex female
+ snd tavion
+ sndcombat tavion
+ sndjedi tavion
+ yawSpeed 120
+ walkSpeed 55
+ runSpeed 200
+ dismemberProbHead 0
+ dismemberProbArms 0
+ dismemberProbLegs 0
+ dismemberProbHands 0
+ dismemberProbWaist 0
+}
+
diff --git a/base/ext_data/npcs/Trandoshan.npc b/base/ext_data/npcs/Trandoshan.npc
new file mode 100644
index 0000000..8065257
--- /dev/null
+++ b/base/ext_data/npcs/Trandoshan.npc
@@ -0,0 +1,30 @@
+Trandoshan
+{
+ playerModel trandoshan
+ customSkin sp
+ customRGBA random1
+ weapon WP_REPEATER
+ reactions 3
+ aim 1
+ move 3
+ aggression 3
+ evasion 1
+ intelligence 5
+ health 40
+ rank crewman
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+// race klingon
+ class CLASS_TRANDOSHAN
+ snd trandoshan1
+ sndcombat trandoshan1
+ sndextra trandoshan1
+ yawspeed 90
+ walkSpeed 55
+ runSpeed 200
+ dismemberProbHead 0
+ dismemberProbArms 10
+ dismemberProbLegs 1
+ dismemberProbHands 20
+ dismemberProbWaist 0
+} \ No newline at end of file
diff --git a/base/ext_data/npcs/Ugnaught.npc b/base/ext_data/npcs/Ugnaught.npc
new file mode 100644
index 0000000..855c228
--- /dev/null
+++ b/base/ext_data/npcs/Ugnaught.npc
@@ -0,0 +1,55 @@
+Ugnaught
+{
+ playerModel ugnaught
+ weapon WP_NONE
+ scale 75
+ health 10
+ snd ugnaught
+ reactions 3
+ aim 1
+ move 3
+ aggression 3
+ evasion 1
+ intelligence 5
+ rank crewman
+ playerTeam TEAM_NEUTRAL
+ enemyTeam TEAM_PLAYER
+ class CLASS_UGNAUGHT
+ yawspeed 90
+ walkSpeed 55
+ runSpeed 200
+ dismemberProbHead 0
+ dismemberProbArms 10
+ dismemberProbLegs 1
+ dismemberProbHands 20
+ dismemberProbWaist 0
+}
+
+Ugnaught2
+{
+ playerModel ugnaught
+ weapon WP_NONE
+ surfOff "l_hand_purse"
+ surfOn "r_hand_tool"
+ scale 75
+ health 10
+ snd ugnaught
+ reactions 3
+ aim 1
+ move 3
+ aggression 3
+ evasion 1
+ intelligence 5
+ rank crewman
+ playerTeam TEAM_NEUTRAL
+ enemyTeam TEAM_PLAYER
+ class CLASS_UGNAUGHT
+ yawspeed 90
+ walkSpeed 55
+ runSpeed 200
+ dismemberProbHead 0
+ dismemberProbArms 10
+ dismemberProbLegs 1
+ dismemberProbHands 20
+ dismemberProbWaist 0
+}
diff --git a/base/ext_data/npcs/alora.npc b/base/ext_data/npcs/alora.npc
new file mode 100644
index 0000000..a599c9d
--- /dev/null
+++ b/base/ext_data/npcs/alora.npc
@@ -0,0 +1,103 @@
+alora
+{
+ playerModel alora
+ rank lt
+ saber single_4
+ saberColor red
+ weapon WP_SABER
+ saberStyle 2
+ saberStyle 1
+ health 300
+ FP_HEAL 0
+ FP_LEVITATION 2
+ FP_SPEED 2
+ FP_PUSH 2
+ FP_PULL 2
+ FP_TELEPATHY 0
+ FP_GRIP 0
+ FP_LIGHTNING 0
+ FP_RAGE 0
+ FP_PROTECT 0
+ FP_ABSORB 0
+ FP_DRAIN 0
+ FP_SEE 0
+ FP_SABERTHROW 2
+ FP_SABER_DEFENSE 2
+ FP_SABER_OFFENSE 2
+ reactions 3
+ aim 3
+ move 5
+ aggression 3
+ evasion 4
+ intelligence 5
+ hfov 160
+ vfov 160
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+ class CLASS_REBORN
+ sex female
+ snd alora
+ sndcombat alora
+ sndjedi alora
+ yawSpeed 120
+ walkSpeed 55
+ runSpeed 200
+ dismemberProbHead 0
+ dismemberProbArms 0
+ dismemberProbLegs 0
+ dismemberProbHands 0
+ dismemberProbWaist 0
+}
+
+alora_dual
+{
+// playerModel alora2
+ playerModel alora
+ rank commander
+ saber single_4
+ saberColor red
+ saber2 single_4
+ saber2Color red
+ weapon WP_SABER
+ saberStyle 6
+ health 500
+ FP_HEAL 0
+ FP_LEVITATION 3
+ FP_SPEED 3
+ FP_PUSH 3
+ FP_PULL 3
+ FP_TELEPATHY 0
+ FP_GRIP 2
+ FP_LIGHTNING 2
+ FP_RAGE 3
+ FP_PROTECT 0
+ FP_ABSORB 0
+ FP_DRAIN 0
+ FP_SEE 0
+ FP_SABERTHROW 3
+ FP_SABER_DEFENSE 3
+ FP_SABER_OFFENSE 3
+ reactions 5
+ aim 5
+ move 5
+ aggression 5
+ evasion 5
+ intelligence 5
+ hfov 160
+ vfov 160
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+ class CLASS_ALORA
+ sex female
+ snd alora
+ sndcombat alora
+ sndjedi alora
+ yawSpeed 120
+ walkSpeed 55
+ runSpeed 200
+ dismemberProbHead 0
+ dismemberProbArms 0
+ dismemberProbLegs 0
+ dismemberProbHands 0
+ dismemberProbWaist 0
+} \ No newline at end of file
diff --git a/base/ext_data/npcs/assassin_droid.npc b/base/ext_data/npcs/assassin_droid.npc
new file mode 100644
index 0000000..5996821
--- /dev/null
+++ b/base/ext_data/npcs/assassin_droid.npc
@@ -0,0 +1,32 @@
+assassin_droid
+{
+ playerModel assassin_droid
+ weapon WP_BLASTER
+ health 150
+ headPitchRangeDown 30
+ reactions 3
+ aim 1
+ move 3
+ aggression 3
+ evasion 1
+ intelligence 5
+ rank crewman
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+ class CLASS_ASSASSIN_DROID
+ height 64
+ crouchheight 48
+ walkSpeed 51
+ runSpeed 200
+ snd shadowtrooper1
+ sndcombat shadowtrooper1
+ sndextra shadowtrooper1
+ yawspeed 70
+ walkSpeed 55
+ runSpeed 200
+ dismemberProbHead 100
+ dismemberProbArms 100
+ dismemberProbLegs 100
+ dismemberProbHands 100
+ dismemberProbWaist 100
+} \ No newline at end of file
diff --git a/base/ext_data/npcs/atst.npc b/base/ext_data/npcs/atst.npc
new file mode 100644
index 0000000..ecb1273
--- /dev/null
+++ b/base/ext_data/npcs/atst.npc
@@ -0,0 +1,36 @@
+atst
+{
+ playerModel atst
+ weapon WP_ATST_MAIN
+ weapon WP_ATST_SIDE
+// headModel atst
+ //torsoModel atst
+ //legsModel atst
+ headYawRangeLeft 80
+ headYawRangeRight 80
+ headPitchRangeUp 30
+ headPitchRangeDown 30
+ torsoYawRangeLeft 0
+ torsoYawRangeRight 0
+ torsoPitchRangeUp 0
+ torsoPitchRangeDown 0
+ health 200
+ reactions 3
+ aim 1
+ move 3
+ aggression 3
+ evasion 1
+ intelligence 5
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+ height 272
+ width 80
+// race bot
+ class CLASS_ATST
+ yawSpeed 60
+ runSpeed 150
+ walkSpeed 150
+ hFOV 120
+ vfov 45
+ snd atst
+} \ No newline at end of file
diff --git a/base/ext_data/npcs/atst_vehicle.npc b/base/ext_data/npcs/atst_vehicle.npc
new file mode 100644
index 0000000..ba9998b
--- /dev/null
+++ b/base/ext_data/npcs/atst_vehicle.npc
@@ -0,0 +1,13 @@
+ATST_vehicle
+{
+ weapon WP_BOWCASTER
+ weapon WP_ROCKET_LAUNCHER
+ weapon WP_EMPLACED_GUN
+ playerModel atst
+ playerTeam TEAM_FREE
+ enemyTeam TEAM_FREE
+ class CLASS_VEHICLE
+ height 272
+ width 80
+ health 3000
+} \ No newline at end of file
diff --git a/base/ext_data/npcs/boba_fett.npc b/base/ext_data/npcs/boba_fett.npc
new file mode 100644
index 0000000..36d6257
--- /dev/null
+++ b/base/ext_data/npcs/boba_fett.npc
@@ -0,0 +1,44 @@
+
+boba_fett
+{
+ playerModel boba_fett
+ altFire 1
+ weapon WP_MELEE
+ weapon WP_DISRUPTOR
+ weapon WP_ROCKET_LAUNCHER
+ weapon WP_BLASTER
+ FP_HEAL 0
+ FP_LEVITATION 3
+ FP_SPEED 0
+ FP_PUSH 0
+ FP_PULL 0
+ FP_TELEPATHY 0
+ FP_GRIP 0
+ FP_LIGHTNING 0
+ FP_SABERTHROW 0
+ FP_SABER_DEFENSE 0
+ FP_SABER_OFFENSE 0
+ health 400
+ headPitchRangeDown 30
+ reactions 5
+ aim 5
+ move 5
+ aggression 5
+ evasion 5
+ intelligence 5
+ earshot 2048
+ visrange 4096
+ hfov 120
+ vfov 100
+ rank captain
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+ class CLASS_BOBAFETT
+ walkSpeed 80
+ runSpeed 250
+ snd boba
+ sndcombat boba
+ sndextra boba
+ yawspeed 180
+}
+
diff --git a/base/ext_data/npcs/chewie.npc b/base/ext_data/npcs/chewie.npc
new file mode 100644
index 0000000..52a9d2d
--- /dev/null
+++ b/base/ext_data/npcs/chewie.npc
@@ -0,0 +1,86 @@
+chewie
+{
+ playerModel chewbacca
+ altFire 0
+ weapon WP_BOWCASTER
+ FP_HEAL 0
+ FP_LEVITATION 0
+ FP_SPEED 0
+ FP_PUSH 0
+ FP_PULL 0
+ FP_TELEPATHY 0
+ FP_GRIP 0
+ FP_LIGHTNING 0
+ FP_SABERTHROW 0
+ FP_SABER_DEFENSE 0
+ FP_SABER_OFFENSE 0
+ health 400
+ scale 122
+ width 18
+ height 78
+ crouchheight 42
+ headPitchRangeDown 30
+ reactions 5
+ aim 5
+ move 5
+ aggression 5
+ evasion 5
+ intelligence 5
+ earshot 1024
+ visrange 2048
+ hfov 120
+ vfov 100
+ rank captain
+ playerTeam TEAM_PLAYER
+ enemyTeam TEAM_ENEMY
+ class CLASS_REBEL
+ walkSpeed 60
+ runSpeed 160
+ snd chewbacca
+ sndcombat chewbacca
+ sndextra chewbacca
+ yawspeed 90
+}
+
+chewie_cin
+{
+ playerModel chewbacca
+ altFire 0
+ FP_HEAL 0
+ FP_LEVITATION 0
+ FP_SPEED 0
+ FP_PUSH 0
+ FP_PULL 0
+ FP_TELEPATHY 0
+ FP_GRIP 0
+ FP_LIGHTNING 0
+ FP_SABERTHROW 0
+ FP_SABER_DEFENSE 0
+ FP_SABER_OFFENSE 0
+ health 400
+ scale 122
+ width 18
+ height 78
+ crouchheight 42
+ headPitchRangeDown 30
+ reactions 5
+ aim 5
+ move 5
+ aggression 5
+ evasion 5
+ intelligence 5
+ earshot 1024
+ visrange 2048
+ hfov 120
+ vfov 100
+ rank captain
+ playerTeam TEAM_PLAYER
+ enemyTeam TEAM_ENEMY
+ class CLASS_REBEL
+ walkSpeed 60
+ runSpeed 160
+ snd chewbacca
+ sndcombat chewbacca
+ sndextra chewbacca
+ yawspeed 90
+} \ No newline at end of file
diff --git a/base/ext_data/npcs/cultist.npc b/base/ext_data/npcs/cultist.npc
new file mode 100644
index 0000000..e269d7e
--- /dev/null
+++ b/base/ext_data/npcs/cultist.npc
@@ -0,0 +1,38 @@
+cultist
+{
+ playerModel cultist
+ weapon WP_BLASTER
+ altfire 1
+ FP_LEVITATION 3
+ FP_SPEED 2
+ FP_PUSH 2
+ FP_PULL 2
+ FP_GRIP 1
+ FP_LIGHTNING 1
+ FP_DRAIN 1
+ rank ltcomm
+ reactions 1
+ aim 1
+ move 1
+ aggression 1
+ evasion 1
+ intelligence 1
+ hfov 120
+ vfov 120
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+// race human
+ class CLASS_REBORN
+ snd cultist1
+ sndcombat cultist1
+ sndjedi cultist1
+ yawSpeed 60
+ walkSpeed 45
+ runSpeed 180
+ health 50
+ dismemberProbHead 0
+ dismemberProbArms 20
+ dismemberProbLegs 0
+ dismemberProbHands 30
+ dismemberProbWaist 0
+} \ No newline at end of file
diff --git a/base/ext_data/npcs/cultist_destroyer.npc b/base/ext_data/npcs/cultist_destroyer.npc
new file mode 100644
index 0000000..4e2fd66
--- /dev/null
+++ b/base/ext_data/npcs/cultist_destroyer.npc
@@ -0,0 +1,31 @@
+cultist_destroyer
+{
+ playerModel cultist
+ customSkin red
+ weapon WP_MELEE
+ FP_LEVITATION 3
+ rank ltcomm
+ reactions 1
+ aim 1
+ move 1
+ aggression 5
+ evasion 1
+ intelligence 1
+ hfov 120
+ vfov 120
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+ class CLASS_REBORN
+ snd cultist3
+ sndcombat cultist3
+ sndjedi cultist3
+ yawSpeed 60
+ walkSpeed 72
+ runSpeed 230
+ health 100
+ dismemberProbHead 0
+ dismemberProbArms 20
+ dismemberProbLegs 0
+ dismemberProbHands 30
+ dismemberProbWaist 0
+} \ No newline at end of file
diff --git a/base/ext_data/npcs/cultist_drain.npc b/base/ext_data/npcs/cultist_drain.npc
new file mode 100644
index 0000000..4b39936
--- /dev/null
+++ b/base/ext_data/npcs/cultist_drain.npc
@@ -0,0 +1,37 @@
+cultist_drain
+{
+ playerModel cultist
+ customSkin red
+ weapon WP_MELEE
+ FP_LEVITATION 1
+ FP_PUSH 3
+ FP_DRAIN 3
+ forcePowerMax 200
+ forceRegenRate 50
+ forceRegenAmount 2
+ rank captain
+ reactions 1
+ aim 1
+ move 1
+ aggression 5
+ evasion 3
+ intelligence 1
+ hfov 120
+ vfov 120
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+// race human
+ class CLASS_REBORN
+ snd cultist3
+ sndcombat cultist3
+ sndjedi cultist3
+ yawSpeed 60
+ walkSpeed 45
+ runSpeed 180
+ health 100
+ dismemberProbHead 0
+ dismemberProbArms 20
+ dismemberProbLegs 0
+ dismemberProbHands 30
+ dismemberProbWaist 0
+} \ No newline at end of file
diff --git a/base/ext_data/npcs/cultist_grip.npc b/base/ext_data/npcs/cultist_grip.npc
new file mode 100644
index 0000000..ad77d26
--- /dev/null
+++ b/base/ext_data/npcs/cultist_grip.npc
@@ -0,0 +1,38 @@
+cultist_grip
+{
+ playerModel cultist
+ weapon WP_MELEE
+ FP_LEVITATION 1
+ FP_PUSH 3
+ FP_PULL 2
+// FP_GRIP 3
+ FP_GRIP 2
+ forcePowerMax 200
+ forceRegenRate 50
+ forceRegenAmount 2
+ rank captain
+ reactions 1
+ aim 1
+ move 1
+ aggression 5
+ evasion 3
+ intelligence 1
+ hfov 120
+ vfov 120
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+// race human
+ class CLASS_REBORN
+ snd cultist3
+ sndcombat cultist3
+ sndjedi cultist3
+ yawSpeed 60
+ walkSpeed 45
+ runSpeed 180
+ health 100
+ dismemberProbHead 0
+ dismemberProbArms 20
+ dismemberProbLegs 0
+ dismemberProbHands 30
+ dismemberProbWaist 0
+} \ No newline at end of file
diff --git a/base/ext_data/npcs/cultist_lightning.npc b/base/ext_data/npcs/cultist_lightning.npc
new file mode 100644
index 0000000..4f5283d
--- /dev/null
+++ b/base/ext_data/npcs/cultist_lightning.npc
@@ -0,0 +1,37 @@
+cultist_lightning
+{
+ playerModel cultist
+ customSkin blue
+ weapon WP_MELEE
+ FP_LEVITATION 1
+ FP_PUSH 3
+ FP_LIGHTNING 3
+ forcePowerMax 200
+ forceRegenRate 50
+ forceRegenAmount 2
+ rank captain
+ reactions 1
+ aim 1
+ move 1
+ aggression 5
+ evasion 3
+ intelligence 1
+ hfov 120
+ vfov 120
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+// race human
+ class CLASS_REBORN
+ snd cultist3
+ sndcombat cultist3
+ sndjedi cultist3
+ yawSpeed 60
+ walkSpeed 45
+ runSpeed 180
+ health 100
+ dismemberProbHead 0
+ dismemberProbArms 20
+ dismemberProbLegs 0
+ dismemberProbHands 30
+ dismemberProbWaist 0
+} \ No newline at end of file
diff --git a/base/ext_data/npcs/cultist_saber.npc b/base/ext_data/npcs/cultist_saber.npc
new file mode 100644
index 0000000..fcce37e
--- /dev/null
+++ b/base/ext_data/npcs/cultist_saber.npc
@@ -0,0 +1,294 @@
+cultist_saber
+{
+ playerModel cultist
+ customSkin brown
+ saber reborn
+ weapon WP_SABER
+ saberStyle 1
+ FP_LEVITATION 1
+ FP_SABER_DEFENSE 3
+ FP_SABER_OFFENSE 1
+ reactions 1
+ aim 1
+ move 1
+ aggression 3
+ evasion 1
+ intelligence 1
+ hfov 120
+ vfov 120
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+ class CLASS_REBORN
+ snd cultist1
+ sndcombat cultist1
+ sndjedi cultist1
+ yawSpeed 60
+ walkSpeed 45
+ runSpeed 180
+ health 100
+ dismemberProbHead 0
+ dismemberProbArms 20
+ dismemberProbLegs 0
+ dismemberProbHands 30
+ dismemberProbWaist 0
+}
+
+cultist_saber_throw
+{
+ playerModel cultist
+ customSkin brown
+ saber reborn
+ weapon WP_SABER
+ saberStyle 1
+ FP_LEVITATION 1
+ FP_SABER_DEFENSE 2
+ FP_SABER_OFFENSE 1
+ FP_SABERTHROW 1
+ reactions 1
+ aim 1
+ move 1
+ aggression 2
+ evasion 1
+ intelligence 1
+ hfov 120
+ vfov 120
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+ class CLASS_REBORN
+ snd cultist1
+ sndcombat cultist1
+ sndjedi cultist1
+ yawSpeed 60
+ walkSpeed 45
+ runSpeed 180
+ health 100
+ dismemberProbHead 0
+ dismemberProbArms 20
+ dismemberProbLegs 0
+ dismemberProbHands 30
+ dismemberProbWaist 0
+}
+
+cultist_saber_med
+{
+ playerModel cultist
+ customSkin brown
+ saber reborn
+ weapon WP_SABER
+ saberStyle 2
+ FP_LEVITATION 1
+ FP_SABER_DEFENSE 2
+ FP_SABER_OFFENSE 2
+ rank crewman
+ reactions 1
+ aim 1
+ move 1
+ aggression 3
+ evasion 1
+ intelligence 1
+ hfov 120
+ vfov 120
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+ class CLASS_REBORN
+ snd cultist1
+ sndcombat cultist1
+ sndjedi cultist1
+ yawSpeed 60
+ walkSpeed 45
+ runSpeed 180
+ health 100
+ dismemberProbHead 0
+ dismemberProbArms 20
+ dismemberProbLegs 0
+ dismemberProbHands 30
+ dismemberProbWaist 0
+}
+
+cultist_saber_med_throw
+{
+ playerModel cultist
+ customSkin brown
+ saber reborn
+ weapon WP_SABER
+ saberStyle 2
+ FP_LEVITATION 1
+ FP_SABER_DEFENSE 1
+ FP_SABER_OFFENSE 2
+ FP_SABERTHROW 2
+ rank crewman
+ reactions 1
+ aim 1
+ move 1
+ aggression 2
+ evasion 1
+ intelligence 1
+ hfov 120
+ vfov 120
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+ class CLASS_REBORN
+ snd cultist1
+ sndcombat cultist1
+ sndjedi cultist1
+ yawSpeed 60
+ walkSpeed 45
+ runSpeed 180
+ health 100
+ dismemberProbHead 0
+ dismemberProbArms 20
+ dismemberProbLegs 0
+ dismemberProbHands 30
+ dismemberProbWaist 0
+}
+
+cultist_saber_strong
+{
+ playerModel cultist
+ customSkin brown
+ saber reborn
+ weapon WP_SABER
+ saberStyle 3
+ FP_LEVITATION 1
+ FP_SABER_DEFENSE 1
+ FP_SABER_OFFENSE 3
+ rank ensign
+ reactions 1
+ aim 1
+ move 1
+ aggression 3
+ evasion 1
+ intelligence 1
+ hfov 120
+ vfov 120
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+ class CLASS_REBORN
+ snd cultist1
+ sndcombat cultist1
+ sndjedi cultist1
+ yawSpeed 60
+ walkSpeed 45
+ runSpeed 180
+ health 100
+ dismemberProbHead 0
+ dismemberProbArms 20
+ dismemberProbLegs 0
+ dismemberProbHands 30
+ dismemberProbWaist 0
+}
+
+cultist_saber_strong_throw
+{
+ playerModel cultist
+ customSkin brown
+ saber reborn
+ weapon WP_SABER
+ saberStyle 3
+ FP_LEVITATION 1
+ FP_SABER_DEFENSE 1
+ FP_SABER_OFFENSE 3
+ FP_SABERTHROW 2
+ rank ensign
+ reactions 1
+ aim 1
+ move 1
+ aggression 2
+ evasion 1
+ intelligence 1
+ hfov 120
+ vfov 120
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+ class CLASS_REBORN
+ snd cultist1
+ sndcombat cultist1
+ sndjedi cultist1
+ yawSpeed 60
+ walkSpeed 45
+ runSpeed 180
+ health 100
+ dismemberProbHead 0
+ dismemberProbArms 20
+ dismemberProbLegs 0
+ dismemberProbHands 30
+ dismemberProbWaist 0
+}
+
+cultist_saber_all
+{
+ playerModel cultist
+ customSkin brown
+ saber reborn
+ weapon WP_SABER
+ saberStyle 1
+ saberStyle 3
+ saberStyle 2
+ FP_LEVITATION 1
+ FP_SABER_DEFENSE 3
+ FP_SABER_OFFENSE 3
+ rank crewman
+ reactions 1
+ aim 1
+ move 1
+ aggression 4
+ evasion 1
+ intelligence 1
+ hfov 120
+ vfov 120
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+ class CLASS_REBORN
+ snd cultist1
+ sndcombat cultist1
+ sndjedi cultist1
+ yawSpeed 60
+ walkSpeed 45
+ runSpeed 180
+ health 100
+ dismemberProbHead 0
+ dismemberProbArms 20
+ dismemberProbLegs 0
+ dismemberProbHands 30
+ dismemberProbWaist 0
+}
+
+cultist_saber_all_throw
+{
+ playerModel cultist
+ customSkin brown
+ saber reborn
+ weapon WP_SABER
+ saberStyle 1
+ saberStyle 3
+ saberStyle 2
+ FP_LEVITATION 1
+ FP_SABER_DEFENSE 2
+ FP_SABER_OFFENSE 3
+ FP_SABERTHROW 2
+ rank crewman
+ reactions 1
+ aim 1
+ move 1
+ aggression 3
+ evasion 1
+ intelligence 1
+ hfov 120
+ vfov 120
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+ class CLASS_REBORN
+ snd cultist1
+ sndcombat cultist1
+ sndjedi cultist1
+ yawSpeed 60
+ walkSpeed 45
+ runSpeed 180
+ health 100
+ dismemberProbHead 0
+ dismemberProbArms 20
+ dismemberProbLegs 0
+ dismemberProbHands 30
+ dismemberProbWaist 0
+}
+
diff --git a/base/ext_data/npcs/cultist_saber_powers.npc b/base/ext_data/npcs/cultist_saber_powers.npc
new file mode 100644
index 0000000..41f7182
--- /dev/null
+++ b/base/ext_data/npcs/cultist_saber_powers.npc
@@ -0,0 +1,305 @@
+cultist_saber2
+{
+ playerModel cultist
+ customSkin brown
+ saber reborn
+ weapon WP_SABER
+ saberStyle 1
+ rank ltjg
+ FP_PUSH 1
+ FP_LEVITATION 1
+ FP_SABER_DEFENSE 3
+ FP_SABER_OFFENSE 2
+ reactions 1
+ aim 1
+ move 1
+ aggression 3
+ evasion 2
+ intelligence 1
+ hfov 120
+ vfov 120
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+ class CLASS_REBORN
+ snd cultist1
+ sndcombat cultist1
+ sndjedi cultist1
+ yawSpeed 60
+ walkSpeed 45
+ runSpeed 180
+ health 150
+ dismemberProbHead 0
+ dismemberProbArms 20
+ dismemberProbLegs 0
+ dismemberProbHands 30
+ dismemberProbWaist 0
+}
+
+cultist_saber_throw2
+{
+ playerModel cultist
+ customSkin brown
+ saber reborn
+ weapon WP_SABER
+ saberStyle 1
+ rank ltjg
+ FP_PUSH 1
+ FP_LEVITATION 1
+ FP_SABER_DEFENSE 2
+ FP_SABER_OFFENSE 2
+ FP_SABERTHROW 1
+ reactions 1
+ aim 1
+ move 1
+ aggression 2
+ evasion 2
+ intelligence 1
+ hfov 120
+ vfov 120
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+ class CLASS_REBORN
+ snd cultist1
+ sndcombat cultist1
+ sndjedi cultist1
+ yawSpeed 60
+ walkSpeed 45
+ runSpeed 180
+ health 150
+ dismemberProbHead 0
+ dismemberProbArms 20
+ dismemberProbLegs 0
+ dismemberProbHands 30
+ dismemberProbWaist 0
+}
+
+cultist_saber_med2
+{
+ playerModel cultist
+ customSkin brown
+ saber reborn
+ weapon WP_SABER
+ saberStyle 2
+ rank ensign
+ FP_PUSH 1
+ FP_LEVITATION 1
+ FP_SABER_DEFENSE 3
+ FP_SABER_OFFENSE 3
+ reactions 1
+ aim 1
+ move 1
+ aggression 3
+ evasion 2
+ intelligence 1
+ hfov 120
+ vfov 120
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+ class CLASS_REBORN
+ snd cultist1
+ sndcombat cultist1
+ sndjedi cultist1
+ yawSpeed 60
+ walkSpeed 45
+ runSpeed 180
+ health 150
+ dismemberProbHead 0
+ dismemberProbArms 20
+ dismemberProbLegs 0
+ dismemberProbHands 30
+ dismemberProbWaist 0
+}
+
+cultist_saber_med_throw2
+{
+ playerModel cultist
+ customSkin brown
+ saber reborn
+ weapon WP_SABER
+ saberStyle 2
+ rank ensign
+ FP_PUSH 1
+ FP_LEVITATION 1
+ FP_SABER_DEFENSE 2
+ FP_SABER_OFFENSE 2
+ FP_SABERTHROW 2
+ reactions 1
+ aim 1
+ move 1
+ aggression 2
+ evasion 2
+ intelligence 1
+ hfov 120
+ vfov 120
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+ class CLASS_REBORN
+ snd cultist1
+ sndcombat cultist1
+ sndjedi cultist1
+ yawSpeed 60
+ walkSpeed 45
+ runSpeed 180
+ health 150
+ dismemberProbHead 0
+ dismemberProbArms 20
+ dismemberProbLegs 0
+ dismemberProbHands 30
+ dismemberProbWaist 0
+}
+
+cultist_saber_strong2
+{
+ playerModel cultist
+ customSkin brown
+ saber reborn
+ weapon WP_SABER
+ saberStyle 3
+ rank ltjg
+ FP_PUSH 1
+ FP_LEVITATION 1
+ FP_SABER_DEFENSE 2
+ FP_SABER_OFFENSE 3
+ reactions 1
+ aim 1
+ move 1
+ aggression 3
+ evasion 2
+ intelligence 1
+ hfov 120
+ vfov 120
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+ class CLASS_REBORN
+ snd cultist1
+ sndcombat cultist1
+ sndjedi cultist1
+ yawSpeed 60
+ walkSpeed 45
+ runSpeed 180
+ health 150
+ dismemberProbHead 0
+ dismemberProbArms 20
+ dismemberProbLegs 0
+ dismemberProbHands 30
+ dismemberProbWaist 0
+}
+
+cultist_saber_strong_throw2
+{
+ playerModel cultist
+ customSkin brown
+ saber reborn
+ weapon WP_SABER
+ saberStyle 3
+ rank ltjg
+ FP_PUSH 1
+ FP_LEVITATION 1
+ FP_SABER_DEFENSE 2
+ FP_SABER_OFFENSE 3
+ FP_SABERTHROW 2
+ reactions 1
+ aim 1
+ move 1
+ aggression 2
+ evasion 2
+ intelligence 1
+ hfov 120
+ vfov 120
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+ class CLASS_REBORN
+ snd cultist1
+ sndcombat cultist1
+ sndjedi cultist1
+ yawSpeed 60
+ walkSpeed 45
+ runSpeed 180
+ health 150
+ dismemberProbHead 0
+ dismemberProbArms 20
+ dismemberProbLegs 0
+ dismemberProbHands 30
+ dismemberProbWaist 0
+}
+
+cultist_saber_all2
+{
+ playerModel cultist
+ customSkin brown
+ saber reborn
+ weapon WP_SABER
+ saberStyle 1
+ saberStyle 3
+ saberStyle 2
+ rank ltjg
+ FP_PUSH 1
+ FP_LEVITATION 1
+ FP_SABER_DEFENSE 3
+ FP_SABER_OFFENSE 3
+ rank crewman
+ reactions 1
+ aim 1
+ move 1
+ aggression 4
+ evasion 2
+ intelligence 1
+ hfov 120
+ vfov 120
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+ class CLASS_REBORN
+ snd cultist1
+ sndcombat cultist1
+ sndjedi cultist1
+ yawSpeed 60
+ walkSpeed 45
+ runSpeed 180
+ health 150
+ dismemberProbHead 0
+ dismemberProbArms 20
+ dismemberProbLegs 0
+ dismemberProbHands 30
+ dismemberProbWaist 0
+}
+
+cultist_saber_all_throw2
+{
+ playerModel cultist
+ customSkin brown
+ saber reborn
+ weapon WP_SABER
+ saberStyle 1
+ saberStyle 3
+ saberStyle 2
+ rank ltjg
+ FP_PUSH 1
+ FP_LEVITATION 1
+ FP_SABER_DEFENSE 2
+ FP_SABER_OFFENSE 3
+ FP_SABERTHROW 2
+ reactions 1
+ aim 1
+ move 1
+ aggression 3
+ evasion 2
+ intelligence 1
+ hfov 120
+ vfov 120
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+ class CLASS_REBORN
+ snd cultist1
+ sndcombat cultist1
+ sndjedi cultist1
+ yawSpeed 60
+ walkSpeed 45
+ runSpeed 180
+ health 150
+ dismemberProbHead 0
+ dismemberProbArms 20
+ dismemberProbLegs 0
+ dismemberProbHands 30
+ dismemberProbWaist 0
+}
+
diff --git a/base/ext_data/npcs/cultistcommando.npc b/base/ext_data/npcs/cultistcommando.npc
new file mode 100644
index 0000000..dee5f3b
--- /dev/null
+++ b/base/ext_data/npcs/cultistcommando.npc
@@ -0,0 +1,31 @@
+cultistcommando
+{
+ playerModel cultist
+ weapon WP_BLASTER_PISTOL
+ FP_LEVITATION 2
+ rank ltcomm
+ reactions 5
+ aim 5
+ move 5
+ aggression 5
+ evasion 4
+ intelligence 5
+ hfov 160
+ vfov 160
+ playerTeam TEAM_ENEMY
+ enemyTeam TEAM_PLAYER
+// class CLASS_COMMANDO
+ class CLASS_REBORN
+ snd cultist3
+ sndcombat cultist3
+ sndextra cultist3
+ yawSpeed 140
+ walkSpeed 55
+ runSpeed 200
+ health 250
+ dismemberProbHead 0
+ dismemberProbArms 10
+ dismemberProbLegs 0
+ dismemberProbHands 20
+ dismemberProbWaist 0
+} \ No newline at end of file
diff --git a/base/ext_data/npcs/gonk.npc b/base/ext_data/npcs/gonk.npc
new file mode 100644
index 0000000..42f224a
--- /dev/null
+++ b/base/ext_data/npcs/gonk.npc
@@ -0,0 +1,23 @@
+gonk
+{
+ playerModel gonk
+ weapon WP_NONE
+ reactions 3
+ aim 1
+ move 3
+ aggre