Boolean type blueprint function call always gives 'false' in c++. What's going on?

For background: I’m trying to make a conversation system in c++. Certain lines have conditions attached, and the attaching is done from blueprint.

Here are parts of the header file for a line in the conversation:

image

The only important member variable now is conditions.

Relevant parts of the .cpp file:

image

Now the problem is I made an actor that has lines and added a condition to one of them. The function for test purposes always returns true, however, testvar somehow always becomes false. Even when I set the function to always return false, testvar is still false.

In the actor:

I checked that Blabla (great name I know) indeed runs, but then testvar still becomes false.

And the most baffling thing is, that I did the same thing in the controller, and somehow it works as intended there. I’m just completely lost. Anyone have a guess of what’s causing this behaviour?

Noticed that my loop in Allowed is all wrong, unfortunately the problem persists as described.

(I changed the loop to for (int i = 0; i < l; i++))