You are correct, I had misremembered how it works. It can evaluate build arguments, but they have to be numerical. However you can define new variables (in the pre-processor, not in code - ie, after a #) to replace those numbers, to make the intent clearer. Eg.
#define DEBUG_1 1
#define DEBUG_2 2
#if DEBUG_LEVEL >= DEBUG_1
Then pass the build arg DEBUG_LEVEL at compile time
More info here:
Edit: formatting of code snippet
At the end of the article, which is already a litany of clownish buffoonery, it states that after destroying (effectively) the MRI machine in order to retrieve the rifle, he failed to retrieve a loaded magazine. So it was just left on the floor as they left.
Edit: autocorrect had changed it to clownfish