Template:CD/doc: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
No edit summary
(info)
Line 6: Line 6:
<nowiki>{{CD|<entity_class>|file1=<file_where_the_class_is_defined_in>}}</nowiki>
<nowiki>{{CD|<entity_class>|file1=<file_where_the_class_is_defined_in>}}</nowiki>
{{tip|If the template fails for some classname try using [[Template:CD2]] (usage same as shown above)}}
{{tip|If the template fails for some classname try using [[Template:CD2]] (usage same as shown above)}}
If <code>file1</code> param is specified there will be lookup using the specified classname into [[Template:CD/classlink]] to automatically link to Valve Source SDK 2013 githup repo (multiplayer files are linked) and if nothing is found then <code>file1</code> param is shown as is. To not link anything <code>nolink=1</code> param can be used.
Parameter <code>base</code> can be also specified to explicitly choose the superclass which can be useful in case there isn't the desired class in [[Template:CD/superclass]] or it is defined there but it's already used for something else.


== Examples and Parameters ==
== Examples and Parameters ==
Line 12: Line 16:
| <nowiki>{{CD|CGasCan|file1=somefile.cpp}}</nowiki>
| <nowiki>{{CD|CGasCan|file1=somefile.cpp}}</nowiki>
| {{CD|CGasCan|file1=somefile.cpp}}
| {{CD|CGasCan|file1=somefile.cpp}}
|-
| <nowiki>{{CD|CPhysicsProp|file1=1}}</nowiki>
| {{CD|CPhysicsProp|file1=1}}
|-
| <nowiki>{{CD|CUnknownClass|base=CBaseEntity}}</nowiki>
| {{CD|CUnknownClass|base=CBaseEntity}}
|}
|}
== Template performance ==
CD2 repeatedly calls [[Template:CD/superclass]] to build the hierarchy
CD call that once and then builds the rest from smaller defined templates like [[Template:CD CPointEntity]]
specifying the <code>base</code> parameter avoids the first [[Template:CD/superclass]] call which makes it stuff even faster
tests:
<nowiki>{{CD2|Hunter}}</nowiki> CPU time: ~0.26s
<nowiki>{{CD|Hunter}}</nowiki> CPU time: ~0.1s
<nowiki>{{CD|Hunter|base=BossZombiePlayerBot}}</nowiki> CPU time: ~0.03s
{{Expand|title=Hunter class hierarchy|{{CD|Hunter|base=BossZombiePlayerBot}}}}


== See Also ==
== See Also ==

Revision as of 08:20, 1 July 2024

Edit-copy.png
This is a documentation subpage for Template:CD.
Don't forget to purge the contents of the base page upon creating or editing this subpage.

This template is used to generate class hierarchy for an entity.

Usage

{{CD|<entity_class>|file1=<file_where_the_class_is_defined_in>}}

Tip.pngTip:If the template fails for some classname try using Template:CD2 (usage same as shown above)

If file1 param is specified there will be lookup using the specified classname into Template:CD/classlink to automatically link to Valve Source SDK 2013 githup repo (multiplayer files are linked) and if nothing is found then file1 param is shown as is. To not link anything nolink=1 param can be used.

Parameter base can be also specified to explicitly choose the superclass which can be useful in case there isn't the desired class in Template:CD/superclass or it is defined there but it's already used for something else.

Examples and Parameters

{{CD|CGasCan|file1=somefile.cpp}}
C++ Class hierarchy
CGasCan
CCarriedPropWeapon
CCarriedProp
CBaseBackpackItem
CTerrorWeapon
CWeaponCSBase
CBaseCombatWeapon
CBaseAnimating
CBaseEntity
C++ somefile.cpp
{{CD|CPhysicsProp|file1=1}}
C++ Class hierarchy
CPhysicsProp
CBreakableProp
CBaseProp
CBaseAnimating
CBaseEntity
C++ props.cpp
{{CD|CUnknownClass|base=CBaseEntity}}
C++ Class hierarchy
CUnknownClass
CBaseEntity


Template performance

CD2 repeatedly calls Template:CD/superclass to build the hierarchy

CD call that once and then builds the rest from smaller defined templates like Template:CD CPointEntity

specifying the base parameter avoids the first Template:CD/superclass call which makes it stuff even faster

tests:

{{CD2|Hunter}} CPU time: ~0.26s

{{CD|Hunter}} CPU time: ~0.1s

{{CD|Hunter|base=BossZombiePlayerBot}} CPU time: ~0.03s

Hunter class hierarchy
C++ Class hierarchy
Hunter
BossZombiePlayerBot
NextBotPlayer
CTerrorPlayer
CCSPlayer
CBaseMultiplayerPlayer
CBasePlayer
CBaseCombatCharacter
CBaseFlex
CBaseAnimatingOverlay
CBaseAnimating
CBaseEntity

See Also