├── .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}{0}>", 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 |
--------------------------------------------------------------------------------