diff --git a/src/Main/FrameBufferDD.cpp b/src/Main/FrameBufferDD.cpp
index 36570bd..1f87bdf 100644
--- a/src/Main/FrameBufferDD.cpp
+++ b/src/Main/FrameBufferDD.cpp
@@ -38,7 +38,7 @@
 		frontBuffer = 0;
 		backBuffer = 0;
 
-		locked = 0;
+		framebuffer = nullptr;
 
 		ddraw = LoadLibrary("ddraw.dll");
 		DirectDrawCreate = (DIRECTDRAWCREATE)GetProcAddress(ddraw, "DirectDrawCreate");
@@ -106,13 +106,13 @@
 
 			switch(ddsd.ddpfPixelFormat.dwRGBBitCount)
 			{
-			case 32: destFormat = FORMAT_X8R8G8B8; break;
-			case 24: destFormat = FORMAT_R8G8B8;   break;
-			case 16: destFormat = FORMAT_R5G6B5;   break;
-			default: destFormat = FORMAT_NULL;     break;
+			case 32: format = FORMAT_X8R8G8B8; break;
+			case 24: format = FORMAT_R8G8B8;   break;
+			case 16: format = FORMAT_R5G6B5;   break;
+			default: format = FORMAT_NULL;     break;
 			}
 
-			if((result != DD_OK && result != DDERR_PRIMARYSURFACEALREADYEXISTS) || (destFormat == FORMAT_NULL))
+			if((result != DD_OK && result != DDERR_PRIMARYSURFACEALREADYEXISTS) || (format == FORMAT_NULL))
 			{
 				assert(!"Failed to initialize graphics: Incompatible display mode.");
 			}
@@ -206,17 +206,17 @@
 
 		do
 		{
-			destFormat = FORMAT_X8R8G8B8;
+			format = FORMAT_X8R8G8B8;
 			result = directDraw->SetDisplayMode(width, height, 32);
 
 			if(result == DDERR_INVALIDMODE)
 			{
-				destFormat = FORMAT_R8G8B8;
+				format = FORMAT_R8G8B8;
 				result = directDraw->SetDisplayMode(width, height, 24);
 
 				if(result == DDERR_INVALIDMODE)
 				{
-					destFormat = FORMAT_R5G6B5;
+					format = FORMAT_R5G6B5;
 					result = directDraw->SetDisplayMode(width, height, 16);
 
 					if(result == DDERR_INVALIDMODE)
@@ -404,14 +404,14 @@
 
 	void *FrameBufferDD::lock()
 	{
-		if(locked)
+		if(framebuffer)
 		{
-			return locked;
+			return framebuffer;
 		}
 
 		if(!readySurfaces())
 		{
-			return 0;
+			return nullptr;
 		}
 
 		DDSURFACEDESC DDSD;
@@ -425,21 +425,21 @@
 			height = DDSD.dwHeight;
 			stride = DDSD.lPitch;
 
-			locked = DDSD.lpSurface;
+			framebuffer = DDSD.lpSurface;
 
-			return locked;
+			return framebuffer;
 		}
 
-		return 0;
+		return nullptr;
 	}
 
 	void FrameBufferDD::unlock()
 	{
-		if(!locked || !backBuffer) return;
+		if(!framebuffer || !backBuffer) return;
 
 		backBuffer->Unlock(0);
 
-		locked = 0;
+		framebuffer = nullptr;
 	}
 
 	void FrameBufferDD::drawText(int x, int y, const char *string, ...)
