diff --git a/.gitignore b/.gitignore index 9cdc82d..1ddc2bc 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ demos/ *.log *.log.??? missingasset.csv +mod_*.csv *.iwd diff --git a/build_iwd.sh b/build_iwd.sh index 803ec21..e1ec5b5 100755 --- a/build_iwd.sh +++ b/build_iwd.sh @@ -1,4 +1,4 @@ -#!/bin/sh -e +#!/bin/bash -e if [ -z "${WORKSPACE}" ]; then export WORKSPACE="$(pwd)" fi @@ -9,7 +9,7 @@ iwd_files() ! -path "*.git*" \ ! -name "README*" \ ! -name "mod.ff" \ - ! -name "mod.csv" \ + ! -name "mod*.csv" \ ! -name "missingasset.csv" \ ! -name "*.md" \ ! -name "*.log*" \ @@ -19,14 +19,14 @@ iwd_files() sed "s:${WORKSPACE}/::g" } -gen_iwd_filelist() -{ - iwd_filelist="$(mktemp)" - iwd_files > "$iwd_filelist" - echo $iwd_filelist -} +iwd_filelist="$(mktemp)" +iwd_files > "$iwd_filelist" + +modversion_txt_file="mod_version.csv" +git describe --tags --always --dirty > "$modversion_txt_file" +echo "$modversion_txt_file" >> "$iwd_filelist" -iwd_filelist="$(gen_iwd_filelist)" rm -f "hns.iwd" 7z a -tzip -mx9 "hns.iwd" @"$iwd_filelist" -rm -f "$iwd_filelist" + +rm -f "$iwd_filelist" "$modversion_txt_file" diff --git a/maps/mp/gametypes/hns.gsc b/maps/mp/gametypes/hns.gsc index 71c737e..646aedb 100644 --- a/maps/mp/gametypes/hns.gsc +++ b/maps/mp/gametypes/hns.gsc @@ -2,6 +2,7 @@ #include maps\mp\_utility; #include maps\mp\perks\_perks; #include maps\mp\gametypes\_hud_util; +#include maps\mp\mods\_modversion; #include maps\mp\mods\disableClassMenu; #include maps\mp\mods\helpingHints; @@ -152,11 +153,21 @@ main() maps\mp\gametypes\_tweakables::setTweakableValue("hardpoint", "allowhelicopter", "scr_hardpoint_allowhelicopter", 0); level disableClassMenu(); + level showVersionWatermark(); initGameFlags(); 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() { logPrint("onPrecacheGametype called"); diff --git a/maps/mp/mods/_modversion.gsc b/maps/mp/mods/_modversion.gsc new file mode 100644 index 0000000..05e58e8 --- /dev/null +++ b/maps/mp/mods/_modversion.gsc @@ -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; +}