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:
Nicholas Hastings 2012-12-01 13:39:34 -05:00
parent 2896e7bd4b
commit b7ac61cbea
5 changed files with 113 additions and 28 deletions

View File

@ -153,6 +153,10 @@ SMCResult CGameConfig::ReadSMC_NewSection(const SMCStates *states, const char *n
{
m_ParseState = PSTATE_GAMEDEFS_SIGNATURES;
}
else
{
m_IgnoreLevel++;
}
break;
}

View File

@ -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

View 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 $?

View File

@ -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

View File

@ -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"