shinkan, won't that cause a fluttering effect as it also sets the highlighted sprite back to 50 as its also highlighting the button? Thank you all for the help btw. :)
To obtain a flickering effect, you would have to have some switch between the opacity over several ticks.
But the actual code is processed each tick. Each tick, the sprite's opacity is either 50 or 100, it's not switching from 50 to 100 "in the same tick". And even if it was, it's too quick for the brain to even notice.
As Shinkan said, this is how events work. The screen is rendered only once all events have been tested/executed, and so a single image per tick is rendered out of it.
Considering that C2 does the job of not re-rendering something that hasn't been moved/accessed to, it has even less reasons to flicker.