Adding Game/Mod Support

=-=-=-=-=-=-=-=-=-=-=-=



Note that the list of supported mods is now provided separately; see 

Supported Mods.



If you want to have support for your game/mod added, you'll need to send

me (wd@metamod.org) the following information:



Basic Info



  - Game name:

  - Homepage URL:

  - Game version:

  - Game directory:

  - Win32 DLL name:

  - Linux SO name:



  - also, List of game entities (see below)



For instance, Counter-Strike would be:



  - Game name: Counter-Strike

  - Homepage URL: http://www.counter-strike.net/

  - Game version: 1.1

  - Game directory: cstrike

  - Win32 DLL name: mp.dll

  - Linux SO name: cs_i386.so



Many of these can be found in the liblist.gam file in the mod.



List of game entities



The major information that I'll need is the names of any non-standard

entities the game uses, for instance TFC uses things like:



   building_sentrygun

   detpack

   func_nobuild

   ghost

   info_player_teamspawn

   info_tfgoal

   item_artifact_envirosuit

   i_p_t

   item_tfgoal

   i_t_t

   teledeath

   tf_ammo_rpgclip

   tf_gl_grenade



You can see the complete lists of entities for supported mods in the files

in the "ents" directory.



The reason these are needed is that the macro LINK_ENTITY_TO_CLASS in the

HL SDK actually declares/defines a function with the name of the entity,

which the engine will dlsym and call in the gameDLL. Since Metamod is

sitting between the engine and the gameDLL, it needs to pass on the call

to the function - but can't do this unless it knows ahead of time (at

compile) to declare/define a function for that entity name. Thus, metamod

needs a list of any entities that have functions declared/defined for them

in the gameDLL via LINK_ENTITY_TO_CLASS.



Now, the simplest way to generate the list is to grep the source files for

LINK_ENTITY_TO_CLASS. If you're not familiar with grep, it's a tool under

linux for searching contents of files. For instance:



   grep LINK_ENTITY_TO_CLASS *.cpp *.c *.h



If you don't have linux available, then you may have to use some other

tool under win32 to find a similar list. Or find a copy of grep for win32.

:)



Note this all assumes you have access to the sourcecode for the mod. If

you don't have access to the code, you'll need to find someone who does

and ask them to grep the source for the entities.



--------------------------------------------------------------------------

