From d827c1bf5d1cf273ceebdd0ce3f494d0ad30ff62 Mon Sep 17 00:00:00 2001 From: Martin Michelsen Date: Thu, 20 Nov 2025 08:31:35 -0800 Subject: [PATCH] fix random enemy definitions count check; closes #723 --- src/Map.cc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/Map.cc b/src/Map.cc index 58208496..19dd1d0f 100644 --- a/src/Map.cc +++ b/src/Map.cc @@ -3977,6 +3977,10 @@ std::shared_ptr MapFile::materialize_random_sections(uint32_t random_se const auto& weight_entry = weights_r.get(); if (det < weight_entry.weight) { if ((weight_entry.base_type_index != 0xFF) && (weight_entry.def_entry_num != 0xFF)) { + if (definitions_header.entry_count == 0) { + throw runtime_error("no available random enemy definitions"); + } + EnemySetEntry e; e.base_type = rand_enemy_base_types.at(weight_entry.base_type_index); e.wave_number = wave_number; @@ -3985,9 +3989,6 @@ std::shared_ptr MapFile::materialize_random_sections(uint32_t random_se size_t bs_min = 0; size_t bs_max = definitions_header.entry_count - 1; - if (bs_max == 0) { - throw runtime_error("no available random enemy definitions"); - } do { size_t bs_mid = (bs_min + bs_max) / 2; if (definitions_r.pget(bs_mid * sizeof(RandomEnemyDefinition)).entry_num < weight_entry.def_entry_num) {