Use a text file to hold the level info. Here's an example->
Format:
Keyword "new" designates new object to keep track of. Once "new " (with space) is parsed, the next word after a space is parsed as one of the following:
object
matrix
enemy
spawn
There will be a sequence of values following each new declaration, defining the various attributes for each object. These are typically the ID number, x position, y position, z position, x angle, y angle, and z angle in that order. Though there are special cases, such as matrices where normal object transformation procedures do not apply.
new matrix - defines new matrix object
1 - this is the matrix's id number that can be used to create the matrix or point to an array index containing special information for the matrix in addition to the DB matrix ID and transformation data
100 - width in pixels of matrix, used when creating matrix
100 - height in pixels of matrix, used when creating matrix
45 - number of horizontal segments in matrix, used when creating matrix
45 - number of vertical segments in matrix, used when creating matrix
0 - x position
0 - y position
0 - z position
new object - defines new scenery object
1 - object id, same use as matrix id
debris.x - file containing the object
5.0 - x pos
-4.566 - y pos
3.2 - z pos
180 - x rotation
90 - y rotation
270 - z rotation
new enemy - defines new enemy for use
1 - id used to point to an array index containing information about this enemy, NOT used to create enemy object, as multiples copies of this enemy can be spawned
baddie.x - filename for the enemy
3000 - enemy's health
2 - enemy's armor
new spawn - defines a spawn point, when a function with this spawn's ID passed as an argument is triggered will spawn an enemy
1 - spawn id, points to index in an array containing the spawn's information
1 - enemy that will appear when this spawn is triggered
10.01 - x pos
-5.77 - y pos
100 - z pos

I'm going to eat you!