Port over radiant integration
This commit is contained in:
parent
4db1c33265
commit
586008044a
4 changed files with 178 additions and 3 deletions
27
.gitignore
vendored
Normal file
27
.gitignore
vendored
Normal file
|
@ -0,0 +1,27 @@
|
|||
*.bsp
|
||||
*.dat
|
||||
*.def
|
||||
*.lmp
|
||||
*.lno
|
||||
*.mdl
|
||||
*.pal
|
||||
*.prt
|
||||
*.lux
|
||||
*.lit
|
||||
*.wad
|
||||
Tools/base_entities.def
|
||||
conhistory.txt
|
||||
fteqcc
|
||||
fteqw
|
||||
imgtool
|
||||
installed.lst
|
||||
iqmtool
|
||||
pal2colormap
|
||||
pal2pal
|
||||
qbsp
|
||||
qfiles
|
||||
qlight
|
||||
qvis
|
||||
radiant
|
||||
tga2lmp
|
||||
tga2pal
|
96
Makefile
96
Makefile
|
@ -6,10 +6,32 @@ GAME=id1
|
|||
ENGINE_CLBUILD=m-dbg
|
||||
EDITOR=radiant
|
||||
ENGINE_URL=https://www.github.com/fte-team/fteqw
|
||||
NAME=`./Tools/get-name.sh $(GAME)`
|
||||
NUCLIDE_DIR=`pwd`
|
||||
QCC_DIR=$(NUCLIDE_DIR)
|
||||
BUILD_DIR=$(NUCLIDE_DIR)/build
|
||||
NAME=idtech2-$(GAME)
|
||||
|
||||
RADIANT_GAME="$(NUCLIDE_DIR)/ThirdParty/gtkradiant/install/games/$(GAME).game"
|
||||
RADIANT_XLINK="$(NUCLIDE_DIR)/ThirdParty/gtkradiant/install/installs/$(NAME)Pack/game/game.xlink"
|
||||
RADIANT_SYNAPSE="$(NUCLIDE_DIR)/ThirdParty/gtkradiant/install/installs/$(NAME)Pack/game/synapse.config"
|
||||
RADIANT_PROJECT="$(NUCLIDE_DIR)/ThirdParty/gtkradiant/install/installs/$(NAME)Pack/install/$(GAME)/scripts/default_project.proj"
|
||||
RADIANT_TEXTURES="$(NUCLIDE_DIR)/ThirdParty/gtkradiant/install/installs/$(NAME)Pack/install/$(GAME)/textures"
|
||||
ENTITY_DEF="$(NUCLIDE_DIR)/ThirdParty/gtkradiant/install/installs/$(NAME)Pack/install/$(GAME)/scripts/entities.def"
|
||||
|
||||
EDITOR_QBSP="$(ARGSTR)TEMPLATEenginepath/qbsp"
|
||||
EDITOR_QVIS="$(ARGSTR)TEMPLATEenginepath/qvis"
|
||||
EDITOR_QRAD="$(ARGSTR)TEMPLATEenginepath/qrad"
|
||||
EDITOR_ENGINEPATH="$(ARGSTR)TEMPLATEenginepath"
|
||||
EDITOR_BASEPATH="$(ARGSTR)TEMPLATEbasedir"
|
||||
EDITOR_HOMEPATH="$(ARGSTR)TEMPLATEuserhomepath"
|
||||
|
||||
define CMDSTR
|
||||
#
|
||||
endef
|
||||
|
||||
define ARGSTR
|
||||
\$
|
||||
endef
|
||||
|
||||
help:
|
||||
@printf "Available targets:\n"
|
||||
|
@ -43,6 +65,9 @@ $(GAME)/maps/%.bsp: qbsp qlight qvis
|
|||
models: iqmtool palette
|
||||
./Tools/build_models.sh $(GAME)
|
||||
|
||||
edef:
|
||||
Tools/make_mapdef.sh $(GAME)
|
||||
|
||||
gfx: imgtool palette
|
||||
cd $(GAME)/gfxsrc/ && ls | grep -v palette\.lmp | grep \.xcf | xargs ../../imgtool --rgb8 --ext png
|
||||
cd $(GAME)/gfxsrc/ && ls | grep -v palette\.png | grep \.png | xargs mogrify -type TrueColor -compress None -flip -format tga
|
||||
|
@ -79,8 +104,6 @@ palette: pal2colormap pal2pal tga2pal
|
|||
mv $(GAME)/gfxsrc/colormap.lmp $(GAME)/gfx/colormap.lmp
|
||||
mv $(GAME)/gfxsrc/palette.pal $(GAME)/gfx/palette.pal
|
||||
-mkdir -p $(GAME)/gfxsrc
|
||||
-mkdir -p $(GAME)/textures # needed by gtkradiant
|
||||
cp $(GAME)/gfx/palette.lmp $(GAME)/textures/palette.lmp
|
||||
rm $(GAME)/gfxsrc/palette.tga
|
||||
|
||||
# fteqw repo
|
||||
|
@ -118,3 +141,70 @@ radiant: update
|
|||
if [ ! -d ThirdParty/gtkradiant ];then git clone https://github.com/TTimo/gtkradiant ThirdParty/gtkradiant;fi
|
||||
cd ThirdParty/gtkradiant && scons
|
||||
Tools/make_launcher.sh ./ThirdParty/gtkradiant/install/ ./radiant.bin radiant
|
||||
|
||||
radiant-game: radiant edef
|
||||
echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\" standalone=\"yes\"?>" > "$(RADIANT_GAME)"
|
||||
echo "<game" >> "$(RADIANT_GAME)"
|
||||
echo " name=\"$(NAME)\"" >> "$(RADIANT_GAME)"
|
||||
echo " enginepath_linux=\"$(NUCLIDE_DIR)\"" >> "$(RADIANT_GAME)"
|
||||
echo " gametools_linux=\"$(NUCLIDE_DIR)/ThirdParty/gtkradiant/install/installs/$(NAME)Pack/game\"" >> "$(RADIANT_GAME)"
|
||||
echo " prefix=\".$(GAME)\"" >> "$(RADIANT_GAME)"
|
||||
echo " basegame=\"$(GAME)\"" >> "$(RADIANT_GAME)"
|
||||
echo "/>" >> "$(RADIANT_GAME)"
|
||||
mkdir -p "$(NUCLIDE_DIR)/ThirdParty/gtkradiant/install/installs/$(NAME)Pack/game"
|
||||
echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\" standalone=\"yes\"?>" > "$(RADIANT_XLINK)"
|
||||
echo "<!-- Links for the $(NAME) game pack -->" >> "$(RADIANT_XLINK)"
|
||||
echo "<links>" >> "$(RADIANT_XLINK)"
|
||||
echo "<item name=\"Nuclide Developer Reference\" url=\"http://developer.vera-visions.com/\"/>" >> "$(RADIANT_XLINK)"
|
||||
echo "<item name=\"Vera Visions\" url=\"http://www.vera-visions.com/\"/>" >> "$(RADIANT_XLINK)"
|
||||
echo "</links>" >> "$(RADIANT_XLINK)"
|
||||
echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\" standalone=\"yes\"?><synapseconfig><client name=\"core\"><api name=\"image\">" > "$(RADIANT_SYNAPSE)"
|
||||
echo "pcx tga mip" >> "$(RADIANT_SYNAPSE)"
|
||||
echo "</api><api name=\"VFS\">" >> "$(RADIANT_SYNAPSE)"
|
||||
echo "wad" >> "$(RADIANT_SYNAPSE)"
|
||||
echo "</api><api name=\"shaders\">" >> "$(RADIANT_SYNAPSE)"
|
||||
echo "idtech2" >> "$(RADIANT_SYNAPSE)"
|
||||
echo "</api><api name=\"map\">" >> "$(RADIANT_SYNAPSE)"
|
||||
echo "maphl" >> "$(RADIANT_SYNAPSE)"
|
||||
echo "</api><api name=\"eclass\">" >> "$(RADIANT_SYNAPSE)"
|
||||
echo "def" >> "$(RADIANT_SYNAPSE)"
|
||||
echo "</api><api name=\"surfdialog\">" >> "$(RADIANT_SYNAPSE)"
|
||||
echo "idtech2" >> "$(RADIANT_SYNAPSE)"
|
||||
echo "</api></client><client name=\"image\"><api name=\"VFS\">" >> "$(RADIANT_SYNAPSE)"
|
||||
echo "wad" >> "$(RADIANT_SYNAPSE)"
|
||||
echo "</api></client><client name=\"shaders\"><api name=\"shaders\">" >> "$(RADIANT_SYNAPSE)"
|
||||
echo "idtech2" >> "$(RADIANT_SYNAPSE)"
|
||||
echo "</api><api name=\"VFS\">" >> "$(RADIANT_SYNAPSE)"
|
||||
echo "wad" >> "$(RADIANT_SYNAPSE)"
|
||||
echo "</api></client><client name=\"map\"><api name=\"shaders\">" >> "$(RADIANT_SYNAPSE)"
|
||||
echo "idtech2" >> "$(RADIANT_SYNAPSE)"
|
||||
echo "</api></client><client name=\"xmap\"><api name=\"shaders\">" >> "$(RADIANT_SYNAPSE)"
|
||||
echo "idtech2" >> "$(RADIANT_SYNAPSE)"
|
||||
echo "</api></client><client name=\"model\"><api name=\"shaders\">" >> "$(RADIANT_SYNAPSE)"
|
||||
echo "idtech2" >> "$(RADIANT_SYNAPSE)"
|
||||
echo "</api><api name=\"VFS\">" >> "$(RADIANT_SYNAPSE)"
|
||||
echo "wad" >> "$(RADIANT_SYNAPSE)"
|
||||
echo "</api></client></synapseconfig>" >> "$(RADIANT_SYNAPSE)"
|
||||
mkdir -p "$(NUCLIDE_DIR)/ThirdParty/gtkradiant/install/installs/$(NAME)Pack/install/$(GAME)/scripts"
|
||||
cp "$(GAME)/scripts/entities.def" "$(ENTITY_DEF)"
|
||||
echo "<?xml version=\"1.0\"?>" > "$(RADIANT_PROJECT)"
|
||||
echo "<!DOCTYPE project SYSTEM \"dtds/project.dtd\">" >> "$(RADIANT_PROJECT)"
|
||||
echo "<project>" >> "$(RADIANT_PROJECT)"
|
||||
echo "<key name=\"version\" value=\"2\"/>" >> "$(RADIANT_PROJECT)"
|
||||
echo "<key name=\"template_version\" value=\"8\"/>" >> "$(RADIANT_PROJECT)"
|
||||
echo "<key name=\"basepath\" value=\"$(EDITOR_ENGINEPATH)$(EDITOR_BASEPATH)/\"/>" >> "$(RADIANT_PROJECT)"
|
||||
echo "<key name=\"rshcmd\" value=\"\"/>" >> "$(RADIANT_PROJECT)"
|
||||
echo "<key name=\"remotebasepath\" value=\"$(EDITOR_ENGINEPATH)$(EDITOR_BASEPATH)/\"/>" >> "$(RADIANT_PROJECT)"
|
||||
echo "<key name=\"entitypath\" value=\"$(ARGSTR)TEMPLATEtoolspath$(EDITOR_BASEPATH)/scripts/entities.def\"/>" >> "$(RADIANT_PROJECT)"
|
||||
echo "<key name=\"texturepath\" value=\"$(EDITOR_ENGINEPATH)$(EDITOR_BASEPATH)/textures/\"/>" >> "$(RADIANT_PROJECT)"
|
||||
echo "<key name=\"autosave\" value=\"$(EDITOR_HOMEPATH)$(EDITOR_BASEPATH)/maps/autosave.map\"/>" >> "$(RADIANT_PROJECT)"
|
||||
echo "<key name=\"mapspath\" value=\"$(EDITOR_HOMEPATH)$(EDITOR_BASEPATH)/maps/\"/>" >> "$(RADIANT_PROJECT)"
|
||||
echo "<key name=\"bsp_VMAP: (Fast Fullbright)\" value=\"! "$(EDITOR_VMAP)" -v $(CMDSTR) -game $(GAME) -fs_basepath "$(EDITOR_ENGINEPATH)" -custinfoparms -threads 4 -samplesize 8 $(ARGSTR) && ! "$(EDITOR_VMAP)" $(CMDSTR) -game $(GAME) -fs_basepath "$(EDITOR_ENGINEPATH)" -vis -saveprt$(ARGSTR)\" />" >> "$(RADIANT_PROJECT)"
|
||||
echo "<key name=\"bsp_VMAP: (Fast Light)\" value=\"! "$(EDITOR_VMAP)" -v $(CMDSTR) -game $(GAME) -fs_basepath "$(EDITOR_ENGINEPATH)" -custinfoparms -threads 4 -samplesize 8 $(ARGSTR) && ! "$(EDITOR_VMAP)" $(CMDSTR) -game $(GAME) -fs_basepath "$(EDITOR_ENGINEPATH)" -vis -saveprt $(ARGSTR) && ! "$(EDITOR_VMAP)" $(CMDSTR) -game $(GAME) -fs_basepath "$(EDITOR_ENGINEPATH)" -light -custinfoparms -v -samplesize 8 -fast -threads 4 -samples 4 -shade -shadeangle 60 -patchshadows $(ARGSTR)\" />" >> "$(RADIANT_PROJECT)"
|
||||
echo "<key name=\"bsp_VMAP: (Full)\" value=\"! "$(EDITOR_VMAP)" -v $(CMDSTR) -game $(GAME) -fs_basepath "$(EDITOR_ENGINEPATH)" -custinfoparms -threads 4 -samplesize 8 $(ARGSTR) && ! "$(EDITOR_VMAP)" $(CMDSTR) -game $(GAME) -fs_basepath "$(EDITOR_ENGINEPATH)" -vis -saveprt $(ARGSTR) && ! "$(EDITOR_VMAP)" $(CMDSTR) -game $(GAME) -fs_basepath "$(EDITOR_ENGINEPATH)" -light -custinfoparms -samplesize 8 -fast -threads 4 -samples 4 -shade -shadeangle 60 -patchshadows $(ARGSTR)\" />" >> "$(RADIANT_PROJECT)"
|
||||
echo "</project>" >> "$(RADIANT_PROJECT)"
|
||||
mkdir -p "$(RADIANT_TEXTURES)/."
|
||||
cp "$(GAME)/gfx/palette.lmp" "$(RADIANT_TEXTURES)/palette.lmp"
|
||||
mkdir -p "$(HOME)/.$(GAME)/$(GAME)/scripts"
|
||||
rsync -rva "$(NUCLIDE_DIR)/ThirdParty/gtkradiant/install/installs/$(NAME)Pack/install/$(GAME)/." "$(HOME)/.$(GAME)/$(GAME)/."
|
||||
rsync -rva "$(NUCLIDE_DIR)/ThirdParty/gtkradiant/install/installs/$(NAME)Pack/install/$(GAME)/." "./$(GAME)/."
|
||||
|
|
14
Tools/make_launcher.sh
Executable file
14
Tools/make_launcher.sh
Executable file
|
@ -0,0 +1,14 @@
|
|||
#!/bin/sh
|
||||
|
||||
if [ $# -lt 3 ]; then
|
||||
printf "make_launcher.sh DIR COMMAND DESTINATION\n"
|
||||
exit
|
||||
fi
|
||||
|
||||
|
||||
DIR="$1"
|
||||
COMMAND="$2"
|
||||
DEST="$3"
|
||||
|
||||
printf "#/bin/sh\ncd \"$DIR\"\n$COMMAND\n" > "$DEST"
|
||||
chmod +x "$DEST"
|
44
Tools/make_mapdef.sh
Executable file
44
Tools/make_mapdef.sh
Executable file
|
@ -0,0 +1,44 @@
|
|||
#!/bin/sh
|
||||
|
||||
CWD="$(pwd)"
|
||||
|
||||
ent_for_mod()
|
||||
{
|
||||
# don't bother if we don't have sources
|
||||
if ! [ -f "$CWD/$1/src/progs.src" ]; then
|
||||
exit
|
||||
fi
|
||||
|
||||
mkdir -p "$CWD/$1/scripts"
|
||||
ENT_OUTFILE="$CWD/$1/scripts/entities.def"
|
||||
echo '' > "$ENT_OUTFILE"
|
||||
|
||||
echo "Scanning for definitions inside the game directory."
|
||||
find "$CWD/$1/src/" -type f \( -iname \*.qc \) | while read EDEF_N; do
|
||||
echo "... $EDEF_N"
|
||||
sed -n '/\/*!QUAKED/,/*\//p' $EDEF_N >> "$ENT_OUTFILE"
|
||||
# fix doxygen markup
|
||||
done;
|
||||
|
||||
sed -i 's/*!QUAKED/*QUAKED/g' "$ENT_OUTFILE"
|
||||
|
||||
cat "$CWD/Tools/base_entities.def" >> $ENT_OUTFILE
|
||||
}
|
||||
|
||||
# first dump all the general purpose entities
|
||||
BASE_ENT="$CWD/Tools/base_entities.def"
|
||||
echo '' > "$BASE_ENT"
|
||||
|
||||
echo "Scanning for definitions inside the general entity codebase."
|
||||
find "$CWD/src/entities/" -type f \( -iname \*.qc \) | while read EDEF_N; do
|
||||
echo "... $EDEF_N"
|
||||
sed -n '/\/*!QUAKED/,/*\//p' $EDEF_N >> "$BASE_ENT"
|
||||
# fix doxygen markup
|
||||
done;
|
||||
|
||||
sed -i 's/*!QUAKED/*QUAKED/g' "$BASE_ENT"
|
||||
|
||||
# each game gets its own ents + general purpose ents appended at the end
|
||||
if [ $# -gt 0 ]; then
|
||||
ent_for_mod $1
|
||||
fi
|
Loading…
Reference in a new issue