Tiberian Technologies Scripts Reference Revision: 9000
Loading...
Searching...
No Matches
ArmorWarheadManager.h
1/* Renegade Scripts.dll
2 Copyright 2013 Tiberian Technologies
3
4 This file is part of the Renegade scripts.dll
5 The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
6 the terms of the GNU General Public License as published by the Free
7 Software Foundation; either version 2, or (at your option) any later
8 version. See the file COPYING for more details.
9 In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
10 Only the source code to the module(s) containing the licenced code has to be released.
11*/
12#ifndef TT_INCLUDE__ARMORWARHEADMANAGER_H
13#define TT_INCLUDE__ARMORWARHEADMANAGER_H
14#ifdef DDBEDIT
15#error cant use this in ddbedit
16#endif
17#include "engine_string.h"
18#include "datasafe.h"
19typedef unsigned int ArmorType;
20typedef unsigned int WarheadType;
21class SCRIPTS_API ArmorWarheadManager
22{
23public:
24 static void Init( void );
25 static void Shutdown( void );
26 static bool Is_Armor_Soft( ArmorType armor );
27 static int Get_Num_Armor_Types( void );
28 static ArmorType Get_Armor_Type( const char *name );
29 static const char * Get_Armor_Name( ArmorType type );
30 static int Get_Num_Warhead_Types( void );
31 static WarheadType Get_Warhead_Type( const char *name );
32 static const char * Get_Warhead_Name( WarheadType type );
33 static int Get_Armor_Save_ID( ArmorType type );
34 static ArmorType Find_Armor_Save_ID( int id );
35 static int Get_Warhead_Save_ID( WarheadType type );
36 static ArmorType Find_Warhead_Save_ID( int id );
37 static float Get_Damage_Multiplier( ArmorType armor, WarheadType warhead );
38 static float Get_Shield_Absorbsion( ArmorType armor, WarheadType warhead );
39 typedef enum {
40 SPECIAL_DAMAGE_TYPE_NONE,
41 SPECIAL_DAMAGE_TYPE_FIRE,
42 SPECIAL_DAMAGE_TYPE_CHEM,
43 SPECIAL_DAMAGE_TYPE_ELECTRIC,
44 SPECIAL_DAMAGE_TYPE_CNC_FIRE,
45 SPECIAL_DAMAGE_TYPE_CNC_CHEM,
46 SPECIAL_DAMAGE_TYPE_SUPER_FIRE,
47 NUM_SPECIAL_DAMAGE_TYPES, // Keep synced with ouch_types
48 } SpecialDamageType;
49 static SpecialDamageType Get_Special_Damage_Type( WarheadType type );
50 static float Get_Special_Damage_Probability( WarheadType type );
51 static WarheadType Get_Special_Damage_Warhead( SpecialDamageType type );
52 static float Get_Special_Damage_Duration( SpecialDamageType type );
53 static float Get_Special_Damage_Scale( SpecialDamageType type );
54 static const char * Get_Special_Damage_Explosion( SpecialDamageType type );
55 static float Get_Visceroid_Probability( WarheadType type );
56 static bool Is_Skin_Impervious( SpecialDamageType type, ArmorType skin );
57 static safe_float *Multipliers;
58 static safe_float *Absorbsion;
59};
60
61
62#endif