From 16e2d361dcb81b9f7577a3d16f173f638b34daf9 Mon Sep 17 00:00:00 2001
From: Janek <development@superyu.xyz>
Date: Sun, 21 Apr 2024 19:20:55 +0200
Subject: [PATCH] fix: bomb holder when planted or dropped

---
 src/dma/context/mod.rs | 9 +++++++--
 src/dma/mod.rs         | 2 +-
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/src/dma/context/mod.rs b/src/dma/context/mod.rs
index 7e9623a..4514925 100755
--- a/src/dma/context/mod.rs
+++ b/src/dma/context/mod.rs
@@ -7,7 +7,7 @@ use num_traits::FromPrimitive;
 
 use crate::{structs::Vec3, enums::TeamID};
 
-use super::cs2dumper;
+use super::{cs2dumper, threaddata::CsData};
 
 pub struct DmaCtx {
     pub process: IntoProcessInstanceArcBox<'static>,
@@ -146,7 +146,12 @@ impl DmaCtx {
         Ok(is_controller)
     }
 
-    pub fn get_c4_holder(&mut self, pawns: Vec<Address>, entity_list: Address) -> Option<Address> {
+    pub fn get_c4_holder(&mut self, pawns: Vec<Address>, entity_list: Address, csdata: &CsData) -> Option<Address> {
+
+        if csdata.bomb_dropped || csdata.bomb_planted {
+            return None;
+        }
+
         // (pawn, wep_services, wep_count, wep_base)
         let mut data_vec: Vec<(Address, u64, i32, u64)> = pawns
             .into_iter()
diff --git a/src/dma/mod.rs b/src/dma/mod.rs
index 72d8746..c735538 100755
--- a/src/dma/mod.rs
+++ b/src/dma/mod.rs
@@ -79,7 +79,7 @@ pub async fn run(radar_data: ArcRwlockRadarData, connector: Connector, pcileech_
 
             pawns.push(data.local_pawn.into());
         
-            data.bomb_holder = ctx.get_c4_holder(pawns, data.entity_list.into());
+            data.bomb_holder = ctx.get_c4_holder(pawns, data.entity_list.into(), &data);
             data.recheck_bomb_holder = false;
         }