@@ -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 ();
221209 }
222210 else
223211 {
@@ -232,6 +220,21 @@ void CASW_Weapon_Welder::WeldDoor(bool bSeal)
232220 }
233221}
234222
223+ void CASW_Weapon_Welder::FinishWeld ()
224+ {
225+ m_iAutomaticWeldDirection = 0 ;
226+ m_bShotDelayed = false ;
227+ #ifdef GAME_DLL
228+ if ( pMarine->GetMarineResource () )
229+ {
230+ pMarine->GetMarineResource ()->m_hWeldingDoor = NULL ;
231+ }
232+ m_pWeldDoor = NULL ;
233+ pMarine->OnWeldFinished ();
234+ #endif
235+ m_bIsFiring = false ;
236+ }
237+
235238// make the weapon weld if needed
236239
237240void CASW_Weapon_Welder::ItemPostFrame ()
@@ -242,19 +245,7 @@ void CASW_Weapon_Welder::ItemPostFrame()
242245 {
243246 if ( m_bPlayingWelderSound )
244247 {
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- }
248+ FinishWeld ();
258249 // Msg( "Clearing weld door as no marine\n" );
259250 }
260251 return BaseItemPostFrame ();
@@ -319,33 +310,14 @@ void CASW_Weapon_Welder::ItemPostFrame()
319310 if ( ( m_iAutomaticWeldDirection > 0 && m_pWeldDoor->GetSealAmount () >= 1 .0f ) ||
320311 ( m_iAutomaticWeldDirection < 0 && m_pWeldDoor->GetSealAmount () <= 0 .0f ) )
321312 {
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 ;
313+ FinishWeld ();
333314 }
334315 }
335316 else
336317 {
337318 if ( !FindDoor () )
338319 {
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 ;
320+ FinishWeld ();
349321 }
350322 }
351323 }
0 commit comments