The problem here is that you are using = instead of == (unless this was a typo), so that materials[material].index[meshes].uses = false will actually evaluate to the expression on the right-hand side of the equals sign. This means that the if statement's condition will never evaluate as true and so the continue statement won't be executed.

This is also more readable as you don't have an arbitrary jump in your code there, breaks and continue statements complicate the flow of your code as when you reread it you have to pay attention that you jump out of the current loop. Whilst my implementation allows you to read the thing in one go, and also there is only a true branch in this if which makes the logic far easier to follow.

The = is an assignment, not an equality operator
There's no material mentioned earlier in your pseudocode.
materials is not an array

Please, even when posting pseudocode, be consistent.
We cannot see what the problem is if you obscure it in typos.
Also, when it's a small snippet of code which has flow errors, it's probably better just to post the code.

++ for NightCreature's post: don't test a boolean against true or false, just test the boolean. The boolean itself *is* true or false. If your bool variables are named sensibly the code is more readable without the comparison. Use the 'not' operator to test for false, i.e. if (!something.isDead()) ...