From b1d0e0bb340b0de4ca2fe151765d9ae36dcc5e2a Mon Sep 17 00:00:00 2001
From: Janek <development@superyu.xyz>
Date: Tue, 16 Apr 2024 14:17:48 +0200
Subject: [PATCH] fix: bomb holder search

Previously there was a performance hit when the bomb was being held due to wrong logic being used.
This fixes it.
---
 src/dma/mod.rs | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/src/dma/mod.rs b/src/dma/mod.rs
index 8ccf747..5b4da83 100755
--- a/src/dma/mod.rs
+++ b/src/dma/mod.rs
@@ -14,7 +14,7 @@ pub use context::Connector;
 
 pub async fn run(radar_data: ArcRwlockRadarData, connector: Connector, pcileech_device: String, skip_version: bool) -> anyhow::Result<()> {
     let mut ctx = DmaCtx::setup(connector, pcileech_device, skip_version)?;
-    let mut data = CsData::default();
+    let mut data = CsData { recheck_bomb_holder: true, ..Default::default() };
     
     // For read timing
     let mut last_bomb_dropped = false;
@@ -50,11 +50,10 @@ pub async fn run(radar_data: ArcRwlockRadarData, connector: Connector, pcileech_
             data.update_bomb(&mut ctx);
         }
 
-        if (!data.bomb_dropped && last_bomb_dropped) || !data.bomb_planted {
+        if !data.bomb_dropped && last_bomb_dropped && !data.bomb_planted {
             data.recheck_bomb_holder = true;
         }
 
-
         let bomb_defuse_timeleft: f32 = {
             if data.bomb_planted && !data.bomb_exploded && !data.bomb_defused {
                 if let Some(bomb_stamp) = data.bomb_planted_stamp {
@@ -125,7 +124,7 @@ pub async fn run(radar_data: ArcRwlockRadarData, connector: Connector, pcileech_
 
             if local_data.health > 0 {
                 let has_bomb = {
-                    if data.bomb_planted {
+                    if data.bomb_planted || data.bomb_dropped {
                         false
                     } else if data.recheck_bomb_holder {
                         if local_data.team == Some(TeamID::T) && !data.bomb_dropped && !data.bomb_planted {