Add Linux and Mac gamedata for Dota 2 and update Windows gamedata (bug 6068).
authorNicholas Hastings <skamonkey@gmail.com>
Mon Mar 03 05:20:40 2014 -0600 (2014-03-03)
changeset 42710e44e03ba650
parent 4270 f70875cf8a5c
child 4272 8b39aa02b05b
Add Linux and Mac gamedata for Dota 2 and update Windows gamedata (bug 6068).
gamedata/core.games/engine.dota.txt
gamedata/sdkhooks.games/engine.dota.txt
gamedata/sdktools.games/engine.dota.txt
     1.1 --- a/gamedata/core.games/engine.dota.txt	Mon Mar 03 05:20:38 2014 -0600
     1.2 +++ b/gamedata/core.games/engine.dota.txt	Mon Mar 03 05:20:40 2014 -0600
     1.3 @@ -20,7 +20,7 @@
     1.4  		}
     1.5  		
     1.6  		"Addresses"
     1.7 -		{
     1.8 +		{			
     1.9  			"EntInfosPtr"
    1.10  			{
    1.11  				"windows"
    1.12 @@ -31,6 +31,15 @@
    1.13  			}
    1.14  		}
    1.15  		
    1.16 +		"Offsets"
    1.17 +		{
    1.18 +			"EntInfo"
    1.19 +			{
    1.20 +				"linux"
    1.21 +				"18"
    1.22 +			}
    1.23 +		}
    1.24 +		
    1.25  		"Signatures"
    1.26  		{
    1.27  			"EntInfosFinder"
    1.28 @@ -38,6 +47,18 @@
    1.29  				"library"	"server"
    1.30  				"windows"	"\x83\x2A\xFF\x74\x03\x0F\x2A\x2A\xC1\x2A\x04\x8B\x2A\x2A\x2A\x2A\x2A\xEB\x06\x8B"
    1.31  			}
    1.32 +			
    1.33 +			"LevelShutdown"
    1.34 +			{
    1.35 +				"library"	"server"
    1.36 +				"linux"		"\xE8\x2A\x2A\x2A\x2A\xE8\x2A\x2A\x2A\x2A\xE8\x2A\x2A\x2A\x2A\xC7\x2A\x2A\x2A\x2A\x2A\x2A\xE8\x2A\x2A\x2A\x2A\xE8"
    1.37 +			}
    1.38 +			
    1.39 +			"gEntList"
    1.40 +			{
    1.41 +				"library"	"server"
    1.42 +				"mac"		"@gEntList"
    1.43 +			}
    1.44  		}
    1.45  	}
    1.46  }
     2.1 --- a/gamedata/sdkhooks.games/engine.dota.txt	Mon Mar 03 05:20:38 2014 -0600
     2.2 +++ b/gamedata/sdkhooks.games/engine.dota.txt	Mon Mar 03 05:20:40 2014 -0600
     2.3 @@ -6,83 +6,123 @@
     2.4  		{
     2.5  			"EndTouch"
     2.6  			{
     2.7 -				"windows"	"105"
     2.8 +				"windows"	"107"
     2.9 +				"linux"		"108"
    2.10 +				"mac"		"108"
    2.11  			}
    2.12  			"FireBullets"
    2.13  			{
    2.14 -				"windows"	"118"
    2.15 +				"windows"	"120"
    2.16 +				"linux"		"121"
    2.17 +				"mac"		"121"
    2.18  			}
    2.19  			"GetMaxHealth"
    2.20  			{
    2.21 -				"windows"	"122"
    2.22 +				"windows"	"124"
    2.23 +				"linux"		"125"
    2.24 +				"mac"		"125"
    2.25  			}
    2.26  			"OnTakeDamage"
    2.27  			{
    2.28 -				"windows"	"70"
    2.29 +				"windows"	"73"
    2.30 +				"linux"		"74"
    2.31 +				"mac"		"74"
    2.32  			}
    2.33  			"PreThink"
    2.34  			{
    2.35  				"windows"	"363"
    2.36 +				"linux"		"364"
    2.37 +				"mac"		"364"
    2.38  			}
    2.39  			"PostThink"
    2.40  			{
    2.41  				"windows"	"364"
    2.42 +				"linux"		"365"
    2.43 +				"mac"		"365"
    2.44  			}
    2.45  			"SetTransmit"
    2.46  			{
    2.47  				"windows"	"22"
    2.48 +				"linux"		"23"
    2.49 +				"mac"		"23"
    2.50  			}
    2.51  			"ShouldCollide"
    2.52  			{
    2.53  				"windows"	"17"
    2.54 +				"linux"		"18"
    2.55 +				"mac"		"18"
    2.56  			}
    2.57  			"Spawn"
    2.58  			{
    2.59 -				"windows"	"24"
    2.60 +				"windows"	"27"
    2.61 +				"linux"		"28"
    2.62 +				"mac"		"28"
    2.63  			}
    2.64  			"StartTouch"
    2.65  			{
    2.66 -				"windows"	"103"
    2.67 +				"windows"	"105"
    2.68 +				"linux"		"106"
    2.69 +				"mac"		"106"
    2.70  			}
    2.71  			"Think"
    2.72  			{
    2.73 -				"windows"	"52"
    2.74 +				"windows"	"54"
    2.75 +				"linux"		"55"
    2.76 +				"mac"		"55"
    2.77  			}
    2.78  			"Touch"
    2.79  			{
    2.80 -				"windows"	"104"
    2.81 +				"windows"	"106"
    2.82 +				"linux"		"107"
    2.83 +				"mac"		"107"
    2.84  			}
    2.85  			"TraceAttack"
    2.86  			{
    2.87 -				"windows"	"68"
    2.88 +				"windows"	"71"
    2.89 +				"linux"		"72"
    2.90 +				"mac"		"72"
    2.91  			}
    2.92  			"Use"
    2.93  			{
    2.94 -				"windows"	"102"
    2.95 +				"windows"	"104"
    2.96 +				"linux"		"105"
    2.97 +				"mac"		"105"
    2.98  			}
    2.99  			"VPhysicsUpdate"
   2.100  			{
   2.101 -				"windows"	"163"
   2.102 +				"windows"	"165"
   2.103 +				"linux"		"166"
   2.104 +				"mac"		"166"
   2.105  			}
   2.106  			"Weapon_CanSwitchTo"
   2.107  			{
   2.108 -				"windows"	"297"
   2.109 +				"windows"	"296"
   2.110 +				"linux"		"297"
   2.111 +				"mac"		"297"
   2.112  			}
   2.113  			"Weapon_CanUse"
   2.114  			{
   2.115 -				"windows"	"291"
   2.116 +				"windows"	"290"
   2.117 +				"linux"		"291"
   2.118 +				"mac"		"291"
   2.119  			}
   2.120  			"Weapon_Drop"
   2.121  			{
   2.122 -				"windows"	"294"
   2.123 +				"windows"	"293"
   2.124 +				"linux"		"294"
   2.125 +				"mac"		"294"
   2.126  			}
   2.127  			"Weapon_Equip"
   2.128  			{
   2.129 -				"windows"	"292"
   2.130 +				"windows"	"291"
   2.131 +				"linux"		"292"
   2.132 +				"mac"		"292"
   2.133  			}
   2.134  			"Weapon_Switch"
   2.135  			{
   2.136 -				"windows"	"295"
   2.137 +				"windows"	"294"
   2.138 +				"linux"		"295"
   2.139 +				"mac"		"295"
   2.140  			}
   2.141  		}
   2.142  	}
   2.143 @@ -110,5 +150,14 @@
   2.144  				"windows"	"\x33\xC9\x8B\x2A\x2A\x2A\x2A\x2A\x33\xC0\x89\x4D\xFC\x56\x85\xD2\x7E\x2A\x8B"
   2.145  			}
   2.146  		}
   2.147 +		
   2.148 +		"Offsets"
   2.149 +		{
   2.150 +			"EntityListeners"
   2.151 +			{
   2.152 +				"linux"		"131108"
   2.153 +				"mac"		"131108"
   2.154 +			}
   2.155 +		}
   2.156  	}
   2.157  }
   2.158 \ No newline at end of file
     3.1 --- a/gamedata/sdktools.games/engine.dota.txt	Mon Mar 03 05:20:38 2014 -0600
     3.2 +++ b/gamedata/sdktools.games/engine.dota.txt	Mon Mar 03 05:20:40 2014 -0600
     3.3 @@ -36,18 +36,25 @@
     3.4  			"s_pTempEntities"
     3.5  			{
     3.6  				"windows"	"7"
     3.7 +				"linux"		"9"
     3.8  			}
     3.9  			"GetTEName"
    3.10  			{
    3.11  				"windows"	"4"
    3.12 +				"linux"		"4"
    3.13 +				"mac"		"4"
    3.14  			}
    3.15  			"GetTENext"
    3.16  			{
    3.17  				"windows"	"8"
    3.18 +				"linux"		"8"
    3.19 +				"mac"		"8"
    3.20  			}
    3.21  			"TE_GetServerClass"
    3.22  			{
    3.23  				"windows"	"0"
    3.24 +				"linux"		"0"
    3.25 +				"mac"		"0"
    3.26  			}
    3.27  		}
    3.28  
    3.29 @@ -57,6 +64,28 @@
    3.30  			{
    3.31  				"library"	"server"
    3.32  				"windows"	"\xFF\x2A\x2A\x2A\x2A\x2A\xA1\x2A\x2A\x2A\x2A\x89\x2A\x2A\x2A\x2A\x2A\x85\xC0\x74\x2A\x8D"
    3.33 +				"linux"		"\x55\x89\xE5\x53\x83\xEC\x2A\x8B\x2A\x2A\x2A\x2A\x2A\x85\xDB\x74\x2A\x8D\xB4\x26\x00\x00\x00\x00\x8B"
    3.34 +			}
    3.35 +			"s_pTempEntities"
    3.36 +			{
    3.37 +				"library"	"server"
    3.38 +				"mac"		"@_ZN15CBaseTempEntity15s_pTempEntitiesE"
    3.39 +			}
    3.40 +		}
    3.41 +	}
    3.42 +	
    3.43 +	/* CGlobalEntityList */
    3.44 +	"#default"
    3.45 +	{
    3.46 +		"Signatures"
    3.47 +		{
    3.48 +			/* Functions in CGlobalEntityList */
    3.49 +			"FindEntityByClassname"
    3.50 +			{
    3.51 +				"library"	"server"
    3.52 +				// Fallback to IServerTools method instead on Windows, lest we add custom logic since it's not a thiscall on Windows in Dota
    3.53 +				"linux"		"\x55\x89\xE5\x57\x56\x53\x83\xEC\x1C\x8B\x45\x0C\x8B\x5D\x08\x8B\x7D\x10\x85\xC0\x74\x7A\x8B\x10\x89"
    3.54 +				"mac"		"@_ZN17CGlobalEntityList21FindEntityByClassnameEP11CBaseEntityPKc"
    3.55  			}
    3.56  		}
    3.57  	}
    3.58 @@ -75,6 +104,7 @@
    3.59  			"g_pGameRules"
    3.60  			{
    3.61  				"windows"	"3"
    3.62 +				"linux"		"9"
    3.63  			}
    3.64  		}
    3.65  		
    3.66 @@ -92,10 +122,12 @@
    3.67  			{
    3.68  				"library"	"server"
    3.69  				"windows"	"\x51\x8B\x0D\x2A\x2A\x2A\x2A\x85\xC9\x74\x06\x8B\x01\x6A\x01\xFF\x10\xC7\x05\x2A\x2A\x2A\x2A\x00\x00\x00\x00\xE8"
    3.70 +				"linux"		"\x55\x89\xE5\x56\x53\x83\xEC\x2A\xA1\x2A\x2A\x2A\x2A\x8B\x5D\x08\x85\xC0\x74\x08\x8B"
    3.71  			}
    3.72  			"g_pGameRules"
    3.73  			{
    3.74  				"library"	"server"
    3.75 +				"mac"		"@g_pGameRules"
    3.76  			}
    3.77  		}
    3.78  	}
    3.79 @@ -124,6 +156,16 @@
    3.80  				"windows"	"8"
    3.81  			}
    3.82  		}
    3.83 +		
    3.84 +		"Signatures"
    3.85 +		{
    3.86 +			/* CBaseServer object for IServer interface */
    3.87 +			"sv"
    3.88 +			{
    3.89 +				"library"	"engine"
    3.90 +				"mac"		"@sv"
    3.91 +			}
    3.92 +		}
    3.93  	}
    3.94  	
    3.95  	/* Resource Entity override */
    3.96 @@ -141,13 +183,18 @@
    3.97  	{
    3.98  		"Signatures"
    3.99  		{
   3.100 +			"EntityFactory"
   3.101 +			{
   3.102 +				"library"	"server"
   3.103 +				// "linux"		"" // TODO
   3.104 +				"mac"		"@_Z23EntityFactoryDictionaryv"
   3.105 +			}
   3.106 +			
   3.107  			"EntityFactoryFinder"
   3.108  			{
   3.109  				// EntityFactoryDictionary gets inlined on Windows in Dota 2. The pointer to the static factory becomes a global.
   3.110  				"library"	"server"
   3.111  				"windows"	"\xFF\x2A\x2A\xB9\x2A\x2A\x2A\x2A\xE8\x2A\x2A\x2A\x2A\x8B\xC8\xC7"
   3.112 -				//"linux"		"@_Z23EntityFactoryDictionaryv"
   3.113 -				//"mac"		"@_Z23EntityFactoryDictionaryv"
   3.114  			}
   3.115  		}
   3.116  		
   3.117 @@ -169,6 +216,8 @@
   3.118  			{
   3.119  				"library"	"server"
   3.120  				"windows"	"\x55\x8B\xEC\x83\xE4\xC0\x81\xEC\x2A\x2A\x2A\x2A\x8B\xC1\x53"
   3.121 +				"linux"		"\x55\x89\xE5\x57\x56\x53\x81\xEC\x2A\x2A\x2A\x2A\x8B\x55\x08\x8B\x75\x14\x8B\x5A\x14\x85\xDB\x0F"
   3.122 +				"mac"		"@_ZN17CBaseEntityOutput10FireOutputE9variant_tP11CBaseEntityS2_f"
   3.123  			}
   3.124  		}
   3.125  	}
   3.126 @@ -187,6 +236,8 @@
   3.127  			"SetUserCvar"
   3.128  			{
   3.129  				"windows"	"26"
   3.130 +				"linux"		"62"
   3.131 +				"mac"		"62"
   3.132  			}
   3.133  			/**
   3.134  			 * Offset into CBaseClient - Used by CBaseServer::UpdateUserSettings to determine when changes have been made.
   3.135 @@ -199,6 +250,8 @@
   3.136  			"InfoChanged"
   3.137  			{
   3.138  				"windows"	"212"
   3.139 +				"linux"		"212"
   3.140 +				"mac"		"212"
   3.141  			}
   3.142  		}
   3.143  	}
   3.144 @@ -210,58 +263,86 @@
   3.145  			"GiveNamedItem"
   3.146  			{
   3.147  				"windows"	"438"
   3.148 +				"linux"		"439"
   3.149 +				"mac"		"439"
   3.150  			}
   3.151  			"RemovePlayerItem"
   3.152  			{
   3.153  				"windows"	"300"
   3.154 +				"linux"		"301"
   3.155 +				"mac"		"301"
   3.156  			}
   3.157  			"Weapon_GetSlot"
   3.158  			{
   3.159 -				"windows"	"289"
   3.160 +				"windows"	"288"
   3.161 +				"linux"		"289"
   3.162 +				"mac"		"289"
   3.163  			}
   3.164  			"Ignite"
   3.165  			{
   3.166 -				"windows"	"231"
   3.167 +				"windows"	"226"
   3.168 +				"linux"		"227"
   3.169 +				"mac"		"227"
   3.170  			}
   3.171  			"Extinguish"
   3.172  			{
   3.173 -				"windows"	"234"
   3.174 +				"windows"	"229"
   3.175 +				"linux"		"230"
   3.176 +				"mac"		"230"
   3.177  			}
   3.178  			"Teleport"
   3.179  			{
   3.180 -				"windows"	"114"
   3.181 +				"windows"	"116"
   3.182 +				"linux"		"117"
   3.183 +				"mac"		"117"
   3.184  			}
   3.185  			"CommitSuicide"
   3.186  			{
   3.187  				"windows"	"482"
   3.188 +				"linux"		"482"
   3.189 +				"mac"		"482"
   3.190  			}
   3.191  			"GetVelocity"
   3.192  			{
   3.193 -				"windows"	"147"
   3.194 +				"windows"	"149"
   3.195 +				"linux"		"150"
   3.196 +				"mac"		"150"
   3.197  			}
   3.198  			"EyeAngles"
   3.199  			{
   3.200 -				"windows"	"138"
   3.201 +				"windows"	"140"
   3.202 +				"linux"		"141"
   3.203 +				"mac"		"141"
   3.204  			}
   3.205  			"AcceptInput"
   3.206  			{
   3.207 -				"windows"	"41"
   3.208 +				"windows"	"43"
   3.209 +				"linux"		"44"
   3.210 +				"mac"		"44"
   3.211  			}
   3.212  			"SetEntityModel"
   3.213  			{
   3.214 -				"windows"	"26"
   3.215 +				"windows"	"28"
   3.216 +				"linux"		"29"
   3.217 +				"mac"		"29"
   3.218  			}
   3.219  			"WeaponEquip"
   3.220  			{
   3.221 -				"windows"	"292"
   3.222 +				"windows"	"291"
   3.223 +				"linux"		"292"
   3.224 +				"mac"		"292"
   3.225  			}
   3.226  			"Activate"
   3.227  			{
   3.228 -				"windows"	"37"
   3.229 +				"windows"	"39"
   3.230 +				"linux"		"40"
   3.231 +				"mac"		"40"
   3.232  			}
   3.233  			"PlayerRunCmd"
   3.234  			{
   3.235  				"windows"	"458"
   3.236 +				"linux"		"459"
   3.237 +				"mac"		"459"
   3.238  			}
   3.239  		}
   3.240  	}