CBaseObject: Difference between revisions

From SigMod
Jump to navigation Jump to search
No edit summary
No edit summary
Line 50: Line 50:
|'''m_bPlacing'''
|'''m_bPlacing'''
|Boolean
|Boolean
|Whether or not this object is staged to be constructed / placed.
|Whether or not this object is staged to be constructed / placed
{| class="wikitable sortable mw-collapsible mw-collapsed" style="margin: 0 auto; width: 100%; padding: 0;"
{| class="wikitable sortable mw-collapsible mw-collapsed" style="margin: 0 auto; width: 100%; padding: 0;"
! colspan="1" |Usage
! colspan="1" |Usage
Line 68: Line 68:
|'''m_bMiniBuilding'''
|'''m_bMiniBuilding'''
|Boolean
|Boolean
|Whether or not this object is a mini building.
|Whether or not this object is a mini building
{| class="wikitable sortable mw-collapsible mw-collapsed" style="margin: 0 auto; width: 100%; padding: 0;"
{| class="wikitable sortable mw-collapsible mw-collapsed" style="margin: 0 auto; width: 100%; padding: 0;"
! colspan="1" |Usage
! colspan="1" |Usage
|-
|-
|
|
Changing this value to 1 will add '''Mini-''' to the beginning of the building's name, regardless of the building type. For sentries, it's advised to only change this value while the engineer is placing the sentry (m_bPlacing = 1), as changing it during other periods of time lead to different unintended consequences. (For example you cannot pick up a sentrygun that was above level 1 if you make it a mini sentry, it's model will also not update.) Sentries which have been changed from normal to mini sentries will '''not''' automatically update their size to that of a mini sentry, however every other difference between them does change properly (Damage, firing speed, health, sound).
Changing this value to 1 will add '''Mini-''' to the beginning of the building's name, regardless of the building type. For sentries, it's advised to only change this value while the engineer is placing the sentry (m_bPlacing = 1), as changing it during other periods of time lead to different unintended consequences. (For example you cannot pick up a sentrygun that was above level 1 if you make it a mini sentry, it's model will also not update.) Sentries which have been changed from normal to mini sentries will '''not''' automatically update their size to that of a mini sentry, however every other difference between them does change properly (Damage, firing speed, health, sound)
|}
|}
|-
|-
Line 87: Line 87:
|-
|-
|
|
* 1 - OF_SUPPRESS_APPEAR_ON_MINIMAP
* 1 - OF_ALLOW_REPEAT_PLACEMENT
* 2 - OF_SUPPRESS_NOTIFY_UNDER_ATTACK
* 2 - OF_MUST_BE_BUILT_ON_ATTACHMENT
* 4 - OF_SUPPRESS_VISIBLE_TO_TACTICAL
* 4 - OF_DOESNT_HAVE_A_MODEL
* 8 - OF_ALLOW_REPEAT_PLACEMENT
* 8 - OF_PLAYER_DESTRUCTION
* 16 - OF_SUPPRESS_TECH_ANALYZER
* 32 - OF_DONT_AUTO_REPAIR
* 64 - OF_ALIGN_TO_GROUND // Align my angles to match the ground underneath me
* 128 - OF_DONT_PREVENT_BUILD_NEAR_OBJ // Don't prevent building if there's another object nearby
* 256 - OF_CAN_BE_PICKED_UP
* 512 - OF_DOESNT_NEED_POWER // Doesn't need power, even on the human team
* 1024 - OF_DOESNT_HAVE_A_MODEL // It's built from map placed geometry
* 2048 - OF_MUST_BE_BUILT_IN_CONSTRUCTION_YARD
* 4096 - OF_MUST_BE_BUILT_IN_RESOURCE_ZONE
* 8192 - OF_MUST_BE_BUILT_ON_ATTACHMENT
* 16384 - OF_CANNOT_BE_DISMANTLED
|}
|}
|-
|-
|'''m_hBuiltOnEntity'''
|'''m_hBuiltOnEntity'''
|Integer
|Integer
|The building which this sapper object is sapping / targeting.
|The building which this sapper object is sapping / targeting
{| class="wikitable sortable mw-collapsible mw-collapsed" style="margin: 0 auto; width: 100%; padding: 0;"
{| class="wikitable sortable mw-collapsible mw-collapsed" style="margin: 0 auto; width: 100%; padding: 0;"
! colspan="1" |Usage
! colspan="1" |Usage
|-
|-
|
|
The sapper does not have to actually be applied to a building for this to have a value, along with the sapper being applied, a spy can hover over a building with their sapper and this value will fill with the handle for that building.
The sapper does not have to actually be applied to a building for this to have a value. Along with the sapper being applied and destroying the building, this SendProp will also be populated with a value when a spy hovers over the building with their sapper and the sapper outline appears on the building indicating it is ready for placement
|}
|}
|-
|-
|'''m_bDisabled'''
|'''m_bDisabled'''
|Boolean
|Boolean
|
|Whether or not this building object is being sapped
|-
|-
|'''m_hBuilder'''
|'''m_hBuilder'''
|Integer
|Integer
|Building owner player, take credits for actions performed by building such as sentry kills
|The owner of the object. The object does not have to be constructed or placed for this value to be populated
|-
|-
|'''m_vecBuildMaxs'''
|'''m_vecBuildMaxs'''
|Vector
|Vector
|
|The positive point to determine the object size
|-
|-
|'''m_vecBuildMins'''
|'''m_vecBuildMins'''
|Vector
|Vector
|
|The negative point to determine the object size
|-
|-
|'''m_iDesiredBuildRotations'''
|'''m_iDesiredBuildRotations'''
Line 140: Line 129:
|'''m_iUpgradeLevel'''
|'''m_iUpgradeLevel'''
|Integer
|Integer
|
|The upgrade level of this building object (1 - 3). Changing this value does nothing
|-
|-
|'''m_iUpgradeMetal'''
|'''m_iUpgradeMetal'''
|Integer
|Integer
|
|The amount of metal put towards upgrading the building object to the next level. Setting this at or above m_iUpgradeMetalRequired will require a swing of a wrench to upgrade the building
|-
|-
|'''m_iUpgradeMetalRequired'''
|'''m_iUpgradeMetalRequired'''
|Integer
|Integer
|
|The amount of metal required to upgrade the building object to the next level
|-
|-
|'''m_iHighestUpgradeLevel'''
|'''m_iHighestUpgradeLevel'''
|Integer
|Integer
|Current level, can be set to change sentry level with animation
|Despite the name, this is the current upgrade level of this building object. Unlike m_iUpgradeLevel however, changing this value does change the building's level
|-
|-
|'''m_iObjectMode'''
|'''m_iObjectMode'''
|Integer
|Integer
|
|This object's mode
{| class="wikitable sortable mw-collapsible mw-collapsed" style="margin: 0 auto; width: 100%; padding: 0;"
! colspan="1" |Values
|-
 
* 0 - MODE_TELEPORTER_ENTRANCE
* 1 - MODE_TELEPORTER_EXIT
 
* 0 - MODE_SENTRYGUN_NORMAL
* 1 - MODE_SENTRYGUN_DISPOSABLE // This doesn't seem to apply with minisentries?
 
* 0 - MODE_SAPPER_NORMAL
* 1 - MODE_SAPPER_ANTI_ROBOT
* 2 - MODE_SAPPER_ANTI_ROBOT_RADIUS
|}
|-
|-
|'''m_bDisposableBuilding'''
|'''m_bDisposableBuilding'''

Revision as of 00:30, 13 November 2022

Overview

The base class for place-able objects.

Source location : /game/shared/tf/baseobject_shared.h

Class Structure

SendProps

CBaseObject
Name Type Description
m_iHealth Integer The current health of this object
m_iMaxHealth Integer The maximum health this object can have in it's current state
m_bHasSapper Boolean Whether or not this object has a sapper on it
m_iObjectType Integer What type of object this entity is
Values
  • 0 - OBJ_DISPENSER
  • 1 - OBJ_TELEPORTER
  • 2 - OBJ_SENTRYGUN
  • 3 - OBJ_ATTACHMENT_SAPPER
m_bBuilding Boolean Whether or not this object is currently under construction
m_bPlacing Boolean Whether or not this object is staged to be constructed / placed
Usage

For engineers, this means they have selected the building on their construction PDA, it is irrelevant as to whether or not they are actually allowed to place the building in the spot they are looking at. For spies, this simply means they have their sapper out, it doesn't need to be ready to place on a building

m_bCarried Boolean Whether or not an engineer is carrying this building after placing it
m_bCarryDeploy Boolean
m_bMiniBuilding Boolean Whether or not this object is a mini building
Usage

Changing this value to 1 will add Mini- to the beginning of the building's name, regardless of the building type. For sentries, it's advised to only change this value while the engineer is placing the sentry (m_bPlacing = 1), as changing it during other periods of time lead to different unintended consequences. (For example you cannot pick up a sentrygun that was above level 1 if you make it a mini sentry, it's model will also not update.) Sentries which have been changed from normal to mini sentries will not automatically update their size to that of a mini sentry, however every other difference between them does change properly (Damage, firing speed, health, sound)

m_flPercentageConstructed Float The percentage value denoting how close this object is to finishing construction. (0 - 1, 1 being completely constructed)
m_fObjectFlags Integer Bit flags for this object
Values
  • 1 - OF_ALLOW_REPEAT_PLACEMENT
  • 2 - OF_MUST_BE_BUILT_ON_ATTACHMENT
  • 4 - OF_DOESNT_HAVE_A_MODEL
  • 8 - OF_PLAYER_DESTRUCTION
m_hBuiltOnEntity Integer The building which this sapper object is sapping / targeting
Usage

The sapper does not have to actually be applied to a building for this to have a value. Along with the sapper being applied and destroying the building, this SendProp will also be populated with a value when a spy hovers over the building with their sapper and the sapper outline appears on the building indicating it is ready for placement

m_bDisabled Boolean Whether or not this building object is being sapped
m_hBuilder Integer The owner of the object. The object does not have to be constructed or placed for this value to be populated
m_vecBuildMaxs Vector The positive point to determine the object size
m_vecBuildMins Vector The negative point to determine the object size
m_iDesiredBuildRotations Integer
m_bServerOverridePlacement Boolean
m_iUpgradeLevel Integer The upgrade level of this building object (1 - 3). Changing this value does nothing
m_iUpgradeMetal Integer The amount of metal put towards upgrading the building object to the next level. Setting this at or above m_iUpgradeMetalRequired will require a swing of a wrench to upgrade the building
m_iUpgradeMetalRequired Integer The amount of metal required to upgrade the building object to the next level
m_iHighestUpgradeLevel Integer Despite the name, this is the current upgrade level of this building object. Unlike m_iUpgradeLevel however, changing this value does change the building's level
m_iObjectMode Integer This object's mode
  • 0 - MODE_TELEPORTER_ENTRANCE
  • 1 - MODE_TELEPORTER_EXIT
  • 0 - MODE_SENTRYGUN_NORMAL
  • 1 - MODE_SENTRYGUN_DISPOSABLE // This doesn't seem to apply with minisentries?
  • 0 - MODE_SAPPER_NORMAL
  • 1 - MODE_SAPPER_ANTI_ROBOT
  • 2 - MODE_SAPPER_ANTI_ROBOT_RADIUS
Values
m_bDisposableBuilding Boolean
m_bWasMapPlaced Boolean
m_bPlasmaDisable Boolean

Entity DataMaps

CBaseObject
Name Type Description
CBaseObjectUpgradeThink
InputAddHealth
InputDisable
InputEnable
InputHide
InputRemoveHealth
InputSetBuilder
InputSetHealth
InputSetSolidToPlayer
InputShow
m_OnBecomingDisabled
m_OnBecomingReenabled
m_OnDamaged
m_OnDestroyed
m_OnObjectHealthChanged
m_OnRepaired
m_SolidToPlayers
m_nDefaultUpgradeLevel