NS/main/source/mod/AvHWeldable.h
2014-12-16 14:36:27 +01:00

93 lines
No EOL
2.5 KiB
C++

//======== (C) Copyright 2001 Charles G. Cleveland All rights reserved. =========
//
// The copyright to the contents herein is the property of Charles G. Cleveland.
// The contents may be used and/or copied only with the written permission of
// Charles G. Cleveland, or in accordance with the terms and conditions stipulated in
// the agreement/contract under which the contents have been supplied.
//
// Purpose:
//
// $Workfile: AvHWeldable.h $
// $Date: 2002/10/03 18:49:43 $
//
//-------------------------------------------------------------------------------
// $Log: AvHWeldable.h,v $
// Revision 1.2 2002/10/03 18:49:43 Flayra
// - Changes for welding order completion
//
// Revision 1.1 2002/05/23 02:32:40 Flayra
// - Post-crash checkin. Restored @Backup from around 4/16. Contains changes for last four weeks of development.
//
//===============================================================================
#ifndef AVH_WELDABLE_H
#define AVH_WELDABLE_H
#include "AvHEntities.h"
class AvHWeldable : public AvHBaseEntity
{
public:
AvHWeldable();
void AddBuildTime(float inTime);
virtual void AddChecksum(Checksum& inChecksum);
void EndTrace(void);
bool GetCanBeWelded() const;
bool GetIsWelded() const;
virtual float GetNormalizedBuildPercentage() const;
bool GetWeldOpens() const;
virtual void KeyValue( KeyValueData* pkvd );
virtual void Killed( entvars_t *pevAttacker, int iGib );
virtual void NotifyUpgrade(AvHUpgradeMask inUpgradeMask);
virtual void Precache(void);
virtual void ResetEntity(void);
virtual void Spawn();
void StartTrace(void);
//virtual int TakeDamage( entvars_t* pevInflictor, entvars_t* pevAttacker, float flDamage, int bitsDamageType );
//void EXPORT WeldableThink(void);
void EXPORT WeldableTouch(CBaseEntity *pOther);
void EXPORT WeldableUse( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value );
private:
void Init();
void SetHealth();
void SetPEVFlagsFromState();
void TriggerBroken();
void TriggerFinished();
void TriggerUse();
void UpdateEntityState();
bool mWelded;
bool mWeldOpens;
bool mUseState;
bool mDestroyed;
Materials mMaterial;
string mTargetOnBreak;
string mTargetOnFinish;
string mTargetOnUse;
float mTimeBuilt;
float mBuildTime;
float mMaxHealth;
float mNonUpgradedMaxHealth;
float mThinkInterval;
float mTimeLastPlayerTouch;
};
#endif