I am doing the 'building monster' example from the "Game Programming All in One" and there is something I dont quite understand from the code written. I have re-written the entire thing by hand and it works fine but there are still a few peices of code that I don't know why it works. For Example the author uses code that seemingly is not declared, (has no type and no declaration) it is just used. Here is a small part of the code....
I understand the ConLib() class above.
ConRed = 1,
ConGreen = 2,
ConBlue = 4
void SetBackgroundColor (WORD Color);
void SetTextColor (WORD Color);
void SetTitle (char * Title);
void SetPosision (COORD Position);
void Clear (void);
void OutputString (char * String);
void Read (char * Buffer, DWORD BufferSize);
int GetKey (void);
The part in bold is what I don't understand. It is not defined anywhere else in the entire program, the author just uses it here and in many other places. It goes into it talking about how its defined...
m_Screen = GetStdHandle (STD_OUTPUT_HANDLE);
m_Keyboard = GetStdHandle (STD_INPUT_HANDLE);
SetTextColor (ConRed | ConGreen | ConBlue);
void ConLib::SetBackgroundColor (WORD Color)
m_BackgroundColor = 0;
if (Color & ConRed)
m_BackgroundColor |= BACKGROUND_RED;
if (Color & ConGreen)
m_BackgroundColor |= BACKGROUND_GREEN;
if (Color & ConBlue)
m_BackgroundColor |= BACKGROUND_BLUE;
SetConsoleTextAttribute (m_Screen, m_TextColor | m_BackgroundColor);
and then goes on describing the paramaters. What I don't understand is that the code, used in the class, does not contain the type BOOL but it works. I don't know if I am asking this the right way. I just don't understand cause it looks like a function call with no type and no declaration. Why does this work and not cause errors?
BOOL SetConsoleTextAttribute (HANDLE hConsoleOutput, WORDwAttributes);