@@ -523,6 +523,21 @@ begin
523523 // Filter to ONLY include worlds matching checked activities
524524 j := 0;
525525 for i := 0 to High(Self.FilteredWorlds) do
526+ begin
527+ // Handle worlds with no specific activity - match against empty Hint checkbox
528+ if (Self.FilteredWorlds[i].ActivityString = '') or (Self.FilteredWorlds[i].ActivityString = '-') then
529+ begin
530+ for checkboxIndex := 0 to High(Self.ActivityCheckboxes) do
531+ if (Self.ActivityCheckboxes[checkboxIndex].Hint = '') and
532+ Self.ActivityCheckboxes[checkboxIndex].IsChecked() then
533+ begin
534+ Self.FilteredWorlds[j] := Self.FilteredWorlds[i];
535+ Inc(j);
536+ Break;
537+ end;
538+ Continue;
539+ end;
540+
526541 for checkboxIndex := 0 to High(Self.ActivityCheckboxes) do
527542 if (Self.ActivityCheckboxes[checkboxIndex].Hint = Self.FilteredWorlds[i].ActivityString) and
528543 Self.ActivityCheckboxes[checkboxIndex].IsChecked() then
@@ -531,6 +546,7 @@ begin
531546 Inc(j);
532547 Break;
533548 end;
549+ end;
534550
535551 SetLength(Self.FilteredWorlds, j);
536552end;
@@ -761,6 +777,21 @@ begin
761777
762778 Self.ActivityCheckboxes += checkbox;
763779 end;
780+
781+ // Add "Normal" checkbox for worlds with no specific activity
782+ checkbox := TLazCheckBox.Create(Self.SpecificActivityPanel);
783+ checkbox.Parent := Self.SpecificActivityPanel;
784+ checkbox.Caption := 'Normal (no activity)';
785+ checkbox.SetBounds(5, 25 + (Length(activities) * 20), 180, 18);
786+ checkbox.SetChecked(Self.SelectAllActivitiesCheckbox.IsChecked());
787+ for j := 0 to High(previousStates) do
788+ if previousStates[j].Activity = '' then
789+ begin
790+ checkbox.SetChecked(previousStates[j].Checked);
791+ Break;
792+ end;
793+ checkbox.Hint := '';
794+ Self.ActivityCheckboxes += checkbox;
764795end;
765796
766797
0 commit comments