diff --git a/configs/hamdata.ini b/configs/hamdata.ini new file mode 100644 index 00000000..3e856245 --- /dev/null +++ b/configs/hamdata.ini @@ -0,0 +1,1759 @@ +; Ham Sandwich module config file. +; +; IMPORTANT: It is highly suggested that you do not modify this file unless +; you know _exactly_ what you are doing! +; +; NOTE: Just because a mod contains a function does not means it will work +; as expected. If, for example, HamKilled() does not work as you think +; it should in Counter-Strike DO NOT FILE A BUG REPORT. This just +; exposes the function for you, whether or not it works, or how it +; works is up to plugin authors to figure out. +; +; NOTE: If a mod is missing keys for a certain native, that particular native +; will not be loaded! Example: Say CS is missing the "takedamage" index +; but has the use and pev indexes. The HamUse and HamePdataCbase natives +; will be registered, but the HamTakeDamage native will not register. +; In addition, any attempts to hook a function who's key is missing will +; result in the plugin failing. +; +; NOTE: The base key is only needed for the linux configs. +; +; NOTE: Any keys that begin with a modname (eg: cstrike_restart) will, +; obviously, only work on that mod and all mirrors of it (eg: czero). +; +; NOTE: If you change this file while the module is already loaded, you will +; need to restart the server for the changes to take effect. Changes to +; this file before the module is loaded will take effect when the module +; loads. +; +; NOTE: All of these offsets and settings are for the latest (at the time of +; release) legitimate version of the mod. However, there is a _chance_ +; that they will work on older (and even newer) versions. +; eg: If they work on non-Steam CS 1.6 this is coincidental, if they do +; not work on non-Steam CS 1.6 this will not be officially fixed. +; +; Mirrors: These take the name of one mod, and copy all of its data to another +; name. An example of a use for this would be cstrike and czero: they +; use the same binary so all of its vtable offsets are guaranteed to +; be identical. Mirrors should always come first in the file! +; +; Version: $Id$ + + +@mirror cstrike czero +@mirror ns nsp + +; TODO: check these - all are estimates +@section cstrike linux + pev 0 + base 0x94 + + spawn 2 + precache 3 + keyvalue 5 + objectcaps 8 + activate 9 + setobjectcollisionbox 10 + classify 11 + deathnotice 12 + traceattack 13 + takedamage 14 + takehealth 15 + killed 16 + bloodcolor 17 + tracebleed 18 + istriggered 19 + mymonsterpointer 20 + mysquadmonsterpointer 21 + gettogglestate 22 + addpoints 23 + addpointstoteam 24 + addplayeritem 25 + removeplayeritem 26 + giveammo 27 + getdelay 28 + ismoving 29 + overridereset 30 + damagedecal 31 + settogglestate 32 + startsneaking 33 + stopsneaking 34 + oncontrols 35 + issneaking 36 + isalive 37 + isbspmodel 38 + reflectgauss 39 + hastarget 40 + isinworld 41 + isplayer 42 + isnetclient 43 + teamid 44 + getnexttarget 45 + think 46 + touch 47 + use 48 + blocked 49 + respawn 50 + updateowner 51 + fbecomeprone 52 + center 53 + eyeposition 54 + earposition 55 + bodytarget 56 + illumination 57 + fvisible 58 + fvecvisible 59 + + player_jump 78 + player_duck 79 + player_prethink 80 + player_postthink 81 + player_getgunposition 82 + player_shouldfadeondeath 68 + player_impulsecommands 84 + player_updateclientdata 83 + + item_addtoplayer 61 + item_addduplicate 62 + item_getiteminfo 63 + item_candeploy 64 + item_deploy 66 + item_canholster 68 + item_holster 69 + item_updateiteminfo 70 + item_preframe 71 + item_postframe 72 + item_drop 73 + item_kill 74 + item_attachtoplayer 75 + item_primaryammoindex 76 + item_secondaryammoindex 77 + item_updateclientdata 78 + item_getweaponptr 79 + item_itemslot 81 + + weapon_extractammo 82 + weapon_extractclipammo 83 + weapon_addweapon 84 + weapon_playemptysound 85 + weapon_resetemptysound 86 + weapon_sendweaponanim 87 + weapon_isusable 88 + weapon_primaryattack 89 + weapon_secondaryattack 90 + weapon_reload 91 + weapon_weaponidle 92 + weapon_retireweapon 93 + weapon_shouldweaponidle 94 + weapon_usedecrement 95 + + cstrike_restart 4 + cstrike_roundrespawn 86 + cstrike_item_candrop 65 + cstrike_item_getmaxspeed 80 + +@end +@section cstrike windows + pev 4 + base 0x0 + + spawn 0 + precache 1 + keyvalue 3 + objectcaps 6 + activate 7 + setobjectcollisionbox 8 + classify 9 + deathnotice 10 + traceattack 11 + takedamage 12 + takehealth 13 + killed 14 + bloodcolor 15 + tracebleed 16 + istriggered 17 + mymonsterpointer 18 + mysquadmonsterpointer 19 + gettogglestate 20 + addpoints 21 + addpointstoteam 22 + addplayeritem 23 + removeplayeritem 24 + giveammo 25 + getdelay 26 + ismoving 27 + overridereset 28 + damagedecal 29 + settogglestate 30 + startsneaking 31 + stopsneaking 32 + oncontrols 33 + issneaking 34 + isalive 35 + isbspmodel 36 + reflectgauss 37 + hastarget 38 + isinworld 39 + isplayer 40 + isnetclient 41 + teamid 42 + getnexttarget 43 + think 44 + touch 45 + use 46 + blocked 47 + respawn 48 + updateowner 49 + fbecomeprone 50 + center 51 + eyeposition 52 + earposition 53 + bodytarget 54 + illumination 55 + fvisible 56 + fvecvisible 57 + + player_jump 76 + player_duck 77 + player_prethink 78 + player_postthink 79 + player_getgunposition 80 + player_shouldfadeondeath 66 + player_impulsecommands 82 + player_updateclientdata 81 + + item_addtoplayer 59 + item_addduplicate 60 + item_getiteminfo 61 + item_candeploy 62 + item_deploy 64 + item_canholster 66 + item_holster 67 + item_updateiteminfo 68 + item_preframe 69 + item_postframe 70 + item_drop 71 + item_kill 72 + item_attachtoplayer 73 + item_primaryammoindex 74 + item_secondaryammoindex 75 + item_updateclientdata 76 + item_getweaponptr 77 + item_itemslot 79 + + weapon_extractammo 80 + weapon_extractclipammo 81 + weapon_addweapon 82 + weapon_playemptysound 83 + weapon_resetemptysound 84 + weapon_sendweaponanim 85 + weapon_isusable 86 + weapon_primaryattack 87 + weapon_secondaryattack 88 + weapon_reload 89 + weapon_weaponidle 90 + weapon_retireweapon 91 + weapon_shouldweaponidle 92 + weapon_usedecrement 93 + + cstrike_restart 2 + cstrike_roundrespawn 84 + cstrike_item_candrop 63 + cstrike_item_getmaxspeed 78 +@end +@section dod linux + pev 0 + base 0x154 + + spawn 5 + precache 6 + keyvalue 7 + objectcaps 10 + activate 11 + objectcollisionbox 14 + classify 15 + deathnotice 16 + traceattack 19 + takedamage 20 + takehealth 21 + killed 22 + bloodcolor 23 + tracebleed 24 + mymonsterpointer 25 + mysquadmonsterpointer 26 + gettogglestate 27 + addpoints 28 + addpointstoteam 29 + addplayeritem 30 + removeplayeritem 31 + giveammo 32 + getdelay 33 + ismoving 34 + overridereset 35 + damagedecal 36 + settogglestate 37 + startsneaking 38 + stopsneaking 39 + oncontrols 40 + issneaking 41 + isalive 42 + isbspmodel 43 + reflectgauss 44 + hastarget 45 + isinworld 46 + isplayer 47 + isnetclient 48 + teamid 49 + getnexttarget 50 + think 51 + touch 52 + use 53 + blocked 54 + respawn 55 + updateowner 56 + fbecomeprone 57 + center 58 + eyeposition 59 + earposition 60 + bodytarget 61 + illumination 62 + fvisible 63 + fvecvisible 64 + + player_jump 136 + player_duck 137 + player_prethink 134 + player_postthink 135 + player_getgunposition 128 + player_shouldfadeondeath 68 + player_impulsecommands 139 + player_updateclientdata 138 + + item_addtoplayer 66 + item_addduplicate 67 + item_getiteminfo 68 + item_candeploy 69 + item_deploy 70 + item_canholster 75 + item_holster 76 + item_updateiteminfo 77 + item_preframe 78 + item_postframe 79 + item_drop 80 + item_kill 81 + item_attachtoplayer 82 + item_primaryammoindex 83 + item_secondaryammoindex 84 + item_updateclientdata 85 + item_getweaponptr 86 + item_itemslot 87 + + weapon_extractammo 88 + weapon_extractclipammo 89 + weapon_addweapon 90 + weapon_playemptysound 91 + weapon_resetemptysound 92 + weapon_sendweaponanim 93 + weapon_isusable 94 + weapon_primaryattack 104 + weapon_secondaryattack 105 + weapon_reload 106 + weapon_weaponidle 107 + weapon_retireweapon 108 + weapon_shouldweaponidle 109 + weapon_usedecrement 110 + + dod_roundrespawn 2 + dod_roundrespawnent 3 + dod_roundstore 4 + dod_areasetindex 12 + dod_areasendstatus 13 + dod_getstate 17 + dod_getstateent 18 + dod_item_candrop 72 + +@end +@section dod windows + pev 4 + base 0x0 + + spawn 3 + precache 4 + keyvalue 5 + objectcaps 8 + activate 9 + objectcollisionbox 12 + classify 13 + deathnotice 14 + traceattack 17 + takedamage 18 + takehealth 19 + killed 20 + bloodcolor 21 + tracebleed 22 + mymonsterpointer 23 + mysquadmonsterpointer 24 + gettogglestate 25 + addpoints 26 + addpointstoteam 27 + addplayeritem 28 + removeplayeritem 29 + giveammo 30 + getdelay 31 + ismoving 32 + overridereset 33 + damagedecal 34 + settogglestate 35 + startsneaking 36 + stopsneaking 37 + oncontrols 48 + issneaking 39 + isalive 40 + isbspmodel 41 + reflectgauss 42 + hastarget 43 + isinworld 44 + isplayer 45 + isnetclient 46 + teamid 47 + getnexttarget 48 + think 49 + touch 50 + use 51 + blocked 52 + respawn 53 + updateowner 54 + fbecomeprone 55 + center 56 + eyeposition 57 + earposition 58 + bodytarget 59 + illumination 60 + fvisible 61 + fvecvisible 62 + + player_jump 134 + player_duck 135 + player_prethink 132 + player_postthink 133 + player_getgunposition 126 + player_shouldfadeondeath 66 + player_impulsecommands 137 + player_updateclientdata 136 + + item_addtoplayer 64 + item_addduplicate 65 + item_getiteminfo 66 + item_candeploy 67 + item_deploy 68 + item_canholster 73 + item_holster 74 + item_updateiteminfo 75 + item_preframe 76 + item_postframe 77 + item_drop 78 + item_kill 79 + item_attachtoplayer 80 + item_primaryammoindex 81 + item_secondaryammoindex 82 + item_updateclientdata 83 + item_getweaponptr 84 + item_itemslot 85 + + weapon_extractammo 86 + weapon_extractclipammo 87 + weapon_addweapon 88 + weapon_playemptysound 89 + weapon_resetemptysound 90 + weapon_sendweaponanim 91 + weapon_isusable 92 + weapon_primaryattack 102 + weapon_secondaryattack 103 + weapon_reload 104 + weapon_weaponidle 105 + weapon_retireweapon 106 + weapon_shouldweaponidle 107 + weapon_usedecrement 108 + + dod_roundrespawn 0 + dod_roundrespawnent 1 + dod_roundstore 2 + dod_areasetindex 10 + dod_areasendstatus 11 + dod_getstate 15 + dod_getstateent 16 + dod_item_candrop 70 +@end + +; TFC Does not have the following "standard" entries in its vtable: +; addpoints, addpointstoteam +@section tfc linux + pev 0 + base 0x470 + + spawn 3 + precache 4 + keyvalue 5 + objectcaps 8 + activate 9 + setobjectcollisionbox 10 + classify 11 + deathnotice 12 + traceattack 13 + takedamage 14 + takehealth 15 + killed 16 + bloodcolor 17 + tracebleed 18 + istriggered 19 + mymonsterpointer 20 + mysquadmonsterpointer 21 + gettogglestate 22 + addplayeritem 23 + removeplayeritem 24 + giveammo 25 + getdelay 26 + ismoving 27 + overridereset 28 + damagedecal 29 + settogglestate 30 + startsneaking 31 + stopsneaking 32 + oncontrols 33 + issneaking 34 + isalive 35 + isbspmodel 36 + reflectgauss 37 + hastarget 38 + isinworld 39 + isplayer 40 + isnetclient 41 + getnexttarget 43 + think 44 + touch 45 + use 46 + blocked 47 + respawn 48 + updateowner 49 + fbecomeprone 50 + center 51 + eyeposition 52 + earposition 53 + bodytarget 54 + illumination 55 + fvisible 56 + fvecvisible 57 + + player_jump 135 + player_duck 136 + player_prethink 137 + player_postthink 138 + player_shouldfadeondeath 69 + player_impulsecommands 139 + + item_addtoplayer 67 + item_addduplicate 68 + item_getiteminfo 70 + item_candeploy 71 + item_deploy 72 + item_canholster 73 + item_holster 74 + item_updateiteminfo 75 + item_preframe 76 + item_postframe 77 + item_drop 78 + item_kill 79 + item_attachtoplayer 80 + item_primaryammoindex 81 + item_secondaryammoindex 82 + item_updateclientdata 83 + item_getweaponptr 84 + item_itemslot 69 + + weapon_extractammo 85 + weapon_extractclipammo 86 + weapon_addweapon 87 + weapon_playemptysound 88 + weapon_resetemptysound 89 + weapon_sendweaponanim 90 + weapon_isusable 91 + weapon_primaryattack 92 + weapon_secondaryattack 93 + weapon_reload 94 + weapon_weaponidle 95 + weapon_retireweapon 96 + weapon_shouldweaponidle 97 + + tfc_engineeruse 58 + tfc_finished 59 + tfc_empexplode 60 + tfc_calcempdmgrad 61 + tfc_takeempblast 62 + tfc_empremove 63 + tfc_takeconcussionblast 64 + tfc_concuss 65 +@end +@section tfc windows + pev 4 + base 0x0 + + spawn 1 + precache 2 + keyvalue 3 + objectcaps 6 + activate 7 + setobjectcollisionbox 8 + classify 9 + deathnotice 10 + traceattack 11 + takedamage 12 + takehealth 13 + killed 14 + bloodcolor 15 + tracebleed 16 + istriggered 17 + mymonsterpointer 18 + mysquadmonsterpointer 19 + gettogglestate 20 + addplayeritem 21 + removeplayeritem 22 + giveammo 23 + getdelay 24 + ismoving 25 + overridereset 26 + damagedecal 27 + settogglestate 28 + startsneaking 29 + stopsneaking 30 + oncontrols 31 + issneaking 32 + isalive 33 + isbspmodel 34 + reflectgauss 35 + hastarget 36 + isinworld 37 + isplayer 38 + isnetclient 39 + getnexttarget 41 + think 42 + touch 43 + use 44 + blocked 45 + respawn 46 + updateowner 47 + fbecomeprone 48 + center 49 + eyeposition 50 + earposition 51 + bodytarget 52 + illumination 53 + fvisible 54 + fvecvisible 55 + + + player_jump 133 + player_duck 134 + player_prethink 135 + player_postthink 136 + player_shouldfadeondeath 67 + player_impulsecommands 137 + + item_addtoplayer 65 + item_addduplicate 66 + item_getiteminfo 68 + item_candeploy 69 + item_deploy 70 + item_canholster 71 + item_holster 72 + item_updateiteminfo 73 + item_preframe 74 + item_postframe 75 + item_drop 76 + item_kill 77 + item_attachtoplayer 78 + item_primaryammoindex 79 + item_secondaryammoindex 80 + item_updateclientdata 81 + item_getweaponptr 82 + item_itemslot 67 + + weapon_extractammo 83 + weapon_extractclipammo 84 + weapon_addweapon 85 + weapon_playemptysound 86 + weapon_resetemptysound 87 + weapon_sendweaponanim 88 + weapon_isusable 89 + weapon_primaryattack 90 + weapon_secondaryattack 91 + weapon_reload 92 + weapon_weaponidle 93 + weapon_retireweapon 94 + weapon_shouldweaponidle 95 + + tfc_engineeruse 56 + tfc_finished 57 + tfc_empexplode 58 + tfc_calcempdmgrad 59 + tfc_takeempblast 60 + tfc_empremove 61 + tfc_takeconcussionblast 62 + tfc_concuss 63 +@end +; ns's linux binary is compiled with gcc 3.3, so the "base" is 0, and pev is 4 +@section ns linux + pev 4 + base 0x0 + + spawn 0 + precache 1 + keyvalue 2 + objectcaps 5 + activate 6 + setobjectcollisionbox 7 + classify 8 + deathnotice 9 + traceattack 10 + takedamage 11 + takehealth 12 + killed 14 + bloodcolor 16 + tracebleed 17 + istriggered 18 + mymonsterpointer 19 + mysquadmonsterpointer 20 + gettogglestate 21 + addpoints 22 + addpointstoteam 23 + addplayeritem 24 + removeplayeritem 25 + giveammo 26 + getdelay 27 + ismoving 28 + overridereset 29 + damagedecal 30 + settogglestate 31 + startsneaking 32 + stopsneaking 33 + oncontrols 34 + issneaking 35 + isalive 36 + isbspmodel 37 + reflectgauss 38 + hastarget 39 + isinworld 40 + isplayer 41 + isnetclient 42 + teamid 43 + getnexttarget 46 + think 47 + touch 48 + use 49 + blocked 50 + respawn 52 + updateowner 53 + fbecomeprone 54 + center 55 + eyeposition 56 + earposition 57 + bodytarget 58 + illumination 59 + fvisible 60 + fvecvisible 61 + + player_jump 83 + player_duck 84 + player_prethink 85 + player_postthink 86 + player_getgunposition 87 + player_shouldfadeondeath 72 + player_impulsecommands 101 + player_updateclientdata 99 + + item_addtoplayer 64 + item_addduplicate 65 + item_getiteminfo 68 + item_candeploy 69 + item_deploy 70 + item_canholster 71 + item_holster 72 + item_updateiteminfo 74 + item_preframe 75 + item_postframe 76 + item_drop 77 + item_kill 78 + item_attachtoplayer 79 + item_primaryammoindex 80 + item_secondaryammoindex 81 + item_updateclientdata 82 + item_getweaponptr 83 + item_itemslot 84 + + weapon_extractammo 85 + weapon_extractclipammo 86 + weapon_addweapon 87 + weapon_playemptysound 88 + weapon_resetemptysound 89 + weapon_sendweaponanim 94 + weapon_isusable 73 + weapon_primaryattack 98 + weapon_secondaryattack 99 + weapon_reload 100 + weapon_weaponidle 101 + weapon_retireweapon 102 + weapon_shouldweaponidle 103 + weapon_usedecrement 104 + + ns_getpointvalue 13 + ns_awardkill 15 + ns_resetentity 45 + ns_updateonremove 51 +@end +@section ns windows + pev 4 + base 0x0 + + spawn 0 + precache 1 + keyvalue 2 + objectcaps 5 + activate 6 + setobjectcollisionbox 7 + classify 8 + deathnotice 9 + traceattack 10 + takedamage 11 + takehealth 12 + killed 14 + bloodcolor 16 + tracebleed 17 + istriggered 18 + mymonsterpointer 19 + mysquadmonsterpointer 20 + gettogglestate 21 + addpoints 22 + addpointstoteam 23 + addplayeritem 24 + removeplayeritem 25 + giveammo 26 + getdelay 27 + ismoving 28 + overridereset 29 + damagedecal 30 + settogglestate 31 + startsneaking 32 + stopsneaking 33 + oncontrols 34 + issneaking 35 + isalive 36 + isbspmodel 37 + reflectgauss 38 + hastarget 39 + isinworld 40 + isplayer 41 + isnetclient 42 + teamid 43 + getnexttarget 46 + think 47 + touch 48 + use 49 + blocked 50 + respawn 52 + updateowner 53 + fbecomeprone 54 + center 55 + eyeposition 56 + earposition 57 + bodytarget 58 + illumination 59 + fvisible 60 + fvecvisible 61 + + player_jump 83 + player_duck 84 + player_prethink 85 + player_postthink 86 + player_getgunposition 87 + player_shouldfadeondeath 72 + player_impulsecommands 101 + player_updateclientdata 99 + + item_addtoplayer 64 + item_addduplicate 65 + item_getiteminfo 68 + item_candeploy 69 + item_deploy 70 + item_canholster 71 + item_holster 72 + item_updateiteminfo 74 + item_preframe 75 + item_postframe 76 + item_drop 77 + item_kill 78 + item_attachtoplayer 79 + item_primaryammoindex 80 + item_secondaryammoindex 81 + item_updateclientdata 82 + item_getweaponptr 83 + item_itemslot 84 + + weapon_extractammo 85 + weapon_extractclipammo 86 + weapon_addweapon 87 + weapon_playemptysound 88 + weapon_resetemptysound 89 + weapon_sendweaponanim 94 + weapon_isusable 73 + weapon_primaryattack 98 + weapon_secondaryattack 99 + weapon_reload 100 + weapon_weaponidle 101 + weapon_retireweapon 102 + weapon_shouldweaponidle 103 + weapon_usedecrement 104 + + ns_getpointvalue 13 + ns_awardkill 15 + ns_resetentity 45 + ns_updateonremove 51 +@end + +@section ts linux + pev 0 + base 0x60 + + spawn 9 + precache 10 + keyvalue 11 + objectcaps 14 + activate 15 + setobjectcollisionbox 18 + classify 19 + deathnotice 20 + traceattack 21 + takedamage 22 + takehealth 23 + killed 24 + bloodcolor 25 + tracebleed 26 + istriggered 27 + mymonsterpointer 28 + mysquadmonsterpointer 29 + gettogglestate 30 + addpoints 31 + addpointstoteam 32 + addplayeritem 33 + removeplayeritem 34 + giveammo 35 + getdelay 36 + ismoving 37 + overridereset 38 + damagedecal 39 + settogglestate 40 + startsneaking 41 + stopsneaking 42 + oncontrols 43 + issneaking 44 + isalive 45 + isbspmodel 46 + reflectgauss 47 + hastarget 48 + isinworld 49 + isplayer 50 + isnetclient 51 + teamid 52 + getnexttarget 53 + think 54 + touch 55 + use 56 + blocked 57 + respawn 59 + updateowner 60 + fbecomeprone 61 + center 62 + eyeposition 63 + earposition 64 + bodytarget 65 + illumination 66 + fvisible 67 + fvecvisible 68 + + player_jump 86 + player_duck 87 + player_prethink 88 + player_postthink 89 + player_getgunposition 90 + player_shouldfadeondeath 77 + player_impulsecommands 92 + player_updateclientdata 91 + + item_addtoplayer 70 + item_addduplicate 71 + item_candeploy 73 + item_deploy 74 + item_canholster 75 + item_holster 76 + item_updateiteminfo 77 + item_preframe 78 + item_postframe 79 + item_drop 80 + item_kill 81 + item_attachtoplayer 82 + item_primaryammoindex 83 + item_secondaryammoindex 84 + item_updateclientdata 85 + item_getweaponptr 86 + item_itemslot 87 + + weapon_extractammo 88 + weapon_extractclipammo 89 + weapon_addweapon 90 + weapon_playemptysound 91 + weapon_resetemptysound 92 + weapon_sendweaponanim 93 + weapon_isusable 94 + weapon_primaryattack 95 + weapon_secondaryattack 96 + weapon_reload 98 + weapon_weaponidle 99 + weapon_retireweapon 100 + weapon_shouldweaponidle 101 + weapon_usedecrement 102 + + ts_breakablerespawn 2 + ts_canusedthroughwalls 3 + ts_giveslowmul 4 + ts_goslow 5 + ts_inslow 6 + ts_isobjective 7 + ts_enableobjective 8 + ts_onfreeentprivatedata 12 + ts_shouldcollide 13 + + ts_weapon_alternateattack 97 +@end +@section ts windows + pev 4 + base 0x0 + + spawn 7 + precache 8 + keyvalue 9 + objectcaps 12 + activate 13 + setobjectcollisionbox 16 + classify 17 + deathnotice 18 + traceattack 19 + takedamage 20 + takehealth 21 + killed 22 + bloodcolor 23 + tracebleed 24 + istriggered 25 + mymonsterpointer 26 + mysquadmonsterpointer 27 + gettogglestate 28 + addpoints 29 + addpointstoteam 30 + addplayeritem 31 + removeplayeritem 32 + giveammo 33 + getdelay 34 + ismoving 35 + overridereset 36 + damagedecal 37 + settogglestate 38 + startsneaking 39 + stopsneaking 40 + oncontrols 41 + issneaking 42 + isalive 43 + isbspmodel 44 + reflectgauss 45 + hastarget 46 + isinworld 47 + isplayer 48 + isnetclient 49 + teamid 50 + getnexttarget 51 + think 52 + touch 53 + use 54 + blocked 55 + respawn 57 + updateowner 58 + fbecomeprone 59 + center 60 + eyeposition 61 + earposition 62 + bodytarget 63 + illumination 64 + fvisible 65 + fvecvisible 66 + + player_jump 84 + player_duck 85 + player_prethink 86 + player_postthink 87 + player_getgunposition 88 + player_shouldfadeondeath 75 + player_impulsecommands 90 + player_updateclientdata 89 + + item_addtoplayer 68 + item_addduplicate 69 + item_candeploy 71 + item_deploy 72 + item_canholster 73 + item_holster 74 + item_updateiteminfo 75 + item_preframe 76 + item_postframe 77 + item_drop 78 + item_kill 79 + item_attachtoplayer 80 + item_primaryammoindex 81 + item_secondaryammoindex 82 + item_updateclientdata 83 + item_getweaponptr 84 + item_itemslot 85 + + weapon_extractammo 86 + weapon_extractclipammo 87 + weapon_addweapon 88 + weapon_playemptysound 89 + weapon_resetemptysound 90 + weapon_sendweaponanim 91 + weapon_isusable 92 + weapon_primaryattack 93 + weapon_secondaryattack 94 + weapon_reload 96 + weapon_weaponidle 97 + weapon_retireweapon 98 + weapon_shouldweaponidle 99 + weapon_usedecrement 100 + + ts_breakablerespawn 0 + ts_canusedthroughwalls 1 + ts_giveslowmul 2 + ts_goslow 3 + ts_inslow 4 + ts_isobjective 5 + ts_enableobjective 6 + ts_onfreeentprivatedata 10 + ts_shouldcollide 11 + + ts_weapon_alternateattack 95 +@end + +; Sven-Coop has no linux binaries. This makes disassembly much harder. +@section svencoop windows + pev 4 + base 0x0 + + takedamage 11 + use 46 +@end + +@section esf windows + pev 4 + base 0x0 + + spawn 0 + precache 1 + keyvalue 2 + objectcaps 5 + activate 6 + setobjectcollisionbox 7 + classify 8 + deathnotice 9 + traceattack 10 + takedamage 11 + takehealth 12 + killed 13 + bloodcolor 14 + tracebleed 15 + istriggered 16 + mymonsterpointer 17 + mysquadmonsterpointer 18 + gettogglestate 19 + addpoints 20 + addpointstoteam 21 + addplayeritem 22 + removeplayeritem 23 + getdelay 24 + ismoving 25 + overridereset 26 + damagedecal 27 + settogglestate 28 + startsneaking 29 + stopsneaking 30 + oncontrols 31 + issneaking 32 + isalive 33 + isbspmodel 34 + reflectgauss 35 + hastarget 36 + isinworld 37 + isplayer 38 + isnetclient 39 + teamid 40 + getnexttarget 41 + think 42 + touch 43 + use 44 + blocked 45 + respawn 46 + updateowner 47 + fbecomeprone 48 + center 49 + eyeposition 50 + earposition 51 + bodytarget 52 + illumination 53 + fvisible 54 + fvecvisible 55 + + player_jump 124 + player_prethink 125 + player_postthink 126 + player_getgunposition 118 + player_shouldfadeondeath 59 + player_impulsecommands 128 + player_updateclientdata 127 + + item_addtoplayer 57 + item_addduplicate 58 + item_getiteminfo 59 + item_candeploy 60 + item_deploy 61 + item_canholster 62 + item_holster 63 + item_updateiteminfo 64 + item_preframe 65 + item_postframe 66 + item_drop 67 + item_kill 68 + item_attachtoplayer 69 + item_primaryammoindex 70 + item_secondaryammoindex 71 + item_updateclientdata 72 + item_getweaponptr 73 + item_itemslot 74 + + weapon_playemptysound 75 + weapon_resetemptysound 76 + weapon_sendweaponanim 77 + weapon_primaryattack 78 + weapon_secondaryattack 79 + weapon_weaponidle 80 + weapon_retireweapon 81 + weapon_shouldweaponidle 82 + weapon_usedecrement 83 +@end +@section esf linux + pev 0 + base 0x60 + + spawn 2 + precache 3 + keyvalue 4 + objectcaps 7 + activate 8 + setobjectcollisionbox 9 + classify 10 + deathnotice 11 + traceattack 12 + takedamage 13 + takehealth 14 + killed 15 + bloodcolor 16 + tracebleed 17 + istriggered 18 + mymonsterpointer 19 + mysquadmonsterpointer 20 + gettogglestate 21 + addpoints 22 + addpointstoteam 23 + addplayeritem 24 + removeplayeritem 25 + getdelay 26 + ismoving 27 + overridereset 28 + damagedecal 29 + settogglestate 30 + startsneaking 31 + stopsneaking 32 + oncontrols 33 + issneaking 34 + isalive 35 + isbspmodel 36 + reflectgauss 37 + hastarget 38 + isinworld 39 + isplayer 40 + isnetclient 41 + teamid 42 + getnexttarget 43 + think 44 + touch 45 + use 46 + blocked 47 + respawn 48 + updateowner 49 + fbecomeprone 50 + center 51 + eyeposition 52 + earposition 53 + bodytarget 54 + illumination 55 + fvisible 56 + fvecvisible 57 + + player_jump 126 + player_prethink 127 + player_postthink 128 + player_getgunposition 120 + player_shouldfadeondeath 61 + player_impulsecommands 130 + player_updateclientdata 129 + + item_addtoplayer 59 + item_addduplicate 60 + item_getiteminfo 61 + item_candeploy 62 + item_deploy 63 + item_canholster 64 + item_holster 65 + item_updateiteminfo 66 + item_preframe 67 + item_postframe 68 + item_drop 69 + item_kill 70 + item_attachtoplayer 71 + item_primaryammoindex 72 + item_secondaryammoindex 73 + item_updateclientdata 74 + item_getweaponptr 75 + item_itemslot 76 + + weapon_playemptysound 77 + weapon_resetemptysound 78 + weapon_sendweaponanim 79 + weapon_primaryattack 80 + weapon_secondaryattack 81 + weapon_weaponidle 82 + weapon_retireweapon 83 + weapon_shouldweaponidle 84 + weapon_usedecrement 85 +@end + +; ESF Open Beta is built with GCC 3.x, and the VTable was slightly changed +@section esf_openbeta linux + pev 4 + base 0x0 + + spawn 0 + precache 1 + keyvalue 2 + objectcaps 5 + activate 6 + setobjectcollisionbox 7 + classify 8 + deathnotice 9 + traceattack 10 + takedamage 11 + takehealth 13 + killed 14 + bloodcolor 15 + tracebleed 16 + istriggered 17 + mymonsterpointer 18 + mysquadmonsterpointer 19 + gettogglestate 20 + addpoints 21 + addpointstoteam 22 + addplayeritem 23 + removeplayeritem 24 + getdelay 25 + ismoving 26 + overridereset 27 + damagedecal 28 + settogglestate 29 + startsneaking 30 + stopsneaking 31 + oncontrols 32 + issneaking 33 + isalive 34 + isbspmodel 35 + reflectgauss 36 + hastarget 37 + isinworld 38 + isplayer 39 + isnetclient 41 + teamid 42 + getnexttarget 43 + think 44 + touch 45 + use 46 + blocked 47 + respawn 48 + updateowner 49 + fbecomeprone 50 + center 51 + eyeposition 52 + earposition 53 + bodytarget 54 + illumination 55 + fvisible 56 + fvecvisible 57 + + player_jump 131 + player_prethink 132 + player_postthink 133 + player_getgunposition 120 + player_shouldfadeondeath 61 + player_impulsecommands 135 + player_updateclientdata 134 + + item_addtoplayer 59 + item_addduplicate 60 + item_getiteminfo 61 + item_candeploy 62 + item_deploy 63 + item_canholster 64 + item_holster 65 + item_updateiteminfo 66 + item_preframe 67 + item_postframe 68 + item_drop 69 + item_kill 70 + item_attachtoplayer 71 + item_primaryammoindex 72 + item_secondaryammoindex 73 + item_updateclientdata 74 + item_getweaponptr 75 + item_itemslot 76 + + weapon_playemptysound 77 + weapon_resetemptysound 78 + weapon_sendweaponanim 79 + weapon_primaryattack 80 + weapon_secondaryattack 81 + weapon_weaponidle 82 + weapon_retireweapon 83 + weapon_shouldweaponidle 84 + weapon_usedecrement 85 + + esf_isenvmodel 40 + esf_takedamage2 12 + +@end +@section esf_openbeta windows + pev 4 + base 0x0 + + spawn 0 + precache 1 + keyvalue 2 + objectcaps 5 + activate 6 + setobjectcollisionbox 7 + classify 8 + deathnotice 9 + traceattack 10 + takedamage 11 + takehealth 13 + killed 14 + bloodcolor 15 + tracebleed 16 + istriggered 17 + mymonsterpointer 18 + mysquadmonsterpointer 19 + gettogglestate 20 + addpoints 21 + addpointstoteam 22 + addplayeritem 23 + removeplayeritem 24 + getdelay 25 + ismoving 26 + overridereset 27 + damagedecal 28 + settogglestate 29 + startsneaking 30 + stopsneaking 31 + oncontrols 32 + issneaking 33 + isalive 34 + isbspmodel 35 + reflectgauss 36 + hastarget 37 + isinworld 38 + isplayer 39 + isnetclient 41 + teamid 42 + getnexttarget 43 + think 44 + touch 45 + use 46 + blocked 47 + respawn 48 + updateowner 49 + fbecomeprone 50 + center 51 + eyeposition 52 + earposition 53 + bodytarget 54 + illumination 55 + fvisible 56 + fvecvisible 57 + + player_jump 131 + player_prethink 132 + player_postthink 133 + player_getgunposition 120 + player_shouldfadeondeath 61 + player_impulsecommands 135 + player_updateclientdata 134 + + item_addtoplayer 59 + item_addduplicate 60 + item_getiteminfo 61 + item_candeploy 62 + item_deploy 63 + item_canholster 64 + item_holster 65 + item_updateiteminfo 66 + item_preframe 67 + item_postframe 68 + item_drop 69 + item_kill 70 + item_attachtoplayer 71 + item_primaryammoindex 72 + item_secondaryammoindex 73 + item_updateclientdata 74 + item_getweaponptr 75 + item_itemslot 76 + + weapon_playemptysound 77 + weapon_resetemptysound 78 + weapon_sendweaponanim 79 + weapon_primaryattack 80 + weapon_secondaryattack 81 + weapon_weaponidle 82 + weapon_retireweapon 83 + weapon_shouldweaponidle 84 + weapon_usedecrement 85 + + esf_isenvmodel 40 + esf_takedamage2 12 + +@end +@section valve linux + pev 0 + base 0x60 + + spawn 2 + precache 3 + keyvalue 4 + objectcaps 7 + activate 8 + setobjectcollisionbox 9 + classify 10 + deathnotice 11 + traceattack 12 + takedamage 13 + takehealth 14 + killed 15 + bloodcolor 16 + tracebleed 17 + istriggered 18 + mymonsterpointer 19 + mysquadmonsterpointer 20 + gettogglestate 21 + addpoints 22 + addpointstoteam 23 + addplayeritem 24 + removeplayeritem 25 + giveammo 26 + getdelay 27 + ismoving 28 + overridereset 29 + damagedecal 30 + settogglestate 31 + startsneaking 32 + stopsneaking 33 + oncontrols 34 + issneaking 35 + isalive 36 + isbspmodel 37 + reflectgauss 38 + hastarget 39 + isinworld 40 + isplayer 41 + isnetclient 42 + teamid 43 + getnexttarget 44 + think 45 + touch 46 + use 47 + blocked 48 + respawn 49 + updateowner 50 + fbecomeprone 51 + center 52 + eyeposition 53 + earposition 54 + bodytarget 55 + illumination 56 + fvisible 57 + fvecvisible 58 + + player_jump 127 + player_duck 128 + player_prethink 129 + player_postthink 130 + player_getgunposition 121 + player_shouldfadeondeath 62 + player_impulsecommands 132 + player_updateclientdata 131 + + item_addtoplayer 60 + item_addduplicate 61 + item_getiteminfo 62 + item_candeploy 63 + item_deploy 64 + item_canholster 65 + item_holster 66 + item_updateiteminfo 67 + item_preframe 68 + item_postframe 69 + item_drop 70 + item_kill 71 + item_attachtoplayer 72 + item_primaryammoindex 73 + item_secondaryammoindex 74 + item_updateclientdata 75 + item_getweaponptr 76 + item_itemslot 77 + + weapon_extractammo 78 + weapon_extractclipammo 79 + weapon_addweapon 80 + weapon_playemptysound 81 + weapon_resetemptysound 82 + weapon_sendweaponanim 83 + weapon_isusable 84 + weapon_primaryattack 85 + weapon_secondaryattack 86 + weapon_reload 87 + weapon_weaponidle 88 + weapon_retireweapon 89 + weapon_shouldweaponidle 90 + weapon_usedecrement 91 +@end +@section valve windows + pev 4 + base 0x0 + + spawn 0 + precache 1 + keyvalue 2 + objectcaps 5 + activate 6 + setobjectcollisionbox 7 + classify 8 + deathnotice 9 + traceattack 10 + takedamage 11 + takehealth 12 + killed 13 + bloodcolor 14 + tracebleed 15 + istriggered 16 + mymonsterpointer 17 + mysquadmonsterpointer 18 + gettogglestate 19 + addpoints 20 + addpointstoteam 21 + addplayeritem 22 + removeplayeritem 23 + giveammo 24 + getdelay 25 + ismoving 26 + overridereset 27 + damagedecal 28 + settogglestate 29 + startsneaking 30 + stopsneaking 31 + oncontrols 32 + issneaking 33 + isalive 34 + isbspmodel 35 + reflectgauss 36 + hastarget 37 + isinworld 38 + isplayer 39 + isnetclient 40 + teamid 41 + getnexttarget 42 + think 43 + touch 44 + use 45 + blocked 46 + respawn 47 + updateowner 48 + fbecomeprone 49 + center 50 + eyeposition 51 + earposition 52 + bodytarget 53 + illumination 54 + fvisible 55 + fvecvisible 56 + + player_jump 125 + player_duck 126 + player_prethink 127 + player_postthink 128 + player_getgunposition 119 + player_shouldfadeondeath 60 + player_impulsecommands 130 + player_updateclientdata 129 + + item_addtoplayer 58 + item_addduplicate 59 + item_getiteminfo 60 + item_candeploy 61 + item_deploy 62 + item_canholster 63 + item_holster 64 + item_updateiteminfo 65 + item_preframe 66 + item_postframe 67 + item_drop 68 + item_kill 69 + item_attachtoplayer 70 + item_primaryammoindex 71 + item_secondaryammoindex 72 + item_updateclientdata 73 + item_getweaponptr 74 + item_itemslot 75 + + weapon_extractammo 76 + weapon_extractclipammo 77 + weapon_addweapon 78 + weapon_playemptysound 79 + weapon_resetemptysound 80 + weapon_sendweaponanim 81 + weapon_isusable 82 + weapon_primaryattack 83 + weapon_secondaryattack 84 + weapon_reload 85 + weapon_weaponidle 86 + weapon_retireweapon 87 + weapon_shouldweaponidle 88 + weapon_usedecrement 89 + +@end