//===========================================================================// // File: scnrole.hpp // // Project: MUNGA // // Contents: Scenario Mission Specific Data // //---------------------------------------------------------------------------// // Date Who Modification // // -------- --- ---------------------------------------------------------- // // 01/9/96 JM initial coding // //---------------------------------------------------------------------------// // Copyright (C) 1995, Virtual World Entertainment, Inc. // // All Rights reserved worldwide // // This unpublished sourcecode is PROPRIETARY and CONFIDENTIAL // //===========================================================================// #if !defined (SCNROLE_HPP) # define SCNROLE_HPP # if !defined (NODE_HPP) # include # endif # if !defined (CSTR_HPP) # include # endif # if !defined(RESOURCE_HPP) # include # endif # if !defined(SCALAR_HPP) # include # endif class NotationFile; //############################################################################## //##################### ScenarioRole::ModelResource ###################### //############################################################################## struct ScenarioRole__ModelResource { Scalar killBonus, damageReceivedModifier, damageInflictedModifier, damageBias, friendlyFirePenalty; int returnFromDeath; }; //########################################################################### //##################### Class ScenarioRole ############################# //########################################################################### class ScenarioRole : public Node { //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Score Support // public: Scalar CalcDamageReceivedScore(const Scalar &damage_received); protected: Scalar damageInflictedModifier, damageReceivedModifier, friendlyFirePenalty, damageBias, killBonus; CString roleName; int returnFromDeath; public: const int GetReturnFromDeath() { Check(this); return returnFromDeath; } Scalar GetDamageInflictedModifier() const { Check(this); return damageInflictedModifier; } Scalar GetDamageReceivedModifier() const { Check(this); return damageReceivedModifier; } Scalar GetFriendlyFirePenalty() const { Check(this); return friendlyFirePenalty; } Scalar GetDamageBias() const { Check(this); return damageBias; } Scalar GetKillBonus() const { Check(this); return killBonus; } CString GetRoleName() const {Check(this); return roleName; } void SetDamageInflictedModifier(const Scalar &value) { Check(this); damageInflictedModifier = value; } void SetDamageReceivedModifier(const Scalar value) { Check(this); damageReceivedModifier = value; } void SetFriendlyFirePenalty(const Scalar &value) { Check(this); friendlyFirePenalty = value; } void SetDamageBias(const Scalar &value) { Check(this); damageBias = value; } void SetKillBonus(const Scalar &value) { Check(this); killBonus = value; } void SetReturnFromDeath(const int &value) { Check(this); returnFromDeath = value ; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Construction / Destruction public: typedef ScenarioRole__ModelResource ModelResource; ScenarioRole( const CString &role_name, const CString &model_file ); ScenarioRole(const CString &role_name); ~ScenarioRole(); static ResourceDescription::ResourceID CreateModelResource( ResourceFile *resource_file, const char* model_name, NotationFile * model_file, const ResourceDirectories *directories, ModelResource *model = NULL ); }; #endif