Year to fix
-
Just wanted to share this code snippet for everyone to laugh at that is from a project i had been working on for about 6years. I take full responsibility for it considering it was entirely coded by me as a pet project :P
Please bear in mind that when i originally wrote this i had zero formal training in any programming language and was completely self taught.
The first two comment lines are not dated, and i believe were originally added in 2002.
// Please DO NOT ask me HOW this works.. i don't know... it just does....
// That'll teach me for not putting comments in when i had the chance.
// Thursday, 29 May 2003 8:09:02 PM -- Had another look at the code... still can't figure out how it works.....
// Saturday, 15 May 2004 8:00:00 PM -- Changed window.cpp to use Direct3D
// Saturday, 15 May 2004 9:13:00 PM -- Had another look. FIGURED IT OUT!!
// difx and dify are the distance of the mouse from the top left of the box (origin)
// The mouse must be kept this distance at all times when it is first clicked on the title bar.
// And so we ensure we move it by taking the distance off the current mouse position and
// setting the box the current mouse minus the difference.
// The two variables savedmx and savedmy just allow the function to figure out
// if the mouse has moved from the last call, used to optimize speed.
// Saturday, 15 May 2004 9:26:00 PM -- HAH!! I just realized the code is crap and i took out a whole chunk
// and now it works perfectly
case W_MOUSEMOVE:
if (mousedown)
{
// Move the window to follow the mouse
int newx = x - difx;
int newy = y - dify;
// OBSELETE CODE - DOES NOTHING!!!
/*if (savedmx != x) // Moved mouse to the right or left
{
difx = x - difx;
newx = difx;
}
if (savedmy != y) // Moved mouse up or down
{
dify = y - dify;
newy = dify;
}
*/
windowMove(newx, newy); // Window is moving!
savedmx = x;
savedmy = y;
//difx = x - bbox.left;
//dify = y - bbox.top;
break;
}
-
Tarn Adams, is that you?
-
It happens all the time when I code on beer ...
-
Handling pixel co-ordinates and complicated-shared-state-n:m-producer-consumer-thread-mutexes/events are both things that really shouldn't, but apparently often are, solved using trial-and-error.