Mein Vorschlag sollte keine Änderung des Verhaltens verursachen, sondern lediglich die Warnung entfernen.
Die Warnung kommt, weil die Definition von "true" geändert wird.
Man muss lediglich die alten Definitionen entfernen und nicht einfach "drüber" definieren, ist man die Warnungen los. (War bei mir zumindest immer der Fall.)
Es fehlt IMHO also nur ein #undef vor dem erneuten #define.
Und das #ifdef davor ist nur zur Sicherheit, falls sich mal was ändert und es nicht definiert sein sollte.