@@ -205,19 +205,7 @@ void CASW_Weapon_Welder::WeldDoor(bool bSeal)
205205
206206 if ( !bWelding )
207207 {
208- m_iAutomaticWeldDirection = 0 ;
209- m_bShotDelayed = false ;
210- #ifdef GAME_DLL
211- if ( pMarine->GetMarineResource () )
212- {
213- pMarine->GetMarineResource ()->m_hWeldingDoor = NULL ;
214- }
215-
216- m_pWeldDoor = NULL ;
217-
218- pMarine->OnWeldFinished ();
219- #endif
220- m_bIsFiring = false ;
208+ FinishWeld ( pMarine );
221209 }
222210 else
223211 {
@@ -232,6 +220,24 @@ void CASW_Weapon_Welder::WeldDoor(bool bSeal)
232220 }
233221}
234222
223+ void CASW_Weapon_Welder::FinishWeld ( CASW_Marine* pMarine )
224+ {
225+ m_iAutomaticWeldDirection = 0 ;
226+ m_bShotDelayed = false ;
227+ #ifdef GAME_DLL
228+ if ( pMarine )
229+ {
230+ if ( pMarine->GetMarineResource () )
231+ {
232+ pMarine->GetMarineResource ()->m_hWeldingDoor = NULL ;
233+ }
234+ pMarine->OnWeldFinished ();
235+ }
236+ m_pWeldDoor = NULL ;
237+ #endif
238+ m_bIsFiring = false ;
239+ }
240+
235241// make the weapon weld if needed
236242
237243void CASW_Weapon_Welder::ItemPostFrame ()
@@ -242,19 +248,7 @@ void CASW_Weapon_Welder::ItemPostFrame()
242248 {
243249 if ( m_bPlayingWelderSound )
244250 {
245- m_bIsFiring = false ;
246-
247- m_pWeldDoor = NULL ;
248-
249- if (pMarine)
250- {
251- if (pMarine->GetMarineResource ())
252- {
253- pMarine->GetMarineResource ()->m_hWeldingDoor = NULL ;
254- }
255-
256- pMarine->OnWeldFinished ();
257- }
251+ FinishWeld ( pMarine );
258252 // Msg( "Clearing weld door as no marine\n" );
259253 }
260254 return BaseItemPostFrame ();
@@ -319,33 +313,14 @@ void CASW_Weapon_Welder::ItemPostFrame()
319313 if ( ( m_iAutomaticWeldDirection > 0 && m_pWeldDoor->GetSealAmount () >= 1 .0f ) ||
320314 ( m_iAutomaticWeldDirection < 0 && m_pWeldDoor->GetSealAmount () <= 0 .0f ) )
321315 {
322- m_iAutomaticWeldDirection = 0 ;
323- m_bShotDelayed = false ;
324- #ifdef GAME_DLL
325- if ( pMarine->GetMarineResource () )
326- {
327- pMarine->GetMarineResource ()->m_hWeldingDoor = NULL ;
328- }
329- m_pWeldDoor = NULL ;
330- pMarine->OnWeldFinished ();
331- #endif
332- m_bIsFiring = false ;
316+ FinishWeld ( pMarine );
333317 }
334318 }
335319 else
336320 {
337321 if ( !FindDoor () )
338322 {
339- m_bShotDelayed = false ;
340- #ifdef GAME_DLL
341- if ( pMarine->GetMarineResource () )
342- {
343- pMarine->GetMarineResource ()->m_hWeldingDoor = NULL ;
344- }
345- m_pWeldDoor = NULL ;
346- pMarine->OnWeldFinished ();
347- #endif
348- m_bIsFiring = false ;
323+ FinishWeld ( pMarine );
349324 }
350325 }
351326 }
0 commit comments