From 84361f7a9e03f76e7ea90f48239825dc5bca07e9 Mon Sep 17 00:00:00 2001 From: neoraider Date: Thu, 21 Jun 2007 19:52:03 +0000 Subject: zoomedit: Added level editor zoomedit. --- level.c | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 level.c (limited to 'level.c') diff --git a/level.c b/level.c new file mode 100644 index 0000000..8dbe686 --- /dev/null +++ b/level.c @@ -0,0 +1,69 @@ +#include "level.h" +#include + + +void addRoom(LEVEL *lvl, ROOM *room) { + lvl->nRooms++; + lvl->rooms = realloc(lvl->rooms, lvl->nRooms*sizeof(ROOM)); + lvl->rooms[lvl->nRooms-1] = *room; +} + +void deleteRoom(LEVEL *lvl, unsigned int n) { + int i; + + lvl->nRooms--; + + for(i = n; i < lvl->nRooms; i++) + lvl->rooms[i] = lvl->rooms[i+1]; + + lvl->rooms = realloc(lvl->rooms, lvl->nRooms*sizeof(ROOM)); +} + +void addVertex(ROOM *room, VERTEX *v) { + room->nVertices++; + room->vertices = realloc(room->vertices, room->nVertices*sizeof(VERTEX)); + room->vertices[room->nVertices-1] = *v; +} + +void insertVertex(ROOM *room, VERTEX *v, unsigned int n) { + int i; + + if(n > room->nVertices) + n = room->nVertices; + + room->nVertices++; + room->vertices = realloc(room->vertices, room->nVertices*sizeof(VERTEX)); + + for(i = room->nVertices-1; i > n; i--) + room->vertices[i] = room->vertices[i-1]; + + room->vertices[n] = *v; +} + +void deleteVertex(ROOM *room, unsigned int n) { + int i; + + room->nVertices--; + + for(i = n; i < room->nVertices; i++) + room->vertices[i] = room->vertices[i+1]; + + room->vertices = realloc(room->vertices, room->nVertices*sizeof(VERTEX)); +} + +void freeLevel(LEVEL *lvl) { + int i; + + if(lvl) { + if(lvl->rooms) { + for(i = 0; i < lvl->nRooms; i++) { + if(lvl->rooms[i].vertices) + free(lvl->rooms[i].vertices); + } + + free(lvl->rooms); + } + + free(lvl); + } +} -- cgit v1.2.3