Mod versioning with watermark at the bottom right.

We will eventually remove the watermark again when the mod is stable and finished.
master
Icedream 2016-04-12 23:58:03 +02:00
parent 76f545a5c5
commit 1e99421928
4 changed files with 53 additions and 10 deletions

1
.gitignore vendored
View File

@ -2,4 +2,5 @@ demos/
*.log *.log
*.log.??? *.log.???
missingasset.csv missingasset.csv
mod_*.csv
*.iwd *.iwd

View File

@ -1,4 +1,4 @@
#!/bin/sh -e #!/bin/bash -e
if [ -z "${WORKSPACE}" ]; then if [ -z "${WORKSPACE}" ]; then
export WORKSPACE="$(pwd)" export WORKSPACE="$(pwd)"
fi fi
@ -9,7 +9,7 @@ iwd_files()
! -path "*.git*" \ ! -path "*.git*" \
! -name "README*" \ ! -name "README*" \
! -name "mod.ff" \ ! -name "mod.ff" \
! -name "mod.csv" \ ! -name "mod*.csv" \
! -name "missingasset.csv" \ ! -name "missingasset.csv" \
! -name "*.md" \ ! -name "*.md" \
! -name "*.log*" \ ! -name "*.log*" \
@ -19,14 +19,14 @@ iwd_files()
sed "s:${WORKSPACE}/::g" sed "s:${WORKSPACE}/::g"
} }
gen_iwd_filelist()
{
iwd_filelist="$(mktemp)" iwd_filelist="$(mktemp)"
iwd_files > "$iwd_filelist" iwd_files > "$iwd_filelist"
echo $iwd_filelist
}
iwd_filelist="$(gen_iwd_filelist)" modversion_txt_file="mod_version.csv"
git describe --tags --always --dirty > "$modversion_txt_file"
echo "$modversion_txt_file" >> "$iwd_filelist"
rm -f "hns.iwd" rm -f "hns.iwd"
7z a -tzip -mx9 "hns.iwd" @"$iwd_filelist" 7z a -tzip -mx9 "hns.iwd" @"$iwd_filelist"
rm -f "$iwd_filelist"
rm -f "$iwd_filelist" "$modversion_txt_file"

View File

@ -2,6 +2,7 @@
#include maps\mp\_utility; #include maps\mp\_utility;
#include maps\mp\perks\_perks; #include maps\mp\perks\_perks;
#include maps\mp\gametypes\_hud_util; #include maps\mp\gametypes\_hud_util;
#include maps\mp\mods\_modversion;
#include maps\mp\mods\disableClassMenu; #include maps\mp\mods\disableClassMenu;
#include maps\mp\mods\helpingHints; #include maps\mp\mods\helpingHints;
@ -152,11 +153,21 @@ main()
maps\mp\gametypes\_tweakables::setTweakableValue("hardpoint", "allowhelicopter", "scr_hardpoint_allowhelicopter", 0); maps\mp\gametypes\_tweakables::setTweakableValue("hardpoint", "allowhelicopter", "scr_hardpoint_allowhelicopter", 0);
level disableClassMenu(); level disableClassMenu();
level showVersionWatermark();
initGameFlags(); initGameFlags();
gameFlagInit("seekers_released", false); gameFlagInit("seekers_released", false);
} }
showVersionWatermark()
{
versionHudElem = createServerFontString("objective", 0.75);
versionHudElem setPoint("BOTTOMRIGHT", "BOTTOMRIGHT", -4, -4);
versionHudElem setText("Version: " + getModVersionString());
versionHudElem.hideWhenInMenu = false;
versionHudElem.alpha = 0.5;
}
onPrecacheGametype() onPrecacheGametype()
{ {
logPrint("onPrecacheGametype called"); logPrint("onPrecacheGametype called");

View File

@ -0,0 +1,31 @@
loadModVersionInfo()
{
if (IsDefined(level.modVersionInfo))
return;
level.modVersionInfo = SpawnStruct();
// Open and read mod_version.csv
filenum = OpenFile("mod_version.csv", "read");
if (filenum == -1)
{
level.modVersionInfo.hasVersion = false;
return;
}
verinfo = StrTok(FReadLn(filenum), ",");
CloseFile(filenum);
assert(versionString.size >= 1);
level.modVersionInfo.hasVersion = true;
level.modVersionInfo.version = versionString[0];
}
getModVersionString()
{
loadModVersionInfo();
if (!IsDefined(level.modVersionInfo.version))
return "";
return level.modVersionInfo.version;
}