forse ho capito...forse...quando tu abiliti le pagine 300, 301, 310, 311 etc...i parametri/variabili che passi a queste funzioni non cambiano...giusto!?
se è così sai la differenza tra passare, ad una funzione, una variabile per valore o per riferimento?
il primo caso è questo:
void foo(int boo){boo++;}
il secondo è questo:
void foo(int &boo){boo++;}
nel primo caso la variabile che inserisci come boo passerà il suo valore ma NON verrà mutata; nel secondo caso passa il suo indirizzo di memoria il cui contenuto verrà modificato.
quindi penso che a tutte le tue funzioni con le quali vuoi modificare il valore delle variabili passate...devi aggiungere un bel '&' ad ogni variabile.