Updated gdc-psyfork with current (NPOTB).
- Added script support for Steam3 content (CS:GO, ND, etc.). - Removed script steam.inf temp-move hack now that DepotDownloader correctly handles checksums. - Updated symbols.txt. - Fixed gdc having issues with gamedata files that contain new or unknown sections ("Addresses").
This commit is contained in:
parent
2896e7bd4b
commit
b7ac61cbea
@ -153,6 +153,10 @@ SMCResult CGameConfig::ReadSMC_NewSection(const SMCStates *states, const char *n
|
||||
{
|
||||
m_ParseState = PSTATE_GAMEDEFS_SIGNATURES;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_IgnoreLevel++;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
@ -7,7 +7,11 @@ SM_PATH=/home/gdc/sourcemod-central
|
||||
ENGINE_BIN=${ENGINE_PATH}/bin/engine
|
||||
GAME_BIN=${ENGINE_PATH}/${GAME_DIR}/bin/server
|
||||
STEAMINF=${ENGINE_PATH}/${GAME_DIR}/steam.inf
|
||||
BIN_EXT=""
|
||||
|
||||
if [ "${GAMEDATA_DIR}" == "" ] ; then
|
||||
GAMEDATA_DIR=${GAME_DIR}
|
||||
fi
|
||||
|
||||
if [ $MOD == 1 ] ; then
|
||||
BIN_EXT="_i486"
|
||||
fi
|
||||
@ -15,12 +19,12 @@ fi
|
||||
echo -e "Checking game ${GAME_DIR}...\n"
|
||||
|
||||
if [ $MOD == 0 ] && [ "$1" == "auto" ] ; then
|
||||
./updatecheck.pl "${STEAMINF}"
|
||||
UPDATE_RES=`./updatecheck.pl "${STEAMINF}"`
|
||||
if [ $? -ne 0 ] ; then
|
||||
exit 1
|
||||
elif [ ! -e ${STEAMINF}.new ] ; then
|
||||
echo -e "Update (maybe) available but no steam.inf.new written!\n"
|
||||
fi
|
||||
EXPECTED_VER=`echo ${UPDATE_RES} | egrep -o '([0-9]+)$'`
|
||||
echo Expecting version ${EXPECTED_VER}
|
||||
fi
|
||||
|
||||
export RDTSC_FREQUENCY="disabled"
|
||||
@ -36,24 +40,43 @@ fi
|
||||
if [ ${UPDATE} -eq 1 ] ; then
|
||||
cd ${DD_PATH}
|
||||
|
||||
if [ $MOD == 0 ] ; then
|
||||
#workaround for DD1 "bug" (won't redownload file of same name/size)
|
||||
rm -f ${STEAMINF}.old
|
||||
mv ${STEAMINF} ${STEAMINF}.old
|
||||
if [ "${DD_GAME}" != "" ] ; then
|
||||
DD_OPT_AUTH=`tr '\r\n' ' ' < dd-login-info.txt`
|
||||
elif [ "${DD_APP}" != "" ] ; then
|
||||
DD_OPT_AUTH=`tr '\r\n' ' ' < dd-login-info.txt`
|
||||
else
|
||||
echo "Error: neither DD_GAME nor DD_APP are set!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
for i in 1 2 3 4 5
|
||||
do
|
||||
mono DepotDownloader.exe \
|
||||
-game "${DD_GAME}" \
|
||||
-dir ${DD_DIR} \
|
||||
-filelist server.txt \
|
||||
-all-platforms
|
||||
if [ "${DD_GAME}" != "" ] ; then
|
||||
mono DepotDownloader.exe \
|
||||
-game "${DD_GAME}" \
|
||||
-dir ${DD_DIR} \
|
||||
-filelist server.txt \
|
||||
-all-platforms \
|
||||
-no-exclude \
|
||||
${DD_OPT_CELL} \
|
||||
${DD_OPT_AUTH}
|
||||
else
|
||||
mono DepotDownloader.exe \
|
||||
-app "${DD_APP}" \
|
||||
-dir ${DD_DIR} \
|
||||
-filelist server.txt \
|
||||
-all-platforms \
|
||||
-no-exclude \
|
||||
${DD_OPT_CELL} \
|
||||
${DD_OPT_AUTH}
|
||||
fi
|
||||
|
||||
echo
|
||||
|
||||
if [ $? == 0 ] ; then
|
||||
break
|
||||
elif [ $i == 5 ] ; then
|
||||
echo -e "Update failed five times; giving up ¯\(º_º)/¯\n"
|
||||
echo Update failed five times; welp
|
||||
break
|
||||
fi
|
||||
|
||||
@ -64,14 +87,21 @@ fi
|
||||
|
||||
if [ "$1" == "auto" ] ; then
|
||||
DOWNLOADED_VER=`grep -E "^(Patch)?Version=(([0-9]\.?)+)" ${STEAMINF} | grep -Eo "([0-9]\.?)+" | sed s/[^0-9]//g`
|
||||
EXPECTED_VER=`cat ${STEAMINF}.new`
|
||||
|
||||
if [ ${DOWNLOADED_VER} != ${EXPECTED_VER} ] ; then
|
||||
echo -e "Download resulted with version ${DOWNLOADED_VER}, but expected ${EXPECTED_VER}. Exiting.\n"
|
||||
echo Download resulted with version ${DOWNLOADED_VER}, but expected ${EXPECTED_VER}. Exiting.
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# update game-specific
|
||||
cd ${SCRIPT_PATH}
|
||||
GAME_SCRIPT_NAME=`echo $0 | sed s/\.sh$//`
|
||||
echo checking to see if ${GAME_SCRIPT_NAME}_repos.sh exists
|
||||
if [ -e ${GAME_SCRIPT_NAME}_repos.sh ] ; then
|
||||
./${GAME_SCRIPT_NAME}_repos.sh
|
||||
fi
|
||||
|
||||
# update sourcemod
|
||||
cd ${SM_PATH}/tools/gdc-psyfork
|
||||
hg pull -u
|
||||
@ -88,15 +118,6 @@ do
|
||||
-w ${GAME_BIN}.dll \
|
||||
-y ${ENGINE_BIN}.dll
|
||||
echo -e "------------------------------------------------------\n"
|
||||
echo -e "\n"
|
||||
done
|
||||
|
||||
if [ ! -e ${STEAMINF} ] ; then
|
||||
mv ${STEAMINF}.old ${STEAMINF}
|
||||
fi
|
||||
|
||||
if [ "$1" == "auto" ] && [ -e ${STEAMINF}.new ] ; then
|
||||
rm ${STEAMINF}.new
|
||||
fi
|
||||
|
||||
exit 0
|
||||
|
35
tools/gdc-psyfork/example-scripts/gdc_csgo.sh
Normal file
35
tools/gdc-psyfork/example-scripts/gdc_csgo.sh
Normal file
@ -0,0 +1,35 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Path to DepotDownloader
|
||||
DD_PATH=/home/gdc/dd
|
||||
|
||||
# Path for DepotDownloader to download to, relative to DD_PATH
|
||||
DD_DIR=csgo
|
||||
|
||||
# AppId to use for DepotDownloader for Steam3 content (steamcmd app_update number)
|
||||
DD_APP=740
|
||||
|
||||
# Absolute path to game's engine directory
|
||||
ENGINE_PATH=${DD_PATH}/${DD_DIR}/
|
||||
|
||||
# Game's directory name
|
||||
GAME_DIR=csgo
|
||||
|
||||
# SM gamedata engine name
|
||||
ENGINE_NAME=csgo
|
||||
|
||||
# List of gamedata files to run checks on
|
||||
gamedata_files=(
|
||||
"sdktools.games/engine.csgo.txt"
|
||||
"sm-cstrike.games/game.csgo.txt"
|
||||
)
|
||||
|
||||
# Is game a 2006/2007 "mod" ?
|
||||
# If so, bin names are adjusted with _i486 suffix and no update check will be done
|
||||
MOD=0
|
||||
|
||||
# DO NOT EDIT BELOW THIS LINE
|
||||
|
||||
source ./gdc_core.sh $1 $2 $3 $4
|
||||
|
||||
exit $?
|
@ -6,7 +6,7 @@ DD_PATH=/home/gdc/dd
|
||||
# Path for DepotDownloader to download to, relative to DD_PATH
|
||||
DD_DIR=source
|
||||
|
||||
# Game to use for DepotDownloader -game param
|
||||
# Game to use for DepotDownloader for Steam2 content (hldsupdatetool -game param)
|
||||
DD_GAME="Counter-Strike Source"
|
||||
|
||||
# Absolute path to game's engine directory
|
||||
|
@ -40,6 +40,7 @@
|
||||
"GroundEntChanged" "_ZN11CBaseEntity35NetworkStateChanged_m_hGroundEntityEv"
|
||||
"OnTakeDamage" "_ZN11CBaseEntity12OnTakeDamageERK15CTakeDamageInfo"
|
||||
"PreThink" "_ZN11CBasePlayer8PreThinkEv"
|
||||
"PostConstructor" "_ZN11CBaseEntity15PostConstructorEPKc"
|
||||
"PostThink" "_ZN11CBasePlayer9PostThinkEv"
|
||||
"Reload" "_ZN17CBaseCombatWeapon6ReloadEv"
|
||||
"SetTransmit" "_ZN11CBaseEntity11SetTransmitEP18CCheckTransmitInfob"
|
||||
@ -72,14 +73,24 @@
|
||||
"GetSoundEmissionOrigin" "_ZNK11CBaseEntity22GetSoundEmissionOriginEv"
|
||||
"GetServerClass" "_ZN11CBaseEntity14GetServerClassEv"
|
||||
"StudioFrameAdvance" "_ZN14CBaseAnimating18StudioFrameAdvanceEv"
|
||||
"ShouldGib" "_ZN20CBaseCombatCharacter9ShouldGibERK15CTakeDamageInfo"
|
||||
"ShouldGib" "_ZN9CTFPlayer9ShouldGibERK15CTakeDamageInfob"
|
||||
"GetRadius" "_ZN13CTFBaseRocket9GetRadiusEv"
|
||||
"DeflectPlayer" "_ZN13CTFWeaponBase13DeflectPlayerEP9CTFPlayerS1_R6VectorS3_S3_"
|
||||
|
||||
// CSSDM
|
||||
"IPointsForKill" "_ZN14CTeamplayRules14IPointsForKillEP11CBasePlayerS1_"
|
||||
"RemoveAllItems" "_ZN11CBasePlayer14RemoveAllItemsEb"
|
||||
"GiveAmmo" "_ZN20CBaseCombatCharacter8GiveAmmoEiib"
|
||||
|
||||
// NapalmLagFix
|
||||
"RadiusDamage" "_ZN10CGameRules12RadiusDamageERK15CTakeDamageInfoRK6VectorfiP11CBaseEntity"
|
||||
}
|
||||
|
||||
"Options"
|
||||
{
|
||||
"CreateGameRulesObject" "allowmultiple,allowmidfunc"
|
||||
"TakeOverBot" "allowmidfunc"
|
||||
"OnVersusRoundStart" "allowmidfunc"
|
||||
}
|
||||
}
|
||||
|
||||
@ -116,12 +127,26 @@
|
||||
}
|
||||
}
|
||||
|
||||
"#default"
|
||||
{
|
||||
"#supported"
|
||||
{
|
||||
"engine" "css"
|
||||
"engine" "orangebox_valve"
|
||||
}
|
||||
|
||||
"Keys"
|
||||
{
|
||||
"TraceAttack" "_ZN11CBaseEntity11TraceAttackERK15CTakeDamageInfoRK6VectorP10CGameTraceP15CDmgAccumulator"
|
||||
}
|
||||
}
|
||||
|
||||
"#default"
|
||||
{
|
||||
"#supported"
|
||||
{
|
||||
"engine" "left4dead"
|
||||
"game" "left4dead2"
|
||||
"engine" "left4dead2"
|
||||
}
|
||||
|
||||
"Keys"
|
||||
|
Loading…
Reference in New Issue
Block a user