diff --git a/tools/gdc-psyfork/example-scripts/gdc_auto.sh b/tools/gdc-psyfork/example-scripts/gdc_auto.sh index af9f5ee1..eaff2bbe 100644 --- a/tools/gdc-psyfork/example-scripts/gdc_auto.sh +++ b/tools/gdc-psyfork/example-scripts/gdc_auto.sh @@ -34,7 +34,7 @@ do filename=$(date +%Y-%m-%d-%H%M%S)-${lcgame}.log fullfilename=log/$filename - ./gdc_${lcgame}.sh auto | tee -a ${fullfilename} + ./gdc_${lcgame}.sh auto 2>&1 | tee -a ${fullfilename} if [ ${PIPESTATUS[0]} -ne 0 ] ; then echo -e "No change. Removing useless log.\n" diff --git a/tools/gdc-psyfork/example-scripts/gdc_core.sh b/tools/gdc-psyfork/example-scripts/gdc_core.sh index e2f5b179..be020903 100644 --- a/tools/gdc-psyfork/example-scripts/gdc_core.sh +++ b/tools/gdc-psyfork/example-scripts/gdc_core.sh @@ -1,8 +1,17 @@ #!/bin/bash -# Do not run this file directly. It is meant to be called by other scripts +SCRIPT_PATH=/users/psychonic/gdc -SM_PATH=/home/gdc/sourcemod-central +# with trailing slash or undefined for system default +MONO_BIN_PATH=/apps/mono-2.10.9/bin/ + +DD_PATH=${SCRIPT_PATH}/dd +ENGINE_PATH=${DD_PATH}/${ENGINE_PATH_FROM_DD} + +SM_PATH=${SCRIPT_PATH}/sourcemod-central +SMRCON_PATH=${SCRIPT_PATH}/SMRCon + +# Do not run this file directly. It is meant to be called by other scripts ENGINE_BIN=${ENGINE_PATH}/bin/engine GAME_BIN=${ENGINE_PATH}/${GAME_DIR}/bin/server @@ -31,7 +40,7 @@ if [ $MOD == 0 ] && [ "$1" == "auto" ] ; then fi export RDTSC_FREQUENCY="disabled" -export LD_LIBRARY_PATH=".:${ENGINE_PATH}/bin:$LD_LIBRARY_PATH" +export LD_LIBRARY_PATH="${ENGINE_PATH}:${ENGINE_PATH}/bin:$LD_LIBRARY_PATH" UPDATE=0 if [ "$1" == "update" ] ; then @@ -43,19 +52,28 @@ fi if [ ${UPDATE} -eq 1 ] ; then cd ${DD_PATH} - 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 + if [ "${DD_NEEDS_AUTH}" != "" ] ; then + 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 + fi + + if [ "${DD_BETA}" != "" ] ; then + DD_OPT_BETA="-beta ${DD_BETA}" + if [ "${DD_BETA_PASSWORD}" != "" ] ; then + DD_OPT_BETA_PASSWORD="-betapassword ${DD_BETA_PASSWORD}" + fi fi for i in 1 2 3 4 5 do if [ "${DD_GAME}" != "" ] ; then - mono DepotDownloader.exe \ + ${MONO_BIN_PATH}mono DepotDownloader.exe \ -game "${DD_GAME}" \ -dir ${DD_DIR} \ -filelist server.txt \ @@ -64,16 +82,18 @@ if [ ${UPDATE} -eq 1 ] ; then ${DD_OPT_CELL} \ ${DD_OPT_AUTH} else - mono DepotDownloader.exe \ + ${MONO_BIN_PATH}mono DepotDownloader.exe \ -app "${DD_APP}" \ -dir ${DD_DIR} \ -filelist server.txt \ -all-platforms \ -no-exclude \ ${DD_OPT_CELL} \ - ${DD_OPT_AUTH} + ${DD_OPT_AUTH} \ + ${DD_OPT_BETA} \ + ${DD_OPT_BETA_PASSWORD} fi - + echo if [ $? == 0 ] ; then @@ -106,7 +126,8 @@ if [ -e ${GAME_SCRIPT_NAME}_repos.sh ] ; then fi # update sourcemod -cd ${SM_PATH}/tools/gdc-psyfork +echo Updating SourceMod repo +cd ${SM_PATH} hg pull -u echo -e "\n" diff --git a/tools/gdc-psyfork/example-scripts/gdc_csgo.sh b/tools/gdc-psyfork/example-scripts/gdc_csgo.sh index e5fd413e..b106be31 100644 --- a/tools/gdc-psyfork/example-scripts/gdc_csgo.sh +++ b/tools/gdc-psyfork/example-scripts/gdc_csgo.sh @@ -1,17 +1,13 @@ #!/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}/ - +# Relative path to game's engine directory from DD +ENGINE_PATH_FROM_DD=${DD_DIR}/ # Game's directory name GAME_DIR=csgo diff --git a/tools/gdc-psyfork/example-scripts/gdc_cstrike.sh b/tools/gdc-psyfork/example-scripts/gdc_cstrike.sh index fea4ff1f..e4406692 100644 --- a/tools/gdc-psyfork/example-scripts/gdc_cstrike.sh +++ b/tools/gdc-psyfork/example-scripts/gdc_cstrike.sh @@ -4,24 +4,31 @@ DD_PATH=/home/gdc/dd # Path for DepotDownloader to download to, relative to DD_PATH -DD_DIR=source +DD_DIR=css -# Game to use for DepotDownloader for Steam2 content (hldsupdatetool -game param) -DD_GAME="Counter-Strike Source" +# App ID +DD_APP=232330 -# Absolute path to game's engine directory -ENGINE_PATH=${DD_PATH}/${DD_DIR}/css +# Beta name +DD_BETA=prerelease +# Beta passowrd, if applicable +#DD_BETA_PASSWORD=passwordhere + +# Relative path to game's engine directory from DD +ENGINE_PATH_FROM_DD=${DD_DIR} # Game's directory name GAME_DIR=cstrike +BIN_EXT="_srv" + # SM gamedata engine name -ENGINE_NAME=orangebox_valve +ENGINE_NAME=css # List of gamedata files to run checks on gamedata_files=( "sdktools.games/game.cstrike.txt" - "sdktools.games/engine.ep2valve.txt" + "sdktools.games/engine.css.txt" "sm-cstrike.games/game.css.txt" ) diff --git a/tools/gdc-psyfork/symbols.txt b/tools/gdc-psyfork/symbols.txt index 212a5a33..5f345fa1 100644 --- a/tools/gdc-psyfork/symbols.txt +++ b/tools/gdc-psyfork/symbols.txt @@ -91,6 +91,82 @@ "CTFFlameThrower::FireFlameRocket" "_ZN16CTFWeaponBaseGun15FireFlameRocketEP9CTFPlayer" "CTFPlayer::GetMaxHealth" "_ZNK11CBaseEntity12GetMaxHealthEv" "CBaseEntity::GetBaseEntity" "_ZN11CBaseEntity13GetBaseEntityEv" + "RocketTouch" "_ZN13CTFBaseRocket11RocketTouchEP11CBaseEntity" + "SRocketTouch" "_ZN13CTFBaseRocket11RocketTouchEP11CBaseEntity" + + // V V + "CBaseEntity::GetModelIndex" "_ZNK11CBaseEntity13GetModelIndexEv" + "CBaseEntity::SetModelIndex" "_ZN11CBaseEntity13SetModelIndexEi" + "CBaseEntity::GetServerClass" "_ZN11CBaseEntity14GetServerClassEv" + "CBaseEntity::GetDataDescMap" "_ZN11CBaseEntity14GetDataDescMapEv" + "CBaseEntity::ShouldCollide" "_ZNK11CBaseEntity13ShouldCollideEii" + "CBaseEntity::ShouldTransmit" "_ZN11CBaseEntity14ShouldTransmitEPK18CCheckTransmitInfo" + "CBaseEntity::UpdateTransmitState" "_ZN11CBaseEntity19UpdateTransmitStateEv" + "CBaseEntity::SetTransmit" "_ZN11CBaseEntity11SetTransmitEP18CCheckTransmitInfob" + "CBaseEntity::Spawn" "_ZN11CBaseEntity5SpawnEv" + "CBaseEntity::SetModel" "_ZN11CBaseEntity8SetModelEPKc" + "CBaseEntity::KeyValue" "_ZN11CBaseEntity8KeyValueEPKcS1_" + "CBaseEntity::Activate" "_ZN11CBaseEntity8ActivateEv" + "CBaseEntity::SetParent" "_ZN11CBaseEntity9SetParentEPS_i" + "CBaseEntity::AcceptInput" "_ZN11CBaseEntity11AcceptInputEPKcPS_S2_9variant_ti" + "CBaseEntity::Think" "_ZN11CBaseEntity5ThinkEv" + "CBaseEntity::GetResponseSystem" "_ZN11CBaseEntity17GetResponseSystemEv" + "CBaseEntity::OnTakeDamage" "_ZN11CBaseEntity12OnTakeDamageERK15CTakeDamageInfo" + "CBaseEntity::Event_Killed" "_ZN11CBaseEntity12Event_KilledERK15CTakeDamageInfo" + "CBaseEntity::ChangeTeam" "_ZN11CBaseEntity10ChangeTeamEi" + "CBaseEntity::Use" "_ZN11CBaseEntity3UseEPS_S0_8USE_TYPEf" + "CBaseEntity::Touch" "_ZN11CBaseEntity5TouchEPS_" + "CBaseEntity::Blocked" "_ZN11CBaseEntity7BlockedEPS_" + "CBaseEntity::UpdateOnRemove" "_ZN11CBaseEntity14UpdateOnRemoveEv" + "CBaseEntity::Teleport" "_ZN11CBaseEntity8TeleportEPK6VectorPK6QAngleS2_" + "CBaseEntity::CreateVPhysics" "_ZN11CBaseEntity14CreateVPhysicsEv" + "CBaseEntity::ForceVPhysicsCollide" "_ZN11CBaseEntity20ForceVPhysicsCollideEPS_" + "CBaseEntity::VPhysicsDestroyObject" "_ZN11CBaseEntity21VPhysicsDestroyObjectEv" + "CBaseEntity::VPhysicsUpdate" "_ZN11CBaseEntity14VPhysicsUpdateEP14IPhysicsObject" + "CBaseEntity::VPhysicsTakeDamage" "_ZN11CBaseEntity18VPhysicsTakeDamageERK15CTakeDamageInfo" + "CBaseEntity::VPhysicsCollision" "_ZN11CBaseEntity17VPhysicsCollisionEiP21gamevcollisionevent_t" + "CBaseEntity::VPhysicsFriction" "_ZN11CBaseEntity16VPhysicsFrictionEP14IPhysicsObjectfii" + "CBaseEntity::VPhysicsGetObjectList" "_ZN11CBaseEntity21VPhysicsGetObjectListEPP14IPhysicsObjecti" + "CBaseEntity::PhysicsSolidMaskForEntity" "_ZNK11CBaseEntity25PhysicsSolidMaskForEntityEv" + "CBaseAnimating::StudioFrameAdvance" "_ZN14CBaseAnimating18StudioFrameAdvanceEv" + "CBaseAnimating::GetBoneTransform" "_ZN14CBaseAnimating16GetBoneTransformEiR11matrix3x4_t" + "CBaseAnimating::SetupBones" "_ZN14CBaseAnimating10SetupBonesEP11matrix3x4_ti" + "CBaseAnimating::DispatchAnimEvents" "_ZN14CBaseAnimating18DispatchAnimEventsEPS_" + "CBaseAnimating::HandleAnimEvent" "_ZN14CBaseAnimating15HandleAnimEventEP11animevent_t" + "CBaseAnimating::GetAttachment" "_ZN14CBaseAnimating13GetAttachmentEiR11matrix3x4_t" + "CBasePlayer::PlayScene" "_ZN9CTFPlayer9PlaySceneEPKcfP11AI_ResponseP16IRecipientFilter" + "CBasePlayer::GiveAmmo" "_ZN9CTFPlayer8GiveAmmoEiib" + "CBasePlayer::Weapon_Equip" "_ZN11CBasePlayer12Weapon_EquipEP17CBaseCombatWeapon" + "CBasePlayer::Weapon_Switch" "_ZN9CTFPlayer13Weapon_SwitchEP17CBaseCombatWeaponi" + "CBasePlayer::RemovePlayerItem" "_ZN11CBasePlayer16RemovePlayerItemEP17CBaseCombatWeapon" + "CBasePlayer::ForceRespawn" "_ZN9CTFPlayer12ForceRespawnEv" + "CBasePlayer::PreThink" "_ZN9CTFPlayer8PreThinkEv" + "CBasePlayer::PostThink" "_ZN9CTFPlayer9PostThinkEv" + "CTFPlayer::EquipWearable" "_ZN11CBasePlayer13EquipWearableEP13CEconWearable" + "CTFPlayer::RemoveWearable" "_ZN11CBasePlayer14RemoveWearableEP13CEconWearable" + "CBasePlayer::PlayerRunCommand" "_ZN9CTFPlayer16PlayerRunCommandEP8CUserCmdP11IMoveHelper" + "CBasePlayer::CalculateTeamBalanceScore" "_ZN9CTFPlayer25CalculateTeamBalanceScoreEv" + "CTFBaseRocket::GetWeaponID" "_ZNK13CTFBaseRocket11GetWeaponIDEv" + "CBaseCombatWeapon::ItemPostFrame" "_ZN17CBaseCombatWeapon13ItemPostFrameEv" + "CBaseCombatWeapon::Reload" "_ZN17CBaseCombatWeapon6ReloadEv" + "CBaseCombatWeapon::PrimaryAttack" "_ZN17CBaseCombatWeapon13PrimaryAttackEv" + "CBaseCombatWeapon::SecondaryAttack" "_ZN17CBaseCombatWeapon15SecondaryAttackEv" + "CBaseCombatWeapon::GetViewModel" "_ZNK17CBaseCombatWeapon12GetViewModelEi" + "CBaseCombatWeapon::GetWorldModel" "_ZNK17CBaseCombatWeapon13GetWorldModelEv" + "CBaseCombatWeapon::GetMaxClip1" "_ZNK17CBaseCombatWeapon11GetMaxClip1Ev" + "CBaseCombatWeapon::GetMaxClip2" "_ZNK17CBaseCombatWeapon11GetMaxClip2Ev" + "CBaseCombatWeapon::GetDefaultClip1" "_ZNK17CBaseCombatWeapon15GetDefaultClip1Ev" + "CBaseCombatWeapon::GetDefaultClip2" "_ZNK17CBaseCombatWeapon15GetDefaultClip2Ev" + "CBaseCombatWeapon::GetEncryptionKey" "_ZN17CBaseCombatWeapon16GetEncryptionKeyEv" + "CGameRules::CanHaveAmmo" "_ZN10CGameRules11CanHaveAmmoEP20CBaseCombatCharacterPKc" + "CGameRules::GetNextLevelName" "_ZN15CMultiplayRules16GetNextLevelNameEPcib" + "CGameRules::ChangeLevel" "_ZN15CMultiplayRules11ChangeLevelEv" + "CGameRules::GoToIntermission" "_ZN12CTFGameRules16GoToIntermissionEv" + "CGameRules::PlayerMayCapturePoint" "_ZN12CTFGameRules21PlayerMayCapturePointEP11CBasePlayeriPci" + "CTeamplayRoundBasedRules::SetWinningTeam" "_ZN24CTeamplayRoundBasedRules14SetWinningTeamEiibbb" + "CTeamplayRoundBasedRules::SetStalemate" "_ZN24CTeamplayRoundBasedRules12SetStalemateEibb" + "CTeamplayRoundBasedRules::SetScrambleTeams" "_ZN14CTeamplayRules16SetScrambleTeamsEb" + "CTeamplayRoundBasedRules::CleanUpMap" "_ZN12CTFGameRules10CleanUpMapEv" } "Options" @@ -106,6 +182,7 @@ "#supported" { "engine" "orangebox_valve" + "engine" "css" "engine" "left4dead2" "engine" "alienswarm" "engine" "csgo"