ESSENTIALLY, all I'm asking is will I have to entirely rewrite my entire program? Or is it possible to merely replace my DrawMap() function with 2D graphics using SFML?
No you probably don't have to rewrite all your game logic, and its very likely you can replace DrawMap() with SFML.
You probably want something like the following....
sf::RenderWindow window(...);
/* do all your game setup */
int Map[MAP_WIDTH][MAP_HEIGHT];
/* load a texture and sprite for each tile type */
sf::Texture playerTexture;
sf::Sprite playerSprite(playerTexture);
while (window.isOpen())
{
sf::Event event;
while (window.pollEvent(&event))
{
/* pass events off to your game logic for moving the character */
}
window.clear();
//DrawMap(); (below)
for (int x = 0; x < MAP_WIDTH; x++)
{
for (int y = 0; y < MAP_HEIGHT; y++)
{
switch (Map[x][y])
{
case PLAYER_ID:
window.draw(playerSprite);
break;
/* and so on and so forth */
}
}
}
window.draw();
}
Seriously, try something and if you get stuck just ask. It is very much possible, but you need to show some effort.