Generally speaking, put an initialization code in a separated function, and call it just after every level is loaded. In this way you can quickly restore/setup any object for any loaded level (you can use a "switch" statement to apply changes):
(I didn't test the following code, use it only as a guideline):
#define LEVEL_1 1
#define LEVEL_2 2
#define LEVEL_3 3
function initGame(int argNewLevel) {
switch( argNewLevel )
{
case LEVEL_1:
// WRITE CODE TO INITIALIZE LEVEL 1;
break;
case LEVEL_2:
// WRITE CODE TO INITIALIZE LEVEL 2;
break;
case LEVEL_3:
// WRITE CODE TO INITIALIZE LEVEL 3;
break;
}
}