Quick start: Export C → save as e1m4.h in
src/vbdoom/assets/doom/ → include in RayCasterData.h → add level case in
gameLoop.c loadLevel().
Where to put exported files:
- Map + defines: save as e.g.
src/vbdoom/assets/doom/e1m4.h
- RayCasterData.h: add
#include "../assets/doom/e1m4.h"
- Paste
initEnemiesE1M4() into enemy.c; declare in enemy.h
- Paste
initPickupsE1M4() into pickup.c; declare in pickup.h
In gameLoop.c loadLevel():
- Add
else if (levelNum == 4) { ... } for your level
-
copymem((u8*)g_map, (u8*)e1m4_map, cells); — if map is smaller than
MAP_CELLS, zero-fill the rest
-
Set fPlayerX, fPlayerY, fPlayerAng from E1M4_SPAWN_X, E1M4_SPAWN_Y and spawn angle
- Call initDoors(), then all registerDoor/registerSwitch from the export comment
- Call initEnemiesE1M4(); initPickupsE1M4();
Also: Ensure door.h has MAX_DOORS and MAX_SWITCHES large enough. Extend
level transition checks (e.g. currentLevel < 6) for your max level.