├── .gitignore ├── QIIIA Game Source License.doc ├── README.md ├── assets ├── entityplus.bat └── entityplus │ ├── description.txt │ ├── docs │ ├── entityplus-assets.txt │ ├── entityplus-backpack & debris models.txt │ ├── entityplus-keycard.txt │ ├── entityplus-logo.txt │ ├── entityplus-sfx.txt │ ├── entityplus-skeletonkeys.txt │ ├── manual.docx │ ├── readme.txt │ └── version history.txt │ ├── gfx │ ├── damage │ │ ├── bullet_mrk_paint.jpg │ │ ├── burn_med_mrk_paint.jpg │ │ ├── hole_lg_mrk_paint.jpg │ │ └── plasma_mrk_paint.jpg │ └── misc │ │ └── spark.tga │ ├── icons │ ├── icon_backpack.tga │ ├── iconr_green.tga │ ├── key_blue.tga │ ├── key_gold.tga │ ├── key_green.tga │ ├── key_iron.tga │ ├── key_master.tga │ ├── key_red.tga │ ├── key_silver.tga │ └── key_yellow.tga │ ├── levelshots │ └── ep_example.jpg │ ├── maps │ └── ep_example.map │ ├── menu │ ├── art │ │ ├── loading.tga │ │ ├── logo2.tga │ │ ├── mainoverlay.tga │ │ ├── scores_0.tga │ │ ├── scores_1.tga │ │ ├── skill1.tga │ │ ├── skill2.tga │ │ ├── skill3.tga │ │ ├── skill4.tga │ │ ├── skill5.tga │ │ └── table.tga │ ├── backgrounds │ │ ├── 01.jpg │ │ └── 02.jpg │ └── objectives │ │ ├── overlay.tga │ │ └── updated.tga │ ├── models │ ├── debris │ │ ├── concrete_b1.md3 │ │ ├── concrete_b1_large.md3 │ │ ├── concrete_b2.md3 │ │ ├── concrete_b2_large.md3 │ │ ├── concrete_b3.md3 │ │ ├── concrete_b3_large.md3 │ │ ├── concrete_b4.md3 │ │ ├── concrete_b5.md3 │ │ ├── concrete_b6.md3 │ │ ├── concrete_b7.md3 │ │ ├── concrete_b8.md3 │ │ ├── concrete_d1.md3 │ │ ├── concrete_d1_large.md3 │ │ ├── concrete_d2.md3 │ │ ├── concrete_d2_large.md3 │ │ ├── concrete_d3.md3 │ │ ├── concrete_d3_large.md3 │ │ ├── concrete_d4.md3 │ │ ├── concrete_d5.md3 │ │ ├── concrete_d6.md3 │ │ ├── concrete_d7.md3 │ │ ├── concrete_d8.md3 │ │ ├── debris_stone.jpg │ │ ├── debris_wood.jpg │ │ ├── glass_1.md3 │ │ ├── glass_1_large.md3 │ │ ├── glass_2.md3 │ │ ├── glass_2_large.md3 │ │ ├── glass_3.md3 │ │ ├── glass_3_large.md3 │ │ ├── glass_4.md3 │ │ ├── glass_4_large.md3 │ │ ├── glass_5.md3 │ │ ├── glass_5_large.md3 │ │ ├── stone_1.md3 │ │ ├── stone_2.md3 │ │ ├── stone_3.md3 │ │ ├── stone_4.md3 │ │ ├── stone_5.md3 │ │ ├── wood_b1.md3 │ │ ├── wood_b2.md3 │ │ ├── wood_b3.md3 │ │ ├── wood_b4.md3 │ │ └── wood_b5.md3 │ ├── entplus │ │ └── logo │ │ │ ├── entpluslogo.md3 │ │ │ └── materials │ │ │ ├── bigtext.tga │ │ │ ├── plusg.tga │ │ │ ├── plusw.tga │ │ │ ├── smalltext.tga │ │ │ ├── textb.tga │ │ │ └── textw.tga │ └── powerups │ │ ├── armor │ │ ├── armor_gre.md3 │ │ ├── armor_gre_1.md3 │ │ ├── armor_gre_2.md3 │ │ ├── energy_gre1.jpg │ │ └── newgreen.tga │ │ ├── backpack │ │ ├── backpack.jpg │ │ ├── backpack.md3 │ │ └── backpack_fx.jpg │ │ └── keys │ │ ├── envmap-b.tga │ │ ├── envmap-g.tga │ │ ├── envmap-r.tga │ │ ├── envmap-y.tga │ │ ├── key_gold.md3 │ │ ├── key_gold.tga │ │ ├── key_gold_snake.tga │ │ ├── key_iron.md3 │ │ ├── key_iron.tga │ │ ├── key_iron_snake.tga │ │ ├── key_master.md3 │ │ ├── key_master.tga │ │ ├── key_master_snake.tga │ │ ├── key_silver.md3 │ │ ├── key_silver.tga │ │ ├── key_silver_snake.tga │ │ ├── keycard-b.md3 │ │ ├── keycard-b.tga │ │ ├── keycard-g.md3 │ │ ├── keycard-g.tga │ │ ├── keycard-r.md3 │ │ ├── keycard-r.tga │ │ ├── keycard-y.md3 │ │ ├── keycard-y.tga │ │ ├── vector-b.tga │ │ ├── vector-g.tga │ │ ├── vector-r.tga │ │ └── vector-y.tga │ ├── scripts │ ├── entities.def │ ├── entityplus.shader │ ├── ep_example.arena │ ├── ep_example.shader │ └── shaderlist.txt │ ├── sound │ ├── items │ │ ├── key_01+02.wav │ │ └── keycard_03.wav │ └── misc │ │ └── objective_update_01.wav │ └── textures │ └── common │ └── ladderclip.tga ├── bin ├── lcc.exe ├── q3asm.exe ├── q3cpp.exe └── q3rcc.exe ├── code ├── EntityPlus.dsw ├── EntityPlus.sln ├── EntityPlus_VS2008.sln ├── buildall.bat ├── cgame │ ├── cg_consolecmds.c │ ├── cg_draw.c │ ├── cg_drawtools.c │ ├── cg_effects.c │ ├── cg_ents.c │ ├── cg_event.c │ ├── cg_info.c │ ├── cg_local.h │ ├── cg_localents.c │ ├── cg_main.c │ ├── cg_marks.c │ ├── cg_newdraw.c │ ├── cg_particles.c │ ├── cg_players.c │ ├── cg_playerstate.c │ ├── cg_predict.c │ ├── cg_public.h │ ├── cg_scoreboard.c │ ├── cg_servercmds.c │ ├── cg_snapshot.c │ ├── cg_syscalls.asm │ ├── cg_syscalls.c │ ├── cg_view.c │ ├── cg_weapons.c │ ├── cgame.bat │ ├── cgame.def │ ├── cgame.dsp │ ├── cgame.q3asm │ ├── cgame.vcproj │ ├── cgame.vcxproj │ ├── cgame.vcxproj.filters │ ├── cgame_ta.bat │ ├── cgame_ta.q3asm │ ├── tr_types.h │ └── vm │ │ ├── q3asm.exe │ │ ├── q3cpp.exe │ │ └── q3rcc.exe ├── game │ ├── ai_chat.c │ ├── ai_chat.h │ ├── ai_cmd.c │ ├── ai_cmd.h │ ├── ai_dmnet.c │ ├── ai_dmnet.h │ ├── ai_dmq3.c │ ├── ai_dmq3.h │ ├── ai_main.c │ ├── ai_main.h │ ├── ai_team.c │ ├── ai_team.h │ ├── ai_vcmd.c │ ├── ai_vcmd.h │ ├── be_aas.h │ ├── be_ai_char.h │ ├── be_ai_chat.h │ ├── be_ai_gen.h │ ├── be_ai_goal.h │ ├── be_ai_move.h │ ├── be_ai_weap.h │ ├── be_ea.h │ ├── bg_lib.c │ ├── bg_lib.h │ ├── bg_local.h │ ├── bg_misc.c │ ├── bg_pmove.c │ ├── bg_public.h │ ├── bg_slidemove.c │ ├── botlib.h │ ├── chars.h │ ├── g_active.c │ ├── g_arenas.c │ ├── g_bot.c │ ├── g_client.c │ ├── g_cmds.c │ ├── g_combat.c │ ├── g_items.c │ ├── g_local.h │ ├── g_main.c │ ├── g_mem.c │ ├── g_misc.c │ ├── g_missile.c │ ├── g_mover.c │ ├── g_public.h │ ├── g_rankings.c │ ├── g_rankings.h │ ├── g_session.c │ ├── g_spawn.c │ ├── g_svcmds.c │ ├── g_syscalls.asm │ ├── g_syscalls.c │ ├── g_target.c │ ├── g_team.c │ ├── g_team.h │ ├── g_trigger.c │ ├── g_utils.c │ ├── g_weapon.c │ ├── game.bat │ ├── game.def │ ├── game.dsp │ ├── game.q3asm │ ├── game.vcproj │ ├── game.vcxproj │ ├── game.vcxproj.filters │ ├── game_ta.bat │ ├── game_ta.q3asm │ ├── inv.h │ ├── match.h │ ├── q_math.c │ ├── q_shared.c │ ├── q_shared.h │ ├── surfaceflags.h │ ├── syn.h │ └── vm │ │ ├── q3asm.exe │ │ ├── q3cpp.exe │ │ └── q3rcc.exe ├── q3_ui │ ├── keycodes.h │ ├── q3_ui.bat │ ├── q3_ui.dsp │ ├── q3_ui.q3asm │ ├── q3_ui.vcproj │ ├── q3_ui.vcxproj │ ├── q3_ui.vcxproj.filters │ ├── ui.def │ ├── ui.q3asm │ ├── ui_addbots.c │ ├── ui_atoms.c │ ├── ui_cdkey.c │ ├── ui_cinematics.c │ ├── ui_confirm.c │ ├── ui_connect.c │ ├── ui_controls2.c │ ├── ui_credits.c │ ├── ui_demo2.c │ ├── ui_display.c │ ├── ui_epmenu.c │ ├── ui_gameinfo.c │ ├── ui_ingame.c │ ├── ui_loadconfig.c │ ├── ui_local.h │ ├── ui_login.c │ ├── ui_main.c │ ├── ui_menu.c │ ├── ui_mfield.c │ ├── ui_mods.c │ ├── ui_mutators.c │ ├── ui_network.c │ ├── ui_options.c │ ├── ui_playermodel.c │ ├── ui_players.c │ ├── ui_playersettings.c │ ├── ui_preferences.c │ ├── ui_qmenu.c │ ├── ui_rankings.c │ ├── ui_rankstatus.c │ ├── ui_removebots.c │ ├── ui_saveconfig.c │ ├── ui_scores.c │ ├── ui_serverinfo.c │ ├── ui_servers2.c │ ├── ui_setup.c │ ├── ui_signup.c │ ├── ui_sound.c │ ├── ui_sparena.c │ ├── ui_specifyleague.c │ ├── ui_specifyserver.c │ ├── ui_splevel.c │ ├── ui_sppostgame.c │ ├── ui_spreset.c │ ├── ui_spskill.c │ ├── ui_startserver.c │ ├── ui_team.c │ ├── ui_teamorders.c │ ├── ui_video.c │ └── vm │ │ ├── q3asm.exe │ │ ├── q3cpp.exe │ │ └── q3rcc.exe └── ui │ ├── keycodes.h │ ├── ui.bat │ ├── ui.def │ ├── ui.dsp │ ├── ui.q3asm │ ├── ui.vcproj │ ├── ui.vcxproj │ ├── ui.vcxproj.filters │ ├── ui_atoms.c │ ├── ui_gameinfo.c │ ├── ui_local.h │ ├── ui_main.c │ ├── ui_players.c │ ├── ui_public.h │ ├── ui_shared.c │ ├── ui_shared.h │ ├── ui_syscalls.asm │ ├── ui_syscalls.c │ └── ui_util.c ├── entitydefinitionconverter ├── BaseIO.cs ├── BaseReader.cs ├── BaseWriter.cs ├── Entity.cs ├── EntityDefinitionsConverter.cs ├── Key.cs ├── KeyGroup.cs ├── KeyTypes │ ├── default.xml │ └── entityplus.xml ├── Program.cs ├── Properties │ └── AssemblyInfo.cs ├── Reader14.cs ├── Spawnflag.cs ├── Writer15.cs ├── edc.csproj ├── edc.sln └── readme.txt ├── minversiontool ├── Entity.cs ├── MinVersionTool.cs ├── Program.cs ├── Properties │ └── AssemblyInfo.cs ├── mvt.csproj ├── mvt.sln └── readme.txt └── ui ├── addfilter.menu ├── botselection.menu ├── cdkey.menu ├── chip.menu ├── cinematic.menu ├── cinematicmenu.menu ├── connect.menu ├── controls.menu ├── controls2.menu ├── createfavorite.menu ├── createserver.menu ├── credit.menu ├── default.menu ├── demo.menu ├── demo_quit.menu ├── endofgame.menu ├── endofgame2.menu ├── error.menu ├── fight.menu ├── filter.menu ├── findplayer.menu ├── help.menu ├── help2.menu ├── hud.menu ├── hud.txt ├── hud2.txt ├── hud_old.menu ├── ingame.menu ├── ingame.txt ├── ingame_about.menu ├── ingame_addbot.menu ├── ingame_callvote.menu ├── ingame_callvote2.menu ├── ingame_controls.menu ├── ingame_join.menu ├── ingame_leave.menu ├── ingame_options.menu ├── ingame_orders.menu ├── ingame_orders2.menu ├── ingame_player.menu ├── ingame_scoreffa.menu ├── ingame_serverinfo.menu ├── ingame_system.menu ├── ingame_vote.menu ├── ingame_vote2.menu ├── joinserver.menu ├── main.menu ├── main2.menu ├── menudef.h ├── menus.txt ├── min_hud.menu ├── mod.menu ├── newleague.menu ├── options.menu ├── ordershelp.menu ├── password.menu ├── player.menu ├── powerup.menu ├── powerup2.menu ├── punkbuster.menu ├── quake3.menu ├── quit.menu ├── quitcredit.menu ├── rankings.menu ├── resetscore.menu ├── score.menu ├── score_results.menu ├── serverinfo.menu ├── serverinfo_old.menu ├── setup.menu ├── skirmish.menu ├── small.menu ├── system.menu ├── team.menu ├── teamscore.menu ├── testhud.menu └── vid_restart.menu /.gitignore: -------------------------------------------------------------------------------- 1 | code/q3_ui/Release/ 2 | code/game/Release/ 3 | code/game/Debug/ 4 | code/cgame/Release/ 5 | code/cgame/Debug/ 6 | code/q3_ui/Debug/ 7 | code/.vs/ 8 | code/game/*.user 9 | code/cgame/*.user 10 | code/q3_ui/*.user 11 | *.sdf 12 | *.opensdf 13 | code/*/vm/ 14 | code/Release/ 15 | code/.vs/EntityPlus/v14/.suo 16 | minversiontool/bin/ 17 | minversiontool/.vs/ 18 | minversiontool/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache 19 | minversiontool/obj/ 20 | minversiontool/mvt.csproj.user 21 | 22 | entitydefinitionconverter/.vs/edc/v16/.suo 23 | 24 | entitydefinitionconverter/obj/ 25 | 26 | entitydefinitionconverter/obj/ 27 | 28 | entitydefinitionconverter/bin/ 29 | 30 | entitydefinitionconverter/edc.csproj.user -------------------------------------------------------------------------------- /QIIIA Game Source License.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/QIIIA Game Source License.doc -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # EntityPlus 2 | EntityPlus is a mod that offers a true single player experience in the Quake III Arena videogame. The term "single player" here is used to describe an experience more akin to the single player games of Quake or Quake 2 than Quake 3's own single player bot matches. To facilitate this, EntityPlus implements a lot of features that are strictly aimed at single player gameplay. 3 | 4 | News and information about new features will be reported to our [Twitter feed](https://twitter.com/#!/EntityPlus) as they are implemented. This offers a sneak peek into new features the next release of the mod will have. 5 | 6 | 7 | ## Downloads 8 | 9 | If you're going to play EntityPlus, you have to download the EntityPlus mod: 10 | * [EntityPlus v1.1.11](https://github.com/TheEnginesOfCreation/EntityPlus/releases/tag/1.1.11) 11 | 12 | To add a little variety to the mix, download these custom maps: 13 | * [Carmack Fortress map by deqer](https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/entityplus/krep1.zip) (29.1MB) 14 | * [Testing Procedures map by Eraser](http://www.theenginesofcreation.com/content.php?id=addons/ep_procedures) (33.6MB) 15 | * [Survival map by Eraser](http://www.theenginesofcreation.com/content.php?id=addons/ep_survival) (12.1MB) 16 | * [Duckhunt mappack by Eraser](http://www.theenginesofcreation.com/content.php?id=addons/ep_duckhunt) (696KB) 17 | * [Shipyard 17 map by Martinus](http://www.quake3world.com/forum/viewtopic.php?f=10&t=51412) (56.9MB) 18 | * [Dissent Breach map by Eraser](http://www.theenginesofcreation.com/content.php?id=addons/ep_dissent) (29MB) 19 | * [Castle Wolfenstein map by Eraser](http://www.theenginesofcreation.com/content.php?id=addons/ep_wolf3d) (3MB) 20 | * [The Dimension of Evil map by Eraser](http://www.theenginesofcreation.com/content.php?id=addons/ep_evil) (39MB) 21 | 22 | If you're a level designer, you might be interested in the following downloads: 23 | * [The manual for v1.1.11](https://github.com/TheEnginesOfCreation/EntityPlus/releases/download/1.1.11/manual-1.1.11.pdf) (note: the manual is also included with the mod itself) 24 | * [MinversionTool 1.1.11.0](https://github.com/TheEnginesOfCreation/EntityPlus/releases/download/1.1.11/minversiontool-1.1.11.0.zip) to help you determine what the minimum requirements for your map are (note: requires the .NET Framework 3.5 or newer) 25 | 26 | ## GtkRadiant 1.5 users 27 | If you're a level designer who is using GtkRadiant 1.5, then you may want to download the EntityPlus entities.ent file (the entities.def file for GtkRadiant 1.4/1.6 is included with the mod). 28 | * [entities.ent for v1.1.11](https://github.com/TheEnginesOfCreation/EntityPlus/releases/download/1.1.11/entities.ent) 29 | 30 | When using GtkRadiant 1.5/NetRadiant, perform the following steps to make GtkRadiant usable for EntityPlus: 31 | * Add an "entityplus" folder to the q3.game folder 32 | * Copy "default_shaderlist.txt" from the q3.game/baseq3 folder to the q3.game/entityplus folder 33 | * Open the copied "default_shaderlist.txt" with a text editor and add "entityplus" on a new line at the end of the file and save it. 34 | * Make a backup copy of the "entities.ent" in the q3.game/baseq3 folder. 35 | * Put the downloaded entities.ent for EntityPlus in the q3.game/baseq3 folder. 36 | * Configure GtkRadiant to use a custom modification folder named "entityplus". 37 | 38 | ## Features 39 | 40 | To view a complete list of features added to EntityPlus, download [the manual](https://github.com/TheEnginesOfCreation/EntityPlus/releases/download/1.1.11/manual-1.1.11.pdf). Additional information about each release can be found on the [EntityPlus wiki page](https://github.com/TheEnginesOfCreation/EntityPlus/blob/wiki/Index.md). 41 | 42 | ## Example map 43 | The release package of EntityPlus contains an example map which demonstrates a number of the features found in EntityPlus. It is based on an old classic map that everyone that played Quake 3 will instantly recognize. Don't get too comfy though, because this time you'll be fighting through piles of enemy guards to uncover a secret that you never knew was there and escape to safety. The map can be found in the single player menu. 44 | -------------------------------------------------------------------------------- /assets/entityplus.bat: -------------------------------------------------------------------------------- 1 | start quake3.exe +set fs_game entityplus +set sv_pure 0 2 | exit -------------------------------------------------------------------------------- /assets/entityplus/description.txt: -------------------------------------------------------------------------------- 1 | EntityPlus -------------------------------------------------------------------------------- /assets/entityplus/docs/entityplus-assets.txt: -------------------------------------------------------------------------------- 1 | All EntityPlus assets (files contained in the "assets" folder) not covered by any of the other text files in this folder ("docs") are distributed under a Creative Commons BY-NC license (http://creativecommons.org/licenses/by-nc/4.0/) -------------------------------------------------------------------------------- /assets/entityplus/docs/entityplus-backpack & debris models.txt: -------------------------------------------------------------------------------- 1 | ====================================================================== 2 | 3 | Entity Plus Mod for Quake 3 Arena 4 | 5 | Backpack & Debris Models 6 | By Victor "DaEngineer" Karp 7 | 8 | June 5, 2011 (first backpack version and debris models) 9 | December 13, 2021 (new backpack) 10 | https://victorkarp.com 11 | 12 | ====================================================================== 13 | 14 | 15 | A backpack model and various debris models for Eraser's Entity Plus mod for 16 | Quake 3 Arena with accompanying textures. Backpack texture based on photos 17 | made by Obsidian. 18 | 19 | concrete_b1.md3 20 | concrete_b1_large.md3 21 | concrete_b2.md3 22 | concrete_b2_large.md3 23 | concrete_b3.md3 24 | concrete_b3_large.md3 25 | concrete_b4.md3 26 | concrete_b5.md3 27 | concrete_b6.md3 28 | concrete_b7.md3 29 | concrete_b8.md3 30 | concrete_d1.md3 31 | concrete_d1_large.md3 32 | concrete_d2.md3 33 | concrete_d2_large.md3 34 | concrete_d3.md3 35 | concrete_d3_large.md3 36 | concrete_d4.md3 37 | concrete_d5.md3 38 | concrete_d6.md3 39 | concrete_d7.md3 40 | concrete_d8.md3 41 | 42 | glass_1.md3 43 | glass_1_large.md3 44 | glass_2.md3 45 | glass_2_large.md3 46 | glass_3.md3 47 | glass_3_large.md3 48 | glass_4.md3 49 | glass_4_large.md3 50 | glass_5.md3 51 | glass_5_large.md3 52 | 53 | wood_b1.md3 54 | wood_b2.md3 55 | wood_b3.md3 56 | wood_b4.md3 57 | wood_b5.md3 58 | 59 | 60 | ====================================================================== 61 | This work is licensed under a Creative Commons Attribution- 62 | NonCommercial-ShareAlike 3.0 Unported License. 63 | 64 | http://creativecommons.org/licenses/by-nc-sa/3.0/ 65 | 66 | Additionally, this work may only be distributed electronically and 67 | must include this .txt file. 68 | 69 | Don't steal and claim as your own, is all I'm saying. Please contact 70 | me if creating derivative works or if you have questions. 71 | ====================================================================== 72 | -------------------------------------------------------------------------------- /assets/entityplus/docs/entityplus-keycard.txt: -------------------------------------------------------------------------------- 1 | ====================================================================== 2 | 3 | Entity Plus Mod for Quake 3 Arena 4 | 5 | Keycard Models v1.0 6 | By Obsidian 7 | 8 | April 16, 2011 9 | http://robotrenegade.com 10 | obsidian@robotrenegade.com 11 | 12 | ====================================================================== 13 | 14 | 15 | A set of four .md3 keycard models for Eraser's Entity Plus mod for 16 | Quake 3 Arena with accompanying textures and shaders. 17 | 18 | * keycard-b (blue) 19 | * keycard-g (green) 20 | * keycard-r (red) 21 | * keycard-y (yellow) 22 | 23 | 24 | 25 | 26 | ====================================================================== 27 | This work is licensed under a Creative Commons Attribution- 28 | NonCommercial-ShareAlike 3.0 Unported License. 29 | 30 | http://creativecommons.org/licenses/by-nc-sa/3.0/ 31 | 32 | Additionally, this work may only be distributed electronically and 33 | must include this .txt file. 34 | 35 | Don't steal and claim as your own, is all I'm saying. Please contact 36 | me if creating derivative works or if you have questions. 37 | ====================================================================== -------------------------------------------------------------------------------- /assets/entityplus/docs/entityplus-logo.txt: -------------------------------------------------------------------------------- 1 | ENTITY PLUS LOGO MODEL (ALPHA) 2 | By Obsidian @ RobotRenegade.com 3 | 4 | Logo for Entity Plus mod menu system for Quake 3 Arena. 5 | 6 | 7 | 8 | VERSION HISTORY: 9 | 10 | 0.01a (2011-12-13) 11 | - Alpha stand-in model for testing purposes. -------------------------------------------------------------------------------- /assets/entityplus/docs/entityplus-sfx.txt: -------------------------------------------------------------------------------- 1 | Entity Plus Mod 2 | 3 | Sound files for keys, keycards and objective updates 4 | By Patrick "Scout" Schotte 5 | June 06, 2011 6 | 7 | thescout@gmx.de 8 | 9 | --------------------------------------------------------------------- 10 | 11 | these are eight sounds for Eraser's Entity Plus mod 12 | 13 | -key_01.wav 14 | -key_01+02.wav 15 | -key_02.wav 16 | 17 | -keycard_01.wav 18 | -keycard_02.wav 19 | 20 | -objective_update_01.wav 21 | -objective_update_02.wav 22 | -objective_update_03.wav 23 | 24 | All files are in 16bit mono for Quake 3 Arena compatibility 25 | 26 | --------------------------------------------------------------------- 27 | 28 | This is an update of the soundpack for Eraser's Entity Plus mod. 29 | Included are three sounds: 30 | 31 | -keycard_01.wav 32 | -keycard_03.wav 33 | 34 | -objective_update_01.wav 35 | 36 | What's new: 37 | 38 | -keycard_01 was shortened a bit 39 | -keycard_03, a new file combining the main elements of keycard_02 with 40 | the bass sound of the old keycard_01, was added 41 | -objective_update_01 was shortened to sound firm 42 | 43 | All files are in 16bit mono again for Quake 3 Arena compatibility 44 | 45 | --------------------------------------------------------------------- 46 | 47 | This work is licensed under a Creative Commons Attribution- 48 | NonCommercial-ShareAlike 3.0 Unported License. 49 | 50 | http://creativecommons.org/licenses/by-nc-sa/3.0/ 51 | 52 | These files may be electronically distributed only at 53 | no charge to the recipient in their current state, must 54 | include this .txt file, and may not be modified in 55 | any way. Under no circumstances are these files to be 56 | distributed on CD-ROM without prior written permission. -------------------------------------------------------------------------------- /assets/entityplus/docs/entityplus-skeletonkeys.txt: -------------------------------------------------------------------------------- 1 | ====================================================================== 2 | 3 | Entity Plus Mod for Quake 3 Arena 4 | 5 | Skeleton Key Models v1.0 6 | By Hipshot 7 | 8 | April 16, 2011 9 | http://www.zfight.com 10 | 11 | ====================================================================== 12 | 13 | 14 | Four different skeleton keys for Eraser's Entity Plus mod for 15 | Quake 3 Arena with accompanying textures and shaders. 16 | 17 | * master_key.md3 18 | * gold_key.md3 19 | * silver_key.md3 20 | * iron_key.md3 21 | 22 | * master_key.tga 23 | * gold_key.tga 24 | * silver_key.tga 25 | * iron_key.tga 26 | 27 | * master_key_snake.tga 28 | * gold_key_snake.tga 29 | * silver_key_snake.tga 30 | * iron_key_snake.tga 31 | 32 | 33 | ====================================================================== 34 | This work is licensed under a Creative Commons Attribution- 35 | NonCommercial-ShareAlike 3.0 Unported License. 36 | 37 | http://creativecommons.org/licenses/by-nc-sa/3.0/ 38 | 39 | Additionally, this work may only be distributed electronically and 40 | must include this .txt file. 41 | 42 | Don't steal and claim as your own, is all I'm saying. Please contact 43 | me if creating derivative works or if you have questions. 44 | ====================================================================== -------------------------------------------------------------------------------- /assets/entityplus/docs/manual.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/docs/manual.docx -------------------------------------------------------------------------------- /assets/entityplus/gfx/damage/bullet_mrk_paint.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/gfx/damage/bullet_mrk_paint.jpg -------------------------------------------------------------------------------- /assets/entityplus/gfx/damage/burn_med_mrk_paint.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/gfx/damage/burn_med_mrk_paint.jpg -------------------------------------------------------------------------------- /assets/entityplus/gfx/damage/hole_lg_mrk_paint.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/gfx/damage/hole_lg_mrk_paint.jpg -------------------------------------------------------------------------------- /assets/entityplus/gfx/damage/plasma_mrk_paint.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/gfx/damage/plasma_mrk_paint.jpg -------------------------------------------------------------------------------- /assets/entityplus/gfx/misc/spark.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/gfx/misc/spark.tga -------------------------------------------------------------------------------- /assets/entityplus/icons/icon_backpack.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/icons/icon_backpack.tga -------------------------------------------------------------------------------- /assets/entityplus/icons/iconr_green.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/icons/iconr_green.tga -------------------------------------------------------------------------------- /assets/entityplus/icons/key_blue.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/icons/key_blue.tga -------------------------------------------------------------------------------- /assets/entityplus/icons/key_gold.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/icons/key_gold.tga -------------------------------------------------------------------------------- /assets/entityplus/icons/key_green.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/icons/key_green.tga -------------------------------------------------------------------------------- /assets/entityplus/icons/key_iron.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/icons/key_iron.tga -------------------------------------------------------------------------------- /assets/entityplus/icons/key_master.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/icons/key_master.tga -------------------------------------------------------------------------------- /assets/entityplus/icons/key_red.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/icons/key_red.tga -------------------------------------------------------------------------------- /assets/entityplus/icons/key_silver.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/icons/key_silver.tga -------------------------------------------------------------------------------- /assets/entityplus/icons/key_yellow.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/icons/key_yellow.tga -------------------------------------------------------------------------------- /assets/entityplus/levelshots/ep_example.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/levelshots/ep_example.jpg -------------------------------------------------------------------------------- /assets/entityplus/menu/art/logo2.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/menu/art/logo2.tga -------------------------------------------------------------------------------- /assets/entityplus/menu/art/mainoverlay.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/menu/art/mainoverlay.tga -------------------------------------------------------------------------------- /assets/entityplus/menu/art/scores_0.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/menu/art/scores_0.tga -------------------------------------------------------------------------------- /assets/entityplus/menu/art/scores_1.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/menu/art/scores_1.tga -------------------------------------------------------------------------------- /assets/entityplus/menu/art/skill1.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/menu/art/skill1.tga -------------------------------------------------------------------------------- /assets/entityplus/menu/art/skill2.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/menu/art/skill2.tga -------------------------------------------------------------------------------- /assets/entityplus/menu/art/skill3.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/menu/art/skill3.tga -------------------------------------------------------------------------------- /assets/entityplus/menu/art/skill4.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/menu/art/skill4.tga -------------------------------------------------------------------------------- /assets/entityplus/menu/art/skill5.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/menu/art/skill5.tga -------------------------------------------------------------------------------- /assets/entityplus/menu/art/table.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/menu/art/table.tga -------------------------------------------------------------------------------- /assets/entityplus/menu/backgrounds/01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/menu/backgrounds/01.jpg -------------------------------------------------------------------------------- /assets/entityplus/menu/backgrounds/02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/menu/backgrounds/02.jpg -------------------------------------------------------------------------------- /assets/entityplus/menu/objectives/overlay.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/menu/objectives/overlay.tga -------------------------------------------------------------------------------- /assets/entityplus/menu/objectives/updated.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/menu/objectives/updated.tga -------------------------------------------------------------------------------- /assets/entityplus/models/debris/concrete_b1.md3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/debris/concrete_b1.md3 -------------------------------------------------------------------------------- /assets/entityplus/models/debris/concrete_b1_large.md3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/debris/concrete_b1_large.md3 -------------------------------------------------------------------------------- /assets/entityplus/models/debris/concrete_b2.md3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/debris/concrete_b2.md3 -------------------------------------------------------------------------------- /assets/entityplus/models/debris/concrete_b2_large.md3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/debris/concrete_b2_large.md3 -------------------------------------------------------------------------------- /assets/entityplus/models/debris/concrete_b3.md3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/debris/concrete_b3.md3 -------------------------------------------------------------------------------- /assets/entityplus/models/debris/concrete_b3_large.md3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/debris/concrete_b3_large.md3 -------------------------------------------------------------------------------- /assets/entityplus/models/debris/concrete_b4.md3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/debris/concrete_b4.md3 -------------------------------------------------------------------------------- /assets/entityplus/models/debris/concrete_b5.md3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/debris/concrete_b5.md3 -------------------------------------------------------------------------------- /assets/entityplus/models/debris/concrete_b6.md3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/debris/concrete_b6.md3 -------------------------------------------------------------------------------- /assets/entityplus/models/debris/concrete_b7.md3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/debris/concrete_b7.md3 -------------------------------------------------------------------------------- /assets/entityplus/models/debris/concrete_b8.md3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/debris/concrete_b8.md3 -------------------------------------------------------------------------------- /assets/entityplus/models/debris/concrete_d1.md3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/debris/concrete_d1.md3 -------------------------------------------------------------------------------- /assets/entityplus/models/debris/concrete_d1_large.md3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/debris/concrete_d1_large.md3 -------------------------------------------------------------------------------- /assets/entityplus/models/debris/concrete_d2.md3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/debris/concrete_d2.md3 -------------------------------------------------------------------------------- /assets/entityplus/models/debris/concrete_d2_large.md3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/debris/concrete_d2_large.md3 -------------------------------------------------------------------------------- /assets/entityplus/models/debris/concrete_d3.md3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/debris/concrete_d3.md3 -------------------------------------------------------------------------------- /assets/entityplus/models/debris/concrete_d3_large.md3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/debris/concrete_d3_large.md3 -------------------------------------------------------------------------------- /assets/entityplus/models/debris/concrete_d4.md3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/debris/concrete_d4.md3 -------------------------------------------------------------------------------- /assets/entityplus/models/debris/concrete_d5.md3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/debris/concrete_d5.md3 -------------------------------------------------------------------------------- /assets/entityplus/models/debris/concrete_d6.md3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/debris/concrete_d6.md3 -------------------------------------------------------------------------------- /assets/entityplus/models/debris/concrete_d7.md3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/debris/concrete_d7.md3 -------------------------------------------------------------------------------- /assets/entityplus/models/debris/concrete_d8.md3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/debris/concrete_d8.md3 -------------------------------------------------------------------------------- /assets/entityplus/models/debris/debris_stone.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/debris/debris_stone.jpg -------------------------------------------------------------------------------- /assets/entityplus/models/debris/debris_wood.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/debris/debris_wood.jpg -------------------------------------------------------------------------------- /assets/entityplus/models/debris/glass_1.md3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/debris/glass_1.md3 -------------------------------------------------------------------------------- /assets/entityplus/models/debris/glass_1_large.md3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/debris/glass_1_large.md3 -------------------------------------------------------------------------------- /assets/entityplus/models/debris/glass_2.md3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/debris/glass_2.md3 -------------------------------------------------------------------------------- /assets/entityplus/models/debris/glass_2_large.md3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/debris/glass_2_large.md3 -------------------------------------------------------------------------------- /assets/entityplus/models/debris/glass_3.md3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/debris/glass_3.md3 -------------------------------------------------------------------------------- /assets/entityplus/models/debris/glass_3_large.md3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/debris/glass_3_large.md3 -------------------------------------------------------------------------------- /assets/entityplus/models/debris/glass_4.md3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/debris/glass_4.md3 -------------------------------------------------------------------------------- /assets/entityplus/models/debris/glass_4_large.md3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/debris/glass_4_large.md3 -------------------------------------------------------------------------------- /assets/entityplus/models/debris/glass_5.md3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/debris/glass_5.md3 -------------------------------------------------------------------------------- /assets/entityplus/models/debris/glass_5_large.md3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/debris/glass_5_large.md3 -------------------------------------------------------------------------------- /assets/entityplus/models/debris/stone_1.md3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/debris/stone_1.md3 -------------------------------------------------------------------------------- /assets/entityplus/models/debris/stone_2.md3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/debris/stone_2.md3 -------------------------------------------------------------------------------- /assets/entityplus/models/debris/stone_3.md3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/debris/stone_3.md3 -------------------------------------------------------------------------------- /assets/entityplus/models/debris/stone_4.md3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/debris/stone_4.md3 -------------------------------------------------------------------------------- /assets/entityplus/models/debris/stone_5.md3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/debris/stone_5.md3 -------------------------------------------------------------------------------- /assets/entityplus/models/debris/wood_b1.md3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/debris/wood_b1.md3 -------------------------------------------------------------------------------- /assets/entityplus/models/debris/wood_b2.md3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/debris/wood_b2.md3 -------------------------------------------------------------------------------- /assets/entityplus/models/debris/wood_b3.md3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/debris/wood_b3.md3 -------------------------------------------------------------------------------- /assets/entityplus/models/debris/wood_b4.md3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/debris/wood_b4.md3 -------------------------------------------------------------------------------- /assets/entityplus/models/debris/wood_b5.md3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/debris/wood_b5.md3 -------------------------------------------------------------------------------- /assets/entityplus/models/entplus/logo/entpluslogo.md3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/entplus/logo/entpluslogo.md3 -------------------------------------------------------------------------------- /assets/entityplus/models/entplus/logo/materials/bigtext.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/entplus/logo/materials/bigtext.tga -------------------------------------------------------------------------------- /assets/entityplus/models/entplus/logo/materials/plusg.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/entplus/logo/materials/plusg.tga -------------------------------------------------------------------------------- /assets/entityplus/models/entplus/logo/materials/plusw.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/entplus/logo/materials/plusw.tga -------------------------------------------------------------------------------- /assets/entityplus/models/entplus/logo/materials/smalltext.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/entplus/logo/materials/smalltext.tga -------------------------------------------------------------------------------- /assets/entityplus/models/entplus/logo/materials/textw.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/entplus/logo/materials/textw.tga -------------------------------------------------------------------------------- /assets/entityplus/models/powerups/armor/armor_gre.md3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/powerups/armor/armor_gre.md3 -------------------------------------------------------------------------------- /assets/entityplus/models/powerups/armor/armor_gre_1.md3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/powerups/armor/armor_gre_1.md3 -------------------------------------------------------------------------------- /assets/entityplus/models/powerups/armor/armor_gre_2.md3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/powerups/armor/armor_gre_2.md3 -------------------------------------------------------------------------------- /assets/entityplus/models/powerups/armor/energy_gre1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/powerups/armor/energy_gre1.jpg -------------------------------------------------------------------------------- /assets/entityplus/models/powerups/armor/newgreen.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/powerups/armor/newgreen.tga -------------------------------------------------------------------------------- /assets/entityplus/models/powerups/backpack/backpack.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/powerups/backpack/backpack.jpg -------------------------------------------------------------------------------- /assets/entityplus/models/powerups/backpack/backpack.md3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/powerups/backpack/backpack.md3 -------------------------------------------------------------------------------- /assets/entityplus/models/powerups/backpack/backpack_fx.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/powerups/backpack/backpack_fx.jpg -------------------------------------------------------------------------------- /assets/entityplus/models/powerups/keys/envmap-b.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/powerups/keys/envmap-b.tga -------------------------------------------------------------------------------- /assets/entityplus/models/powerups/keys/envmap-g.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/powerups/keys/envmap-g.tga -------------------------------------------------------------------------------- /assets/entityplus/models/powerups/keys/envmap-r.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/powerups/keys/envmap-r.tga -------------------------------------------------------------------------------- /assets/entityplus/models/powerups/keys/envmap-y.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/powerups/keys/envmap-y.tga -------------------------------------------------------------------------------- /assets/entityplus/models/powerups/keys/key_gold.md3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/powerups/keys/key_gold.md3 -------------------------------------------------------------------------------- /assets/entityplus/models/powerups/keys/key_gold.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/powerups/keys/key_gold.tga -------------------------------------------------------------------------------- /assets/entityplus/models/powerups/keys/key_gold_snake.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/powerups/keys/key_gold_snake.tga -------------------------------------------------------------------------------- /assets/entityplus/models/powerups/keys/key_iron.md3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/powerups/keys/key_iron.md3 -------------------------------------------------------------------------------- /assets/entityplus/models/powerups/keys/key_iron.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/powerups/keys/key_iron.tga -------------------------------------------------------------------------------- /assets/entityplus/models/powerups/keys/key_iron_snake.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/powerups/keys/key_iron_snake.tga -------------------------------------------------------------------------------- /assets/entityplus/models/powerups/keys/key_master.md3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/powerups/keys/key_master.md3 -------------------------------------------------------------------------------- /assets/entityplus/models/powerups/keys/key_master.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/powerups/keys/key_master.tga -------------------------------------------------------------------------------- /assets/entityplus/models/powerups/keys/key_master_snake.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/powerups/keys/key_master_snake.tga -------------------------------------------------------------------------------- /assets/entityplus/models/powerups/keys/key_silver.md3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/powerups/keys/key_silver.md3 -------------------------------------------------------------------------------- /assets/entityplus/models/powerups/keys/key_silver.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/powerups/keys/key_silver.tga -------------------------------------------------------------------------------- /assets/entityplus/models/powerups/keys/key_silver_snake.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/powerups/keys/key_silver_snake.tga -------------------------------------------------------------------------------- /assets/entityplus/models/powerups/keys/keycard-b.md3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/powerups/keys/keycard-b.md3 -------------------------------------------------------------------------------- /assets/entityplus/models/powerups/keys/keycard-b.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/powerups/keys/keycard-b.tga -------------------------------------------------------------------------------- /assets/entityplus/models/powerups/keys/keycard-g.md3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/powerups/keys/keycard-g.md3 -------------------------------------------------------------------------------- /assets/entityplus/models/powerups/keys/keycard-g.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/powerups/keys/keycard-g.tga -------------------------------------------------------------------------------- /assets/entityplus/models/powerups/keys/keycard-r.md3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/powerups/keys/keycard-r.md3 -------------------------------------------------------------------------------- /assets/entityplus/models/powerups/keys/keycard-r.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/powerups/keys/keycard-r.tga -------------------------------------------------------------------------------- /assets/entityplus/models/powerups/keys/keycard-y.md3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/powerups/keys/keycard-y.md3 -------------------------------------------------------------------------------- /assets/entityplus/models/powerups/keys/keycard-y.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/powerups/keys/keycard-y.tga -------------------------------------------------------------------------------- /assets/entityplus/models/powerups/keys/vector-b.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/powerups/keys/vector-b.tga -------------------------------------------------------------------------------- /assets/entityplus/models/powerups/keys/vector-g.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/powerups/keys/vector-g.tga -------------------------------------------------------------------------------- /assets/entityplus/models/powerups/keys/vector-r.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/powerups/keys/vector-r.tga -------------------------------------------------------------------------------- /assets/entityplus/models/powerups/keys/vector-y.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/models/powerups/keys/vector-y.tga -------------------------------------------------------------------------------- /assets/entityplus/scripts/ep_example.arena: -------------------------------------------------------------------------------- 1 | { 2 | map "ep_example" 3 | longname "Temple Escape" 4 | author "Eraser" 5 | description "Fight your way out of this dangerous but strangely familiar temple. Discover the secret it hides that will aid you in your escape." 6 | type "entityplus" 7 | minversion "1.0" 8 | } 9 | -------------------------------------------------------------------------------- /assets/entityplus/scripts/ep_example.shader: -------------------------------------------------------------------------------- 1 | // 2 | // EP_EXAMPLE.MAP 3 | // 4 | 5 | textures/ep_example/lavahelldark 6 | { 7 | qer_editorimage textures/liquids/lavahell.tga 8 | q3map_globaltexture 9 | surfaceparm trans 10 | surfaceparm nonsolid 11 | surfaceparm noimpact 12 | surfaceparm nolightmap 13 | q3map_surfacelight 150 14 | cull disable 15 | 16 | tesssize 128 17 | cull disable 18 | deformVertexes wave 100 sin 3 2 .1 0.1 19 | 20 | { 21 | map textures/liquids/lavahell.tga 22 | tcMod turb 0 .2 0 .1 23 | } 24 | } -------------------------------------------------------------------------------- /assets/entityplus/scripts/shaderlist.txt: -------------------------------------------------------------------------------- 1 | //**********************************************************************// 2 | // shaderlist.txt modified for Q3Radiant // 3 | // by Eutectic - 13 May 2000 // 4 | // // 5 | // Rev history: // 6 | // 08/11/2000 7 | // TTimo - changed liquid to liquids and sky to skies for better // 8 | // consistency with the directories and actual shader names // 9 | // // 10 | // Added the names of the new shader files created as a result // 11 | // of the cleanup of the old shader files so Q3Radiant will read // 12 | // and display all the shaders in the texture window. // 13 | // // 14 | // SHADER FILE NAMES ADDED: // 15 | // base_door // 16 | // gothic_button // 17 | // gothic_door // 18 | //**********************************************************************// 19 | 20 | // this file lists all the separate shader files 21 | base_button 22 | base_door 23 | base_floor 24 | base_light 25 | base_object 26 | base_support 27 | base_trim 28 | base_wall 29 | common 30 | ctf 31 | gothic_block 32 | gothic_button 33 | gothic_cath 34 | gothic_ceiling 35 | gothic_door 36 | gothic_floor 37 | gothic_light 38 | gothic_trim 39 | gothic_wall 40 | liquids 41 | organics 42 | proto 43 | sfx 44 | skin 45 | skies 46 | entityplus -------------------------------------------------------------------------------- /assets/entityplus/sound/items/key_01+02.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/sound/items/key_01+02.wav -------------------------------------------------------------------------------- /assets/entityplus/sound/items/keycard_03.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/sound/items/keycard_03.wav -------------------------------------------------------------------------------- /assets/entityplus/sound/misc/objective_update_01.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/sound/misc/objective_update_01.wav -------------------------------------------------------------------------------- /assets/entityplus/textures/common/ladderclip.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/assets/entityplus/textures/common/ladderclip.tga -------------------------------------------------------------------------------- /bin/lcc.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/bin/lcc.exe -------------------------------------------------------------------------------- /bin/q3asm.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/bin/q3asm.exe -------------------------------------------------------------------------------- /bin/q3cpp.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/bin/q3cpp.exe -------------------------------------------------------------------------------- /bin/q3rcc.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/bin/q3rcc.exe -------------------------------------------------------------------------------- /code/EntityPlus.dsw: -------------------------------------------------------------------------------- 1 | Microsoft Developer Studio Workspace File, Format Version 6.00 2 | # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! 3 | 4 | ############################################################################### 5 | 6 | Project: "cgame"=".\cgame\cgame.dsp" - Package Owner=<4> 7 | 8 | Package=<5> 9 | {{{ 10 | }}} 11 | 12 | Package=<4> 13 | {{{ 14 | }}} 15 | 16 | ############################################################################### 17 | 18 | Project: "game"=".\game\game.dsp" - Package Owner=<4> 19 | 20 | Package=<5> 21 | {{{ 22 | }}} 23 | 24 | Package=<4> 25 | {{{ 26 | }}} 27 | 28 | ############################################################################### 29 | 30 | Project: "q3_ui"=".\q3_ui\q3_ui.dsp" - Package Owner=<4> 31 | 32 | Package=<5> 33 | {{{ 34 | }}} 35 | 36 | Package=<4> 37 | {{{ 38 | Begin Project Dependency 39 | Project_Dep_Name cgame 40 | End Project Dependency 41 | Begin Project Dependency 42 | Project_Dep_Name game 43 | End Project Dependency 44 | }}} 45 | 46 | ############################################################################### 47 | 48 | Project: "ui"=".\ui\ui.dsp" - Package Owner=<4> 49 | 50 | Package=<5> 51 | {{{ 52 | }}} 53 | 54 | Package=<4> 55 | {{{ 56 | Begin Project Dependency 57 | Project_Dep_Name cgame 58 | End Project Dependency 59 | Begin Project Dependency 60 | Project_Dep_Name game 61 | End Project Dependency 62 | }}} 63 | 64 | ############################################################################### 65 | 66 | Global: 67 | 68 | Package=<5> 69 | {{{ 70 | }}} 71 | 72 | Package=<3> 73 | {{{ 74 | }}} 75 | 76 | ############################################################################### 77 | 78 | -------------------------------------------------------------------------------- /code/EntityPlus.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 11.00 3 | # Visual Studio 2010 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cgame", "cgame\cgame.vcxproj", "{A1E7672D-4CE7-4904-83B1-E2C7413EB69C}" 5 | EndProject 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "game", "game\game.vcxproj", "{E2822B88-BE8A-4876-AC57-240C5B3D35EE}" 7 | EndProject 8 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "q3_ui", "q3_ui\q3_ui.vcxproj", "{56436ED2-5EC6-4468-A392-790D90E62C90}" 9 | EndProject 10 | Global 11 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 12 | Debug Alpha|Win32 = Debug Alpha|Win32 13 | Debug|Win32 = Debug|Win32 14 | Release Alpha|Win32 = Release Alpha|Win32 15 | Release|Win32 = Release|Win32 16 | vector|Win32 = vector|Win32 17 | EndGlobalSection 18 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 19 | {A1E7672D-4CE7-4904-83B1-E2C7413EB69C}.Debug Alpha|Win32.ActiveCfg = Debug TA|Win32 20 | {A1E7672D-4CE7-4904-83B1-E2C7413EB69C}.Debug Alpha|Win32.Build.0 = Debug TA|Win32 21 | {A1E7672D-4CE7-4904-83B1-E2C7413EB69C}.Debug|Win32.ActiveCfg = Debug|Win32 22 | {A1E7672D-4CE7-4904-83B1-E2C7413EB69C}.Debug|Win32.Build.0 = Debug|Win32 23 | {A1E7672D-4CE7-4904-83B1-E2C7413EB69C}.Release Alpha|Win32.ActiveCfg = Release TA|Win32 24 | {A1E7672D-4CE7-4904-83B1-E2C7413EB69C}.Release Alpha|Win32.Build.0 = Release TA|Win32 25 | {A1E7672D-4CE7-4904-83B1-E2C7413EB69C}.Release|Win32.ActiveCfg = Release|Win32 26 | {A1E7672D-4CE7-4904-83B1-E2C7413EB69C}.Release|Win32.Build.0 = Release|Win32 27 | {A1E7672D-4CE7-4904-83B1-E2C7413EB69C}.vector|Win32.ActiveCfg = Debug TA|Win32 28 | {A1E7672D-4CE7-4904-83B1-E2C7413EB69C}.vector|Win32.Build.0 = Debug TA|Win32 29 | {E2822B88-BE8A-4876-AC57-240C5B3D35EE}.Debug Alpha|Win32.ActiveCfg = Debug Alpha|Win32 30 | {E2822B88-BE8A-4876-AC57-240C5B3D35EE}.Debug Alpha|Win32.Build.0 = Debug Alpha|Win32 31 | {E2822B88-BE8A-4876-AC57-240C5B3D35EE}.Debug|Win32.ActiveCfg = Debug|Win32 32 | {E2822B88-BE8A-4876-AC57-240C5B3D35EE}.Debug|Win32.Build.0 = Debug|Win32 33 | {E2822B88-BE8A-4876-AC57-240C5B3D35EE}.Release Alpha|Win32.ActiveCfg = Release Alpha|Win32 34 | {E2822B88-BE8A-4876-AC57-240C5B3D35EE}.Release Alpha|Win32.Build.0 = Release Alpha|Win32 35 | {E2822B88-BE8A-4876-AC57-240C5B3D35EE}.Release|Win32.ActiveCfg = Release|Win32 36 | {E2822B88-BE8A-4876-AC57-240C5B3D35EE}.Release|Win32.Build.0 = Release|Win32 37 | {E2822B88-BE8A-4876-AC57-240C5B3D35EE}.vector|Win32.ActiveCfg = Release TA|Win32 38 | {E2822B88-BE8A-4876-AC57-240C5B3D35EE}.vector|Win32.Build.0 = Release TA|Win32 39 | {56436ED2-5EC6-4468-A392-790D90E62C90}.Debug Alpha|Win32.ActiveCfg = Debug TA|Win32 40 | {56436ED2-5EC6-4468-A392-790D90E62C90}.Debug Alpha|Win32.Build.0 = Debug TA|Win32 41 | {56436ED2-5EC6-4468-A392-790D90E62C90}.Debug|Win32.ActiveCfg = Debug|Win32 42 | {56436ED2-5EC6-4468-A392-790D90E62C90}.Debug|Win32.Build.0 = Debug|Win32 43 | {56436ED2-5EC6-4468-A392-790D90E62C90}.Release Alpha|Win32.ActiveCfg = Release TA|Win32 44 | {56436ED2-5EC6-4468-A392-790D90E62C90}.Release Alpha|Win32.Build.0 = Release TA|Win32 45 | {56436ED2-5EC6-4468-A392-790D90E62C90}.Release|Win32.ActiveCfg = Release|Win32 46 | {56436ED2-5EC6-4468-A392-790D90E62C90}.Release|Win32.Build.0 = Release|Win32 47 | {56436ED2-5EC6-4468-A392-790D90E62C90}.vector|Win32.ActiveCfg = Debug|Win32 48 | {56436ED2-5EC6-4468-A392-790D90E62C90}.vector|Win32.Build.0 = Debug|Win32 49 | EndGlobalSection 50 | GlobalSection(SolutionProperties) = preSolution 51 | HideSolutionNode = FALSE 52 | EndGlobalSection 53 | EndGlobal 54 | -------------------------------------------------------------------------------- /code/buildall.bat: -------------------------------------------------------------------------------- 1 | cd cgame 2 | call cgame.bat 3 | cd.. 4 | cd game 5 | call game.bat 6 | cd.. 7 | cd q3_ui 8 | call q3_ui.bat 9 | cd.. -------------------------------------------------------------------------------- /code/cgame/cg_info.c: -------------------------------------------------------------------------------- 1 | // Copyright (C) 1999-2000 Id Software, Inc. 2 | // 3 | // cg_info.c -- display information while data is being loading 4 | 5 | #include "cg_local.h" 6 | 7 | #define MAX_LOADING_PLAYER_ICONS 16 8 | #define MAX_LOADING_ITEM_ICONS 26 9 | 10 | static int loadingPlayerIconCount; 11 | static int loadingItemIconCount; 12 | static qhandle_t loadingPlayerIcons[MAX_LOADING_PLAYER_ICONS]; 13 | static qhandle_t loadingItemIcons[MAX_LOADING_ITEM_ICONS]; 14 | 15 | 16 | /* 17 | =================== 18 | CG_DrawLoadingIcons 19 | =================== 20 | */ 21 | static void CG_DrawLoadingIcons( void ) { 22 | int n; 23 | int x, y; 24 | 25 | for( n = 0; n < loadingPlayerIconCount; n++ ) { 26 | x = 16 + n * 78; 27 | y = 324-40; 28 | CG_DrawPic( x, y, 64, 64, loadingPlayerIcons[n] ); 29 | } 30 | 31 | for( n = 0; n < loadingItemIconCount; n++ ) { 32 | y = 400-40; 33 | if( n >= 13 ) { 34 | y += 40; 35 | } 36 | x = 16 + n % 13 * 48; 37 | CG_DrawPic( x, y, 32, 32, loadingItemIcons[n] ); 38 | } 39 | } 40 | 41 | 42 | /* 43 | ====================== 44 | CG_LoadingString 45 | 46 | ====================== 47 | */ 48 | void CG_LoadingString( const char *s ) { 49 | Q_strncpyz( cg.infoScreenText, s, sizeof( cg.infoScreenText ) ); 50 | 51 | trap_UpdateScreen(); 52 | } 53 | 54 | /* 55 | =================== 56 | CG_LoadingItem 57 | =================== 58 | */ 59 | void CG_LoadingItem( int itemNum ) { 60 | gitem_t *item; 61 | 62 | item = &bg_itemlist[itemNum]; 63 | 64 | if ( item->icon && loadingItemIconCount < MAX_LOADING_ITEM_ICONS ) { 65 | loadingItemIcons[loadingItemIconCount++] = trap_R_RegisterShaderNoMip( item->icon ); 66 | } 67 | 68 | CG_LoadingString( item->pickup_name ); 69 | } 70 | 71 | /* 72 | =================== 73 | CG_LoadingClient 74 | =================== 75 | */ 76 | void CG_LoadingClient( int clientNum ) { 77 | const char *info; 78 | char *skin; 79 | char personality[MAX_QPATH]; 80 | char model[MAX_QPATH]; 81 | char iconName[MAX_QPATH]; 82 | 83 | info = CG_ConfigString( CS_PLAYERS + clientNum ); 84 | 85 | if ( loadingPlayerIconCount < MAX_LOADING_PLAYER_ICONS ) { 86 | Q_strncpyz( model, Info_ValueForKey( info, "model" ), sizeof( model ) ); 87 | skin = Q_strrchr( model, '/' ); 88 | if ( skin ) { 89 | *skin++ = '\0'; 90 | } else { 91 | skin = "default"; 92 | } 93 | 94 | Com_sprintf( iconName, MAX_QPATH, "models/players/%s/icon_%s.tga", model, skin ); 95 | 96 | loadingPlayerIcons[loadingPlayerIconCount] = trap_R_RegisterShaderNoMip( iconName ); 97 | if ( !loadingPlayerIcons[loadingPlayerIconCount] ) { 98 | Com_sprintf( iconName, MAX_QPATH, "models/players/characters/%s/icon_%s.tga", model, skin ); 99 | loadingPlayerIcons[loadingPlayerIconCount] = trap_R_RegisterShaderNoMip( iconName ); 100 | } 101 | if ( !loadingPlayerIcons[loadingPlayerIconCount] ) { 102 | Com_sprintf( iconName, MAX_QPATH, "models/players/%s/icon_%s.tga", DEFAULT_MODEL, "default" ); 103 | loadingPlayerIcons[loadingPlayerIconCount] = trap_R_RegisterShaderNoMip( iconName ); 104 | } 105 | if ( loadingPlayerIcons[loadingPlayerIconCount] ) { 106 | loadingPlayerIconCount++; 107 | } 108 | } 109 | 110 | Q_strncpyz( personality, Info_ValueForKey( info, "n" ), sizeof(personality) ); 111 | Q_CleanStr( personality ); 112 | 113 | CG_LoadingString( personality ); 114 | } 115 | 116 | /* 117 | ==================== 118 | CG_DrawInformation 119 | 120 | Draw all the status / pacifier stuff during level loading 121 | ==================== 122 | */ 123 | void CG_DrawInformation( void ) { 124 | const char *s; 125 | const char *info; 126 | const char *sysInfo; 127 | int y; 128 | int value; 129 | qhandle_t levelshot; 130 | qhandle_t detail; 131 | char buf[1024]; 132 | 133 | return; 134 | } 135 | 136 | -------------------------------------------------------------------------------- /code/cgame/cg_syscalls.asm: -------------------------------------------------------------------------------- 1 | code 2 | 3 | equ trap_Print -1 4 | equ trap_Error -2 5 | equ trap_Milliseconds -3 6 | equ trap_Cvar_Register -4 7 | equ trap_Cvar_Update -5 8 | equ trap_Cvar_Set -6 9 | equ trap_Cvar_VariableStringBuffer -7 10 | equ trap_Argc -8 11 | equ trap_Argv -9 12 | equ trap_Args -10 13 | equ trap_FS_FOpenFile -11 14 | equ trap_FS_Read -12 15 | equ trap_FS_Write -13 16 | equ trap_FS_FCloseFile -14 17 | equ trap_SendConsoleCommand -15 18 | equ trap_AddCommand -16 19 | equ trap_SendClientCommand -17 20 | equ trap_UpdateScreen -18 21 | equ trap_CM_LoadMap -19 22 | equ trap_CM_NumInlineModels -20 23 | equ trap_CM_InlineModel -21 24 | equ trap_CM_LoadModel -22 25 | equ trap_CM_TempBoxModel -23 26 | equ trap_CM_PointContents -24 27 | equ trap_CM_TransformedPointContents -25 28 | equ trap_CM_BoxTrace -26 29 | equ trap_CM_TransformedBoxTrace -27 30 | equ trap_CM_MarkFragments -28 31 | equ trap_S_StartSound -29 32 | equ trap_S_StartLocalSound -30 33 | equ trap_S_ClearLoopingSounds -31 34 | equ trap_S_AddLoopingSound -32 35 | equ trap_S_UpdateEntityPosition -33 36 | equ trap_S_Respatialize -34 37 | equ trap_S_RegisterSound -35 38 | equ trap_S_StartBackgroundTrack -36 39 | equ trap_R_LoadWorldMap -37 40 | equ trap_R_RegisterModel -38 41 | equ trap_R_RegisterSkin -39 42 | equ trap_R_RegisterShader -40 43 | equ trap_R_ClearScene -41 44 | equ trap_R_AddRefEntityToScene -42 45 | equ trap_R_AddPolyToScene -43 46 | equ trap_R_AddLightToScene -44 47 | equ trap_R_RenderScene -45 48 | equ trap_R_SetColor -46 49 | equ trap_R_DrawStretchPic -47 50 | equ trap_R_ModelBounds -48 51 | equ trap_R_LerpTag -49 52 | equ trap_GetGlconfig -50 53 | equ trap_GetGameState -51 54 | equ trap_GetCurrentSnapshotNumber -52 55 | equ trap_GetSnapshot -53 56 | equ trap_GetServerCommand -54 57 | equ trap_GetCurrentCmdNumber -55 58 | equ trap_GetUserCmd -56 59 | equ trap_SetUserCmdValue -57 60 | equ trap_R_RegisterShaderNoMip -58 61 | equ trap_MemoryRemaining -59 62 | equ trap_R_RegisterFont -60 63 | equ trap_Key_IsDown -61 64 | equ trap_Key_GetCatcher -62 65 | equ trap_Key_SetCatcher -63 66 | equ trap_Key_GetKey -64 67 | equ trap_PC_AddGlobalDefine -65 68 | equ trap_PC_LoadSource -66 69 | equ trap_PC_FreeSource -67 70 | equ trap_PC_ReadToken -68 71 | equ trap_PC_SourceFileAndLine -69 72 | equ trap_S_StopBackgroundTrack -70 73 | equ trap_RealTime -71 74 | equ trap_SnapVector -72 75 | equ trap_RemoveCommand -73 76 | equ trap_R_LightForPoint -74 77 | equ trap_CIN_PlayCinematic -75 78 | equ trap_CIN_StopCinematic -76 79 | equ trap_CIN_RunCinematic -77 80 | equ trap_CIN_DrawCinematic -78 81 | equ trap_CIN_SetExtents -79 82 | equ trap_R_RemapShader -80 83 | equ trap_S_AddRealLoopingSound -81 84 | equ trap_S_StopLoopingSound -82 85 | equ trap_CM_TempCapsuleModel -83 86 | equ trap_CM_CapsuleTrace -84 87 | equ trap_CM_TransformedCapsuleTrace -85 88 | equ trap_R_AddAdditiveLightToScene -86 89 | equ trap_GetEntityToken -87 90 | equ trap_R_AddPolysToScene -88 91 | equ trap_R_inPVS -89 92 | equ trap_FS_Seek -90 93 | 94 | equ memset -101 95 | equ memcpy -102 96 | equ strncpy -103 97 | equ sin -104 98 | equ cos -105 99 | equ atan2 -106 100 | equ sqrt -107 101 | equ floor -108 102 | equ ceil -109 103 | equ testPrintInt -110 104 | equ testPrintFloat -111 105 | equ acos -112 106 | 107 | -------------------------------------------------------------------------------- /code/cgame/cgame.bat: -------------------------------------------------------------------------------- 1 | rem make sure we have a safe environement 2 | set LIBRARY= 3 | set INCLUDE= 4 | 5 | mkdir vm 6 | cd vm 7 | set cc=..\..\..\bin\lcc -DQ3_VM -DCGAME -S -Wf-target=bytecode -Wf-g -I..\..\cgame -I..\..\game -I..\..\q3_ui %1 8 | 9 | %cc% ../../game/bg_misc.c 10 | @if errorlevel 1 goto quit 11 | %cc% ../../game/bg_pmove.c 12 | @if errorlevel 1 goto quit 13 | %cc% ../../game/bg_slidemove.c 14 | @if errorlevel 1 goto quit 15 | %cc% ../../game/bg_lib.c 16 | @if errorlevel 1 goto quit 17 | %cc% ../../game/q_math.c 18 | @if errorlevel 1 goto quit 19 | %cc% ../../game/q_shared.c 20 | @if errorlevel 1 goto quit 21 | %cc% ../cg_consolecmds.c 22 | @if errorlevel 1 goto quit 23 | %cc% ../cg_draw.c 24 | @if errorlevel 1 goto quit 25 | %cc% ../cg_drawtools.c 26 | @if errorlevel 1 goto quit 27 | %cc% ../cg_effects.c 28 | @if errorlevel 1 goto quit 29 | %cc% ../cg_ents.c 30 | @if errorlevel 1 goto quit 31 | %cc% ../cg_event.c 32 | @if errorlevel 1 goto quit 33 | %cc% ../cg_info.c 34 | @if errorlevel 1 goto quit 35 | %cc% ../cg_localents.c 36 | @if errorlevel 1 goto quit 37 | %cc% ../cg_main.c 38 | @if errorlevel 1 goto quit 39 | %cc% ../cg_marks.c 40 | @if errorlevel 1 goto quit 41 | %cc% ../cg_players.c 42 | @if errorlevel 1 goto quit 43 | %cc% ../cg_playerstate.c 44 | @if errorlevel 1 goto quit 45 | %cc% ../cg_predict.c 46 | @if errorlevel 1 goto quit 47 | %cc% ../cg_scoreboard.c 48 | @if errorlevel 1 goto quit 49 | %cc% ../cg_servercmds.c 50 | @if errorlevel 1 goto quit 51 | %cc% ../cg_snapshot.c 52 | @if errorlevel 1 goto quit 53 | %cc% ../cg_view.c 54 | @if errorlevel 1 goto quit 55 | %cc% ../cg_weapons.c 56 | @if errorlevel 1 goto quit 57 | 58 | 59 | 60 | 61 | q3asm -f ../cgame 62 | :quit 63 | cd .. 64 | pause -------------------------------------------------------------------------------- /code/cgame/cgame.def: -------------------------------------------------------------------------------- 1 | EXPORTS 2 | vmMain 3 | dllEntry 4 | -------------------------------------------------------------------------------- /code/cgame/cgame.q3asm: -------------------------------------------------------------------------------- 1 | -o "\quake3\entityplus\vm\cgame" 2 | cg_main 3 | ..\cg_syscalls 4 | cg_consolecmds 5 | cg_draw 6 | cg_drawtools 7 | cg_effects 8 | cg_ents 9 | cg_event 10 | cg_info 11 | cg_localents 12 | cg_marks 13 | cg_players 14 | cg_playerstate 15 | cg_predict 16 | cg_scoreboard 17 | cg_servercmds 18 | cg_snapshot 19 | cg_view 20 | cg_weapons 21 | bg_slidemove 22 | bg_pmove 23 | bg_lib 24 | bg_misc 25 | q_math 26 | q_shared 27 | -------------------------------------------------------------------------------- /code/cgame/cgame.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {b1fc8250-6314-4da4-a12f-083dbaa631dd} 6 | c 7 | 8 | 9 | {047958a7-bb2e-4f63-85e4-e6842546c310} 10 | h 11 | 12 | 13 | 14 | 15 | Source Files 16 | 17 | 18 | Source Files 19 | 20 | 21 | Source Files 22 | 23 | 24 | Source Files 25 | 26 | 27 | Source Files 28 | 29 | 30 | Source Files 31 | 32 | 33 | Source Files 34 | 35 | 36 | Source Files 37 | 38 | 39 | Source Files 40 | 41 | 42 | Source Files 43 | 44 | 45 | Source Files 46 | 47 | 48 | Source Files 49 | 50 | 51 | Source Files 52 | 53 | 54 | Source Files 55 | 56 | 57 | Source Files 58 | 59 | 60 | Source Files 61 | 62 | 63 | Source Files 64 | 65 | 66 | Source Files 67 | 68 | 69 | Source Files 70 | 71 | 72 | Source Files 73 | 74 | 75 | Source Files 76 | 77 | 78 | Source Files 79 | 80 | 81 | Source Files 82 | 83 | 84 | Source Files 85 | 86 | 87 | Source Files 88 | 89 | 90 | Source Files 91 | 92 | 93 | Source Files 94 | 95 | 96 | 97 | 98 | Header Files 99 | 100 | 101 | Header Files 102 | 103 | 104 | Header Files 105 | 106 | 107 | Header Files 108 | 109 | 110 | Header Files 111 | 112 | 113 | 114 | 115 | 116 | -------------------------------------------------------------------------------- /code/cgame/cgame_ta.bat: -------------------------------------------------------------------------------- 1 | rem make sure we have a safe environement 2 | set LIBRARY= 3 | set INCLUDE= 4 | 5 | mkdir vm 6 | cd vm 7 | set cc=lcc -DQ3_VM -DMISSIONPACK -DCGAME -S -Wf-target=bytecode -Wf-g -I..\..\cgame -I..\..\game -I..\..\ui %1 8 | 9 | %cc% ../../game/bg_misc.c 10 | @if errorlevel 1 goto quit 11 | %cc% ../../game/bg_pmove.c 12 | @if errorlevel 1 goto quit 13 | %cc% ../../game/bg_slidemove.c 14 | @if errorlevel 1 goto quit 15 | %cc% ../../game/bg_lib.c 16 | @if errorlevel 1 goto quit 17 | %cc% ../../game/q_math.c 18 | @if errorlevel 1 goto quit 19 | %cc% ../../game/q_shared.c 20 | @if errorlevel 1 goto quit 21 | %cc% ../cg_consolecmds.c 22 | @if errorlevel 1 goto quit 23 | %cc% ../cg_draw.c 24 | @if errorlevel 1 goto quit 25 | %cc% ../cg_drawtools.c 26 | @if errorlevel 1 goto quit 27 | %cc% ../cg_effects.c 28 | @if errorlevel 1 goto quit 29 | %cc% ../cg_ents.c 30 | @if errorlevel 1 goto quit 31 | %cc% ../cg_event.c 32 | @if errorlevel 1 goto quit 33 | %cc% ../cg_info.c 34 | @if errorlevel 1 goto quit 35 | %cc% ../cg_localents.c 36 | @if errorlevel 1 goto quit 37 | %cc% ../cg_main.c 38 | @if errorlevel 1 goto quit 39 | %cc% ../cg_marks.c 40 | @if errorlevel 1 goto quit 41 | %cc% ../cg_players.c 42 | @if errorlevel 1 goto quit 43 | %cc% ../cg_playerstate.c 44 | @if errorlevel 1 goto quit 45 | %cc% ../cg_predict.c 46 | @if errorlevel 1 goto quit 47 | %cc% ../cg_scoreboard.c 48 | @if errorlevel 1 goto quit 49 | %cc% ../cg_servercmds.c 50 | @if errorlevel 1 goto quit 51 | %cc% ../cg_snapshot.c 52 | @if errorlevel 1 goto quit 53 | %cc% ../cg_view.c 54 | @if errorlevel 1 goto quit 55 | %cc% ../cg_weapons.c 56 | @if errorlevel 1 goto quit 57 | %cc% ../../ui/ui_shared.c 58 | @if errorlevel 1 goto quit 59 | %cc% ../cg_newdraw.c 60 | @if errorlevel 1 goto quit 61 | 62 | 63 | q3asm -f ../cgame_ta 64 | :quit 65 | cd .. 66 | -------------------------------------------------------------------------------- /code/cgame/cgame_ta.q3asm: -------------------------------------------------------------------------------- 1 | -o "\quake3\missionpack\vm\cgame" 2 | cg_main 3 | ..\cg_syscalls 4 | cg_consolecmds 5 | cg_draw 6 | cg_drawtools 7 | cg_effects 8 | cg_ents 9 | cg_event 10 | cg_info 11 | cg_localents 12 | cg_marks 13 | cg_players 14 | cg_playerstate 15 | cg_predict 16 | cg_scoreboard 17 | cg_servercmds 18 | cg_snapshot 19 | cg_view 20 | cg_weapons 21 | bg_slidemove 22 | bg_pmove 23 | bg_lib 24 | bg_misc 25 | q_math 26 | q_shared 27 | ui_shared 28 | cg_newdraw 29 | -------------------------------------------------------------------------------- /code/cgame/vm/q3asm.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/code/cgame/vm/q3asm.exe -------------------------------------------------------------------------------- /code/cgame/vm/q3cpp.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/code/cgame/vm/q3cpp.exe -------------------------------------------------------------------------------- /code/cgame/vm/q3rcc.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/code/cgame/vm/q3rcc.exe -------------------------------------------------------------------------------- /code/game/ai_chat.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 1999-2000 Id Software, Inc. 2 | // 3 | 4 | /***************************************************************************** 5 | * name: ai_chat.h 6 | * 7 | * desc: Quake3 bot AI 8 | * 9 | * $Archive: /source/code/botai/ai_chat.c $ 10 | * 11 | *****************************************************************************/ 12 | 13 | // time the selected chat takes to type in 14 | float BotChatTime(bot_state_t *bs); 15 | // returns true if the bot can chat at the current position 16 | int BotValidChatPosition(bot_state_t *bs); 17 | // test the initial bot chats 18 | void BotChatTest(bot_state_t *bs); 19 | 20 | -------------------------------------------------------------------------------- /code/game/ai_cmd.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 1999-2000 Id Software, Inc. 2 | // 3 | 4 | /***************************************************************************** 5 | * name: ai_cmd.h 6 | * 7 | * desc: Quake3 bot AI 8 | * 9 | * $Archive: /source/code/botai/ai_chat.c $ 10 | * 11 | *****************************************************************************/ 12 | 13 | extern int notleader[MAX_CLIENTS]; 14 | 15 | int BotMatchMessage(bot_state_t *bs, char *message); 16 | void BotPrintTeamGoal(bot_state_t *bs); 17 | 18 | -------------------------------------------------------------------------------- /code/game/ai_dmnet.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 1999-2000 Id Software, Inc. 2 | // 3 | 4 | /***************************************************************************** 5 | * name: ai_dmnet.h 6 | * 7 | * desc: Quake3 bot AI 8 | * 9 | * $Archive: /source/code/botai/ai_chat.c $ 10 | * 11 | *****************************************************************************/ 12 | 13 | #define MAX_NODESWITCHES 50 14 | 15 | void AIEnter_Intermission(bot_state_t *bs, char *s); 16 | void AIEnter_Observer(bot_state_t *bs, char *s); 17 | void AIEnter_Respawn(bot_state_t *bs, char *s); 18 | void AIEnter_Stand(bot_state_t *bs, char *s); 19 | void AIEnter_Seek_ActivateEntity(bot_state_t *bs, char *s); 20 | void AIEnter_Seek_NBG(bot_state_t *bs, char *s); 21 | void AIEnter_Seek_LTG(bot_state_t *bs, char *s); 22 | void AIEnter_Seek_Camp(bot_state_t *bs, char *s); 23 | void AIEnter_Battle_Fight(bot_state_t *bs, char *s); 24 | void AIEnter_Battle_Chase(bot_state_t *bs, char *s); 25 | void AIEnter_Battle_Retreat(bot_state_t *bs, char *s); 26 | void AIEnter_Battle_NBG(bot_state_t *bs, char *s); 27 | int AINode_Intermission(bot_state_t *bs); 28 | int AINode_Observer(bot_state_t *bs); 29 | int AINode_Respawn(bot_state_t *bs); 30 | int AINode_Stand(bot_state_t *bs); 31 | int AINode_Seek_ActivateEntity(bot_state_t *bs); 32 | int AINode_Seek_NBG(bot_state_t *bs); 33 | int AINode_Seek_LTG(bot_state_t *bs); 34 | int AINode_Battle_Fight(bot_state_t *bs); 35 | int AINode_Battle_Chase(bot_state_t *bs); 36 | int AINode_Battle_Retreat(bot_state_t *bs); 37 | int AINode_Battle_NBG(bot_state_t *bs); 38 | 39 | void BotResetNodeSwitches(void); 40 | void BotDumpNodeSwitches(bot_state_t *bs); 41 | 42 | -------------------------------------------------------------------------------- /code/game/ai_team.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 1999-2000 Id Software, Inc. 2 | // 3 | 4 | /***************************************************************************** 5 | * name: ai_team.h 6 | * 7 | * desc: Quake3 bot AI 8 | * 9 | * $Archive: /source/code/botai/ai_chat.c $ 10 | * 11 | *****************************************************************************/ 12 | 13 | void BotTeamAI(bot_state_t *bs); 14 | int BotGetTeamMateTaskPreference(bot_state_t *bs, int teammate); 15 | void BotSetTeamMateTaskPreference(bot_state_t *bs, int teammate, int preference); 16 | void BotVoiceChat(bot_state_t *bs, int toclient, char *voicechat); 17 | void BotVoiceChatOnly(bot_state_t *bs, int toclient, char *voicechat); 18 | 19 | 20 | -------------------------------------------------------------------------------- /code/game/ai_vcmd.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 1999-2000 Id Software, Inc. 2 | // 3 | 4 | /***************************************************************************** 5 | * name: ai_vcmd.h 6 | * 7 | * desc: Quake3 bot AI 8 | * 9 | * $Archive: /source/code/botai/ai_vcmd.c $ 10 | * 11 | *****************************************************************************/ 12 | 13 | int BotVoiceChatCommand(bot_state_t *bs, int mode, char *voicechat); 14 | void BotVoiceChat_Defend(bot_state_t *bs, int client, int mode); 15 | 16 | 17 | -------------------------------------------------------------------------------- /code/game/be_ai_char.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 1999-2000 Id Software, Inc. 2 | // 3 | 4 | /***************************************************************************** 5 | * name: be_ai_char.h 6 | * 7 | * desc: bot characters 8 | * 9 | * $Archive: /source/code/botlib/be_ai_char.h $ 10 | * 11 | *****************************************************************************/ 12 | 13 | //loads a bot character from a file 14 | int BotLoadCharacter(char *charfile, float skill); 15 | //frees a bot character 16 | void BotFreeCharacter(int character); 17 | //returns a float characteristic 18 | float Characteristic_Float(int character, int index); 19 | //returns a bounded float characteristic 20 | float Characteristic_BFloat(int character, int index, float min, float max); 21 | //returns an integer characteristic 22 | int Characteristic_Integer(int character, int index); 23 | //returns a bounded integer characteristic 24 | int Characteristic_BInteger(int character, int index, int min, int max); 25 | //returns a string characteristic 26 | void Characteristic_String(int character, int index, char *buf, int size); 27 | //free cached bot characters 28 | void BotShutdownCharacters(void); 29 | -------------------------------------------------------------------------------- /code/game/be_ai_chat.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 1999-2000 Id Software, Inc. 2 | // 3 | /***************************************************************************** 4 | * name: be_ai_chat.h 5 | * 6 | * desc: char AI 7 | * 8 | * $Archive: /source/code/botlib/be_ai_chat.h $ 9 | * 10 | *****************************************************************************/ 11 | 12 | #define MAX_MESSAGE_SIZE 256 13 | #define MAX_CHATTYPE_NAME 32 14 | #define MAX_MATCHVARIABLES 8 15 | 16 | #define CHAT_GENDERLESS 0 17 | #define CHAT_GENDERFEMALE 1 18 | #define CHAT_GENDERMALE 2 19 | 20 | #define CHAT_ALL 0 21 | #define CHAT_TEAM 1 22 | #define CHAT_TELL 2 23 | 24 | //a console message 25 | typedef struct bot_consolemessage_s 26 | { 27 | int handle; 28 | float time; //message time 29 | int type; //message type 30 | char message[MAX_MESSAGE_SIZE]; //message 31 | struct bot_consolemessage_s *prev, *next; //prev and next in list 32 | } bot_consolemessage_t; 33 | 34 | //match variable 35 | typedef struct bot_matchvariable_s 36 | { 37 | char offset; 38 | int length; 39 | } bot_matchvariable_t; 40 | //returned to AI when a match is found 41 | typedef struct bot_match_s 42 | { 43 | char string[MAX_MESSAGE_SIZE]; 44 | int type; 45 | int subtype; 46 | bot_matchvariable_t variables[MAX_MATCHVARIABLES]; 47 | } bot_match_t; 48 | 49 | //setup the chat AI 50 | int BotSetupChatAI(void); 51 | //shutdown the chat AI 52 | void BotShutdownChatAI(void); 53 | //returns the handle to a newly allocated chat state 54 | int BotAllocChatState(void); 55 | //frees the chatstate 56 | void BotFreeChatState(int handle); 57 | //adds a console message to the chat state 58 | void BotQueueConsoleMessage(int chatstate, int type, char *message); 59 | //removes the console message from the chat state 60 | void BotRemoveConsoleMessage(int chatstate, int handle); 61 | //returns the next console message from the state 62 | int BotNextConsoleMessage(int chatstate, bot_consolemessage_t *cm); 63 | //returns the number of console messages currently stored in the state 64 | int BotNumConsoleMessages(int chatstate); 65 | //selects a chat message of the given type 66 | void BotInitialChat(int chatstate, char *type, int mcontext, char *var0, char *var1, char *var2, char *var3, char *var4, char *var5, char *var6, char *var7); 67 | //returns the number of initial chat messages of the given type 68 | int BotNumInitialChats(int chatstate, char *type); 69 | //find and select a reply for the given message 70 | int BotReplyChat(int chatstate, char *message, int mcontext, int vcontext, char *var0, char *var1, char *var2, char *var3, char *var4, char *var5, char *var6, char *var7); 71 | //returns the length of the currently selected chat message 72 | int BotChatLength(int chatstate); 73 | //enters the selected chat message 74 | void BotEnterChat(int chatstate, int clientto, int sendto); 75 | //get the chat message ready to be output 76 | void BotGetChatMessage(int chatstate, char *buf, int size); 77 | //checks if the first string contains the second one, returns index into first string or -1 if not found 78 | int StringContains(char *str1, char *str2, int casesensitive); 79 | //finds a match for the given string using the match templates 80 | int BotFindMatch(char *str, bot_match_t *match, unsigned long int context); 81 | //returns a variable from a match 82 | void BotMatchVariable(bot_match_t *match, int variable, char *buf, int size); 83 | //unify all the white spaces in the string 84 | void UnifyWhiteSpaces(char *string); 85 | //replace all the context related synonyms in the string 86 | void BotReplaceSynonyms(char *string, unsigned long int context); 87 | //loads a chat file for the chat state 88 | int BotLoadChatFile(int chatstate, char *chatfile, char *chatname); 89 | //store the gender of the bot in the chat state 90 | void BotSetChatGender(int chatstate, int gender); 91 | //store the bot name in the chat state 92 | void BotSetChatName(int chatstate, char *name, int client); 93 | 94 | -------------------------------------------------------------------------------- /code/game/be_ai_gen.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 1999-2000 Id Software, Inc. 2 | // 3 | 4 | /***************************************************************************** 5 | * name: be_ai_gen.h 6 | * 7 | * desc: genetic selection 8 | * 9 | * $Archive: /source/code/botlib/be_ai_gen.h $ 10 | * 11 | *****************************************************************************/ 12 | 13 | int GeneticParentsAndChildSelection(int numranks, float *ranks, int *parent1, int *parent2, int *child); 14 | -------------------------------------------------------------------------------- /code/game/be_ai_goal.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 1999-2000 Id Software, Inc. 2 | // 3 | /***************************************************************************** 4 | * name: be_ai_goal.h 5 | * 6 | * desc: goal AI 7 | * 8 | * $Archive: /source/code/botlib/be_ai_goal.h $ 9 | * 10 | *****************************************************************************/ 11 | 12 | #define MAX_AVOIDGOALS 256 13 | #define MAX_GOALSTACK 8 14 | 15 | #define GFL_NONE 0 16 | #define GFL_ITEM 1 17 | #define GFL_ROAM 2 18 | #define GFL_DROPPED 4 19 | 20 | //a bot goal 21 | typedef struct bot_goal_s 22 | { 23 | vec3_t origin; //origin of the goal 24 | int areanum; //area number of the goal 25 | vec3_t mins, maxs; //mins and maxs of the goal 26 | int entitynum; //number of the goal entity 27 | int number; //goal number 28 | int flags; //goal flags 29 | int iteminfo; //item information 30 | } bot_goal_t; 31 | 32 | //reset the whole goal state, but keep the item weights 33 | void BotResetGoalState(int goalstate); 34 | //reset avoid goals 35 | void BotResetAvoidGoals(int goalstate); 36 | //remove the goal with the given number from the avoid goals 37 | void BotRemoveFromAvoidGoals(int goalstate, int number); 38 | //push a goal onto the goal stack 39 | void BotPushGoal(int goalstate, bot_goal_t *goal); 40 | //pop a goal from the goal stack 41 | void BotPopGoal(int goalstate); 42 | //empty the bot's goal stack 43 | void BotEmptyGoalStack(int goalstate); 44 | //dump the avoid goals 45 | void BotDumpAvoidGoals(int goalstate); 46 | //dump the goal stack 47 | void BotDumpGoalStack(int goalstate); 48 | //get the name name of the goal with the given number 49 | void BotGoalName(int number, char *name, int size); 50 | //get the top goal from the stack 51 | int BotGetTopGoal(int goalstate, bot_goal_t *goal); 52 | //get the second goal on the stack 53 | int BotGetSecondGoal(int goalstate, bot_goal_t *goal); 54 | //choose the best long term goal item for the bot 55 | int BotChooseLTGItem(int goalstate, vec3_t origin, int *inventory, int travelflags); 56 | //choose the best nearby goal item for the bot 57 | //the item may not be further away from the current bot position than maxtime 58 | //also the travel time from the nearby goal towards the long term goal may not 59 | //be larger than the travel time towards the long term goal from the current bot position 60 | int BotChooseNBGItem(int goalstate, vec3_t origin, int *inventory, int travelflags, 61 | bot_goal_t *ltg, float maxtime); 62 | //returns true if the bot touches the goal 63 | int BotTouchingGoal(vec3_t origin, bot_goal_t *goal); 64 | //returns true if the goal should be visible but isn't 65 | int BotItemGoalInVisButNotVisible(int viewer, vec3_t eye, vec3_t viewangles, bot_goal_t *goal); 66 | //search for a goal for the given classname, the index can be used 67 | //as a start point for the search when multiple goals are available with that same classname 68 | int BotGetLevelItemGoal(int index, char *classname, bot_goal_t *goal); 69 | //get the next camp spot in the map 70 | int BotGetNextCampSpotGoal(int num, bot_goal_t *goal); 71 | //get the map location with the given name 72 | int BotGetMapLocationGoal(char *name, bot_goal_t *goal); 73 | //returns the avoid goal time 74 | float BotAvoidGoalTime(int goalstate, int number); 75 | //set the avoid goal time 76 | void BotSetAvoidGoalTime(int goalstate, int number, float avoidtime); 77 | //initializes the items in the level 78 | void BotInitLevelItems(void); 79 | //regularly update dynamic entity items (dropped weapons, flags etc.) 80 | void BotUpdateEntityItems(void); 81 | //interbreed the goal fuzzy logic 82 | void BotInterbreedGoalFuzzyLogic(int parent1, int parent2, int child); 83 | //save the goal fuzzy logic to disk 84 | void BotSaveGoalFuzzyLogic(int goalstate, char *filename); 85 | //mutate the goal fuzzy logic 86 | void BotMutateGoalFuzzyLogic(int goalstate, float range); 87 | //loads item weights for the bot 88 | int BotLoadItemWeights(int goalstate, char *filename); 89 | //frees the item weights of the bot 90 | void BotFreeItemWeights(int goalstate); 91 | //returns the handle of a newly allocated goal state 92 | int BotAllocGoalState(int client); 93 | //free the given goal state 94 | void BotFreeGoalState(int handle); 95 | //setup the goal AI 96 | int BotSetupGoalAI(void); 97 | //shut down the goal AI 98 | void BotShutdownGoalAI(void); 99 | -------------------------------------------------------------------------------- /code/game/be_ai_weap.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 1999-2000 Id Software, Inc. 2 | // 3 | 4 | /***************************************************************************** 5 | * name: be_ai_weap.h 6 | * 7 | * desc: weapon AI 8 | * 9 | * $Archive: /source/code/botlib/be_ai_weap.h $ 10 | * 11 | *****************************************************************************/ 12 | 13 | //projectile flags 14 | #define PFL_WINDOWDAMAGE 1 //projectile damages through window 15 | #define PFL_RETURN 2 //set when projectile returns to owner 16 | //weapon flags 17 | #define WFL_FIRERELEASED 1 //set when projectile is fired with key-up event 18 | //damage types 19 | #define DAMAGETYPE_IMPACT 1 //damage on impact 20 | #define DAMAGETYPE_RADIAL 2 //radial damage 21 | #define DAMAGETYPE_VISIBLE 4 //damage to all entities visible to the projectile 22 | 23 | typedef struct projectileinfo_s 24 | { 25 | char name[MAX_STRINGFIELD]; 26 | char model[MAX_STRINGFIELD]; 27 | int flags; 28 | float gravity; 29 | int damage; 30 | float radius; 31 | int visdamage; 32 | int damagetype; 33 | int healthinc; 34 | float push; 35 | float detonation; 36 | float bounce; 37 | float bouncefric; 38 | float bouncestop; 39 | } projectileinfo_t; 40 | 41 | typedef struct weaponinfo_s 42 | { 43 | int valid; //true if the weapon info is valid 44 | int number; //number of the weapon 45 | char name[MAX_STRINGFIELD]; 46 | char model[MAX_STRINGFIELD]; 47 | int level; 48 | int weaponindex; 49 | int flags; 50 | char projectile[MAX_STRINGFIELD]; 51 | int numprojectiles; 52 | float hspread; 53 | float vspread; 54 | float speed; 55 | float acceleration; 56 | vec3_t recoil; 57 | vec3_t offset; 58 | vec3_t angleoffset; 59 | float extrazvelocity; 60 | int ammoamount; 61 | int ammoindex; 62 | float activate; 63 | float reload; 64 | float spinup; 65 | float spindown; 66 | projectileinfo_t proj; //pointer to the used projectile 67 | } weaponinfo_t; 68 | 69 | //setup the weapon AI 70 | int BotSetupWeaponAI(void); 71 | //shut down the weapon AI 72 | void BotShutdownWeaponAI(void); 73 | //returns the best weapon to fight with 74 | int BotChooseBestFightWeapon(int weaponstate, int *inventory); 75 | //returns the information of the current weapon 76 | void BotGetWeaponInfo(int weaponstate, int weapon, weaponinfo_t *weaponinfo); 77 | //loads the weapon weights 78 | int BotLoadWeaponWeights(int weaponstate, char *filename); 79 | //returns a handle to a newly allocated weapon state 80 | int BotAllocWeaponState(void); 81 | //frees the weapon state 82 | void BotFreeWeaponState(int weaponstate); 83 | //resets the whole weapon state 84 | void BotResetWeaponState(int weaponstate); 85 | -------------------------------------------------------------------------------- /code/game/be_ea.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 1999-2000 Id Software, Inc. 2 | // 3 | 4 | /***************************************************************************** 5 | * name: be_ea.h 6 | * 7 | * desc: elementary actions 8 | * 9 | * $Archive: /source/code/botlib/be_ea.h $ 10 | * 11 | *****************************************************************************/ 12 | 13 | //ClientCommand elementary actions 14 | void EA_Say(int client, char *str); 15 | void EA_SayTeam(int client, char *str); 16 | void EA_Command(int client, char *command ); 17 | 18 | void EA_Action(int client, int action); 19 | void EA_Crouch(int client); 20 | void EA_Walk(int client); 21 | void EA_MoveUp(int client); 22 | void EA_MoveDown(int client); 23 | void EA_MoveForward(int client); 24 | void EA_MoveBack(int client); 25 | void EA_MoveLeft(int client); 26 | void EA_MoveRight(int client); 27 | void EA_Attack(int client); 28 | void EA_Respawn(int client); 29 | void EA_Talk(int client); 30 | void EA_Gesture(int client); 31 | void EA_Use(int client); 32 | 33 | //regular elementary actions 34 | void EA_SelectWeapon(int client, int weapon); 35 | void EA_Jump(int client); 36 | void EA_DelayedJump(int client); 37 | void EA_Move(int client, vec3_t dir, float speed); 38 | void EA_View(int client, vec3_t viewangles); 39 | 40 | //send regular input to the server 41 | void EA_EndRegular(int client, float thinktime); 42 | void EA_GetInput(int client, float thinktime, bot_input_t *input); 43 | void EA_ResetInput(int client); 44 | //setup and shutdown routines 45 | int EA_Setup(void); 46 | void EA_Shutdown(void); 47 | -------------------------------------------------------------------------------- /code/game/bg_lib.h: -------------------------------------------------------------------------------- 1 | // bg_lib.h -- standard C library replacement routines used by code 2 | // compiled for the virtual machine 3 | 4 | // This file is NOT included on native builds 5 | 6 | typedef int size_t; 7 | 8 | typedef char * va_list; 9 | #define _INTSIZEOF(n) ( (sizeof(n) + sizeof(int) - 1) & ~(sizeof(int) - 1) ) 10 | #define va_start(ap,v) ( ap = (va_list)&v + _INTSIZEOF(v) ) 11 | #define va_arg(ap,t) ( *(t *)((ap += _INTSIZEOF(t)) - _INTSIZEOF(t)) ) 12 | #define va_end(ap) ( ap = (va_list)0 ) 13 | 14 | #define CHAR_BIT 8 /* number of bits in a char */ 15 | #define SCHAR_MIN (-128) /* minimum signed char value */ 16 | #define SCHAR_MAX 127 /* maximum signed char value */ 17 | #define UCHAR_MAX 0xff /* maximum unsigned char value */ 18 | 19 | #define SHRT_MIN (-32768) /* minimum (signed) short value */ 20 | #define SHRT_MAX 32767 /* maximum (signed) short value */ 21 | #define USHRT_MAX 0xffff /* maximum unsigned short value */ 22 | #define INT_MIN (-2147483647 - 1) /* minimum (signed) int value */ 23 | #define INT_MAX 2147483647 /* maximum (signed) int value */ 24 | #define UINT_MAX 0xffffffff /* maximum unsigned int value */ 25 | #define LONG_MIN (-2147483647L - 1) /* minimum (signed) long value */ 26 | #define LONG_MAX 2147483647L /* maximum (signed) long value */ 27 | #define ULONG_MAX 0xffffffffUL /* maximum unsigned long value */ 28 | 29 | // Misc functions 30 | typedef int cmp_t(const void *, const void *); 31 | void qsort(void *a, size_t n, size_t es, cmp_t *cmp); 32 | void srand( unsigned seed ); 33 | int rand( void ); 34 | 35 | // String functions 36 | size_t strlen( const char *string ); 37 | char *strcat( char *strDestination, const char *strSource ); 38 | char *strcpy( char *strDestination, const char *strSource ); 39 | int strcmp( const char *string1, const char *string2 ); 40 | char *strchr( const char *string, int c ); 41 | char *strstr( const char *string, const char *strCharSet ); 42 | char *strncpy( char *strDest, const char *strSource, size_t count ); 43 | int tolower( int c ); 44 | int toupper( int c ); 45 | 46 | double atof( const char *string ); 47 | double _atof( const char **stringPtr ); 48 | int atoi( const char *string ); 49 | int _atoi( const char **stringPtr ); 50 | 51 | int vsprintf( char *buffer, const char *fmt, va_list argptr ); 52 | int sscanf( const char *buffer, const char *fmt, ... ); 53 | 54 | // Memory functions 55 | void *memmove( void *dest, const void *src, size_t count ); 56 | void *memset( void *dest, int c, size_t count ); 57 | void *memcpy( void *dest, const void *src, size_t count ); 58 | 59 | // Math functions 60 | double ceil( double x ); 61 | double floor( double x ); 62 | double sqrt( double x ); 63 | double sin( double x ); 64 | double cos( double x ); 65 | double atan2( double y, double x ); 66 | double tan( double x ); 67 | int abs( int n ); 68 | double fabs( double x ); 69 | double acos( double x ); 70 | 71 | -------------------------------------------------------------------------------- /code/game/bg_local.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 1999-2000 Id Software, Inc. 2 | // 3 | // bg_local.h -- local definitions for the bg (both games) files 4 | 5 | #define MIN_WALK_NORMAL 0.7f // can't walk on very steep slopes 6 | 7 | #define STEPSIZE 18 8 | 9 | #define JUMP_VELOCITY 270 10 | 11 | #define TIMER_LAND 130 12 | #define TIMER_GESTURE (34*66+50) 13 | 14 | #define OVERCLIP 1.001f 15 | 16 | // all of the locals will be zeroed before each 17 | // pmove, just to make damn sure we don't have 18 | // any differences when running on client or server 19 | typedef struct { 20 | vec3_t forward, right, up; 21 | float frametime; 22 | 23 | int msec; 24 | 25 | qboolean walking; 26 | qboolean groundPlane; 27 | trace_t groundTrace; 28 | qboolean ladder; 29 | 30 | float impactSpeed; 31 | 32 | vec3_t previous_origin; 33 | vec3_t previous_velocity; 34 | int previous_waterlevel; 35 | } pml_t; 36 | 37 | extern pmove_t *pm; 38 | extern pml_t pml; 39 | 40 | // movement parameters 41 | extern float pm_stopspeed; 42 | extern float pm_duckScale; 43 | extern float pm_swimScale; 44 | extern float pm_wadeScale; 45 | 46 | extern float pm_accelerate; 47 | extern float pm_airaccelerate; 48 | extern float pm_wateraccelerate; 49 | extern float pm_flyaccelerate; 50 | 51 | extern float pm_friction; 52 | extern float pm_waterfriction; 53 | extern float pm_flightfriction; 54 | 55 | extern int c_pmove; 56 | 57 | void PM_ClipVelocity( vec3_t in, vec3_t normal, vec3_t out, float overbounce ); 58 | void PM_AddTouchEnt( int entityNum ); 59 | void PM_AddEvent( int newEvent ); 60 | 61 | qboolean PM_SlideMove( qboolean gravity ); 62 | void PM_StepSlideMove( qboolean gravity ); 63 | 64 | -------------------------------------------------------------------------------- /code/game/g_mem.c: -------------------------------------------------------------------------------- 1 | // Copyright (C) 1999-2000 Id Software, Inc. 2 | // 3 | // 4 | // g_mem.c 5 | // 6 | 7 | 8 | #include "g_local.h" 9 | 10 | 11 | #define POOLSIZE (256 * 1024) 12 | 13 | static char memoryPool[POOLSIZE]; 14 | static int allocPoint; 15 | 16 | void *G_Alloc( int size ) { 17 | char *p; 18 | 19 | if ( g_debugAlloc.integer ) { 20 | G_Printf( "G_Alloc of %i bytes (%i left)\n", size, POOLSIZE - allocPoint - ( ( size + 31 ) & ~31 ) ); 21 | } 22 | 23 | if ( allocPoint + size > POOLSIZE ) { 24 | G_Error( "G_Alloc: failed on allocation of %i bytes\n", size ); // bk010103 - was %u, but is signed 25 | return NULL; 26 | } 27 | 28 | p = &memoryPool[allocPoint]; 29 | 30 | allocPoint += ( size + 31 ) & ~31; 31 | 32 | return p; 33 | } 34 | 35 | void G_InitMemory( void ) { 36 | allocPoint = 0; 37 | } 38 | 39 | void Svcmd_GameMem_f( void ) { 40 | G_Printf( "Game memory status: %i out of %i bytes allocated\n", allocPoint, POOLSIZE ); 41 | } 42 | -------------------------------------------------------------------------------- /code/game/g_team.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 1999-2000 Id Software, Inc. 2 | // 3 | 4 | #define CTF_CAPTURE_BONUS 5 // what you get for capture 5 | #define CTF_TEAM_BONUS 0 // what your team gets for capture 6 | #define CTF_RECOVERY_BONUS 1 // what you get for recovery 7 | #define CTF_FLAG_BONUS 0 // what you get for picking up enemy flag 8 | #define CTF_FRAG_CARRIER_BONUS 2 // what you get for fragging enemy flag carrier 9 | #define CTF_FLAG_RETURN_TIME 40000 // seconds until auto return 10 | 11 | #define CTF_CARRIER_DANGER_PROTECT_BONUS 2 // bonus for fraggin someone who has recently hurt your flag carrier 12 | #define CTF_CARRIER_PROTECT_BONUS 1 // bonus for fraggin someone while either you or your target are near your flag carrier 13 | #define CTF_FLAG_DEFENSE_BONUS 1 // bonus for fraggin someone while either you or your target are near your flag 14 | #define CTF_RETURN_FLAG_ASSIST_BONUS 1 // awarded for returning a flag that causes a capture to happen almost immediately 15 | #define CTF_FRAG_CARRIER_ASSIST_BONUS 2 // award for fragging a flag carrier if a capture happens almost immediately 16 | 17 | #define CTF_TARGET_PROTECT_RADIUS 1000 // the radius around an object being defended where a target will be worth extra frags 18 | #define CTF_ATTACKER_PROTECT_RADIUS 1000 // the radius around an object being defended where an attacker will get extra frags when making kills 19 | 20 | #define CTF_CARRIER_DANGER_PROTECT_TIMEOUT 8000 21 | #define CTF_FRAG_CARRIER_ASSIST_TIMEOUT 10000 22 | #define CTF_RETURN_FLAG_ASSIST_TIMEOUT 10000 23 | 24 | #define CTF_GRAPPLE_SPEED 750 // speed of grapple in flight 25 | #define CTF_GRAPPLE_PULL_SPEED 750 // speed player is pulled at 26 | 27 | #define OVERLOAD_ATTACK_BASE_SOUND_TIME 20000 28 | 29 | // Prototypes 30 | 31 | int OtherTeam(int team); 32 | const char *TeamName(int team); 33 | const char *OtherTeamName(int team); 34 | const char *TeamColorString(int team); 35 | 36 | void Team_FragBonuses(gentity_t *targ, gentity_t *inflictor, gentity_t *attacker); 37 | gentity_t *SelectCTFSpawnPoint ( team_t team, int teamstate, vec3_t origin, vec3_t angles ); 38 | gentity_t *Team_GetLocation(gentity_t *ent); 39 | qboolean Team_GetLocationMsg(gentity_t *ent, char *loc, int loclen); 40 | void TeamplayInfoMessage( gentity_t *ent ); 41 | void CheckTeamStatus(void); 42 | -------------------------------------------------------------------------------- /code/game/game.bat: -------------------------------------------------------------------------------- 1 | rem make sure we have a safe environement 2 | set LIBRARY= 3 | set INCLUDE= 4 | 5 | mkdir vm 6 | cd vm 7 | set cc=..\..\..\bin\lcc -DQ3_VM -S -Wf-target=bytecode -Wf-g -I..\..\cgame -I..\..\game -I..\..\q3_ui %1 8 | 9 | %cc% ../g_main.c 10 | @if errorlevel 1 goto quit 11 | 12 | %cc% ../g_syscalls.c 13 | @if errorlevel 1 goto quit 14 | 15 | %cc% ../bg_misc.c 16 | @if errorlevel 1 goto quit 17 | %cc% ../bg_lib.c 18 | @if errorlevel 1 goto quit 19 | %cc% ../bg_pmove.c 20 | @if errorlevel 1 goto quit 21 | %cc% ../bg_slidemove.c 22 | @if errorlevel 1 goto quit 23 | %cc% ../q_math.c 24 | @if errorlevel 1 goto quit 25 | %cc% ../q_shared.c 26 | @if errorlevel 1 goto quit 27 | 28 | %cc% ../ai_dmnet.c 29 | @if errorlevel 1 goto quit 30 | %cc% ../ai_dmq3.c 31 | @if errorlevel 1 goto quit 32 | %cc% ../ai_main.c 33 | @if errorlevel 1 goto quit 34 | %cc% ../ai_chat.c 35 | @if errorlevel 1 goto quit 36 | %cc% ../ai_cmd.c 37 | @if errorlevel 1 goto quit 38 | %cc% ../ai_team.c 39 | @if errorlevel 1 goto quit 40 | 41 | %cc% ../g_active.c 42 | @if errorlevel 1 goto quit 43 | %cc% ../g_arenas.c 44 | @if errorlevel 1 goto quit 45 | %cc% ../g_bot.c 46 | @if errorlevel 1 goto quit 47 | %cc% ../g_client.c 48 | @if errorlevel 1 goto quit 49 | %cc% ../g_cmds.c 50 | @if errorlevel 1 goto quit 51 | %cc% ../g_combat.c 52 | @if errorlevel 1 goto quit 53 | %cc% ../g_items.c 54 | @if errorlevel 1 goto quit 55 | %cc% ../g_mem.c 56 | @if errorlevel 1 goto quit 57 | %cc% ../g_misc.c 58 | @if errorlevel 1 goto quit 59 | %cc% ../g_missile.c 60 | @if errorlevel 1 goto quit 61 | %cc% ../g_mover.c 62 | @if errorlevel 1 goto quit 63 | %cc% ../g_session.c 64 | @if errorlevel 1 goto quit 65 | %cc% ../g_spawn.c 66 | @if errorlevel 1 goto quit 67 | %cc% ../g_svcmds.c 68 | @if errorlevel 1 goto quit 69 | %cc% ../g_target.c 70 | @if errorlevel 1 goto quit 71 | %cc% ../g_team.c 72 | @if errorlevel 1 goto quit 73 | %cc% ../g_trigger.c 74 | @if errorlevel 1 goto quit 75 | %cc% ../g_utils.c 76 | @if errorlevel 1 goto quit 77 | %cc% ../g_weapon.c 78 | @if errorlevel 1 goto quit 79 | %cc% ../ai_vcmd.c 80 | @if errorlevel 1 goto quit 81 | 82 | 83 | q3asm -f ../game 84 | :quit 85 | cd .. 86 | pause -------------------------------------------------------------------------------- /code/game/game.def: -------------------------------------------------------------------------------- 1 | EXPORTS 2 | dllEntry 3 | vmMain 4 | -------------------------------------------------------------------------------- /code/game/game.q3asm: -------------------------------------------------------------------------------- 1 | -o "\quake3\entityplus\vm\qagame" 2 | g_main 3 | ..\g_syscalls 4 | bg_misc 5 | bg_lib 6 | bg_pmove 7 | bg_slidemove 8 | q_math 9 | q_shared 10 | ai_dmnet 11 | ai_dmq3 12 | ai_team 13 | ai_main 14 | ai_chat 15 | ai_cmd 16 | ai_vcmd 17 | g_active 18 | g_arenas 19 | g_bot 20 | g_client 21 | g_cmds 22 | g_combat 23 | g_items 24 | g_mem 25 | g_misc 26 | g_missile 27 | g_mover 28 | g_session 29 | g_spawn 30 | g_svcmds 31 | g_target 32 | g_team 33 | g_trigger 34 | g_utils 35 | g_weapon 36 | -------------------------------------------------------------------------------- /code/game/game_ta.bat: -------------------------------------------------------------------------------- 1 | rem make sure we have a safe environement 2 | set LIBRARY= 3 | set INCLUDE= 4 | 5 | mkdir vm 6 | cd vm 7 | set cc=lcc -DQ3_VM -DMISSIONPACK -S -Wf-target=bytecode -Wf-g -I..\..\cgame -I..\..\game -I..\..\ui %1 8 | 9 | %cc% ../g_main.c 10 | @if errorlevel 1 goto quit 11 | 12 | %cc% ../g_syscalls.c 13 | @if errorlevel 1 goto quit 14 | 15 | %cc% ../bg_misc.c 16 | @if errorlevel 1 goto quit 17 | %cc% ../bg_lib.c 18 | @if errorlevel 1 goto quit 19 | %cc% ../bg_pmove.c 20 | @if errorlevel 1 goto quit 21 | %cc% ../bg_slidemove.c 22 | @if errorlevel 1 goto quit 23 | %cc% ../q_math.c 24 | @if errorlevel 1 goto quit 25 | %cc% ../q_shared.c 26 | @if errorlevel 1 goto quit 27 | 28 | %cc% ../ai_dmnet.c 29 | @if errorlevel 1 goto quit 30 | %cc% ../ai_dmq3.c 31 | @if errorlevel 1 goto quit 32 | %cc% ../ai_main.c 33 | @if errorlevel 1 goto quit 34 | %cc% ../ai_chat.c 35 | @if errorlevel 1 goto quit 36 | %cc% ../ai_cmd.c 37 | @if errorlevel 1 goto quit 38 | %cc% ../ai_team.c 39 | @if errorlevel 1 goto quit 40 | 41 | %cc% ../g_active.c 42 | @if errorlevel 1 goto quit 43 | %cc% ../g_arenas.c 44 | @if errorlevel 1 goto quit 45 | %cc% ../g_bot.c 46 | @if errorlevel 1 goto quit 47 | %cc% ../g_client.c 48 | @if errorlevel 1 goto quit 49 | %cc% ../g_cmds.c 50 | @if errorlevel 1 goto quit 51 | %cc% ../g_combat.c 52 | @if errorlevel 1 goto quit 53 | %cc% ../g_items.c 54 | @if errorlevel 1 goto quit 55 | %cc% ../g_mem.c 56 | @if errorlevel 1 goto quit 57 | %cc% ../g_misc.c 58 | @if errorlevel 1 goto quit 59 | %cc% ../g_missile.c 60 | @if errorlevel 1 goto quit 61 | %cc% ../g_mover.c 62 | @if errorlevel 1 goto quit 63 | %cc% ../g_session.c 64 | @if errorlevel 1 goto quit 65 | %cc% ../g_spawn.c 66 | @if errorlevel 1 goto quit 67 | %cc% ../g_svcmds.c 68 | @if errorlevel 1 goto quit 69 | %cc% ../g_target.c 70 | @if errorlevel 1 goto quit 71 | %cc% ../g_team.c 72 | @if errorlevel 1 goto quit 73 | %cc% ../g_trigger.c 74 | @if errorlevel 1 goto quit 75 | %cc% ../g_utils.c 76 | @if errorlevel 1 goto quit 77 | %cc% ../g_weapon.c 78 | @if errorlevel 1 goto quit 79 | %cc% ../ai_vcmd.c 80 | @if errorlevel 1 goto quit 81 | 82 | 83 | 84 | q3asm -f ../game_ta 85 | :quit 86 | cd .. 87 | -------------------------------------------------------------------------------- /code/game/game_ta.q3asm: -------------------------------------------------------------------------------- 1 | -o "\quake3\missionpack\vm\qagame" 2 | g_main 3 | ..\g_syscalls 4 | bg_misc 5 | bg_lib 6 | bg_pmove 7 | bg_slidemove 8 | q_math 9 | q_shared 10 | ai_dmnet 11 | ai_dmq3 12 | ai_team 13 | ai_main 14 | ai_chat 15 | ai_cmd 16 | g_active 17 | g_arenas 18 | g_bot 19 | g_client 20 | g_cmds 21 | g_combat 22 | g_items 23 | g_mem 24 | g_misc 25 | g_missile 26 | g_mover 27 | g_session 28 | g_spawn 29 | g_svcmds 30 | g_target 31 | g_team 32 | g_trigger 33 | g_utils 34 | g_weapon 35 | ai_vcmd 36 | -------------------------------------------------------------------------------- /code/game/inv.h: -------------------------------------------------------------------------------- 1 | 2 | #define INVENTORY_NONE 0 3 | //armor 4 | #define INVENTORY_ARMOR 1 5 | //weapons 6 | #define INVENTORY_GAUNTLET 4 7 | #define INVENTORY_SHOTGUN 5 8 | #define INVENTORY_MACHINEGUN 6 9 | #define INVENTORY_GRENADELAUNCHER 7 10 | #define INVENTORY_ROCKETLAUNCHER 8 11 | #define INVENTORY_LIGHTNING 9 12 | #define INVENTORY_RAILGUN 10 13 | #define INVENTORY_PLASMAGUN 11 14 | #define INVENTORY_BFG10K 13 15 | #define INVENTORY_GRAPPLINGHOOK 14 16 | #define INVENTORY_NAILGUN 15 17 | #define INVENTORY_PROXLAUNCHER 16 18 | #define INVENTORY_CHAINGUN 17 19 | //ammo 20 | #define INVENTORY_SHELLS 18 21 | #define INVENTORY_BULLETS 19 22 | #define INVENTORY_GRENADES 20 23 | #define INVENTORY_CELLS 21 24 | #define INVENTORY_LIGHTNINGAMMO 22 25 | #define INVENTORY_ROCKETS 23 26 | #define INVENTORY_SLUGS 24 27 | #define INVENTORY_BFGAMMO 25 28 | #define INVENTORY_NAILS 26 29 | #define INVENTORY_MINES 27 30 | #define INVENTORY_BELT 28 31 | //powerups 32 | #define INVENTORY_HEALTH 29 33 | #define INVENTORY_TELEPORTER 30 34 | #define INVENTORY_MEDKIT 31 35 | #define INVENTORY_KAMIKAZE 32 36 | #define INVENTORY_PORTAL 33 37 | #define INVENTORY_INVULNERABILITY 34 38 | #define INVENTORY_QUAD 35 39 | #define INVENTORY_ENVIRONMENTSUIT 36 40 | #define INVENTORY_HASTE 37 41 | #define INVENTORY_INVISIBILITY 38 42 | #define INVENTORY_REGEN 39 43 | #define INVENTORY_FLIGHT 40 44 | #define INVENTORY_SCOUT 41 45 | #define INVENTORY_GUARD 42 46 | #define INVENTORY_DOUBLER 43 47 | #define INVENTORY_AMMOREGEN 44 48 | 49 | #define INVENTORY_REDFLAG 45 50 | #define INVENTORY_BLUEFLAG 46 51 | #define INVENTORY_NEUTRALFLAG 47 52 | #define INVENTORY_REDCUBE 48 53 | #define INVENTORY_BLUECUBE 49 54 | //enemy stuff 55 | #define ENEMY_HORIZONTAL_DIST 200 56 | #define ENEMY_HEIGHT 201 57 | #define NUM_VISIBLE_ENEMIES 202 58 | #define NUM_VISIBLE_TEAMMATES 203 59 | 60 | //item numbers (make sure they are in sync with bg_itemlist in bg_misc.c) 61 | #define MODELINDEX_ARMORSHARD 1 62 | #define MODELINDEX_ARMORCOMBAT 2 63 | #define MODELINDEX_ARMORBODY 3 64 | #define MODELINDEX_HEALTHSMALL 4 65 | #define MODELINDEX_HEALTH 5 66 | #define MODELINDEX_HEALTHLARGE 6 67 | #define MODELINDEX_HEALTHMEGA 7 68 | 69 | #define MODELINDEX_GAUNTLET 8 70 | #define MODELINDEX_SHOTGUN 9 71 | #define MODELINDEX_MACHINEGUN 10 72 | #define MODELINDEX_GRENADELAUNCHER 11 73 | #define MODELINDEX_ROCKETLAUNCHER 12 74 | #define MODELINDEX_LIGHTNING 13 75 | #define MODELINDEX_RAILGUN 14 76 | #define MODELINDEX_PLASMAGUN 15 77 | #define MODELINDEX_BFG10K 16 78 | #define MODELINDEX_GRAPPLINGHOOK 17 79 | 80 | #define MODELINDEX_SHELLS 18 81 | #define MODELINDEX_BULLETS 19 82 | #define MODELINDEX_GRENADES 20 83 | #define MODELINDEX_CELLS 21 84 | #define MODELINDEX_LIGHTNINGAMMO 22 85 | #define MODELINDEX_ROCKETS 23 86 | #define MODELINDEX_SLUGS 24 87 | #define MODELINDEX_BFGAMMO 25 88 | 89 | #define MODELINDEX_TELEPORTER 26 90 | #define MODELINDEX_MEDKIT 27 91 | #define MODELINDEX_QUAD 28 92 | #define MODELINDEX_ENVIRONMENTSUIT 29 93 | #define MODELINDEX_HASTE 30 94 | #define MODELINDEX_INVISIBILITY 31 95 | #define MODELINDEX_REGEN 32 96 | #define MODELINDEX_FLIGHT 33 97 | 98 | #define MODELINDEX_REDFLAG 34 99 | #define MODELINDEX_BLUEFLAG 35 100 | 101 | // mission pack only defines 102 | 103 | #define MODELINDEX_KAMIKAZE 36 104 | #define MODELINDEX_PORTAL 37 105 | #define MODELINDEX_INVULNERABILITY 38 106 | 107 | #define MODELINDEX_NAILS 39 108 | #define MODELINDEX_MINES 40 109 | #define MODELINDEX_BELT 41 110 | 111 | #define MODELINDEX_SCOUT 42 112 | #define MODELINDEX_GUARD 43 113 | #define MODELINDEX_DOUBLER 44 114 | #define MODELINDEX_AMMOREGEN 45 115 | 116 | #define MODELINDEX_NEUTRALFLAG 46 117 | #define MODELINDEX_REDCUBE 47 118 | #define MODELINDEX_BLUECUBE 48 119 | 120 | #define MODELINDEX_NAILGUN 49 121 | #define MODELINDEX_PROXLAUNCHER 50 122 | #define MODELINDEX_CHAINGUN 51 123 | 124 | 125 | // 126 | #define WEAPONINDEX_GAUNTLET 1 127 | #define WEAPONINDEX_MACHINEGUN 2 128 | #define WEAPONINDEX_SHOTGUN 3 129 | #define WEAPONINDEX_GRENADE_LAUNCHER 4 130 | #define WEAPONINDEX_ROCKET_LAUNCHER 5 131 | #define WEAPONINDEX_LIGHTNING 6 132 | #define WEAPONINDEX_RAILGUN 7 133 | #define WEAPONINDEX_PLASMAGUN 8 134 | #define WEAPONINDEX_BFG 9 135 | #define WEAPONINDEX_GRAPPLING_HOOK 10 136 | #define WEAPONINDEX_NAILGUN 11 137 | #define WEAPONINDEX_PROXLAUNCHER 12 138 | #define WEAPONINDEX_CHAINGUN 13 139 | -------------------------------------------------------------------------------- /code/game/surfaceflags.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 1999-2000 Id Software, Inc. 2 | // 3 | // This file must be identical in the quake and utils directories 4 | 5 | // contents flags are seperate bits 6 | // a given brush can contribute multiple content bits 7 | 8 | // these definitions also need to be in q_shared.h! 9 | 10 | #define CONTENTS_SOLID 1 // an eye is never valid in a solid 11 | #define CONTENTS_LAVA 8 12 | #define CONTENTS_SLIME 16 13 | #define CONTENTS_WATER 32 14 | #define CONTENTS_FOG 64 15 | 16 | #define CONTENTS_NOTTEAM1 0x0080 17 | #define CONTENTS_NOTTEAM2 0x0100 18 | #define CONTENTS_NOBOTCLIP 0x0200 19 | 20 | #define CONTENTS_AREAPORTAL 0x8000 21 | 22 | #define CONTENTS_PLAYERCLIP 0x10000 23 | #define CONTENTS_MONSTERCLIP 0x20000 24 | //bot specific contents types 25 | #define CONTENTS_TELEPORTER 0x40000 26 | #define CONTENTS_JUMPPAD 0x80000 27 | #define CONTENTS_CLUSTERPORTAL 0x100000 28 | #define CONTENTS_DONOTENTER 0x200000 29 | #define CONTENTS_BOTCLIP 0x400000 30 | #define CONTENTS_MOVER 0x800000 31 | 32 | #define CONTENTS_ORIGIN 0x1000000 // removed before bsping an entity 33 | 34 | #define CONTENTS_BODY 0x2000000 // should never be on a brush, only in game 35 | #define CONTENTS_CORPSE 0x4000000 36 | #define CONTENTS_DETAIL 0x8000000 // brushes not used for the bsp 37 | #define CONTENTS_STRUCTURAL 0x10000000 // brushes used for the bsp 38 | #define CONTENTS_TRANSLUCENT 0x20000000 // don't consume surface fragments inside 39 | #define CONTENTS_TRIGGER 0x40000000 40 | #define CONTENTS_NODROP 0x80000000 // don't leave bodies or items (death fog, lava) 41 | 42 | #define SURF_NODAMAGE 0x1 // never give falling damage 43 | #define SURF_SLICK 0x2 // effects game physics 44 | #define SURF_SKY 0x4 // lighting from environment map 45 | #define SURF_LADDER 0x8 46 | #define SURF_NOIMPACT 0x10 // don't make missile explosions 47 | #define SURF_NOMARKS 0x20 // don't leave missile marks 48 | #define SURF_FLESH 0x40 // make flesh sounds and effects 49 | #define SURF_NODRAW 0x80 // don't generate a drawsurface at all 50 | #define SURF_HINT 0x100 // make a primary bsp splitter 51 | #define SURF_SKIP 0x200 // completely ignore, allowing non-closed brushes 52 | #define SURF_NOLIGHTMAP 0x400 // surface doesn't need a lightmap 53 | #define SURF_POINTLIGHT 0x800 // generate lighting info at vertexes 54 | #define SURF_METALSTEPS 0x1000 // clanking footsteps 55 | #define SURF_NOSTEPS 0x2000 // no footstep sounds 56 | #define SURF_NONSOLID 0x4000 // don't collide against curves with this set 57 | #define SURF_LIGHTFILTER 0x8000 // act as a light filter during q3map -light 58 | #define SURF_ALPHASHADOW 0x10000 // do per-pixel light shadow casting in q3map 59 | #define SURF_NODLIGHT 0x20000 // don't dlight even if solid (solid lava, skies) 60 | #define SURF_DUST 0x40000 // leave a dust trail when walking on this surface 61 | -------------------------------------------------------------------------------- /code/game/syn.h: -------------------------------------------------------------------------------- 1 | //=========================================================================== 2 | // 3 | // Name: syn.h 4 | // Function: synonyms 5 | // Programmer: Mr Elusive 6 | // Last update: - 7 | // Tab Size: 4 (real tabs) 8 | // Notes: - 9 | //=========================================================================== 10 | 11 | #define CONTEXT_ALL 0xFFFFFFFF 12 | #define CONTEXT_NORMAL 1 13 | #define CONTEXT_NEARBYITEM 2 14 | #define CONTEXT_CTFREDTEAM 4 15 | #define CONTEXT_CTFBLUETEAM 8 16 | #define CONTEXT_REPLY 16 17 | #define CONTEXT_OBELISKREDTEAM 32 18 | #define CONTEXT_OBELISKBLUETEAM 64 19 | #define CONTEXT_HARVESTERREDTEAM 128 20 | #define CONTEXT_HARVESTERBLUETEAM 256 21 | 22 | #define CONTEXT_NAMES 1024 23 | -------------------------------------------------------------------------------- /code/game/vm/q3asm.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/code/game/vm/q3asm.exe -------------------------------------------------------------------------------- /code/game/vm/q3cpp.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/code/game/vm/q3cpp.exe -------------------------------------------------------------------------------- /code/game/vm/q3rcc.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/code/game/vm/q3rcc.exe -------------------------------------------------------------------------------- /code/q3_ui/keycodes.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 1999-2000 Id Software, Inc. 2 | // 3 | #ifndef __KEYCODES_H__ 4 | #define __KEYCODES_H__ 5 | 6 | // 7 | // these are the key numbers that should be passed to KeyEvent 8 | // 9 | 10 | // normal keys should be passed as lowercased ascii 11 | 12 | typedef enum { 13 | K_TAB = 9, 14 | K_ENTER = 13, 15 | K_ESCAPE = 27, 16 | K_SPACE = 32, 17 | 18 | K_BACKSPACE = 127, 19 | 20 | K_COMMAND = 128, 21 | K_CAPSLOCK, 22 | K_POWER, 23 | K_PAUSE, 24 | 25 | K_UPARROW, 26 | K_DOWNARROW, 27 | K_LEFTARROW, 28 | K_RIGHTARROW, 29 | 30 | K_ALT, 31 | K_CTRL, 32 | K_SHIFT, 33 | K_INS, 34 | K_DEL, 35 | K_PGDN, 36 | K_PGUP, 37 | K_HOME, 38 | K_END, 39 | 40 | K_F1, 41 | K_F2, 42 | K_F3, 43 | K_F4, 44 | K_F5, 45 | K_F6, 46 | K_F7, 47 | K_F8, 48 | K_F9, 49 | K_F10, 50 | K_F11, 51 | K_F12, 52 | K_F13, 53 | K_F14, 54 | K_F15, 55 | 56 | K_KP_HOME, 57 | K_KP_UPARROW, 58 | K_KP_PGUP, 59 | K_KP_LEFTARROW, 60 | K_KP_5, 61 | K_KP_RIGHTARROW, 62 | K_KP_END, 63 | K_KP_DOWNARROW, 64 | K_KP_PGDN, 65 | K_KP_ENTER, 66 | K_KP_INS, 67 | K_KP_DEL, 68 | K_KP_SLASH, 69 | K_KP_MINUS, 70 | K_KP_PLUS, 71 | K_KP_NUMLOCK, 72 | K_KP_STAR, 73 | K_KP_EQUALS, 74 | 75 | K_MOUSE1, 76 | K_MOUSE2, 77 | K_MOUSE3, 78 | K_MOUSE4, 79 | K_MOUSE5, 80 | 81 | K_MWHEELDOWN, 82 | K_MWHEELUP, 83 | 84 | K_JOY1, 85 | K_JOY2, 86 | K_JOY3, 87 | K_JOY4, 88 | K_JOY5, 89 | K_JOY6, 90 | K_JOY7, 91 | K_JOY8, 92 | K_JOY9, 93 | K_JOY10, 94 | K_JOY11, 95 | K_JOY12, 96 | K_JOY13, 97 | K_JOY14, 98 | K_JOY15, 99 | K_JOY16, 100 | K_JOY17, 101 | K_JOY18, 102 | K_JOY19, 103 | K_JOY20, 104 | K_JOY21, 105 | K_JOY22, 106 | K_JOY23, 107 | K_JOY24, 108 | K_JOY25, 109 | K_JOY26, 110 | K_JOY27, 111 | K_JOY28, 112 | K_JOY29, 113 | K_JOY30, 114 | K_JOY31, 115 | K_JOY32, 116 | 117 | K_AUX1, 118 | K_AUX2, 119 | K_AUX3, 120 | K_AUX4, 121 | K_AUX5, 122 | K_AUX6, 123 | K_AUX7, 124 | K_AUX8, 125 | K_AUX9, 126 | K_AUX10, 127 | K_AUX11, 128 | K_AUX12, 129 | K_AUX13, 130 | K_AUX14, 131 | K_AUX15, 132 | K_AUX16, 133 | 134 | K_LAST_KEY // this had better be <256! 135 | } keyNum_t; 136 | 137 | 138 | // The menu code needs to get both key and char events, but 139 | // to avoid duplicating the paths, the char events are just 140 | // distinguished by or'ing in K_CHAR_FLAG (ugly) 141 | #define K_CHAR_FLAG 1024 142 | 143 | #endif 144 | -------------------------------------------------------------------------------- /code/q3_ui/q3_ui.q3asm: -------------------------------------------------------------------------------- 1 | -o "\quake3\entityplus\vm\ui" 2 | ui_main 3 | ..\..\ui\ui_syscalls 4 | ui_gameinfo 5 | ui_atoms 6 | ui_cinematics 7 | ui_connect 8 | ui_controls2 9 | ui_demo2 10 | ui_mfield 11 | ui_credits 12 | ui_menu 13 | ui_ingame 14 | ui_confirm 15 | ui_setup 16 | ui_options 17 | ui_display 18 | ui_sound 19 | ui_network 20 | ui_playermodel 21 | ui_players 22 | ui_playersettings 23 | ui_preferences 24 | ui_qmenu 25 | ui_serverinfo 26 | ui_servers2 27 | ui_sparena 28 | ui_specifyserver 29 | ui_sppostgame 30 | ui_splevel 31 | ui_spskill 32 | ui_startserver 33 | ui_scores 34 | ui_epmenu 35 | ui_mutators 36 | ui_team 37 | ui_video 38 | ui_addbots 39 | ui_removebots 40 | ui_teamorders 41 | ui_cdkey 42 | ui_mods 43 | bg_misc 44 | bg_lib 45 | q_math 46 | q_shared 47 | -------------------------------------------------------------------------------- /code/q3_ui/ui.def: -------------------------------------------------------------------------------- 1 | EXPORTS 2 | vmMain 3 | dllEntry 4 | -------------------------------------------------------------------------------- /code/q3_ui/ui.q3asm: -------------------------------------------------------------------------------- 1 | -o "\quake3\baseq3\vm\ui" 2 | ui_main 3 | ..\ui_syscalls 4 | ui_gameinfo 5 | ui_atoms 6 | ui_cinematics 7 | ui_connect 8 | ui_controls2 9 | ui_demo2 10 | ui_mfield 11 | ui_credits 12 | ui_menu 13 | ui_ingame 14 | ui_confirm 15 | ui_setup 16 | ui_options 17 | ui_display 18 | ui_sound 19 | ui_network 20 | ui_playermodel 21 | ui_players 22 | ui_playersettings 23 | ui_preferences 24 | ui_qmenu 25 | ui_serverinfo 26 | ui_servers2 27 | ui_sparena 28 | ui_specifyserver 29 | ui_sppostgame 30 | ui_splevel 31 | ui_spskill 32 | ui_startserver 33 | ui_scores 34 | ui_epmenu 35 | ui_mutators 36 | ui_team 37 | ui_video 38 | ui_addbots 39 | ui_removebots 40 | ui_teamorders 41 | ui_loadconfig 42 | ui_saveconfig 43 | ui_cdkey 44 | ui_mods 45 | bg_misc 46 | bg_lib 47 | q_math 48 | q_shared 49 | -------------------------------------------------------------------------------- /code/q3_ui/ui_sparena.c: -------------------------------------------------------------------------------- 1 | // Copyright (C) 1999-2000 Id Software, Inc. 2 | // 3 | #include "ui_local.h" 4 | 5 | void UI_SPArena_Start( const char *arenaInfo ) { 6 | char *map; 7 | int level; 8 | int n; 9 | char *txt; 10 | 11 | n = (int)trap_Cvar_VariableValue( "sv_maxclients" ); 12 | if ( n < 8 ) { 13 | trap_Cvar_SetValue( "sv_maxclients", 8 ); 14 | } 15 | 16 | level = atoi( Info_ValueForKey( arenaInfo, "num" ) ); 17 | txt = Info_ValueForKey( arenaInfo, "special" ); 18 | if( txt[0] ) { 19 | if( Q_stricmp( txt, "training" ) == 0 ) { 20 | level = -4; 21 | } 22 | else if( Q_stricmp( txt, "final" ) == 0 ) { 23 | level = UI_GetNumSPTiers() * ARENAS_PER_TIER; 24 | } 25 | } 26 | trap_Cvar_SetValue( "ui_spSelection", level ); 27 | 28 | map = Info_ValueForKey( arenaInfo, "map" ); 29 | trap_Cmd_ExecuteText( EXEC_APPEND, va( "spmap %s\n", map ) ); 30 | } 31 | -------------------------------------------------------------------------------- /code/q3_ui/vm/q3asm.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/code/q3_ui/vm/q3asm.exe -------------------------------------------------------------------------------- /code/q3_ui/vm/q3cpp.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/code/q3_ui/vm/q3cpp.exe -------------------------------------------------------------------------------- /code/q3_ui/vm/q3rcc.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEnginesOfCreation/EntityPlus/09235a60d4b74a0b9d24e05aa37c95c4fa9ba4ca/code/q3_ui/vm/q3rcc.exe -------------------------------------------------------------------------------- /code/ui/keycodes.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 1999-2000 Id Software, Inc. 2 | // 3 | #ifndef __KEYCODES_H__ 4 | #define __KEYCODES_H__ 5 | 6 | // 7 | // these are the key numbers that should be passed to KeyEvent 8 | // 9 | 10 | // normal keys should be passed as lowercased ascii 11 | 12 | typedef enum { 13 | K_TAB = 9, 14 | K_ENTER = 13, 15 | K_ESCAPE = 27, 16 | K_SPACE = 32, 17 | 18 | K_BACKSPACE = 127, 19 | 20 | K_COMMAND = 128, 21 | K_CAPSLOCK, 22 | K_POWER, 23 | K_PAUSE, 24 | 25 | K_UPARROW, 26 | K_DOWNARROW, 27 | K_LEFTARROW, 28 | K_RIGHTARROW, 29 | 30 | K_ALT, 31 | K_CTRL, 32 | K_SHIFT, 33 | K_INS, 34 | K_DEL, 35 | K_PGDN, 36 | K_PGUP, 37 | K_HOME, 38 | K_END, 39 | 40 | K_F1, 41 | K_F2, 42 | K_F3, 43 | K_F4, 44 | K_F5, 45 | K_F6, 46 | K_F7, 47 | K_F8, 48 | K_F9, 49 | K_F10, 50 | K_F11, 51 | K_F12, 52 | K_F13, 53 | K_F14, 54 | K_F15, 55 | 56 | K_KP_HOME, 57 | K_KP_UPARROW, 58 | K_KP_PGUP, 59 | K_KP_LEFTARROW, 60 | K_KP_5, 61 | K_KP_RIGHTARROW, 62 | K_KP_END, 63 | K_KP_DOWNARROW, 64 | K_KP_PGDN, 65 | K_KP_ENTER, 66 | K_KP_INS, 67 | K_KP_DEL, 68 | K_KP_SLASH, 69 | K_KP_MINUS, 70 | K_KP_PLUS, 71 | K_KP_NUMLOCK, 72 | K_KP_STAR, 73 | K_KP_EQUALS, 74 | 75 | K_MOUSE1, 76 | K_MOUSE2, 77 | K_MOUSE3, 78 | K_MOUSE4, 79 | K_MOUSE5, 80 | 81 | K_MWHEELDOWN, 82 | K_MWHEELUP, 83 | 84 | K_JOY1, 85 | K_JOY2, 86 | K_JOY3, 87 | K_JOY4, 88 | K_JOY5, 89 | K_JOY6, 90 | K_JOY7, 91 | K_JOY8, 92 | K_JOY9, 93 | K_JOY10, 94 | K_JOY11, 95 | K_JOY12, 96 | K_JOY13, 97 | K_JOY14, 98 | K_JOY15, 99 | K_JOY16, 100 | K_JOY17, 101 | K_JOY18, 102 | K_JOY19, 103 | K_JOY20, 104 | K_JOY21, 105 | K_JOY22, 106 | K_JOY23, 107 | K_JOY24, 108 | K_JOY25, 109 | K_JOY26, 110 | K_JOY27, 111 | K_JOY28, 112 | K_JOY29, 113 | K_JOY30, 114 | K_JOY31, 115 | K_JOY32, 116 | 117 | K_AUX1, 118 | K_AUX2, 119 | K_AUX3, 120 | K_AUX4, 121 | K_AUX5, 122 | K_AUX6, 123 | K_AUX7, 124 | K_AUX8, 125 | K_AUX9, 126 | K_AUX10, 127 | K_AUX11, 128 | K_AUX12, 129 | K_AUX13, 130 | K_AUX14, 131 | K_AUX15, 132 | K_AUX16, 133 | 134 | K_LAST_KEY // this had better be <256! 135 | } keyNum_t; 136 | 137 | 138 | // The menu code needs to get both key and char events, but 139 | // to avoid duplicating the paths, the char events are just 140 | // distinguished by or'ing in K_CHAR_FLAG (ugly) 141 | #define K_CHAR_FLAG 1024 142 | 143 | #endif 144 | -------------------------------------------------------------------------------- /code/ui/ui.bat: -------------------------------------------------------------------------------- 1 | rem make sure we have a safe environement 2 | set LIBRARY= 3 | set INCLUDE= 4 | 5 | mkdir vm 6 | cd vm 7 | 8 | set cc=lcc -DMISSIONPACK -DQ3_VM -S -Wf-target=bytecode -Wf-g -I..\..\cgame -I..\..\game -I..\..\ui %1 9 | 10 | %cc% ../ui_main.c 11 | @if errorlevel 1 goto quit 12 | %cc% ../../game/bg_misc.c 13 | @if errorlevel 1 goto quit 14 | %cc% ../../game/bg_lib.c 15 | @if errorlevel 1 goto quit 16 | %cc% ../../game/q_math.c 17 | @if errorlevel 1 goto quit 18 | %cc% ../../game/q_shared.c 19 | @if errorlevel 1 goto quit 20 | %cc% ../ui_atoms.c 21 | @if errorlevel 1 goto quit 22 | %cc% ../ui_players.c 23 | @if errorlevel 1 goto quit 24 | %cc% ../ui_util.c 25 | @if errorlevel 1 goto quit 26 | %cc% ../ui_shared.c 27 | @if errorlevel 1 goto quit 28 | %cc% ../ui_gameinfo.c 29 | @if errorlevel 1 goto quit 30 | 31 | q3asm -f ../ui 32 | :quit 33 | cd .. 34 | -------------------------------------------------------------------------------- /code/ui/ui.def: -------------------------------------------------------------------------------- 1 | EXPORTS 2 | vmMain 3 | dllEntry 4 | -------------------------------------------------------------------------------- /code/ui/ui.q3asm: -------------------------------------------------------------------------------- 1 | -o "\quake3\missionpack\vm\ui" 2 | ui_main 3 | ..\ui_syscalls 4 | ui_atoms 5 | ui_players 6 | ui_util 7 | ui_shared 8 | ui_gameinfo 9 | bg_misc 10 | bg_lib 11 | q_math 12 | q_shared 13 | -------------------------------------------------------------------------------- /code/ui/ui.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {ff3840d0-e00b-4e93-91fb-c56614effecc} 6 | cpp;c;cxx;rc;def;r;odl;idl;hpj;bat 7 | 8 | 9 | {9de925e2-02c0-4858-ab5f-e733ab5151c3} 10 | h;hpp;hxx;hm;inl 11 | 12 | 13 | {ea8f39f5-64ed-441a-9dc9-0b7568ea8624} 14 | ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | Source Files 23 | 24 | 25 | Source Files 26 | 27 | 28 | Source Files 29 | 30 | 31 | Source Files 32 | 33 | 34 | Source Files 35 | 36 | 37 | Source Files 38 | 39 | 40 | Source Files 41 | 42 | 43 | Source Files 44 | 45 | 46 | Source Files 47 | 48 | 49 | Source Files 50 | 51 | 52 | 53 | 54 | Source Files 55 | 56 | 57 | Header Files 58 | 59 | 60 | Header Files 61 | 62 | 63 | Header Files 64 | 65 | 66 | Header Files 67 | 68 | 69 | Header Files 70 | 71 | 72 | Header Files 73 | 74 | 75 | Header Files 76 | 77 | 78 | Header Files 79 | 80 | 81 | Header Files 82 | 83 | 84 | -------------------------------------------------------------------------------- /code/ui/ui_public.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 1999-2000 Id Software, Inc. 2 | // 3 | #ifndef __UI_PUBLIC_H__ 4 | #define __UI_PUBLIC_H__ 5 | 6 | #define UI_API_VERSION 6 7 | 8 | typedef struct { 9 | connstate_t connState; 10 | int connectPacketCount; 11 | int clientNum; 12 | char servername[MAX_STRING_CHARS]; 13 | char updateInfoString[MAX_STRING_CHARS]; 14 | char messageString[MAX_STRING_CHARS]; 15 | } uiClientState_t; 16 | 17 | typedef enum { 18 | UI_ERROR, 19 | UI_PRINT, 20 | UI_MILLISECONDS, 21 | UI_CVAR_SET, 22 | UI_CVAR_VARIABLEVALUE, 23 | UI_CVAR_VARIABLESTRINGBUFFER, 24 | UI_CVAR_SETVALUE, 25 | UI_CVAR_RESET, 26 | UI_CVAR_CREATE, 27 | UI_CVAR_INFOSTRINGBUFFER, 28 | UI_ARGC, 29 | UI_ARGV, 30 | UI_CMD_EXECUTETEXT, 31 | UI_FS_FOPENFILE, 32 | UI_FS_READ, 33 | UI_FS_WRITE, 34 | UI_FS_FCLOSEFILE, 35 | UI_FS_GETFILELIST, 36 | UI_R_REGISTERMODEL, 37 | UI_R_REGISTERSKIN, 38 | UI_R_REGISTERSHADERNOMIP, 39 | UI_R_CLEARSCENE, 40 | UI_R_ADDREFENTITYTOSCENE, 41 | UI_R_ADDPOLYTOSCENE, 42 | UI_R_ADDLIGHTTOSCENE, 43 | UI_R_RENDERSCENE, 44 | UI_R_SETCOLOR, 45 | UI_R_DRAWSTRETCHPIC, 46 | UI_UPDATESCREEN, 47 | UI_CM_LERPTAG, 48 | UI_CM_LOADMODEL, 49 | UI_S_REGISTERSOUND, 50 | UI_S_STARTLOCALSOUND, 51 | UI_KEY_KEYNUMTOSTRINGBUF, 52 | UI_KEY_GETBINDINGBUF, 53 | UI_KEY_SETBINDING, 54 | UI_KEY_ISDOWN, 55 | UI_KEY_GETOVERSTRIKEMODE, 56 | UI_KEY_SETOVERSTRIKEMODE, 57 | UI_KEY_CLEARSTATES, 58 | UI_KEY_GETCATCHER, 59 | UI_KEY_SETCATCHER, 60 | UI_GETCLIPBOARDDATA, 61 | UI_GETGLCONFIG, 62 | UI_GETCLIENTSTATE, 63 | UI_GETCONFIGSTRING, 64 | UI_LAN_GETPINGQUEUECOUNT, 65 | UI_LAN_CLEARPING, 66 | UI_LAN_GETPING, 67 | UI_LAN_GETPINGINFO, 68 | UI_CVAR_REGISTER, 69 | UI_CVAR_UPDATE, 70 | UI_MEMORY_REMAINING, 71 | UI_GET_CDKEY, 72 | UI_SET_CDKEY, 73 | UI_R_REGISTERFONT, 74 | UI_R_MODELBOUNDS, 75 | UI_PC_ADD_GLOBAL_DEFINE, 76 | UI_PC_LOAD_SOURCE, 77 | UI_PC_FREE_SOURCE, 78 | UI_PC_READ_TOKEN, 79 | UI_PC_SOURCE_FILE_AND_LINE, 80 | UI_S_STOPBACKGROUNDTRACK, 81 | UI_S_STARTBACKGROUNDTRACK, 82 | UI_REAL_TIME, 83 | UI_LAN_GETSERVERCOUNT, 84 | UI_LAN_GETSERVERADDRESSSTRING, 85 | UI_LAN_GETSERVERINFO, 86 | UI_LAN_MARKSERVERVISIBLE, 87 | UI_LAN_UPDATEVISIBLEPINGS, 88 | UI_LAN_RESETPINGS, 89 | UI_LAN_LOADCACHEDSERVERS, 90 | UI_LAN_SAVECACHEDSERVERS, 91 | UI_LAN_ADDSERVER, 92 | UI_LAN_REMOVESERVER, 93 | UI_CIN_PLAYCINEMATIC, 94 | UI_CIN_STOPCINEMATIC, 95 | UI_CIN_RUNCINEMATIC, 96 | UI_CIN_DRAWCINEMATIC, 97 | UI_CIN_SETEXTENTS, 98 | UI_R_REMAP_SHADER, 99 | UI_VERIFY_CDKEY, 100 | UI_LAN_SERVERSTATUS, 101 | UI_LAN_GETSERVERPING, 102 | UI_LAN_SERVERISVISIBLE, 103 | UI_LAN_COMPARESERVERS, 104 | // 1.32 105 | UI_FS_SEEK, 106 | UI_SET_PBCLSTATUS, 107 | 108 | UI_MEMSET = 100, 109 | UI_MEMCPY, 110 | UI_STRNCPY, 111 | UI_SIN, 112 | UI_COS, 113 | UI_ATAN2, 114 | UI_SQRT, 115 | UI_FLOOR, 116 | UI_CEIL 117 | } uiImport_t; 118 | 119 | typedef enum { 120 | UIMENU_NONE, 121 | UIMENU_MAIN, 122 | UIMENU_INGAME, 123 | UIMENU_NEED_CD, 124 | UIMENU_BAD_CD_KEY, 125 | UIMENU_TEAM, 126 | UIMENU_POSTGAME 127 | } uiMenuCommand_t; 128 | 129 | #define SORT_HOST 0 130 | #define SORT_MAP 1 131 | #define SORT_CLIENTS 2 132 | #define SORT_GAME 3 133 | #define SORT_PING 4 134 | #define SORT_PUNKBUSTER 5 135 | 136 | typedef enum { 137 | UI_GETAPIVERSION = 0, // system reserved 138 | 139 | UI_INIT, 140 | // void UI_Init( void ); 141 | 142 | UI_SHUTDOWN, 143 | // void UI_Shutdown( void ); 144 | 145 | UI_KEY_EVENT, 146 | // void UI_KeyEvent( int key ); 147 | 148 | UI_MOUSE_EVENT, 149 | // void UI_MouseEvent( int dx, int dy ); 150 | 151 | UI_REFRESH, 152 | // void UI_Refresh( int time ); 153 | 154 | UI_IS_FULLSCREEN, 155 | // qboolean UI_IsFullscreen( void ); 156 | 157 | UI_SET_ACTIVE_MENU, 158 | // void UI_SetActiveMenu( uiMenuCommand_t menu ); 159 | 160 | UI_CONSOLE_COMMAND, 161 | // qboolean UI_ConsoleCommand( int realTime ); 162 | 163 | UI_DRAW_CONNECT_SCREEN, 164 | // void UI_DrawConnectScreen( qboolean overlay ); 165 | UI_HASUNIQUECDKEY 166 | // if !overlay, the background will be drawn, otherwise it will be 167 | // overlayed over whatever the cgame has drawn. 168 | // a GetClientState syscall will be made to get the current strings 169 | } uiExport_t; 170 | 171 | #endif 172 | -------------------------------------------------------------------------------- /code/ui/ui_syscalls.asm: -------------------------------------------------------------------------------- 1 | code 2 | 3 | equ trap_Error -1 4 | equ trap_Print -2 5 | equ trap_Milliseconds -3 6 | equ trap_Cvar_Set -4 7 | equ trap_Cvar_VariableValue -5 8 | equ trap_Cvar_VariableStringBuffer -6 9 | equ trap_Cvar_SetValue -7 10 | equ trap_Cvar_Reset -8 11 | equ trap_Cvar_Create -9 12 | equ trap_Cvar_InfoStringBuffer -10 13 | equ trap_Argc -11 14 | equ trap_Argv -12 15 | equ trap_Cmd_ExecuteText -13 16 | equ trap_FS_FOpenFile -14 17 | equ trap_FS_Read -15 18 | equ trap_FS_Write -16 19 | equ trap_FS_FCloseFile -17 20 | equ trap_FS_GetFileList -18 21 | equ trap_R_RegisterModel -19 22 | equ trap_R_RegisterSkin -20 23 | equ trap_R_RegisterShaderNoMip -21 24 | equ trap_R_ClearScene -22 25 | equ trap_R_AddRefEntityToScene -23 26 | equ trap_R_AddPolyToScene -24 27 | equ trap_R_AddLightToScene -25 28 | equ trap_R_RenderScene -26 29 | equ trap_R_SetColor -27 30 | equ trap_R_DrawStretchPic -28 31 | equ trap_UpdateScreen -29 32 | equ trap_CM_LerpTag -30 33 | equ trap_CM_LoadModel -31 34 | equ trap_S_RegisterSound -32 35 | equ trap_S_StartLocalSound -33 36 | equ trap_Key_KeynumToStringBuf -34 37 | equ trap_Key_GetBindingBuf -35 38 | equ trap_Key_SetBinding -36 39 | equ trap_Key_IsDown -37 40 | equ trap_Key_GetOverstrikeMode -38 41 | equ trap_Key_SetOverstrikeMode -39 42 | equ trap_Key_ClearStates -40 43 | equ trap_Key_GetCatcher -41 44 | equ trap_Key_SetCatcher -42 45 | equ trap_GetClipboardData -43 46 | equ trap_GetGlconfig -44 47 | equ trap_GetClientState -45 48 | equ trap_GetConfigString -46 49 | equ trap_LAN_GetPingQueueCount -47 50 | equ trap_LAN_ClearPing -48 51 | equ trap_LAN_GetPing -49 52 | equ trap_LAN_GetPingInfo -50 53 | equ trap_Cvar_Register -51 54 | equ trap_Cvar_Update -52 55 | equ trap_MemoryRemaining -53 56 | equ trap_GetCDKey -54 57 | equ trap_SetCDKey -55 58 | equ trap_R_RegisterFont -56 59 | equ trap_R_ModelBounds -57 60 | equ trap_PC_AddGlobalDefine -58 61 | equ trap_PC_LoadSource -59 62 | equ trap_PC_FreeSource -60 63 | equ trap_PC_ReadToken -61 64 | equ trap_PC_SourceFileAndLine -62 65 | equ trap_S_StopBackgroundTrack -63 66 | equ trap_S_StartBackgroundTrack -64 67 | equ trap_RealTime -65 68 | equ trap_LAN_GetServerCount -66 69 | equ trap_LAN_GetServerAddressString -67 70 | equ trap_LAN_GetServerInfo -68 71 | equ trap_LAN_MarkServerVisible -69 72 | equ trap_LAN_UpdateVisiblePings -70 73 | equ trap_LAN_ResetPings -71 74 | equ trap_LAN_LoadCachedServers -72 75 | equ trap_LAN_SaveCachedServers -73 76 | equ trap_LAN_AddServer -74 77 | equ trap_LAN_RemoveServer -75 78 | equ trap_CIN_PlayCinematic -76 79 | equ trap_CIN_StopCinematic -77 80 | equ trap_CIN_RunCinematic -78 81 | equ trap_CIN_DrawCinematic -79 82 | equ trap_CIN_SetExtents -80 83 | equ trap_R_RemapShader -81 84 | equ trap_VerifyCDKey -82 85 | equ trap_LAN_ServerStatus -83 86 | equ trap_LAN_GetServerPing -84 87 | equ trap_LAN_ServerIsVisible -85 88 | equ trap_LAN_CompareServers -86 89 | equ trap_FS_Seek -87 90 | equ trap_SetPbClStatus -88 91 | 92 | equ memset -101 93 | equ memcpy -102 94 | equ strncpy -103 95 | equ sin -104 96 | equ cos -105 97 | equ atan2 -106 98 | equ sqrt -107 99 | equ floor -108 100 | equ ceil -109 101 | 102 | -------------------------------------------------------------------------------- /code/ui/ui_util.c: -------------------------------------------------------------------------------- 1 | // ui_util.c 2 | // 3 | // origin: rad 4 | // new ui support stuff 5 | // 6 | // memory, string alloc 7 | 8 | 9 | -------------------------------------------------------------------------------- /entitydefinitionconverter/BaseIO.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Globalization; 4 | using System.Text; 5 | 6 | namespace edc 7 | { 8 | public abstract class BaseIO 9 | { 10 | protected CultureInfo ci = (CultureInfo)CultureInfo.CurrentCulture.Clone(); 11 | 12 | #region Constructor 13 | public BaseIO() 14 | { 15 | ci.NumberFormat.CurrencyDecimalSeparator = "."; 16 | ci.NumberFormat.NumberDecimalSeparator = "."; 17 | } 18 | #endregion 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /entitydefinitionconverter/BaseReader.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | 6 | namespace edc 7 | { 8 | public abstract class BaseReader : BaseIO 9 | { 10 | #region Abstract methods 11 | public abstract List ReadFile(string path); 12 | #endregion 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /entitydefinitionconverter/BaseWriter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace edc 6 | { 7 | public abstract class BaseWriter : BaseIO 8 | { 9 | #region Abstract methods and variables 10 | public abstract void WriteFile(List entities, string path); 11 | public abstract string OutputFilename { get; } 12 | #endregion 13 | 14 | 15 | #region Helper methods 16 | protected string FloatToString(float number) 17 | { 18 | string result = number.ToString(ci); 19 | 20 | if (result.Length > 1 && result.Substring(0, 2) == "0.") 21 | return result.Substring(1, result.Length - 1); 22 | else 23 | return result; 24 | } 25 | 26 | protected string TripletToString(float[] triplet) 27 | { 28 | string result = ""; 29 | result += FloatToString(triplet[0]); 30 | result += " "; 31 | result += FloatToString(triplet[1]); 32 | result += " "; 33 | result += FloatToString(triplet[2]); 34 | return result; 35 | } 36 | 37 | protected string TripletToString(int[] triplet) 38 | { 39 | string result = ""; 40 | result += triplet[0].ToString(); 41 | result += " "; 42 | result += triplet[1].ToString(); 43 | result += " "; 44 | result += triplet[2].ToString(); 45 | return result; 46 | } 47 | #endregion 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /entitydefinitionconverter/Entity.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Collections.Specialized; 4 | using System.Text; 5 | 6 | namespace edc 7 | { 8 | public class Entity 9 | { 10 | private List m_KeyGroups = new List(); 11 | private List m_Spawnflags = new List(); 12 | 13 | public string Name 14 | { 15 | get; 16 | set; 17 | } 18 | 19 | public string Description 20 | { 21 | get; 22 | set; 23 | } 24 | 25 | public string Notes 26 | { 27 | get; 28 | set; 29 | } 30 | 31 | public string Model 32 | { 33 | get; 34 | set; 35 | } 36 | 37 | public float[] Color //3 float values 38 | { 39 | get; 40 | set; 41 | } 42 | 43 | public int[] Mins //3 int values 44 | { 45 | get; 46 | set; 47 | } 48 | 49 | public int[] Maxs //3 int values 50 | { 51 | get; 52 | set; 53 | } 54 | 55 | public int KeyGroupCount 56 | { 57 | get { return m_KeyGroups.Count; } 58 | } 59 | 60 | public int SpawnflagCount 61 | { 62 | get { return m_Spawnflags.Count; } 63 | } 64 | 65 | #region Constructor 66 | public Entity(string name) 67 | { 68 | Name = name; 69 | Color = new float[3]; 70 | Mins = new int[3]; 71 | Maxs = new int[3]; 72 | } 73 | #endregion 74 | 75 | 76 | #region Methods - Public 77 | public void AddKeyGroup(KeyGroup keyGroup) 78 | { 79 | m_KeyGroups.Add(keyGroup); 80 | } 81 | 82 | public KeyGroup GetKeyGroup(int index) 83 | { 84 | return m_KeyGroups[index]; 85 | } 86 | 87 | public Key GetKey(int groupIndex, int index) 88 | { 89 | return m_KeyGroups[groupIndex].GetKey(index); 90 | } 91 | 92 | public void AddSpawnflag(string name, int value) 93 | { 94 | m_Spawnflags.Add(new Spawnflag(name, value)); 95 | } 96 | 97 | public Spawnflag GetSpawnflag(int index) 98 | { 99 | return m_Spawnflags[index]; 100 | } 101 | 102 | public void SetSpawnflagDescription(string name, string description) 103 | { 104 | foreach (Spawnflag sf in m_Spawnflags) 105 | { 106 | if (sf.Name == name) 107 | { 108 | sf.Description = description; 109 | } 110 | } 111 | } 112 | #endregion 113 | } 114 | } 115 | -------------------------------------------------------------------------------- /entitydefinitionconverter/EntityDefinitionsConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Text; 5 | 6 | namespace edc 7 | { 8 | class EntityDefinitionsConverter 9 | { 10 | 11 | #region Constructor 12 | public EntityDefinitionsConverter(string path, string outputPath) 13 | { 14 | Console.WriteLine("EntityDefinitionsConverter v1.2"); 15 | if (!File.Exists(path)) 16 | { 17 | Console.WriteLine(String.Format("File \"{0}\" does not exist", path)); 18 | return; 19 | } 20 | 21 | if (outputPath != null && !Directory.Exists(Path.GetDirectoryName(outputPath))) 22 | { 23 | Console.WriteLine(String.Format("Output folder \"{0}\" does not exist", Path.GetDirectoryName(outputPath))); 24 | return; 25 | } 26 | 27 | BaseReader reader = new Reader14(); 28 | List entities = reader.ReadFile(path); 29 | Console.WriteLine("Read " + entities.Count + " entities from source file"); 30 | 31 | BaseWriter writer = new Writer15(); 32 | if (outputPath == null) 33 | { 34 | outputPath = Path.GetDirectoryName(path); 35 | outputPath += "\\" + writer.OutputFilename; 36 | } 37 | writer.WriteFile(entities, outputPath); 38 | } 39 | #endregion 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /entitydefinitionconverter/Key.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace edc 6 | { 7 | public class Key 8 | { 9 | #region Properties 10 | public string Name 11 | { 12 | get; 13 | set; 14 | } 15 | 16 | public string Description 17 | { 18 | get; 19 | set; 20 | } 21 | #endregion 22 | 23 | 24 | #region Constructor 25 | public Key(string name, string description) 26 | { 27 | Name = name; 28 | Description = description; 29 | } 30 | #endregion 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /entitydefinitionconverter/KeyGroup.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace edc 6 | { 7 | public class KeyGroup 8 | { 9 | #region Properties 10 | public string Name 11 | { 12 | get; 13 | set; 14 | } 15 | 16 | public int KeyCount 17 | { 18 | get { return m_Keys.Count; } 19 | } 20 | #endregion 21 | 22 | 23 | #region Private Fields 24 | private List m_Keys = new List(); 25 | #endregion 26 | 27 | 28 | #region Constructor 29 | public KeyGroup(string name) 30 | { 31 | Name = name; 32 | } 33 | #endregion 34 | 35 | 36 | #region Methods - Public 37 | public void AddKey(Key key) 38 | { 39 | m_Keys.Add(key); 40 | } 41 | 42 | public Key GetKey(int index) 43 | { 44 | return m_Keys[index]; 45 | } 46 | #endregion 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /entitydefinitionconverter/KeyTypes/default.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | <_ambient>real 4 | <_blocksize>integer 5 | <_light>real 6 | <_scale>real 7 | real 8 | angle 9 | angles 10 | color 11 | integer 12 | real 13 | integer 14 | real 15 | integer3 16 | real 17 | real 18 | real 19 | real 20 | string 21 | model 22 | model 23 | real 24 | real3 25 | sound 26 | boolean 27 | boolean 28 | sound 29 | boolean 30 | boolean 31 | boolean 32 | boolean 33 | real3 34 | real 35 | real 36 | real 37 | real 38 | real 39 | real 40 | target 41 | targetname 42 | boolean 43 | string 44 | real 45 | real 46 | 47 | 48 | <_celshader>texture 49 | texture 50 | <_indexmap>texture 51 | integer 52 | <_layers>integer 53 | texture 54 | <_shader>texture 55 | <_targetname>targetname 56 | <_lightmapscale>real 57 | <_castshadows>integer 58 | <_cs>integer 59 | <_receiveshadows>integer 60 | <_rs>integer 61 | <_color>color 62 | <_minlight>real 63 | <_minvertexlight>real 64 | <_mingridlight>real 65 | <_keeplights>boolean 66 | <_noshadersun>boolean 67 | <_farplanedist>real 68 | <_foghull>texture 69 | <_sun>boolean 70 | real 71 | real 72 | <_remap>array 73 | -------------------------------------------------------------------------------- /entitydefinitionconverter/KeyTypes/entityplus.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | integer 4 | sound 5 | string 6 | sound 7 | target 8 | real 9 | boolean 10 | boolean 11 | color 12 | sound 13 | integer 14 | integer 15 | string 16 | integer 17 | sound 18 | target 19 | string 20 | string 21 | string 22 | string 23 | string 24 | real 25 | sound 26 | real 27 | sound 28 | color 29 | sound 30 | target 31 | targetname 32 | target 33 | sound 34 | string 35 | -------------------------------------------------------------------------------- /entitydefinitionconverter/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace edc 6 | { 7 | class Program 8 | { 9 | static void Main(string[] args) 10 | { 11 | if (args.Length == 0) 12 | { 13 | Console.WriteLine("Need to specify input file"); 14 | Console.ReadKey(true); 15 | return; 16 | } 17 | 18 | string outputPath = null; 19 | if (args.Length > 1) 20 | outputPath = args[1]; 21 | EntityDefinitionsConverter prog = new EntityDefinitionsConverter(args[0], outputPath); 22 | Console.ReadKey(true); 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /entitydefinitionconverter/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("EntityDefinitionsConverter")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("The Engines of Creation")] 12 | [assembly: AssemblyProduct("EntityDefinitionsConverter")] 13 | [assembly: AssemblyCopyright("Copyright © 2023 The Engines of Creation")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("c6eb7b9a-6161-4739-a996-f7143e219f6b")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.2.0.1")] 36 | [assembly: AssemblyFileVersion("1.2.0.1")] 37 | -------------------------------------------------------------------------------- /entitydefinitionconverter/Spawnflag.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace edc 6 | { 7 | public class Spawnflag 8 | { 9 | public string Name 10 | { 11 | get; 12 | set; 13 | } 14 | 15 | public int Bit 16 | { 17 | get; 18 | set; 19 | } 20 | 21 | public string Description 22 | { 23 | get; 24 | set; 25 | } 26 | 27 | public Spawnflag(string name, int bit) 28 | { 29 | Name = name; 30 | Bit = bit; 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /entitydefinitionconverter/Writer15.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | using System.IO; 5 | using System.Xml; 6 | 7 | namespace edc 8 | { 9 | /// Writes list of entity objects to GtkRadiant 1.5 format entities.ent file 10 | class Writer15 : BaseWriter 11 | { 12 | #region Properties 13 | public override string OutputFilename 14 | { 15 | get 16 | { 17 | return "entities.ent"; 18 | } 19 | } 20 | #endregion 21 | 22 | 23 | #region Members 24 | private List m_KeyTypes = new List(); 25 | #endregion 26 | 27 | 28 | #region Methods - Public 29 | public override void WriteFile(List entities, string path) 30 | { 31 | LoadKeyTypes(); 32 | 33 | StringBuilder sb = new StringBuilder(); 34 | 35 | sb.AppendLine(""); 36 | sb.AppendLine(""); 37 | 38 | foreach (Entity ent in entities) 39 | { 40 | //write opening tag 41 | string model = ""; 42 | if (!String.IsNullOrEmpty(ent.Model)) 43 | model = " model=\"" + ent.Model + "\""; 44 | 45 | if (ent.Mins == null) 46 | sb.AppendLine(String.Format("\n", ent.Name, TripletToString(ent.Color), model)); 47 | else 48 | sb.AppendLine( 49 | String.Format( 50 | "\n", 51 | ent.Name, 52 | TripletToString(ent.Color), 53 | TripletToString(ent.Mins), 54 | TripletToString(ent.Maxs), 55 | model 56 | ) 57 | ); 58 | 59 | //write description 60 | if (!String.IsNullOrEmpty(ent.Description)) 61 | sb.AppendLine(EncodeXml(ent.Description)); 62 | 63 | //write keys 64 | if (ent.KeyGroupCount > 0) 65 | { 66 | for (int i = 0; i < ent.KeyGroupCount; i++) 67 | { 68 | KeyGroup keyGroup = ent.GetKeyGroup(i); 69 | sb.AppendLine("-------- " + keyGroup.Name + " --------"); 70 | 71 | for (int n = 0; n < keyGroup.KeyCount; n++) 72 | { 73 | Key key = keyGroup.GetKey(n); 74 | string keyType = GetKeyType(key.Name); 75 | 76 | if (!String.IsNullOrEmpty(keyType)) 77 | sb.AppendLine(String.Format("<{0} key=\"{1}\" name=\"{1}\">{2}", keyType, key.Name, EncodeXml(key.Description))); 78 | } 79 | } 80 | } 81 | 82 | //write spawnflags 83 | if (ent.SpawnflagCount > 0) 84 | { 85 | sb.AppendLine("-------- SPAWNFLAGS --------"); 86 | for (int i = 0; i < ent.SpawnflagCount; i++) 87 | { 88 | Spawnflag sf = ent.GetSpawnflag(i); 89 | sb.AppendLine(String.Format("{2}", sf.Name, sf.Bit, EncodeXml(sf.Description))); 90 | } 91 | } 92 | 93 | if (!String.IsNullOrEmpty(ent.Notes)) 94 | { 95 | sb.AppendLine("-------- NOTES --------"); 96 | sb.AppendLine(EncodeXml(ent.Notes)); 97 | } 98 | 99 | if (ent.Mins == null) 100 | sb.AppendLine(""); 101 | else 102 | sb.AppendLine(""); 103 | } 104 | 105 | sb.AppendLine(""); 106 | 107 | Console.WriteLine("Writing output to \"" + path + "\""); 108 | StreamWriter sw = new StreamWriter(path); 109 | sw.Write(sb.ToString()); 110 | sw.Close(); 111 | Console.WriteLine("Done."); 112 | } 113 | #endregion 114 | 115 | 116 | #region Methods - Private 117 | private void LoadKeyTypes() 118 | { 119 | string[] filenames = Directory.GetFiles("KeyTypes", "*.xml"); 120 | 121 | foreach (string filename in filenames) 122 | { 123 | XmlDocument xml = new XmlDocument(); 124 | xml.Load(filename); 125 | Console.WriteLine("Read " + filename); 126 | m_KeyTypes.Add(xml); 127 | } 128 | } 129 | 130 | private string GetKeyType(string key) 131 | { 132 | foreach (XmlDocument xml in m_KeyTypes) 133 | { 134 | XmlNodeList nodes = xml.SelectNodes("keytypes/" + key); 135 | 136 | if (nodes.Count > 0) 137 | return nodes[0].InnerText; 138 | } 139 | 140 | Console.WriteLine("Cannot find type for key \"" + key + "\""); 141 | return ""; 142 | } 143 | 144 | private string EncodeXml(string input) 145 | { 146 | if (input == null) 147 | return ""; 148 | return input.Replace("<", "<").Replace(">", ">"); 149 | } 150 | #endregion 151 | } 152 | } 153 | -------------------------------------------------------------------------------- /entitydefinitionconverter/edc.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Debug 5 | AnyCPU 6 | 9.0.21022 7 | 2.0 8 | {91C78A70-E720-436D-BB07-52114E23F719} 9 | Exe 10 | Properties 11 | edc 12 | edc 13 | v2.0 14 | 512 15 | 16 | 17 | 18 | 19 | 3.5 20 | 21 | 22 | true 23 | full 24 | false 25 | bin\Debug\ 26 | DEBUG;TRACE 27 | prompt 28 | 4 29 | 30 | 31 | none 32 | true 33 | bin\Release\ 34 | TRACE 35 | prompt 36 | 4 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | Always 60 | 61 | 62 | Always 63 | 64 | 65 | 66 | 67 | 74 | -------------------------------------------------------------------------------- /entitydefinitionconverter/edc.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 14 4 | VisualStudioVersion = 14.0.23107.0 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "edc", "edc.csproj", "{91C78A70-E720-436D-BB07-52114E23F719}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {91C78A70-E720-436D-BB07-52114E23F719}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {91C78A70-E720-436D-BB07-52114E23F719}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {91C78A70-E720-436D-BB07-52114E23F719}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {91C78A70-E720-436D-BB07-52114E23F719}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | EndGlobal 23 | -------------------------------------------------------------------------------- /entitydefinitionconverter/readme.txt: -------------------------------------------------------------------------------- 1 | EntityDefinitionsConverter (EDC) 2 | ================================ 3 | 4 | This tool converts entity defintion files from the GtkRadiant 1.4 to the GtkRadiant 1.5 format. 5 | 6 | 7 | Usage 8 | ----- 9 | type 10 | edc.exe [filename] [output] 11 | in a command prompt to convert a file. Replace [filename] with the path to the entities.def file that should be converted. 12 | [ouput] should be replaced with the path to which you wish to write the output file (including filename). If [output] is omitted 13 | the resulting entities.ent file will be written to the same folder as where the input file is located. 14 | 15 | 16 | When this tool is used for definition files other than the ones meant for baseq3 or EntityPlus it may be necessary to add a new 17 | KeyTypes xml file. Because GtkRadiant 1.5 entities.ent files also define the data type for each key, the tool needs to know what 18 | the data type for each key is. The KeyTypes xml files tell the tool what datatype is used for what key. To add a new KeyTypes file, 19 | create a new XML file in the KeyTypes folder and add the root element "keytypes". Under the root element, add a node for each new key 20 | where the name of the node is equal to the name of the key. The text within the node should describe the datatype used for this key. 21 | 22 | Contact 23 | ------- 24 | Visit the EntityPlus project website at https://github.com/TheEnginesOfCreation/EntityPlus -------------------------------------------------------------------------------- /minversiontool/Entity.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace mvt 6 | { 7 | class Entity 8 | { 9 | #region Private fields 10 | private Dictionary KeyValuePairs = new Dictionary(); 11 | #endregion 12 | 13 | 14 | #region Properties 15 | public int EntityNum 16 | { 17 | get; 18 | set; 19 | } 20 | 21 | public int Spawnflags 22 | { 23 | get 24 | { 25 | string sf = GetValue("spawnflags"); 26 | if (String.IsNullOrEmpty(sf)) 27 | return 0; 28 | else 29 | { 30 | try 31 | { 32 | int sfi = int.Parse(sf); 33 | return sfi; 34 | } 35 | catch (FormatException) 36 | { 37 | Console.WriteLine("ERROR: spawnflags for this entity is set to \"" + sf + "\", which is not a valid numeric value"); 38 | return 0; 39 | } 40 | } 41 | } 42 | } 43 | 44 | public string Classname 45 | { 46 | get 47 | { 48 | return GetValue("classname"); 49 | } 50 | } 51 | #endregion 52 | 53 | 54 | public Entity() 55 | { 56 | } 57 | 58 | public void AddKeyValuePair(string key, string value) 59 | { 60 | key = key.ToLower(); 61 | if (KeyValuePairs.ContainsKey(key)) 62 | { 63 | Console.WriteLine(String.Format("Error: entity {0} contains multiple entries for \"{1}\" key", EntityNum, key)); 64 | return; 65 | } 66 | KeyValuePairs.Add(key, value); 67 | } 68 | 69 | public string GetValue(string key) 70 | { 71 | key = key.ToLower(); 72 | if (KeyValuePairs.ContainsKey(key)) 73 | return KeyValuePairs[key]; 74 | else 75 | return null; 76 | } 77 | 78 | public int? GetIntValue(string key) 79 | { 80 | key = key.ToLower(); 81 | if (KeyValuePairs.ContainsKey(key)) 82 | { 83 | int value; 84 | if (int.TryParse(KeyValuePairs[key], out value)) 85 | { 86 | return value; 87 | } 88 | else 89 | { 90 | return null; 91 | } 92 | } 93 | else 94 | { 95 | return null; 96 | } 97 | } 98 | 99 | public bool HasSpawnflag(int value) { 100 | return (GetIntValue("spawnflags") != null && ((GetIntValue("spawnflags").Value & value) > 0)); 101 | } 102 | } 103 | } 104 | -------------------------------------------------------------------------------- /minversiontool/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Text; 5 | 6 | namespace mvt 7 | { 8 | class Program 9 | { 10 | //version: first three numbers are EntityPlus version it supports, last number is incremental version of the tool itself 11 | private const string epVersion = "1.1.11"; 12 | private const string mvtVersion = "0"; 13 | 14 | static void Main(string[] args) 15 | { 16 | Console.WriteLine("=== MinVersionTool " + epVersion + "." + mvtVersion + " for EntityPlus " + epVersion + " ==="); 17 | string filename= ""; 18 | MinVersionTool.LogModes logMode = MinVersionTool.LogModes.None; 19 | 20 | for (int i = 0; i < args.Length; i++) 21 | { 22 | if (args[i] == "-d" && logMode != MinVersionTool.LogModes.Verbose) 23 | logMode = MinVersionTool.LogModes.Debug; 24 | else if (args[i] == "-v") 25 | logMode = MinVersionTool.LogModes.Verbose; 26 | else if (filename == "") 27 | filename = args[i]; 28 | } 29 | 30 | if (filename == "") 31 | { 32 | Console.WriteLine("You must supply the path to a .map file"); 33 | Console.WriteLine(" -d : show a list of entities causing a minimum version requirement."); 34 | Console.WriteLine(" -v : list all entities."); 35 | Console.ReadKey(); 36 | return; 37 | } 38 | 39 | if (!File.Exists(filename)) 40 | { 41 | Console.WriteLine("The specified map file could not be found"); 42 | Console.ReadKey(); 43 | return; 44 | } 45 | 46 | MinVersionTool mvt = new MinVersionTool(filename, logMode); 47 | } 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /minversiontool/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("MinVersion Tool application")] 9 | [assembly: AssemblyDescription("MinVersion Tool for EntityPlus")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("The Engines of Creation")] 12 | [assembly: AssemblyProduct("MinVersion Tool for EntityPlus")] 13 | [assembly: AssemblyCopyright("Copyright © 2025 The Engines of Creation")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("73e7ddaa-6cb5-43c7-8ad8-8b242cceb5cb")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.1.11.0")] 36 | [assembly: AssemblyFileVersion("1.1.11.0")] 37 | -------------------------------------------------------------------------------- /minversiontool/mvt.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Debug 5 | AnyCPU 6 | 9.0.21022 7 | 2.0 8 | {301F0C5E-651D-41E9-A9F1-1FDC44BED1E1} 9 | Exe 10 | Properties 11 | mvt 12 | mvt 13 | v2.0 14 | 512 15 | 16 | 17 | 18 | 19 | 3.5 20 | false 21 | publish\ 22 | true 23 | Disk 24 | false 25 | Foreground 26 | 7 27 | Days 28 | false 29 | false 30 | true 31 | 0 32 | 1.1.10.0 33 | false 34 | true 35 | 36 | 37 | true 38 | full 39 | false 40 | bin\Debug\ 41 | DEBUG;TRACE 42 | prompt 43 | 4 44 | 45 | 46 | none 47 | true 48 | bin\Release\ 49 | TRACE 50 | prompt 51 | 4 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | False 70 | .NET Framework 3.5 SP1 71 | true 72 | 73 | 74 | 75 | 82 | -------------------------------------------------------------------------------- /minversiontool/mvt.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 14 4 | VisualStudioVersion = 14.0.22823.1 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "mvt", "mvt.csproj", "{301F0C5E-651D-41E9-A9F1-1FDC44BED1E1}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {301F0C5E-651D-41E9-A9F1-1FDC44BED1E1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {301F0C5E-651D-41E9-A9F1-1FDC44BED1E1}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {301F0C5E-651D-41E9-A9F1-1FDC44BED1E1}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {301F0C5E-651D-41E9-A9F1-1FDC44BED1E1}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | EndGlobal 23 | -------------------------------------------------------------------------------- /minversiontool/readme.txt: -------------------------------------------------------------------------------- 1 | ENTITYPLUS MINVERSIONTOOL 2 | ------------------------- 3 | 4 | MinVersionTool is a tool for level designers who create maps for the EntityPlus mod. 5 | Because each version of the mod adds new features and functionality, it is possible that a player downloads a map that makes use of certain features that are not supported by the version of EntityPlus that the player is running. 6 | 7 | To prevent players from unknowingly playing maps that are not fully functional, or indeed impossible to finish, level designers can add a "minversion" setting to the .arena file that accompanies the map. This setting will inform the game what minimum version of EntityPlus is required to run the map correctly. If the user is running an older version, the incompatibility is indicated by a yellow "requires version x.x" text on the picture of the map in the map selection screen. 8 | 9 | This minversion tool can analyze a .map file and tell you what the minversion for that map will be. 10 | 11 | 12 | Usage 13 | ----- 14 | 15 | Simply type 16 | mvt.exe "filename" 17 | in a command prompt to analyze a map. Replace filename with the full path to the mapfile. 18 | 19 | The tool also supports two command line switches: 20 | 21 | -d : When supplying this switch, the tool will list the entities, keys or spawnflags used. 22 | -v : This switch will output the same information as the -d switch but it will also list all the entities present in the map. 23 | 24 | 25 | Compatibility 26 | ------------- 27 | 28 | The minversiontool is only able to determine the minversion up to the version that the minversiontool itself is compatible with. It is therefore important to always make sure your minversiontool is up-to-date with the version of EntityPlus you are running yourself. 29 | 30 | 31 | Contact 32 | ------- 33 | Visit the EntityPlus project website at https://github.com/TheEnginesOfCreation/EntityPlus -------------------------------------------------------------------------------- /ui/chip.menu: -------------------------------------------------------------------------------- 1 | #include "ui/menudef.h" 2 | 3 | itemDef { 4 | name "f" 5 | rect 5 7 24 24 6 | visible 1 7 | bordercolor 1 1 1 .75 8 | decoration 9 | style 3 10 | background "ui/assets/bluechip.tga" 11 | } 12 | 13 | 14 | itemDef { 15 | name "f" 16 | rect 5 7 24 24 17 | visible 1 18 | decoration 19 | ownerdraw CG_BLUE_FLAGSTATUS 20 | } 21 | 22 | itemDef { 23 | name "f" 24 | rect 67 7 24 24 25 | visible 1 26 | bordercolor 1 1 1 .75 27 | decoration 28 | style 3 29 | background "ui/assets/redchip.tga" 30 | } 31 | 32 | itemDef { 33 | name "f" 34 | rect 67 7 24 24 35 | visible 1 36 | decoration 37 | ownerdraw CG_RED_FLAGSTATUS 38 | } 39 | 40 | -------------------------------------------------------------------------------- /ui/cinematic.menu: -------------------------------------------------------------------------------- 1 | #include "ui/menudef.h" 2 | 3 | { 4 | \\ Cinematic \\ 5 | 6 | menuDef { 7 | name "cinematic" 8 | visible 0 9 | fullscreen 1 10 | rect 0 0 640 480 11 | focusColor 1 .67 0 1 12 | style 1 13 | border 1 14 | onopen { exec "cinematic idlogo.RoQ" ; open credit } 15 | } 16 | } -------------------------------------------------------------------------------- /ui/connect.menu: -------------------------------------------------------------------------------- 1 | #include "ui/menudef.h" 2 | 3 | 4 | { 5 | 6 | menuDef { 7 | name "Connect" 8 | background "ui/assets/backscreen" 9 | rect 0 0 640 480 10 | fullScreen MENU_FALSE 11 | visible MENU_FALSE 12 | style WINDOW_STYLE_SHADER 13 | } 14 | 15 | } -------------------------------------------------------------------------------- /ui/createfavorite.menu: -------------------------------------------------------------------------------- 1 | #include "ui/menudef.h" 2 | 3 | { 4 | \\ CREATE FAVORITE POPUP MENU \\ 5 | 6 | menuDef { 7 | name "createfavorite_popmenu" 8 | visible 0 9 | fullscreen 0 10 | rect 204 122 235 235 11 | focusColor 1 .75 0 1 12 | style 1 13 | border 1 14 | popup 15 | onESC { close createfavorite_popmenu ; open joinserver } 16 | 17 | 18 | 19 | itemDef { 20 | name window 21 | rect 0 0 235 235 22 | style 3 23 | background "ui/assets/mainpop.tga" 24 | visible 1 25 | decoration 26 | } 27 | itemDef { 28 | name window 29 | rect 47 47 144 144 30 | style 3 31 | background "centerconsole2" 32 | visible 1 33 | decoration 34 | } 35 | 36 | 37 | 38 | 39 | 40 | // ENTER NAME AND ADDRESS // 41 | 42 | itemDef { 43 | name name 44 | text "Name" 45 | style 0 46 | decoration 47 | textscale .3 48 | rect 1 62 110 20 49 | textalign 1 50 | textalignx 117 51 | textaligny 16 52 | forecolor 0 0 0 1 53 | visible 1 54 | 55 | } 56 | itemDef { 57 | name name 58 | text "Name" 59 | style 0 60 | decoration 61 | textscale .3 62 | rect 0 61 110 20 63 | textalign 1 64 | textalignx 117 65 | textaligny 16 66 | forecolor 1 1 1 1 67 | visible 1 68 | } 69 | itemDef { 70 | name nameEntry 71 | style 1 72 | maxchars 15 73 | text ":" 74 | textscale .25 75 | TYPE 4 76 | cvar "ui_favoriteName" 77 | rect 60 81 120 20 78 | textalign 0 79 | textalignx 0 80 | textaligny 16 81 | forecolor 1 1 1 1 82 | backcolor 0 0 0 .5 83 | visible 1 84 | mouseenter { setitemcolor nameentry backcolor 0 0 0 .75 } 85 | mouseexit { setitemcolor nameentry backcolor 0 0 0 .5 } 86 | } 87 | 88 | 89 | 90 | 91 | 92 | itemDef { 93 | name address 94 | text "IP Address" 95 | style 0 96 | decoration 97 | textscale .3 98 | rect 1 112 110 20 99 | textalign 1 100 | textalignx 117 101 | textaligny 16 102 | forecolor 0 0 0 1 103 | visible 1 104 | 105 | } 106 | itemDef { 107 | name address 108 | text "IP Address" 109 | style 0 110 | decoration 111 | textscale .3 112 | rect 0 111 110 20 113 | textalign 1 114 | textalignx 117 115 | textaligny 16 116 | forecolor 1 1 1 1 117 | visible 1 118 | } 119 | itemDef { 120 | name addressEntry 121 | style 1 122 | maxchars 20 123 | maxPaintChars 12 124 | text ":" 125 | textscale .25 126 | TYPE 4 127 | maxchars 21 128 | cvar "ui_favoriteAddress" 129 | rect 60 131 120 20 130 | textalign 0 131 | textalignx 0 132 | textaligny 16 133 | forecolor 1 1 1 1 134 | backcolor 0 0 0 .25 135 | visible 1 136 | mouseenter { setitemcolor addressEntry backcolor 0 0 0 .75 } 137 | mouseexit { setitemcolor addressEntry backcolor 0 0 0 .25 } 138 | } 139 | 140 | 141 | 142 | 143 | itemDef { 144 | name yes 145 | text "Ok" 146 | type 1 147 | textscale .25 148 | style WINDOW_STYLE_FILLED 149 | background "ui/assets/button_back.tga" 150 | rect 103 158 30 26 151 | textalign 1 152 | textalignx 15 153 | textaligny 20 154 | forecolor 1 1 1 1 155 | backcolor .37 .1 .1 1 156 | visible 1 157 | action { play "sound/misc/nomenu.wav" ; 158 | uiScript CreateFavorite ; 159 | close createfavorite_popmenu ; 160 | open joinserver } 161 | mouseEnter { setitemcolor yes backcolor .1 .37 .1 1 } 162 | mouseExit { setitemcolor yes backcolor .37 .1 .1 1 } 163 | } 164 | 165 | itemDef { 166 | name yes 167 | style WINDOW_STYLE_SHADER 168 | background "ui/assets/framebutton.tga" 169 | rect 103 158 30 26 170 | visible 1 171 | decoration 172 | } 173 | 174 | itemDef { 175 | name yes 176 | style WINDOW_STYLE_SHADER 177 | background "ui/assets/leftbutton.tga" 178 | rect 97 158 7 26 179 | visible 1 180 | decoration 181 | } 182 | 183 | itemDef { 184 | name yes 185 | style WINDOW_STYLE_SHADER 186 | background "ui/assets/rightbutton.tga" 187 | rect 132 158 7 26 188 | visible 1 189 | decoration 190 | } 191 | 192 | 193 | 194 | 195 | 196 | 197 | } 198 | } 199 | } -------------------------------------------------------------------------------- /ui/filter.menu: -------------------------------------------------------------------------------- 1 | #include "ui/menudef.h" 2 | 3 | { 4 | 5 | menuDef { 6 | name "filter_popmenu" 7 | visible 0 8 | fullscreen 0 9 | rect 204 122 235 235 10 | focusColor 1 .75 0 1 11 | style 1 12 | border 1 13 | popup 14 | onESC { close filter_popmenu ; open joinserver } 15 | 16 | itemDef { 17 | name window 18 | rect 0 0 235 235 19 | style 3 20 | background "ui/assets/mainpop.tga" 21 | visible 1 22 | decoration 23 | } 24 | itemDef { 25 | name window 26 | rect 47 47 144 144 27 | style 3 28 | background "centerconsole2" 29 | visible 1 30 | decoration 31 | } 32 | 33 | // settings 34 | 35 | itemDef { 36 | name viewEmpty 37 | type ITEM_TYPE_YESNO 38 | text "View Empty:" 39 | cvar "ui_browserShowEmpty" 40 | textscale .25 41 | rect 107 81 110 20 42 | textalign ITEM_ALIGN_CENTER 43 | textalignx 0 44 | textaligny 17 45 | forecolor 1 1 1 1 46 | visible 1 47 | action { play "sound/misc/nomenu.wav" ; 48 | uiScript RefreshFilter } 49 | mouseEnter { show message_viewEmpty } 50 | mouseExit { hide message_viewEmpty } 51 | } 52 | itemDef { 53 | name viewEmpty 54 | type 11 55 | text "View Full:" 56 | cvar "ui_browserShowFull" 57 | textscale .25 58 | rect 107 112 110 20 59 | textalign ITEM_ALIGN_CENTER 60 | textalignx 0 61 | textaligny 17 62 | forecolor 1 1 1 1 63 | visible 1 64 | action { play "sound/misc/nomenu.wav" ; 65 | uiScript RefreshFilter } 66 | mouseEnter { show message_viewFull } 67 | mouseExit { hide message_viewFull } 68 | } 69 | 70 | // ok button 71 | 72 | itemDef { 73 | name yes 74 | text "Ok" 75 | type 1 76 | textscale .25 77 | style WINDOW_STYLE_FILLED 78 | background "ui/assets/button_back.tga" 79 | rect 103 158 30 26 80 | textalign 1 81 | textalignx 15 82 | textaligny 20 83 | forecolor 1 1 1 1 84 | backcolor .37 .1 .1 1 85 | visible 1 86 | action { play "sound/misc/nomenu.wav" ; 87 | close filter_popmenu ; 88 | open joinserver } 89 | mouseEnter { setitemcolor yes backcolor .1 .37 .1 1 } 90 | mouseExit { setitemcolor yes backcolor .37 .1 .1 1 } 91 | } 92 | itemDef { 93 | name yes 94 | style WINDOW_STYLE_SHADER 95 | background "ui/assets/framebutton.tga" 96 | rect 103 158 30 26 97 | visible 1 98 | decoration 99 | } 100 | 101 | itemDef { 102 | name yes 103 | style WINDOW_STYLE_SHADER 104 | background "ui/assets/leftbutton.tga" 105 | rect 97 158 7 26 106 | visible 1 107 | decoration 108 | } 109 | 110 | itemDef { 111 | name yes 112 | style WINDOW_STYLE_SHADER 113 | background "ui/assets/rightbutton.tga" 114 | rect 132 158 7 26 115 | visible 1 116 | decoration 117 | } 118 | } 119 | } 120 | -------------------------------------------------------------------------------- /ui/hud.txt: -------------------------------------------------------------------------------- 1 | // hud menu defs 2 | // 3 | { 4 | loadMenu { "ui/hud.menu" } 5 | loadMenu { "ui/score.menu" } 6 | loadMenu { "ui/teamscore.menu" } 7 | } 8 | -------------------------------------------------------------------------------- /ui/hud2.txt: -------------------------------------------------------------------------------- 1 | // hud menu defs 2 | // 3 | { 4 | loadMenu { "ui/min_hud.menu" } 5 | loadMenu { "ui/score.menu" } 6 | loadMenu { "ui/teamscore.menu" } 7 | } 8 | -------------------------------------------------------------------------------- /ui/ingame.txt: -------------------------------------------------------------------------------- 1 | // menu defs 2 | // 3 | { 4 | loadMenu { "ui/ingame.menu" } 5 | loadMenu { "ui/ingame_vote.menu" } 6 | loadMenu { "ui/ingame_about.menu" } 7 | loadMenu { "ui/ingame_controls.menu" } 8 | loadMenu { "ui/ingame_join.menu" } 9 | loadMenu { "ui/ingame_options.menu" } 10 | loadMenu { "ui/ingame_system.menu" } 11 | loadMenu { "ui/ingame_leave.menu" } 12 | loadMenu { "ui/ingame_player.menu" } 13 | loadMenu { "ui/ingame_addbot.menu" } 14 | loadMenu { "ui/ingame_callvote.menu" } 15 | loadMenu { "ui/ingame_orders.menu" } 16 | } 17 | -------------------------------------------------------------------------------- /ui/ingame_addbot.menu: -------------------------------------------------------------------------------- 1 | #include "ui/menudef.h" 2 | 3 | { 4 | \\ ADDBOT MENU \\ 5 | 6 | menuDef { 7 | name "ingame_addbot" 8 | visible 0 9 | fullscreen 0 10 | outOfBoundsClick // this closes the window if it gets a click out of the rectangle 11 | rect 106 30 192 123 12 | disableColor .5 .5 .5 1 13 | focusColor 1 .75 0 1 14 | style 1 15 | border 1 16 | 17 | itemDef { 18 | name window 19 | rect 10 15 172 108 20 | style 1 21 | backcolor 0 .1 0 1 22 | visible 1 23 | decoration 24 | } 25 | 26 | 27 | 28 | 29 | 30 | itemDef { 31 | name window 32 | rect 0 10 64 64 33 | style 3 34 | background "ui/assets/ingameleftcorner.tga" 35 | visible 1 36 | decoration 37 | } 38 | 39 | itemDef { 40 | name window 41 | rect 64 0 65 16 42 | style 3 43 | background "ui/assets/ingameconnection.tga" 44 | visible 1 45 | decoration 46 | } 47 | itemDef { 48 | name window 49 | rect 129 10 64 64 50 | style 3 51 | background "ui/assets/ingamerightcorner.tga" 52 | visible 1 53 | decoration 54 | } 55 | 56 | itemDef { 57 | name window 58 | rect 0 64 64 64 59 | style 3 60 | background "ui/assets/ingameleftcornerb.tga" 61 | visible 1 62 | decoration 63 | } 64 | itemDef { 65 | name window 66 | rect 129 64 64 64 67 | style 3 68 | background "ui/assets/ingamerightcornerb.tga" 69 | visible 1 70 | decoration 71 | } 72 | itemDef { 73 | name window 74 | rect 64 120 66 8 75 | style 3 76 | background "ui/assets/ingamebottom.tga" 77 | visible 1 78 | decoration 79 | } 80 | 81 | 82 | 83 | itemDef { 84 | name gametypefield 85 | style 0 86 | text "Name:" 87 | ownerdraw UI_BOTNAME 88 | rect 0 20 128 20 89 | textalign ITEM_ALIGN_RIGHT 90 | textalignx 86 91 | textaligny 18 92 | textscale .25 93 | forecolor 1 1 1 1 94 | border 0 95 | bordercolor 0 0 0 0 96 | visible 1 97 | } 98 | 99 | itemDef { 100 | name gametypefield 101 | style 0 102 | text "Team:" 103 | ownerdraw UI_REDBLUE 104 | rect 0 40 128 20 105 | textalign ITEM_ALIGN_RIGHT 106 | textalignx 86 107 | textaligny 18 108 | textscale .25 109 | cvarTest "g_gametype" 110 | disableCvar { "0" ; "1" } 111 | forecolor 1 1 1 1 112 | border 0 113 | bordercolor 0 0 0 0 114 | visible 1 115 | } 116 | 117 | itemDef { 118 | name gametypefield 119 | style 0 120 | text "Skill:" 121 | ownerdraw UI_BOTSKILL 122 | rect 0 60 128 20 123 | textalign ITEM_ALIGN_RIGHT 124 | textalignx 86 125 | textaligny 18 126 | textscale .25 127 | forecolor 1 1 1 1 128 | border 0 129 | bordercolor 0 0 0 0 130 | visible 1 131 | } 132 | 133 | 134 | itemDef { 135 | name ok 136 | text "Add Bot" 137 | type 1 138 | textscale .25 139 | style WINDOW_STYLE_FILLED 140 | background "ui/assets/button_back.tga" 141 | rect 65 95 50 20 142 | textalign 1 143 | textalignx 25 144 | textaligny 15 145 | forecolor 1 1 1 1 146 | backcolor .37 .1 .1 1 147 | visible 1 148 | action { uiScript addBot ; uiScript closeingame } 149 | mouseEnter { setitemcolor ok backcolor .1 .37 .1 1 } 150 | mouseExit { setitemcolor ok backcolor .37 .1 .1 1 } 151 | } 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | } 160 | 161 | 162 | } 163 | -------------------------------------------------------------------------------- /ui/ingame_callvote2.menu: -------------------------------------------------------------------------------- 1 | #include "ui/menudef.h" 2 | 3 | { 4 | \\ CALL VOTE MENU \\ 5 | 6 | menuDef { 7 | name "ingame_callvote" 8 | visible 0 9 | fullscreen 0 10 | rect 374 30 255 350 11 | outOfBoundsClick // this closes the window if it gets a click out of the rectangle 12 | focusColor 1 .75 0 1 13 | style 1 14 | border 1 15 | 16 | onOpen { uiScript loadArenas } 17 | 18 | 19 | itemDef { 20 | name window 21 | rect 0 0 255 350 22 | style 1 23 | border 1 24 | bordercolor .5 .5 .5 1 25 | backcolor 0 0 .75 .25 26 | visible 1 27 | decoration 28 | } 29 | 30 | 31 | 32 | 33 | itemDef { 34 | name maprestart 35 | text "Map Restart:" 36 | type 11 37 | textscale .25 38 | cvar "map_restart" 39 | rect 20 10 110 20 40 | textalign 0 41 | textalignx 0 42 | textaligny 16 43 | forecolor 1 1 1 1 44 | visible 1 45 | } 46 | 47 | 48 | itemDef { 49 | name maprestart 50 | text "Next Map:" 51 | type 11 52 | textscale .25 53 | cvar "nextmap" 54 | rect 20 30 110 20 55 | textalign 0 56 | textalignx 0 57 | textaligny 16 58 | forecolor 1 1 1 1 59 | visible 1 60 | action { } 61 | } 62 | itemDef { 63 | name maprestart 64 | text "Do Warmup:" 65 | type 11 66 | textscale .25 67 | rect 20 50 110 20 68 | textalign 0 69 | textalignx 0 70 | textaligny 16 71 | forecolor 1 1 1 1 72 | visible 1 73 | action { } 74 | } 75 | 76 | itemDef { 77 | name gametype 78 | text "Gametype:" 79 | style 0 80 | textscale .25 81 | ownerdraw UI_NETGAMETYPE 82 | rect 20 70 110 20 83 | textalign 0 84 | textalignx 0 85 | textaligny 16 86 | forecolor 1 1 1 1 87 | visible 1 88 | } 89 | 90 | itemDef { 91 | name window 92 | rect 0 92 255 120 93 | style 0 94 | border 1 95 | bordercolor .5 .5 .5 1 96 | visible 1 97 | decoration 98 | } 99 | 100 | itemDef { 101 | name maprestart 102 | text "Kick Player:" 103 | textscale .25 104 | rect 20 95 110 20 105 | //ownerdraw UI_ALLMAPS_SELECTION 106 | textalign 0 107 | textalignx 0 108 | textaligny 16 109 | forecolor 1 1 1 1 110 | visible 1 111 | action { } 112 | } 113 | itemDef { 114 | name playerlist 115 | rect 20 115 225 85 116 | style WINDOW_STYLE_FILLED 117 | type ITEM_TYPE_LISTBOX 118 | elementwidth 120 119 | elementheight 15 120 | textscale .25 121 | elementtype LISTBOX_TEXT 122 | border 1 123 | bordercolor .5 .5 .5 .5 124 | forecolor 1 1 1 1 125 | backcolor 0 0 .5 .25 126 | outlinecolor .1 .1 .7 .5 127 | visible 1 128 | mouseEnter { fadein message_arena ; setitemcolor playerlist bordercolor .7 0 0 1 } 129 | mouseExit { fadeout message_arena ; setitemcolor playerlist bordercolor .5 .5 .5 1 } 130 | } 131 | 132 | itemDef { 133 | name maprestart 134 | text "New Map:" 135 | ownerdraw UI_ALLMAPS_SELECTION 136 | textscale .25 137 | rect 20 215 110 20 138 | textalign 0 139 | textalignx 0 140 | textaligny 16 141 | forecolor 1 1 1 1 142 | visible 1 143 | action { } 144 | } 145 | itemDef { 146 | name maplist 147 | rect 20 235 225 85 148 | type ITEM_TYPE_LISTBOX 149 | style WINDOW_STYLE_FILLED 150 | elementwidth 120 151 | elementheight 15 152 | textscale .25 153 | elementtype LISTBOX_TEXT 154 | feeder FEEDER_MAPS 155 | border 1 156 | bordercolor .5 .5 .5 .5 157 | forecolor 1 1 1 1 158 | backcolor 0 0 .5 .25 159 | outlinecolor .1 .1 .7 .5 160 | visible 1 161 | mouseEnter { fadein message_arena ; setitemcolor maplist bordercolor .7 0 0 1 } 162 | mouseExit { fadeout message_arena ; setitemcolor maplist bordercolor .5 .5 .5 .5 } 163 | } 164 | 165 | 166 | 167 | itemDef { 168 | name ok 169 | text "OK" 170 | textscale .25 171 | group grpControlbutton 172 | style WINDOW_STYLE_SHADER 173 | background "ui/assets/button_red.tga" 174 | rect 103 325 50 20 175 | textalign 1 176 | textalignx 25 177 | textaligny 15 178 | forecolor 1 1 1 1 179 | visible 1 180 | action { close ingame_callvote ; close ingame ; open ingame } 181 | } 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | } 190 | 191 | 192 | } 193 | -------------------------------------------------------------------------------- /ui/ingame_join.menu: -------------------------------------------------------------------------------- 1 | #include "ui/menudef.h" 2 | 3 | 4 | { 5 | \\ INGAME_JOIN MENU \\ 6 | 7 | menuDef { 8 | name "ingame_join" 9 | visible 1 10 | fullScreen 0 11 | outOfBoundsClick // this closes the window if it gets a click out of the rectangle 12 | rect 23 30 128 128 13 | focusColor 1 .75 0 1 14 | 15 | 16 | itemDef { 17 | name team 18 | style WINDOW_STYLE_FILLED 19 | rect 10 15 108 113 20 | 21 | forecolor 1 1 1 1 22 | backcolor 0 .1 0 1 23 | visible 1 24 | decoration 25 | } 26 | 27 | 28 | 29 | 30 | 31 | // FRAME // 32 | 33 | 34 | itemDef { 35 | name window 36 | rect 0 10 64 64 37 | style 3 38 | background "ui/assets/ingameleftcorner.tga" 39 | visible 1 40 | decoration 41 | } 42 | itemDef { 43 | name window 44 | rect 64 10 64 64 45 | style 3 46 | background "ui/assets/ingamerightcorner.tga" 47 | visible 1 48 | decoration 49 | } 50 | itemDef { 51 | name window 52 | rect 30 0 65 16 53 | style 3 54 | background "ui/assets/ingameconnection.tga" 55 | visible 1 56 | decoration 57 | } 58 | itemDef { 59 | name window 60 | rect 0 64 64 64 61 | style 3 62 | background "ui/assets/ingameleftcornerb.tga" 63 | visible 1 64 | decoration 65 | } 66 | itemDef { 67 | name window 68 | rect 64 64 64 64 69 | style 3 70 | background "ui/assets/ingamerightcornerb.tga" 71 | visible 1 72 | decoration 73 | } 74 | 75 | 76 | 77 | 78 | 79 | itemDef { 80 | name team 81 | text "Team RED" 82 | type 1 83 | style 2 84 | rect 0 20 128 20 85 | textalign 1 86 | textalignx 64 87 | textaligny 18 88 | textscale .25 89 | forecolor 1 1 1 1 90 | visible 1 91 | action { exec "cmd team red" ; uiScript closeingame } 92 | } 93 | 94 | itemDef { 95 | name team 96 | text "Team BLUE" 97 | type 1 98 | style 2 99 | rect 0 40 128 20 100 | textalign 1 101 | textalignx 64 102 | textaligny 18 103 | textscale .25 104 | forecolor 1 1 1 1 105 | visible 1 106 | action { exec "cmd team blue" ; uiScript closeingame } 107 | } 108 | 109 | 110 | itemDef { 111 | name team 112 | text "Auto TEAM" 113 | type 1 114 | style 2 115 | rect 0 60 128 20 116 | textalign 1 117 | textalignx 64 118 | textaligny 18 119 | textscale .25 120 | forecolor 1 1 1 1 121 | visible 1 122 | action { exec "cmd team free" ; uiScript closeingame } 123 | } 124 | 125 | 126 | itemDef { 127 | name team 128 | text "Spectate" 129 | type 1 130 | style 2 131 | rect 0 80 128 20 132 | textalign 1 133 | textalignx 64 134 | textaligny 18 135 | textscale .25 136 | forecolor 1 1 1 1 137 | visible 1 138 | action { exec "cmd team s" ; uiScript closeingame } 139 | } 140 | 141 | 142 | } 143 | 144 | } -------------------------------------------------------------------------------- /ui/ingame_serverinfo.menu: -------------------------------------------------------------------------------- 1 | #include "ui/menudef.h" 2 | 3 | { 4 | \\ SERVER INFO MENU \\ 5 | 6 | menuDef { 7 | name "ingame_serverinfo" 8 | visible 0 9 | fullscreen 0 10 | outOfBoundsClick // this closes the window if it gets a click out of the rectangle 11 | rect 352 30 256 300 12 | focusColor 1 .75 0 1 13 | style 1 14 | border 1 15 | 16 | itemDef { 17 | name window 18 | rect 0 0 256 300 19 | style 1 20 | border 1 21 | bordercolor .5 .5 .5 1 22 | backcolor 0 0 .75 .25 23 | visible 1 24 | decoration 25 | } 26 | 27 | 28 | itemDef { 29 | name serverinfo 30 | group serverinfo 31 | rect 0 100 256 256 32 | text "Server Information" 33 | textalign 1 34 | textscale .25 35 | textalignx 128 36 | textaligny 17 37 | forecolor 1 1 1 1 38 | visible 1 39 | decoration 40 | } 41 | itemDef { 42 | name ok 43 | text "OK" 44 | textscale .25 45 | group grpControlbutton 46 | style WINDOW_STYLE_SHADER 47 | background "ui/assets/button_red.tga" 48 | rect 103 275 50 20 49 | textalign 1 50 | textalignx 25 51 | textaligny 15 52 | forecolor 1 1 1 1 53 | visible 1 54 | action { close ingame_serverinfo ; close ingame ; open ingame } 55 | } 56 | 57 | 58 | 59 | 60 | } 61 | 62 | 63 | } 64 | -------------------------------------------------------------------------------- /ui/ingame_vote.menu: -------------------------------------------------------------------------------- 1 | #include "ui/menudef.h" 2 | 3 | { 4 | \\ SERVER INFO MENU \\ 5 | 6 | menuDef { 7 | name "ingame_vote" 8 | visible 0 9 | fullscreen 0 10 | outOfBoundsClick // this closes the window if it gets a click out of the rectangle 11 | rect 430 30 128 125 12 | focusColor 1 .75 0 1 13 | style 1 14 | border 1 15 | 16 | itemDef { 17 | name window 18 | rect 10 15 108 110 19 | style 1 20 | backcolor 0 .1 0 1 21 | visible 1 22 | decoration 23 | } 24 | 25 | 26 | 27 | 28 | // FRAME // 29 | 30 | 31 | itemDef { 32 | name window 33 | rect 0 10 64 64 34 | style 3 35 | background "ui/assets/ingameleftcorner.tga" 36 | visible 1 37 | decoration 38 | } 39 | itemDef { 40 | name window 41 | rect 64 10 64 64 42 | style 3 43 | background "ui/assets/ingamerightcorner.tga" 44 | visible 1 45 | decoration 46 | } 47 | itemDef { 48 | name window 49 | rect 30 0 65 16 50 | style 3 51 | background "ui/assets/ingameconnection.tga" 52 | visible 1 53 | decoration 54 | } 55 | itemDef { 56 | name window 57 | rect 0 64 64 64 58 | style 3 59 | background "ui/assets/ingameleftcornerb.tga" 60 | visible 1 61 | decoration 62 | } 63 | itemDef { 64 | name window 65 | rect 64 64 64 64 66 | style 3 67 | background "ui/assets/ingamerightcornerb.tga" 68 | visible 1 69 | decoration 70 | } 71 | 72 | 73 | 74 | itemDef { 75 | name yes 76 | text "Yes" 77 | type 1 78 | textscale .25 79 | rect 0 30 128 20 80 | textalign 1 81 | textalignx 64 82 | textaligny 10 83 | forecolor 1 1 1 1 84 | visible 1 85 | action { exec "vote yes" ; uiScript closeingame } 86 | } 87 | 88 | itemDef { 89 | name no 90 | text "No" 91 | type 1 92 | textscale .25 93 | rect 0 50 128 20 94 | textalign 1 95 | textalignx 64 96 | textaligny 10 97 | forecolor 1 1 1 1 98 | visible 1 99 | action { exec "vote no" ; uiScript closeingame } 100 | } 101 | itemDef { 102 | name yes 103 | text "TeamYes" 104 | type 1 105 | ownerdrawflag UI_SHOW_ANYTEAMGAME 106 | textscale .25 107 | rect 0 70 128 20 108 | textalign 1 109 | textalignx 64 110 | textaligny 10 111 | forecolor 1 1 1 1 112 | visible 1 113 | action { exec "teamvote yes" ; uiScript closeingame } 114 | } 115 | 116 | itemDef { 117 | name no 118 | text "TeamNo" 119 | type 1 120 | ownerdrawflag UI_SHOW_ANYTEAMGAME 121 | textscale .25 122 | rect 0 90 128 20 123 | textalign 1 124 | textalignx 64 125 | textaligny 10 126 | forecolor 1 1 1 1 127 | visible 1 128 | action { exec "teamvote no" ; uiScript closeingame } 129 | } 130 | 131 | 132 | } 133 | 134 | 135 | 136 | 137 | 138 | } 139 | 140 | 141 | } 142 | -------------------------------------------------------------------------------- /ui/ingame_vote2.menu: -------------------------------------------------------------------------------- 1 | #include "ui/menudef.h" 2 | 3 | { 4 | \\ SERVER INFO MENU \\ 5 | 6 | menuDef { 7 | name "ingame_vote" 8 | visible 0 9 | fullscreen 0 10 | outOfBoundsClick // this closes the window if it gets a click out of the rectangle 11 | rect 387 30 210 64 12 | focusColor 1 .75 0 1 13 | style 1 14 | border 1 15 | 16 | itemDef { 17 | name window 18 | rect 0 0 210 64 19 | style 1 20 | border 1 21 | bordercolor .5 .5 .5 1 22 | backcolor 0 0 .75 .25 23 | visible 1 24 | decoration 25 | } 26 | 27 | 28 | itemDef { 29 | name yes 30 | text "Vote Yes" 31 | type 1 32 | textscale .25 33 | group grpControlbutton 34 | style WINDOW_STYLE_SHADER 35 | background "ui/assets/button_red.tga" 36 | rect 20 20 75 20 37 | textalign 1 38 | textalignx 37 39 | textaligny 16 40 | forecolor 1 1 1 1 41 | visible 1 42 | action { exec "cmd vote yes" ; close ingame_vote } 43 | } 44 | 45 | 46 | itemDef { 47 | name no 48 | text "Vote No" 49 | type 1 50 | textscale .25 51 | group grpControlbutton 52 | style WINDOW_STYLE_SHADER 53 | background "ui/assets/button_red.tga" 54 | rect 115 20 75 20 55 | textalign 1 56 | textalignx 37 57 | textaligny 16 58 | forecolor 1 1 1 1 59 | visible 1 60 | action { exec "cmd vote no" ; close ingame_vote } 61 | } 62 | } 63 | 64 | 65 | 66 | 67 | 68 | } 69 | 70 | 71 | } 72 | -------------------------------------------------------------------------------- /ui/menus.txt: -------------------------------------------------------------------------------- 1 | // menu defs 2 | // 3 | { 4 | loadMenu { "ui/main.menu" } 5 | loadMenu { "ui/joinserver.menu" } 6 | loadMenu { "ui/filter.menu" } 7 | loadMenu { "ui/punkbuster.menu" } 8 | loadMenu { "ui/player.menu" } 9 | loadMenu { "ui/setup.menu" } 10 | loadMenu { "ui/fight.menu" } 11 | loadMenu { "ui/skirmish.menu" } 12 | loadMenu { "ui/createserver.menu" } 13 | loadMenu { "ui/controls.menu" } 14 | loadMenu { "ui/cdkey.menu" } 15 | loadMenu { "ui/system.menu" } 16 | loadMenu { "ui/options.menu" } 17 | loadMenu { "ui/help.menu" } 18 | loadMenu { "ui/ordershelp.menu" } 19 | loadMenu { "ui/mod.menu" } 20 | loadMenu { "ui/demo.menu" } 21 | loadMenu { "ui/cinematicmenu.menu" } 22 | loadMenu { "ui/credit.menu" } 23 | loadMenu { "ui/demo_quit.menu" } 24 | loadMenu { "ui/connect.menu" } 25 | loadMenu { "ui/powerup.menu" } 26 | loadMenu { "ui/password.menu" } 27 | loadMenu { "ui/quake3.menu" } 28 | loadMenu { "ui/quit.menu" } 29 | loadMenu { "ui/vid_restart.menu" } 30 | loadMenu { "ui/default.menu" } 31 | loadMenu { "ui/addfilter.menu" } 32 | loadMenu { "ui/error.menu" } 33 | loadMenu { "ui/serverinfo.menu" } 34 | loadMenu { "ui/findplayer.menu" } 35 | loadMenu { "ui/endofgame.menu" } 36 | loadMenu { "ui/quitcredit.menu" } 37 | loadMenu { "ui/resetscore.menu" } 38 | loadMenu { "ui/createfavorite.menu" } 39 | } 40 | -------------------------------------------------------------------------------- /ui/newleague.menu: -------------------------------------------------------------------------------- 1 | #include "ui/menudef.h" 2 | 3 | { 4 | \\ NEW LEAGUE POPUP MENU \\ 5 | 6 | menuDef { 7 | name "newleague_popmenu" 8 | visible 0 9 | fullscreen 0 10 | rect 190 200 255 75 11 | outOfBoundsClick // this closes the window if it gets a click out of the rectangle 12 | focusColor 1 .75 0 1 13 | style 1 14 | border 1 15 | 16 | itemDef { 17 | name window 18 | rect 0 0 255 75 19 | style 1 20 | border 1 21 | bordercolor .5 .5 .5 1 22 | backcolor 0 0 .5 1 23 | visible 1 24 | decoration 25 | } 26 | 27 | 28 | // ENTER NEW LEAGUE NAME // 29 | 30 | 31 | itemDef { 32 | name newleague 33 | group grpsettings 34 | text "Name:" 35 | style 0 36 | textscale .3 37 | ITEM_TYPE_EDITFIELD 38 | rect 20 20 110 20 39 | textalign 0 40 | textalignx 0 41 | textaligny 16 42 | forecolor 1 1 1 1 43 | visible 1 44 | } 45 | 46 | itemDef { 47 | name type 48 | text "OK" 49 | textscale .25 50 | group grpsettings 51 | style WINDOW_STYLE_SHADER 52 | background "ui/assets/button_red.tga" 53 | rect 103 50 50 20 54 | textalign 1 55 | textalignx 25 56 | textaligny 15 57 | forecolor 1 1 1 1 58 | visible 1 59 | action { close newLeague_popmenu ; close createserver ; open createserver } 60 | } 61 | 62 | 63 | } 64 | 65 | 66 | 67 | } 68 | -------------------------------------------------------------------------------- /ui/password.menu: -------------------------------------------------------------------------------- 1 | #include "ui/menudef.h" 2 | 3 | { 4 | \\ PASSWORD POPUP MENU \\ 5 | 6 | menuDef { 7 | name "password_popmenu" 8 | visible 0 9 | fullscreen 0 10 | rect 204 122 235 235 11 | focusColor 1 .75 0 1 12 | style 1 13 | border 1 14 | popup 15 | onESC { close password_popmenu ; open joinserver } 16 | 17 | 18 | 19 | itemDef { 20 | name window 21 | rect 0 0 235 235 22 | style 3 23 | background "ui/assets/mainpop.tga" 24 | visible 1 25 | decoration 26 | } 27 | itemDef { 28 | name window 29 | rect 47 47 144 144 30 | style 3 31 | background "centerconsole2" 32 | visible 1 33 | decoration 34 | } 35 | 36 | 37 | 38 | 39 | 40 | // PASSWORD // 41 | 42 | itemDef { 43 | name password 44 | text "Password" 45 | style 0 46 | decoration 47 | textscale .3 48 | rect 1 87 110 20 49 | textalign 1 50 | textalignx 117 51 | textaligny 16 52 | forecolor 0 0 0 1 53 | visible 1 54 | 55 | } 56 | itemDef { 57 | name password 58 | text "Password" 59 | style 0 60 | decoration 61 | textscale .3 62 | rect 0 86 110 20 63 | textalign 1 64 | textalignx 117 65 | textaligny 16 66 | forecolor 1 1 1 1 67 | visible 1 68 | } 69 | itemDef { 70 | name passwordEntry 71 | style 1 72 | text ":" 73 | maxchars 15 74 | textscale .25 75 | TYPE 4 76 | cvar "password" 77 | rect 50 106 130 20 78 | textalign 0 79 | textalignx 0 80 | textaligny 16 81 | forecolor 1 1 1 1 82 | backcolor 0 0 0 .5 83 | visible 1 84 | mouseenter { setitemcolor passwordEntry backcolor 0 0 0 .75 } 85 | mouseexit { setitemcolor passwordEntry backcolor 0 0 0 .5 } 86 | } 87 | 88 | 89 | 90 | itemDef { 91 | name yes 92 | text "Ok" 93 | type 1 94 | textscale .25 95 | style WINDOW_STYLE_FILLED 96 | background "ui/assets/button_back.tga" 97 | rect 103 140 30 26 98 | textalign 1 99 | textalignx 15 100 | textaligny 20 101 | forecolor 1 1 1 1 102 | backcolor .37 .1 .1 1 103 | visible 1 104 | action { play "sound/misc/nomenu.wav" ; 105 | close password_popmenu ; open joinserver } 106 | mouseEnter { setitemcolor yes backcolor .1 .37 .1 1 } 107 | mouseExit { setitemcolor yes backcolor .37 .1 .1 1 } 108 | } 109 | 110 | itemDef { 111 | name yes 112 | style WINDOW_STYLE_SHADER 113 | background "ui/assets/framebutton.tga" 114 | rect 103 140 30 26 115 | visible 1 116 | decoration 117 | } 118 | 119 | itemDef { 120 | name yes 121 | style WINDOW_STYLE_SHADER 122 | background "ui/assets/leftbutton.tga" 123 | rect 97 140 7 26 124 | visible 1 125 | decoration 126 | } 127 | 128 | itemDef { 129 | name yes 130 | style WINDOW_STYLE_SHADER 131 | background "ui/assets/rightbutton.tga" 132 | rect 132 140 7 26 133 | visible 1 134 | decoration 135 | } 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | } 144 | 145 | 146 | 147 | } 148 | -------------------------------------------------------------------------------- /ui/quake3.menu: -------------------------------------------------------------------------------- 1 | #include "ui/menudef.h" 2 | 3 | { 4 | \\ QUAKE3 POPUP MENU \\ 5 | 6 | menuDef { 7 | name "quake3_popmenu" 8 | visible 0 9 | fullscreen 0 10 | rect 204 122 235 235 11 | focusColor 1 .75 0 1 12 | style 1 13 | border 1 14 | popup 15 | onESC { close quake3_popmenu ; open main } 16 | 17 | 18 | 19 | itemDef { 20 | name window 21 | rect 0 0 235 235 22 | style 3 23 | background "ui/assets/mainpop.tga" 24 | visible 1 25 | decoration 26 | } 27 | itemDef { 28 | name window 29 | rect 47 47 144 144 30 | style 3 31 | background "centerconsole2" 32 | visible 1 33 | decoration 34 | } 35 | 36 | /* 37 | // DEMO ONLY OPTION // 38 | 39 | itemDef { 40 | name demo_only 41 | text "Not Available." 42 | style 0 43 | textscale .3 44 | textstyle 3 45 | rect 1 90 110 20 46 | textalign 1 47 | textalignx 117 48 | textaligny 16 49 | decoration 50 | forecolor 1 1 1 1 51 | visible 1 52 | } 53 | 54 | itemDef { 55 | name demo_only 56 | text "in DEMO." 57 | style 0 58 | textscale .3 59 | textstyle 3 60 | rect 1 110 110 20 61 | textalign 1 62 | textalignx 117 63 | textaligny 16 64 | decoration 65 | forecolor 1 1 1 1 66 | visible 1 67 | } 68 | 69 | itemDef { 70 | name demo_only 71 | text "Press ESC key." 72 | style 0 73 | textscale .3 74 | textstyle 3 75 | rect 0 135 110 20 76 | textalign 1 77 | textalignx 117 78 | textaligny 16 79 | decoration 80 | forecolor 1 1 1 1 81 | visible 1 82 | } 83 | 84 | */ 85 | 86 | // Quake 3 // 87 | 88 | itemDef { 89 | name confirm 90 | text "Launch Quake3?" 91 | style 0 92 | textscale .3 93 | rect 1 91 110 20 94 | textalign 1 95 | textalignx 117 96 | textaligny 16 97 | decoration 98 | forecolor 0 0 0 1 99 | visible 1 100 | } 101 | 102 | itemDef { 103 | name confirm 104 | text "Launch Quake3?" 105 | style 0 106 | textscale .3 107 | rect 0 90 110 20 108 | textalign 1 109 | textalignx 117 110 | textaligny 16 111 | decoration 112 | forecolor 1 1 1 1 113 | visible 1 114 | } 115 | 116 | itemDef { 117 | name yes 118 | text "YES" 119 | type 1 120 | textscale .25 121 | style WINDOW_STYLE_FILLED 122 | background "ui/assets/button_back.tga" 123 | rect 75 120 30 26 124 | textalign 1 125 | textalignx 15 126 | textaligny 20 127 | forecolor 1 1 1 1 128 | backcolor .37 .1 .1 1 129 | visible 1 130 | action { play "sound/misc/nomenu.wav" ; 131 | uiScript "Quake3" } 132 | mouseEnter { setitemcolor yes backcolor .1 .37 .1 1 } 133 | mouseExit { setitemcolor yes backcolor .37 .1 .1 1 } 134 | } 135 | 136 | itemDef { 137 | name yes 138 | style WINDOW_STYLE_SHADER 139 | background "ui/assets/framebutton.tga" 140 | rect 75 120 30 26 141 | visible 1 142 | decoration 143 | } 144 | 145 | itemDef { 146 | name yes 147 | style WINDOW_STYLE_SHADER 148 | background "ui/assets/leftbutton.tga" 149 | rect 69 120 7 26 150 | visible 1 151 | decoration 152 | } 153 | 154 | itemDef { 155 | name yes 156 | style WINDOW_STYLE_SHADER 157 | background "ui/assets/rightbutton.tga" 158 | rect 104 120 7 26 159 | visible 1 160 | decoration 161 | } 162 | 163 | 164 | 165 | 166 | 167 | itemDef { 168 | name no 169 | text "NO" 170 | type 1 171 | textscale .25 172 | style WINDOW_STYLE_FILLED 173 | background "ui/assets/button_back.tga" 174 | rect 128 120 30 26 175 | textalign 1 176 | textalignx 15 177 | textaligny 20 178 | forecolor 1 1 1 1 179 | backcolor .37 .1 .1 1 180 | visible 1 181 | action { play "sound/misc/nomenu.wav" ; 182 | close quake3_popmenu ; open main } 183 | mouseEnter { setitemcolor no backcolor .1 .37 .1 1 } 184 | mouseExit { setitemcolor no backcolor .37 .1 .1 1 } 185 | } 186 | itemDef { 187 | name no 188 | style WINDOW_STYLE_SHADER 189 | background "ui/assets/framebutton.tga" 190 | rect 128 120 30 26 191 | visible 1 192 | decoration 193 | } 194 | 195 | itemDef { 196 | name no 197 | style WINDOW_STYLE_SHADER 198 | background "ui/assets/leftbutton.tga" 199 | rect 122 120 7 26 200 | visible 1 201 | decoration 202 | } 203 | 204 | itemDef { 205 | name no 206 | style WINDOW_STYLE_SHADER 207 | background "ui/assets/rightbutton.tga" 208 | rect 157 120 7 26 209 | visible 1 210 | decoration 211 | } 212 | 213 | 214 | 215 | } 216 | 217 | 218 | } 219 | 220 | 221 | 222 | } 223 | -------------------------------------------------------------------------------- /ui/quit.menu: -------------------------------------------------------------------------------- 1 | #include "ui/menudef.h" 2 | 3 | { 4 | \\ QUIT POPUP MENU \\ 5 | 6 | menuDef { 7 | name "quit_popmenu" 8 | visible 0 9 | fullscreen 0 10 | //rect 217 200 210 85 11 | rect 204 122 235 235 12 | focusColor 1 .75 0 1 13 | style 1 14 | border 1 15 | popup 16 | onESC { close quit_popmenu ; open main } 17 | 18 | 19 | 20 | itemDef { 21 | name window 22 | rect 0 0 235 235 23 | style 3 24 | background "ui/assets/mainpop.tga" 25 | visible 1 26 | decoration 27 | } 28 | itemDef { 29 | name window 30 | rect 47 47 144 144 31 | style 3 32 | background "centerconsole2" 33 | visible 1 34 | decoration 35 | } 36 | 37 | 38 | 39 | 40 | 41 | // QUIT // 42 | 43 | itemDef { 44 | name confirm 45 | text "Quit Team Arena?" 46 | style 0 47 | textscale .3 48 | textstyle 3 49 | rect 0 90 110 20 50 | textalign 1 51 | textalignx 117 52 | textaligny 16 53 | decoration 54 | forecolor 1 1 1 1 55 | visible 1 56 | } 57 | 58 | 59 | itemDef { 60 | name yes 61 | text "YES" 62 | type 1 63 | textscale .25 64 | style WINDOW_STYLE_FILLED 65 | background "ui/assets/button_back.tga" 66 | rect 75 120 30 26 67 | textalign 1 68 | textalignx 15 69 | textaligny 20 70 | forecolor 1 1 1 1 71 | backcolor .37 .1 .1 1 72 | visible 1 73 | action { play "sound/misc/nomenu.wav"; 74 | close main ; 75 | close quit_popmenu ; 76 | open quitCredit } 77 | mouseEnter { setitemcolor yes backcolor .1 .37 .1 1 } 78 | mouseExit { setitemcolor yes backcolor .37 .1 .1 1 } 79 | } 80 | 81 | itemDef { 82 | name yes 83 | style WINDOW_STYLE_SHADER 84 | background "ui/assets/framebutton.tga" 85 | rect 75 120 30 26 86 | visible 1 87 | decoration 88 | } 89 | 90 | itemDef { 91 | name yes 92 | style WINDOW_STYLE_SHADER 93 | background "ui/assets/leftbutton.tga" 94 | rect 69 120 7 26 95 | visible 1 96 | decoration 97 | } 98 | 99 | itemDef { 100 | name yes 101 | style WINDOW_STYLE_SHADER 102 | background "ui/assets/rightbutton.tga" 103 | rect 104 120 7 26 104 | visible 1 105 | decoration 106 | } 107 | 108 | 109 | 110 | 111 | 112 | itemDef { 113 | name no 114 | text "NO" 115 | type 1 116 | textscale .25 117 | style WINDOW_STYLE_FILLED 118 | background "ui/assets/button_back.tga" 119 | rect 128 120 30 26 120 | textalign 1 121 | textalignx 15 122 | textaligny 20 123 | forecolor 1 1 1 1 124 | backcolor .37 .1 .1 1 125 | visible 1 126 | action { play "sound/misc/nomenu.wav" ; 127 | close quit_popmenu ; open main } 128 | mouseEnter { setitemcolor no backcolor .1 .37 .1 1 } 129 | mouseExit { setitemcolor no backcolor .37 .1 .1 1 } 130 | } 131 | itemDef { 132 | name no 133 | style WINDOW_STYLE_SHADER 134 | background "ui/assets/framebutton.tga" 135 | rect 128 120 30 26 136 | visible 1 137 | decoration 138 | } 139 | 140 | itemDef { 141 | name no 142 | style WINDOW_STYLE_SHADER 143 | background "ui/assets/leftbutton.tga" 144 | rect 122 120 7 26 145 | visible 1 146 | decoration 147 | } 148 | 149 | itemDef { 150 | name no 151 | style WINDOW_STYLE_SHADER 152 | background "ui/assets/rightbutton.tga" 153 | rect 157 120 7 26 154 | visible 1 155 | decoration 156 | } 157 | 158 | } 159 | 160 | 161 | } 162 | 163 | 164 | -------------------------------------------------------------------------------- /ui/rankings.menu: -------------------------------------------------------------------------------- 1 | #include "ui/menudef.h" 2 | 3 | { 4 | \\ RANKINGS MENU \\ 5 | 6 | menuDef { 7 | name "rankings_menu" 8 | visible 0 9 | fullscreen 0 10 | rect 186 0 443 426 11 | focusColor 1 .75 0 1 12 | style 1 13 | border 1 14 | 15 | 16 | 17 | itemDef { 18 | name window 19 | group grpControlbutton 20 | rect 0 2 443 426 21 | style WINDOW_STYLE_FILLED 22 | border 1 23 | bordercolor .5 .5 .5 .5 24 | forecolor 1 1 1 1 25 | backcolor 0 0 0 .25 26 | visible 1 27 | decoration 28 | } 29 | 30 | 31 | 32 | 33 | 34 | 35 | itemDef { 36 | name rankings 37 | group grprankings 38 | type 4 39 | text "Name:" 40 | rect 99 80 256 20 41 | textalign ITEM_ALIGN_RIGHT 42 | textalignx 128 43 | textaligny 20 44 | textscale .3 45 | forecolor 1 1 1 1 46 | visible 1 47 | } 48 | 49 | itemDef { 50 | name rankings 51 | group rankings 52 | type 4 53 | text "Password:" 54 | rect 99 110 256 20 55 | textalign ITEM_ALIGN_RIGHT 56 | textalignx 128 57 | textaligny 20 58 | textscale .3 59 | forecolor 1 1 1 1 60 | visible 1 61 | } 62 | 63 | itemDef { 64 | name options 65 | group grpOptions 66 | type 4 67 | text "Verify Password:" 68 | rect 99 140 256 20 69 | textalign ITEM_ALIGN_RIGHT 70 | textalignx 128 71 | textaligny 20 72 | textscale .3 73 | forecolor 1 1 1 1 74 | visible 1 75 | } 76 | 77 | itemDef { 78 | name options 79 | group grpOptions 80 | type 4 81 | text "Email (Optional):" 82 | rect 99 170 256 20 83 | textalign ITEM_ALIGN_RIGHT 84 | textalignx 128 85 | textaligny 20 86 | textscale .3 87 | forecolor 1 1 1 1 88 | visible 1 89 | } 90 | 91 | 92 | 93 | } 94 | -------------------------------------------------------------------------------- /ui/vid_restart.menu: -------------------------------------------------------------------------------- 1 | #include "ui/menudef.h" 2 | 3 | { 4 | \\ VID_RESTART POPUP MENU \\ 5 | 6 | menuDef { 7 | name "vid_restart_popmenu" 8 | visible 0 9 | fullscreen 0 10 | //rect 217 200 210 85 11 | rect 204 122 235 235 12 | //outOfBoundsClick // this closes the window if it gets a click out of the rectangle 13 | focusColor 1 .75 0 1 14 | style 1 15 | border 1 16 | popup 17 | onESC { close vid_restart_popmenu ; 18 | open setup_menu ; 19 | open system_menu } 20 | 21 | 22 | 23 | itemDef { 24 | name window 25 | rect 0 0 235 235 26 | style 3 27 | background "ui/assets/mainpop.tga" 28 | visible 1 29 | decoration 30 | } 31 | itemDef { 32 | name window 33 | rect 47 47 144 144 34 | style 3 35 | background "centerconsole2" 36 | visible 1 37 | decoration 38 | } 39 | 40 | 41 | 42 | 43 | 44 | // VID_RESTART // 45 | 46 | itemDef { 47 | name confirm 48 | text "This will apply video" 49 | style 0 50 | textscale .25 51 | textstyle 3 52 | rect 0 85 110 20 53 | textalign 1 54 | textalignx 117 55 | textaligny 15 56 | decoration 57 | forecolor 1 1 1 1 58 | visible 1 59 | } 60 | itemDef { 61 | name confirm 62 | text "settings and return" 63 | style 0 64 | textscale .25 65 | textstyle 3 66 | rect 0 100 110 20 67 | textalign 1 68 | textalignx 117 69 | textaligny 15 70 | decoration 71 | forecolor 1 1 1 1 72 | visible 1 73 | } 74 | itemDef { 75 | name confirm 76 | text "to the Main Menu." 77 | style 0 78 | textscale .25 79 | textstyle 3 80 | rect 0 115 110 20 81 | textalign 1 82 | textalignx 117 83 | textaligny 15 84 | decoration 85 | forecolor 1 1 1 1 86 | visible 1 87 | } 88 | 89 | itemDef { 90 | name yes 91 | text "YES" 92 | type 1 93 | textscale .25 94 | style WINDOW_STYLE_FILLED 95 | background "ui/assets/button_back.tga" 96 | rect 75 140 30 26 97 | textalign 1 98 | textalignx 15 99 | textaligny 20 100 | forecolor 1 1 1 1 101 | backcolor .37 .1 .1 1 102 | visible 1 103 | action { play "sound/misc/nomenu.wav" ; 104 | close vid_restart_popmenu ; 105 | exec "vid_restart" } 106 | mouseEnter { setitemcolor yes backcolor .1 .37 .1 1 } 107 | mouseExit { setitemcolor yes backcolor .37 .1 .1 1 } 108 | } 109 | 110 | itemDef { 111 | name yes 112 | style WINDOW_STYLE_SHADER 113 | background "ui/assets/framebutton.tga" 114 | rect 75 140 30 26 115 | visible 1 116 | decoration 117 | } 118 | 119 | itemDef { 120 | name yes 121 | style WINDOW_STYLE_SHADER 122 | background "ui/assets/leftbutton.tga" 123 | rect 69 140 7 26 124 | visible 1 125 | decoration 126 | } 127 | 128 | itemDef { 129 | name yes 130 | style WINDOW_STYLE_SHADER 131 | background "ui/assets/rightbutton.tga" 132 | rect 104 140 7 26 133 | visible 1 134 | decoration 135 | } 136 | 137 | 138 | 139 | 140 | 141 | itemDef { 142 | name no 143 | text "NO" 144 | type 1 145 | textscale .25 146 | style WINDOW_STYLE_FILLED 147 | background "ui/assets/button_back.tga" 148 | rect 128 140 30 26 149 | textalign 1 150 | textalignx 15 151 | textaligny 20 152 | forecolor 1 1 1 1 153 | backcolor .37 .1 .1 1 154 | visible 1 155 | action { play "sound/misc/nomenu.wav" ; 156 | close vid_restart_popmenu ; 157 | open setup_menu ; 158 | open system_menu } 159 | mouseEnter { setitemcolor no backcolor .1 .37 .1 1 } 160 | mouseExit { setitemcolor no backcolor .37 .1 .1 1 } 161 | } 162 | itemDef { 163 | name no 164 | style WINDOW_STYLE_SHADER 165 | background "ui/assets/framebutton.tga" 166 | rect 128 140 30 26 167 | visible 1 168 | decoration 169 | } 170 | 171 | itemDef { 172 | name no 173 | style WINDOW_STYLE_SHADER 174 | background "ui/assets/leftbutton.tga" 175 | rect 122 140 7 26 176 | visible 1 177 | decoration 178 | } 179 | 180 | itemDef { 181 | name no 182 | style WINDOW_STYLE_SHADER 183 | background "ui/assets/rightbutton.tga" 184 | rect 157 140 7 26 185 | visible 1 186 | decoration 187 | } 188 | 189 | } 190 | 191 | 192 | } 193 | 194 | 195 | --------------------------------------------------------------------------------