Put your Init-Code into one function (easier this way) and when you want to change your screen resolution, shut down the engine and (re)call the init function. As far as i know there is no way to do it without restarting the engine. Just save your game state etc. "outside" of irrlicht and everything should be fine.