Untitled

mail@pastecode.io avatar
unknown
c_cpp
7 months ago
3.7 kB
2
Indexable
Never
	BOOLE SNAP::OBJE_MANAGER_OKU(BOOLE debug) {
		__MUTASYON_DEFENDER__;
		USAYI32 net_id = 0;
		__MUTASYON_DEFENDER__;
		static ADRES64 kalici_adres = 0;
		__MUTASYON_DEFENDER__;

		if (kalici_adres == 0) {
			__MUTASYON_DEFENDER__;
			if (!BELLEK::oku(CEKIRDEK::BEYZ + OFSET::MANAGER::obje, &kalici_adres)) {
				__MUTASYON_DEFENDER__;
				return FALSE;
				__MUTASYON_DEFENDER__;
			}
			__MUTASYON_DEFENDER__;
		}
		__MUTASYON_DEFENDER__;
		if (kalici_adres == 0) {
			__MUTASYON_DEFENDER__;
			return FALSE;
			__MUTASYON_DEFENDER__;
		}
		__MUTASYON_DEFENDER__;


		USAYI32 sayisi = 0;
		__MUTASYON_DEFENDER__;
		if (!BELLEK::oku(kalici_adres + OFSET::MANAGER::obje_sayisi, &sayisi)) {
			__MUTASYON_DEFENDER__;
			return FALSE;
			__MUTASYON_DEFENDER__;
		}
		__MUTASYON_DEFENDER__;


		if (sayisi == 0) {
			__MUTASYON_DEFENDER__;
			return FALSE;
			__MUTASYON_DEFENDER__;
		}
		__MUTASYON_DEFENDER__;


		ADRES64 ilk_node_adres = 0;
		__MUTASYON_DEFENDER__;
		if (!BELLEK::oku(kalici_adres + OFSET::MANAGER::obje_node, &ilk_node_adres)) {
			__MUTASYON_DEFENDER__;
			return FALSE;
			__MUTASYON_DEFENDER__;
		}
		__MUTASYON_DEFENDER__;

		if (ilk_node_adres == 0) {
			__MUTASYON_DEFENDER__;
			return FALSE;
			__MUTASYON_DEFENDER__;
		}
		__MUTASYON_DEFENDER__;

		QUEUE<ADRES64> kontrol_edilecek_noktalar = {};
		__MUTASYON_DEFENDER__;
		SET<ADRES64> kontrol_edilen_noktalar = {};
		__MUTASYON_DEFENDER__;
		kontrol_edilecek_noktalar.push(ilk_node_adres);
		__MUTASYON_DEFENDER__;

		SAYI okuma_sayisi = 0;
		__MUTASYON_DEFENDER__;
		ADRES64 node, node_1, node_2, node_3;
		__MUTASYON_DEFENDER__;



		while (okuma_sayisi < ADRES_MAKS && kontrol_edilecek_noktalar.size() > 0) {
			__MUTASYON_DEFENDER__;

			net_id = 0;
			__MUTASYON_DEFENDER__;
			node = kontrol_edilecek_noktalar.front();
			__MUTASYON_DEFENDER__;
			kontrol_edilecek_noktalar.pop();
			__MUTASYON_DEFENDER__;
			if (kontrol_edilen_noktalar.find(node) != kontrol_edilen_noktalar.end()) {
				__MUTASYON_DEFENDER__;
				continue;
				__MUTASYON_DEFENDER__;
			}
			__MUTASYON_DEFENDER__;

			okuma_sayisi++;
			__MUTASYON_DEFENDER__;
			kontrol_edilen_noktalar.insert(node);
			__MUTASYON_DEFENDER__;

			if (!BELLEK::oku(node, TAMPON, OFSET::MANAGER::obje_node_obje + sizeof(ADRES64))) {
				__MUTASYON_DEFENDER__;
				break;
				__MUTASYON_DEFENDER__;
			}
			__MUTASYON_DEFENDER__;

			GENEL::kopyala(TAMPON, &node_1);
			__MUTASYON_DEFENDER__;
			GENEL::kopyala(TAMPON + sizeof(ADRES64), &node_2);
			__MUTASYON_DEFENDER__;
			GENEL::kopyala(TAMPON + sizeof(ADRES64) * 2, &node_3);
			__MUTASYON_DEFENDER__;

			kontrol_edilecek_noktalar.push(node_1);
			__MUTASYON_DEFENDER__;
			kontrol_edilecek_noktalar.push(node_2);
			__MUTASYON_DEFENDER__;
			kontrol_edilecek_noktalar.push(node_3);
			__MUTASYON_DEFENDER__;

			GENEL::kopyala(TAMPON + OFSET::MANAGER::obje_node_net_id, &net_id);
			__MUTASYON_DEFENDER__;

			if (net_id < 0x40000000 || net_id > 0x50000000) {
				__MUTASYON_DEFENDER__;
				continue;
				__MUTASYON_DEFENDER__;
			}
			__MUTASYON_DEFENDER__;

			ADRES64 obje_adres;
			__MUTASYON_DEFENDER__;
			GENEL::kopyala(TAMPON + OFSET::MANAGER::obje_node_obje, &obje_adres);
			__MUTASYON_DEFENDER__;

			if (obje_adres == 0) {
				__MUTASYON_DEFENDER__;
				continue;
				__MUTASYON_DEFENDER__;
			}
			__MUTASYON_DEFENDER__;

			ADRESLER[ADRES_INDEKS] = obje_adres;
			__MUTASYON_DEFENDER__;
			ADRES_INDEKS++;
			__MUTASYON_DEFENDER__;
		}
		__MUTASYON_DEFENDER__;
		return TRUE;
		__MUTASYON_DEFENDER__;
	}