コード例 #1
0
ファイル: main.c プロジェクト: joel0/CS327-Spring2016
int main(int argc, char* argv[]) {
    char* fileName;
    int errLevel;
    gridCell_t** dungeonGrid;
    room_t* rooms;
    int roomCount;
    // parse arguments
    int save = 0;
    int load = 0;
    for (int i = 0; i < argc; i++) {
        if (strcmp(argv[1], "--save") == 0) {
            save = 1;
        } else if (strcmp(argv[1], "--load") == 0) {
            load = 1;
        } else {
            showUsage(argv[0]);
            return 0;
        }
    }

    // load or generate dungeon
    if (load) {
        fileName = dungeonFileName();
        errLevel = loadDungeon(&dungeonGrid, &roomCount, &rooms, fileName);
        free(fileName);
        if (errLevel) {
            printf("Failed to load the dungeon.  Read error %d\n", errLevel);
            return -1;
        }
        populateRooms(dungeonGrid, rooms, roomCount);
    } else {
        roomCount = generateDungeon(&dungeonGrid, &rooms);
        if (roomCount < 0) {
            printf("Failed to allocate memory for the dungeon grid.\n");
            return roomCount;
        }
    }

    // print dungeon
    printRooms(roomCount, rooms);
    printGrid(dungeonGrid);

    // save dungeon
    if (save) {
        fileName = dungeonFileName();
        errLevel = saveDungeon(dungeonGrid, roomCount, rooms, fileName);
        free(fileName);
        if (errLevel) {
            printf("Failed to save the dungeon.  Save error %d\n", errLevel);
            return -1;
        }
    }

    // Clean up
    free2DGrid(dungeonGrid, HEIGHT);
    free(rooms);
    return 0;
}
コード例 #2
0
ファイル: room.c プロジェクト: AliEn707/TDef_public
/*
	room * roomRem (int key1, int key2) {
		for (it i = rooms_map[key1].begin(); i != rooms_map[key1].end();) {
			if (i->first == key2) {
				room * tmp = (room *) i->second;
				rooms_map[key1].erase(i++);
				eventRoomDel(key1);
				return tmp; //removed
			}
			else
				++i;
		}
		return NULL; //no such element
	}
*/
room * roomRem(int key) {
	printRooms();
	room* r=roomGet(key);
	if (r){
		eventRoomDel(r->type);
		bintreeDel(&rooms,key,0);
	}
	return r; //no such element
}
コード例 #3
0
ファイル: map.c プロジェクト: janisz/unix
void printMap(Map map)
{
	if (MAP_SIZE(map) < 1) {
		printf("Map is not loaded\n");
		return;
	}
	printf("%d %d\n", map.width, map.height);
	for (int j=0; j<map.height; j++) {
		for (int i=0; i<map.width; i++) {
			printf("%c", map.map[indexOnMap(map, i, j)]);
		}
		printf("\n");
	}

	printf("Rooms:\n");

	printRooms(&map);
}