I want to enhance the game WolfenDoom3D with a generic levelgenerator.

The task is to create a mazegenerator (in lite-c).
The generator should create (depending on a 2D grid) a multipath maze (more than one solution) some rooms and finally place doors/keys/(breakable, movable) walls, goodies and enemies (per handicap).

How would you code this?
Any ideas?

This could be the process.