1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
3
<title>Ares: SW_GenericWarhead Class Reference</title>
4
<link href="tabs.css" rel="stylesheet" type="text/css">
5
<link href="doxygen.css" rel="stylesheet" type="text/css">
7
<!-- Generated by Doxygen 1.5.8 -->
8
<script type="text/javascript">
10
function changeDisplayState (e){
11
var num=this.id.replace(/[^[0-9]/g,'');
12
var button=this.firstChild;
13
var sectionDiv=document.getElementById('dynsection'+num);
14
if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){
15
sectionDiv.style.display='block';
16
button.src='open.gif';
18
sectionDiv.style.display='none';
19
button.src='closed.gif';
22
function initDynSections(){
23
var divs=document.getElementsByTagName('div');
25
for(var i=0;i<divs.length-1;i++){
26
if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){
28
var section=divs[i+1];
29
var button=header.firstChild;
31
divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild);
32
button=document.createElement('img');
33
divs[i].insertBefore(button,divs[i].firstChild);
35
header.style.cursor='pointer';
36
header.onclick=changeDisplayState;
37
header.id='dynheader'+sectionCounter;
38
button.src='closed.gif';
39
section.id='dynsection'+sectionCounter;
40
section.style.display='none';
41
section.style.marginLeft='14px';
46
window.onload = initDynSections;
49
<div class="navigation" id="top">
52
<li><a href="index.html"><span>Main Page</span></a></li>
53
<li><a href="pages.html"><span>Related Pages</span></a></li>
54
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
55
<li><a href="files.html"><span>Files</span></a></li>
56
<li><a href="dirs.html"><span>Directories</span></a></li>
58
<form action="search.php" method="get">
59
<table cellspacing="0" cellpadding="0" border="0">
61
<td><label> <u>S</u>earch for </label></td>
62
<td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
71
<li><a href="annotated.html"><span>Class List</span></a></li>
72
<li><a href="classes.html"><span>Class Index</span></a></li>
73
<li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
74
<li><a href="functions.html"><span>Class Members</span></a></li>
78
<div class="contents">
79
<h1>SW_GenericWarhead Class Reference</h1><!-- doxytag: class="SW_GenericWarhead" --><!-- doxytag: inherits="NewSWType" --><code>#include <Misc/SWTypes/GenericWarhead.h></code>
81
<div class="dynheader">
82
Inheritance diagram for SW_GenericWarhead:</div>
83
<div class="dynsection">
85
<p><center><img src="class_s_w___generic_warhead.png" usemap="#SW_GenericWarhead_map" border="0" alt=""></center>
86
<map name="SW_GenericWarhead_map">
87
<area href="class_new_s_w_type.html" alt="NewSWType" shape="rect" coords="0,0,134,24">
92
<a href="class_s_w___generic_warhead-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
94
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
95
<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_w___generic_warhead.html#61991f1c0889593993f6379261908394">SW_GenericWarhead</a> ()</td></tr>
97
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_w___generic_warhead.html#80b97be4dbcb1fc06540863d76f2618d">~SW_GenericWarhead</a> ()</td></tr>
99
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_w___generic_warhead.html#681a04a69373b1f577669e1a59d201d8">GetTypeString</a> ()</td></tr>
101
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_w___generic_warhead.html#a90c418a6bd0f6c99cf8becbf690650e">LoadFromINI</a> (<a class="el" href="class_s_w_type_ext_1_1_ext_data.html">SWTypeExt::ExtData</a> *pData, SuperWeaponTypeClass *pSW, CCINIClass *pINI)</td></tr>
103
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_w___generic_warhead.html#0d60c88817ab19e88ac2bfca9ca6bb49">Launch</a> (SuperClass *pThis, CellStruct *pCoords, byte IsPlayer)</td></tr>
106
<hr><h2>Constructor & Destructor Documentation</h2>
107
<a class="anchor" name="61991f1c0889593993f6379261908394"></a><!-- doxytag: member="SW_GenericWarhead::SW_GenericWarhead" ref="61991f1c0889593993f6379261908394" args="()" -->
108
<div class="memitem">
109
<div class="memproto">
110
<table class="memname">
112
<td class="memname">SW_GenericWarhead::SW_GenericWarhead </td>
114
<td class="paramname"> </td>
115
<td> ) </td>
116
<td><code> [inline]</code></td>
123
<div class="fragment"><pre class="fragment"><a name="l00011"></a>00011 : <a class="code" href="class_new_s_w_type.html#3d172e38dff6bb8d27b96d14e389523f">NewSWType</a>()
124
<a name="l00012"></a>00012 { };
130
<a class="anchor" name="80b97be4dbcb1fc06540863d76f2618d"></a><!-- doxytag: member="SW_GenericWarhead::~SW_GenericWarhead" ref="80b97be4dbcb1fc06540863d76f2618d" args="()" -->
131
<div class="memitem">
132
<div class="memproto">
133
<table class="memname">
135
<td class="memname">virtual SW_GenericWarhead::~SW_GenericWarhead </td>
137
<td class="paramname"> </td>
138
<td> ) </td>
139
<td><code> [inline, virtual]</code></td>
146
<div class="fragment"><pre class="fragment"><a name="l00015"></a>00015 { };
152
<hr><h2>Member Function Documentation</h2>
153
<a class="anchor" name="681a04a69373b1f577669e1a59d201d8"></a><!-- doxytag: member="SW_GenericWarhead::GetTypeString" ref="681a04a69373b1f577669e1a59d201d8" args="()" -->
154
<div class="memitem">
155
<div class="memproto">
156
<table class="memname">
158
<td class="memname">virtual const char* SW_GenericWarhead::GetTypeString </td>
160
<td class="paramname"> </td>
161
<td> ) </td>
162
<td><code> [inline, virtual]</code></td>
170
<p>Reimplemented from <a class="el" href="class_new_s_w_type.html#5d1829c18d77e31d0c6dbb3176dbd197">NewSWType</a>.</p>
171
<div class="fragment"><pre class="fragment"><a name="l00018"></a>00018 { <span class="keywordflow">return</span> <span class="stringliteral">"GenericWarhead"</span>; }
177
<a class="anchor" name="0d60c88817ab19e88ac2bfca9ca6bb49"></a><!-- doxytag: member="SW_GenericWarhead::Launch" ref="0d60c88817ab19e88ac2bfca9ca6bb49" args="(SuperClass *pThis, CellStruct *pCoords, byte IsPlayer)" -->
178
<div class="memitem">
179
<div class="memproto">
180
<table class="memname">
182
<td class="memname">bool SW_GenericWarhead::Launch </td>
184
<td class="paramtype">SuperClass * </td>
185
<td class="paramname"> <em>pThis</em>, </td>
188
<td class="paramkey"></td>
190
<td class="paramtype">CellStruct * </td>
191
<td class="paramname"> <em>pCoords</em>, </td>
194
<td class="paramkey"></td>
196
<td class="paramtype">byte </td>
197
<td class="paramname"> <em>IsPlayer</em></td><td> </td>
202
<td></td><td></td><td><code> [virtual]</code></td>
210
<p>Implements <a class="el" href="class_new_s_w_type.html#aacde31e8112886999de397a948837d6">NewSWType</a>.</p>
211
<div class="fragment"><pre class="fragment"><a name="l00025"></a>00025 {
212
<a name="l00026"></a>00026 SuperWeaponTypeClass *pType = pThis->Type;
213
<a name="l00027"></a>00027 <a class="code" href="class_s_w_type_ext_1_1_ext_data.html">SWTypeExt::ExtData</a> *pData = <a class="code" href="class_s_w_type_ext.html#6906468c9e4ae4d421cba9cb572fb6ec">SWTypeExt::ExtMap</a>.<a class="code" href="class_container.html#90ddec0f8fb14f5a9894e128c2f938fc">Find</a>(pType);
214
<a name="l00028"></a>00028
215
<a name="l00029"></a>00029 <span class="keywordflow">if</span>(!pData || !pData-><a class="code" href="class_s_w_type_ext_1_1_ext_data.html#35aa944634414c550906abbddb4570f6">GWarhead_WH</a>) {
216
<a name="l00030"></a>00030 Debug::Log(<span class="stringliteral">"Couldn't launch GenericWarhead SW ([%s])\n"</span>, pType->ID);
217
<a name="l00031"></a>00031 <span class="keywordflow">return</span> 0;
218
<a name="l00032"></a>00032 }
219
<a name="l00033"></a>00033
220
<a name="l00034"></a>00034 CoordStruct coords;
221
<a name="l00035"></a>00035 CellClass *Cell = MapClass::Instance->GetCellAt(pCoords);
222
<a name="l00036"></a>00036 Cell->GetCoordsWithBridge(&coords);
223
<a name="l00037"></a>00037
224
<a name="l00038"></a>00038 <span class="keyword">auto</span> pWHExt = <a class="code" href="class_warhead_type_ext.html#b2eb86c684fe6f15f9f95a9aa171e7dd">WarheadTypeExt::ExtMap</a>.<a class="code" href="class_container.html#90ddec0f8fb14f5a9894e128c2f938fc">Find</a>(pData-><a class="code" href="class_s_w_type_ext_1_1_ext_data.html#35aa944634414c550906abbddb4570f6">GWarhead_WH</a>);
225
<a name="l00039"></a>00039
226
<a name="l00040"></a>00040 <span class="comment">// crush, kill, destroy</span>
227
<a name="l00041"></a>00041 <span class="comment">// NULL -> TechnoClass* SourceObject</span>
228
<a name="l00042"></a>00042 pWHExt->applyRipples(&coords);
229
<a name="l00043"></a>00043 pWHExt->applyIronCurtain(&coords, pThis->Owner);
230
<a name="l00044"></a>00044
231
<a name="l00045"></a>00045 BuildingClass *Firer = NULL;
232
<a name="l00046"></a>00046 HouseClass *FirerHouse = pThis->Owner;
233
<a name="l00047"></a>00047 <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i < FirerHouse->Buildings.Count; ++i) {
234
<a name="l00048"></a>00048 BuildingClass *B = FirerHouse->Buildings[i];
235
<a name="l00049"></a>00049 <span class="keywordflow">if</span>(B->HasSuperWeapon(pThis->Type->ArrayIndex)) {
236
<a name="l00050"></a>00050 Firer = B;
237
<a name="l00051"></a>00051 <span class="keywordflow">break</span>;
238
<a name="l00052"></a>00052 }
239
<a name="l00053"></a>00053 }
240
<a name="l00054"></a>00054
241
<a name="l00055"></a>00055 pWHExt->applyEMP(&coords, Firer);
242
<a name="l00056"></a>00056
243
<a name="l00057"></a>00057 <span class="keywordflow">if</span>(!pWHExt->applyPermaMC(&coords, pThis->Owner, Cell->GetContent())) {
244
<a name="l00058"></a>00058 MapClass::DamageArea(&coords, pData-><a class="code" href="class_s_w_type_ext_1_1_ext_data.html#bb7ba7090530360ce91633add120ee33">GWarhead_Damage</a>, Firer, pData-><a class="code" href="class_s_w_type_ext_1_1_ext_data.html#35aa944634414c550906abbddb4570f6">GWarhead_WH</a>, 1, pThis->Owner);
245
<a name="l00059"></a>00059 <span class="keywordflow">if</span>(AnimTypeClass * DamageAnimType = MapClass::SelectDamageAnimation(pData-><a class="code" href="class_s_w_type_ext_1_1_ext_data.html#bb7ba7090530360ce91633add120ee33">GWarhead_Damage</a>, pData-><a class="code" href="class_s_w_type_ext_1_1_ext_data.html#35aa944634414c550906abbddb4570f6">GWarhead_WH</a>, Cell->LandType, &coords)) {
246
<a name="l00060"></a>00060 AnimClass *DamageAnim;
247
<a name="l00061"></a>00061 GAME_ALLOC(AnimClass, DamageAnim, DamageAnimType, &coords);
248
<a name="l00062"></a>00062 }
249
<a name="l00063"></a>00063 MapClass::FlashbangWarheadAt(pData-><a class="code" href="class_s_w_type_ext_1_1_ext_data.html#bb7ba7090530360ce91633add120ee33">GWarhead_Damage</a>, pData-><a class="code" href="class_s_w_type_ext_1_1_ext_data.html#35aa944634414c550906abbddb4570f6">GWarhead_WH</a>, coords, <span class="keyword">false</span>, 0);
250
<a name="l00064"></a>00064 }
251
<a name="l00065"></a>00065
252
<a name="l00066"></a>00066 Unsorted::CurrentSWType = -1;
253
<a name="l00067"></a>00067 <span class="keywordflow">return</span> 1;
254
<a name="l00068"></a>00068 }
260
<a class="anchor" name="a90c418a6bd0f6c99cf8becbf690650e"></a><!-- doxytag: member="SW_GenericWarhead::LoadFromINI" ref="a90c418a6bd0f6c99cf8becbf690650e" args="(SWTypeExt::ExtData *pData, SuperWeaponTypeClass *pSW, CCINIClass *pINI)" -->
261
<div class="memitem">
262
<div class="memproto">
263
<table class="memname">
265
<td class="memname">void SW_GenericWarhead::LoadFromINI </td>
267
<td class="paramtype"><a class="el" href="class_s_w_type_ext_1_1_ext_data.html">SWTypeExt::ExtData</a> * </td>
268
<td class="paramname"> <em>pData</em>, </td>
271
<td class="paramkey"></td>
273
<td class="paramtype">SuperWeaponTypeClass * </td>
274
<td class="paramname"> <em>pSW</em>, </td>
277
<td class="paramkey"></td>
279
<td class="paramtype">CCINIClass * </td>
280
<td class="paramname"> <em>pINI</em></td><td> </td>
285
<td></td><td></td><td><code> [virtual]</code></td>
293
<p>Implements <a class="el" href="class_new_s_w_type.html#9da6e9a259267304401d5baa246f25c2">NewSWType</a>.</p>
294
<div class="fragment"><pre class="fragment"><a name="l00006"></a>00006 {
295
<a name="l00007"></a>00007 <span class="keyword">const</span> <span class="keywordtype">char</span> * section = pSW->ID;
296
<a name="l00008"></a>00008
297
<a name="l00009"></a>00009 <span class="keywordflow">if</span>(!pINI->GetSection(section)) {
298
<a name="l00010"></a>00010 <span class="keywordflow">return</span>;
299
<a name="l00011"></a>00011 }
300
<a name="l00012"></a>00012
301
<a name="l00013"></a>00013 <a class="code" href="class_i_n_i___e_x.html">INI_EX</a> exINI(pINI);
302
<a name="l00014"></a>00014 pData-><a class="code" href="class_s_w_type_ext_1_1_ext_data.html#35aa944634414c550906abbddb4570f6">GWarhead_WH</a>.<a class="code" href="class_valueable.html#ce02cef5e194a4738d03707ce1c44646">Parse</a>(&exINI, section, <span class="stringliteral">"GenericWarhead.Warhead"</span>);
303
<a name="l00015"></a>00015 pData-><a class="code" href="class_s_w_type_ext_1_1_ext_data.html#bb7ba7090530360ce91633add120ee33">GWarhead_Damage</a>.<a class="code" href="class_valueable.html#0f0c57826adca78b4d46a69b5344a03b">Read</a>(&exINI, section, <span class="stringliteral">"GenericWarhead.Damage"</span>);
304
<a name="l00016"></a>00016 }
310
<hr>The documentation for this class was generated from the following files:<ul>
311
<li>Misc/SWTypes/<a class="el" href="_generic_warhead_8h.html">GenericWarhead.h</a><li>Misc/SWTypes/<a class="el" href="_generic_warhead_8cpp.html">GenericWarhead.cpp</a></ul>
313
<hr size="1"><address style="text-align: right;"><small>Generated on Tue May 18 03:51:10 2010 for Ares by
314
<a href="http://www.doxygen.org/index.html">
315
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>