Page 1 of 1

RE: CURRENCY CONVERTOR version 2

PostPosted: Mon Jun 29, 2009 11:54 am
by glinka57
Hey, I decided to put this into a new post so that others would review critique it. you should do the same for your other version.

so I only had in the nights to work on this , so sorry it took so long.

Let me know if you figure out how to stream the live conversion rates from the web, or if anyone else does...

oh if I could only stream it to a text file, this prog would be awesome LOL :mrgreen:

so her's the source

Code: Select all
#include "stdafx.h"
#include <iostream>
using namespace std;
#include "string"

#include <windows.h> 


/*
                      windows.h
- I needed the COORD class which is found in this header

- I needed the Sleep(int); function which is defined in this header
  lol dont forget that capital S on Sleep, sheesh
  the int is a number of milliseconds; so Sleep(1000); pauses the console for 1 second

- I needed the function:
  SetConsoleCursorPosition ( GetStdHandle ( STD_OUTPUT_HANDLE ), coord );
  which is defined in this header
*/



void gotoxy ( short x, short y )
{
  COORD coord = {x, y};
  SetConsoleCursorPosition ( GetStdHandle ( STD_OUTPUT_HANDLE ), coord );
}
//This func allows you to spicify the cursor's position
// check http://cpptutorials.freeforums.org/select-character-insertion-point-t213.html for the details
// about the gotoxy(); function



void TypeWriter(int WhatText, int Speed); //Speed = # of miliseconds to pause before cout the next letter.
                                //so the lower the speed the faster it prints LOL.

void ClearScreen();
void Menu();






//#############################################################################################################
//#############################################################################################################

int IntVal=0;          //Gotta love those global variables XD
int LoopState=0;
double BaseVal=0;
double NewVal= 0;
string Replay = "Y";
string BaseCurr="n/a";
string NewCurr ="n/a";     


void main()                // Sorry RTFM!! BUT VOID MAIN is just TOO COOL not to use!! XD
{
   //Note that each call to the typewriter function could have been replaced with a simple cout<<"etc";
   //But I chose to make it fancy   so here goes

   TypeWriter(1,70); //Title
   TypeWriter(2,50); //Version
   ClearScreen();

   gotoxy(11,9);
   cout << "The values used in this program were taken from www.xe.com";
   gotoxy(19,10);
   cout << "and are dated for June 28, 2009 at 11:30pm";
   Sleep(4000);
   gotoxy(0,23);
   system("pause");

   ClearScreen();
   Sleep(400);
   

   while(Replay == "y" || Replay == "Y" || Replay == "Yes" || Replay == "yes" || Replay == "YES")
   {
      IntVal=0;         
      LoopState=0;
      BaseVal=0;
      NewVal= 0;
      BaseCurr="n/a";
      NewCurr ="n/a"; 
      
      while(LoopState==0)//Get Base amount
      {
         ClearScreen();     
         Menu();

         TypeWriter(3,40); //Enter base val
         cin >> BaseVal;

         IntVal = BaseVal*1000;
         if(IntVal%10 == 0 && BaseVal>=0)
         {LoopState=1;}
         else
         {
            ClearScreen();
            Menu();
            gotoxy(1,8);
            cout<<"ERROR: -Must be positive WHOLE NUMBER or to no more";
            gotoxy(9,9);
            cout<<"than TWO decimal places!!";
            gotoxy(8,11);
            cout<<"-Entering letters will result in UB errors!!";
            gotoxy(10,23);
            system("pause");
         }
      
      }//while(0)

//---------------------

      while(LoopState==1)//Select Currency of Base amount
      {
         ClearScreen();     
         Menu();
         
         gotoxy(1,18);
         cout<<BaseVal; //print previous LoopState
         
         TypeWriter(4,40); //Enter BaseCurr
         cin >> BaseCurr;
         
         if(BaseCurr == "EUR" || BaseCurr == "eur" || BaseCurr == "Eur")
         {if(BaseVal==1)BaseCurr=" Euro";if(BaseVal!=1)BaseCurr=" Euros";LoopState=2;}

         if(BaseCurr == "USD" || BaseCurr == "usd" || BaseCurr == "Usd")
         {if(BaseVal==1)BaseCurr=" U.S Dollar";if(BaseVal!=1)BaseCurr=" U.S Dollars";LoopState=2;}

         if(BaseCurr == "JPY" || BaseCurr == "jpy" || BaseCurr == "Jpy")
         {if(BaseVal==1)BaseCurr=" Japanese Yen";if(BaseVal!=1)BaseCurr=" Japanese Yen";LoopState=2;}

         if(BaseCurr == "GBP" || BaseCurr == "gbp" || BaseCurr == "Gbp")
         {if(BaseVal==1)BaseCurr=" British Pound";if(BaseVal!=1)BaseCurr=" British Pounds";LoopState=2;}

         if(BaseCurr == "CAD" || BaseCurr == "cad" || BaseCurr == "Cad")
         {if(BaseVal==1)BaseCurr=" Canadian Dollar";if(BaseVal!=1)BaseCurr=" Canadian Dollars";LoopState=2;}

         if(LoopState == 1)
         {
            ClearScreen();
            Menu();
            gotoxy(1,8);
            cout<<"ERROR: -MUST be a VALID 3-LETTER symbol!!";
            gotoxy(12,9);
            cout<<"Please refer to the LEGEND!";
            gotoxy(10,23);
            system("pause");
         }
      }//while(1)

//---------------------

      while(LoopState==2)//Get TargetCurrency
      {
         ClearScreen();     
         Menu();

         gotoxy(1,18);
         cout<<BaseVal;
         cout<<BaseCurr;  //print previous LoopState
         
         TypeWriter(5,35); //Enter NewCurr
         cin>>NewCurr;
            
         if(BaseCurr == " Euro" || BaseCurr == " Euros")
         {
            if(NewCurr=="USD" || NewCurr=="usd" || NewCurr=="Usd")
            {NewVal=BaseVal*1.40;LoopState=3;}

            if(NewCurr=="JPY" || NewCurr=="jpy" || NewCurr=="Jpy")
            {NewVal=BaseVal*133.76;LoopState=3;}

            if(NewCurr == "GBP" || NewCurr == "gbp" || NewCurr == "Gbp")
            {NewVal=BaseVal*0.85;LoopState=3;}

            if(NewCurr == "CAD" || NewCurr == "cad" || NewCurr == "Cad")
            {NewVal=BaseVal*1.62;LoopState=3;}      
         }

      
         if(BaseCurr == " U.S Dollar" || BaseCurr == " U.S Dollars")
         {
            if(NewCurr=="EUR" || NewCurr=="eur" || NewCurr=="Eur")
            {NewVal=BaseVal*0.71;LoopState=3;}

            if(NewCurr=="JPY" || NewCurr=="jpy" || NewCurr=="Jpy")
            {NewVal=BaseVal*95.38;LoopState=3;}

            if(NewCurr == "GBP" || NewCurr == "gbp" || NewCurr == "Gbp")
            {NewVal=BaseVal*0.61;LoopState=3;}

            if(NewCurr == "CAD" || NewCurr == "cad" || NewCurr == "Cad")
            {NewVal=BaseVal*1.16;LoopState=3;}      
         }


         if(BaseCurr == " Japanese Yen")
         {
            if(NewCurr=="EUR" || NewCurr=="eur" || NewCurr=="Eur")
            {NewVal=BaseVal*0.007475;LoopState=3;}

            if(NewCurr=="USD" || NewCurr=="usd" || NewCurr=="Usd")
            {NewVal=BaseVal*0.01048;LoopState=3;}

            if(NewCurr == "GBP" || NewCurr == "gbp" || NewCurr == "Gbp")
            {NewVal=BaseVal*0.006359;LoopState=3;}

            if(NewCurr == "CAD" || NewCurr == "cad" || NewCurr == "Cad")
            {NewVal=BaseVal*0.012114;LoopState=3;}      
         }


         if(BaseCurr == " British Pound" || BaseCurr == " British Pounds")
         {
            if(NewCurr=="EUR" || NewCurr=="eur" || NewCurr=="Eur")
            {NewVal=BaseVal*1.18;LoopState=3;}

            if(NewCurr=="JPY" || NewCurr=="jpy" || NewCurr=="Jpy")
            {NewVal=BaseVal*157.22;LoopState=3;}

            if(NewCurr == "USD" || NewCurr == "usd" || NewCurr == "Usd")
            {NewVal=BaseVal*1.65;LoopState=3;}

            if(NewCurr == "CAD" || NewCurr == "cad" || NewCurr == "Cad")
            {NewVal=BaseVal*1.91;LoopState=3;}      
         }


         if(BaseCurr == " Canadian Dollar" || BaseCurr == " Canadian Dollars")
         {
            if(NewCurr=="EUR" || NewCurr=="eur" || NewCurr=="Eur")
            {NewVal=BaseVal*0.62;LoopState=3;}

            if(NewCurr=="JPY" || NewCurr=="jpy" || NewCurr=="Jpy")
            {NewVal=BaseVal*82.54;LoopState=3;}

            if(NewCurr == "USD" || NewCurr == "usd" || NewCurr == "Usd")
            {NewVal=BaseVal*0.86;LoopState=3;}

            if(NewCurr == "GBP" || NewCurr == "gbp" || NewCurr == "Gbp")
            {NewVal=BaseVal*0.52;LoopState=3;}      
         }


         if(LoopState == 2)
         {
            ClearScreen();
            Menu();
            gotoxy(1,8);
            cout<<"ERROR: -MUST be a VALID 3-LETTER symbol!!";
            gotoxy(12,9);
            cout<<"Please refer to the LEGEND!";
            gotoxy(10,23);
            system("pause");
         }
      
      }//while(2)

//---------------------

      while(LoopState==3)//Print Result
      {
         if(NewCurr == "EUR" || NewCurr == "eur" || NewCurr == "Eur")
         {if(NewVal==1)NewCurr=" Euro";if(NewVal!=1)NewCurr=" Euros";LoopState=2;}

         if(NewCurr == "USD" || NewCurr == "usd" || NewCurr == "Usd")
         {if(NewVal==1)NewCurr=" U.S Dollar";if(NewVal!=1)NewCurr=" U.S Dollars";LoopState=2;}

         if(NewCurr == "JPY" || NewCurr == "jpy" || NewCurr == "Jpy")
         {if(NewVal==1)NewCurr=" Japanese Yen";if(NewVal!=1)NewCurr=" Japanese Yen";LoopState=2;}

         if(NewCurr == "GBP" || NewCurr == "gbp" || NewCurr == "Gbp")
         {if(NewVal==1)NewCurr=" British Pound";if(NewVal!=1)NewCurr=" British Pounds";LoopState=2;}

         if(NewCurr == "CAD" || NewCurr == "cad" || NewCurr == "Cad")
         {if(NewVal==1)NewCurr=" Canadian Dollar";if(NewVal!=1)NewCurr=" Canadian Dollars";LoopState=2;}


         ClearScreen();     
         Menu();

         gotoxy(1,18);
         cout<<BaseVal;
         cout<<BaseCurr;  //print previous LoopState
         cout<<" is ";
         cout << NewVal;
         cout << NewCurr;

         gotoxy(1,23);
         cout << "Would you like to do another conversion?:";
         cin>> Replay;

         if(Replay!="n"&&Replay!="N"&&Replay!="No"&&Replay!="no"&&Replay!="NO"&&Replay!="y"&&Replay!="Y"&&Replay!="Yes"&&Replay!="yes"&&Replay!="YES")
         {            
            ClearScreen();
            Menu();
            gotoxy(1,9);
            cout<<"ERROR: Please enter YES or NO!";
            gotoxy(10,23);
            system("pause");
         }
         
         
         if(Replay=="n" || Replay=="N" || Replay=="No" || Replay=="no" || Replay=="NO")
         {LoopState=4;}
         if(Replay=="y" || Replay=="Y" || Replay=="Yes" || Replay=="yes" || Replay=="YES")
         {LoopState=0;}

      }//while(3)

   }//while(Replay)   

}//MAIN();


void TypeWriter(int WhatText, int Speed)
{
   if(WhatText==1)
   {
      gotoxy(21,7);

      Sleep(Speed);cout<<"W";
      Sleep(Speed);cout<<"e";
      Sleep(Speed);cout<<"l";
      Sleep(Speed);cout<<"c";
      Sleep(Speed);cout<<"o";
      Sleep(Speed);cout<<"m";
      Sleep(Speed);cout<<"e";
      Sleep(Speed);cout<<" ";
      //to reduce the number of lines in this sourcecode(ease of scrolling) I'll put more than letter per line:
      
      Sleep(Speed);cout<<"T";Sleep(Speed);cout<<"o";Sleep(Speed);cout<<" ";Sleep(Speed);cout<<"C";
      Sleep(Speed);cout<<"U";Sleep(Speed);cout<<"R";Sleep(Speed);cout<<"R";Sleep(Speed);cout<<"E";
      Sleep(Speed);cout<<"N";Sleep(Speed);cout<<"C";Sleep(Speed);cout<<"Y";Sleep(Speed);cout<<" ";
      Sleep(Speed);cout<<"C";Sleep(Speed);cout<<"O";Sleep(Speed);cout<<"N";Sleep(Speed);cout<<"V";
      Sleep(Speed);cout<<"E";Sleep(Speed);cout<<"R";Sleep(Speed);cout<<"T";Sleep(Speed);cout<<"E";
      Sleep(Speed);cout<<"R";Sleep(Speed);cout<<" ";Sleep(Speed);cout<<" ";Sleep(Speed);cout<<"V";
      Sleep(Speed);cout<<"e";Sleep(Speed);cout<<"r";Sleep(Speed);cout<<"s";Sleep(Speed);cout<<"i";
      Sleep(Speed);cout<<"o";Sleep(Speed);cout<<"n";Sleep(Speed);cout<<" ";Sleep(Speed);cout<<" ";
      Sleep(Speed);cout<<"0";Sleep(Speed);cout<<".";Sleep(Speed);cout<<"2";

      Sleep(Speed+100);   
   }
   
   
   if(WhatText==2) //XD
   {
      gotoxy(32,9);
         
      Sleep(Speed);cout<<"g";Sleep(Speed);cout<<"l";Sleep(Speed);cout<<"i";Sleep(Speed);cout<<"n";
      Sleep(Speed);cout<<"k";Sleep(Speed);cout<<"a";Sleep(Speed);cout<<"5";Sleep(Speed);cout<<"7";
      Sleep(Speed);cout<<" ";Sleep(Speed);cout<<"e";Sleep(Speed);cout<<"d";Sleep(Speed);cout<<"i";
      Sleep(Speed);cout<<"t";Sleep(Speed);cout<<"i";Sleep(Speed);cout<<"o";Sleep(Speed);cout<<"n";

      Sleep(Speed+2000);

   }


   if(WhatText==3) //Enter BaseVal
   {
      gotoxy(1,9);
         
      Sleep(Speed);cout<<"E";Sleep(Speed);cout<<"n";Sleep(Speed);cout<<"t";Sleep(Speed);cout<<"e";
      Sleep(Speed);cout<<"r";Sleep(Speed);cout<<" ";Sleep(Speed);cout<<"t";Sleep(Speed);cout<<"h";
      Sleep(Speed);cout<<"e";Sleep(Speed);cout<<" ";Sleep(Speed);cout<<"A";Sleep(Speed);cout<<"M";
      Sleep(Speed);cout<<"O";Sleep(Speed);cout<<"U";Sleep(Speed);cout<<"N";Sleep(Speed);cout<<"T";
      Sleep(Speed);cout<<" ";Sleep(Speed);cout<<"o";Sleep(Speed);cout<<"f";Sleep(Speed);cout<<" ";
      Sleep(Speed);cout<<"c";Sleep(Speed);cout<<"u";Sleep(Speed);cout<<"r";Sleep(Speed);cout<<"r";
      Sleep(Speed);cout<<"e";Sleep(Speed);cout<<"n";Sleep(Speed);cout<<"c";Sleep(Speed);cout<<"y";
      Sleep(Speed);cout<<" ";Sleep(Speed);cout<<"t";Sleep(Speed);cout<<"o";Sleep(Speed);cout<<" ";
      Sleep(Speed);cout<<"c";Sleep(Speed);cout<<"o";Sleep(Speed);cout<<"n";Sleep(Speed);cout<<"v";
      Sleep(Speed);cout<<"e";Sleep(Speed);cout<<"r";Sleep(Speed);cout<<"t:";
      
   }

   if(WhatText==4) //Enter BaseCurr
   {
      gotoxy(1,9);
         
      Sleep(Speed);cout<<"E";Sleep(Speed);cout<<"n";Sleep(Speed);cout<<"t";Sleep(Speed);cout<<"e";
      Sleep(Speed);cout<<"r";Sleep(Speed);cout<<" ";Sleep(Speed);cout<<"t";Sleep(Speed);cout<<"h";
      Sleep(Speed);cout<<"e";Sleep(Speed);cout<<" ";Sleep(Speed);cout<<"3";Sleep(Speed);cout<<"-";
      Sleep(Speed);cout<<"l";Sleep(Speed);cout<<"e";Sleep(Speed);cout<<"t";Sleep(Speed);cout<<"t";
      Sleep(Speed);cout<<"e";Sleep(Speed);cout<<"r";Sleep(Speed);cout<<" ";Sleep(Speed);cout<<"s";
      Sleep(Speed);cout<<"y";Sleep(Speed);cout<<"m";Sleep(Speed);cout<<"b";Sleep(Speed);cout<<"o";
      Sleep(Speed);cout<<"l";Sleep(Speed);cout<<" ";Sleep(Speed);cout<<"o";Sleep(Speed);cout<<"f";
      Sleep(Speed);cout<<" ";Sleep(Speed);cout<<"t";Sleep(Speed);cout<<"h";Sleep(Speed);cout<<"e";
      Sleep(Speed);cout<<" ";Sleep(Speed);cout<<"i";Sleep(Speed);cout<<"n";Sleep(Speed);cout<<"i";
      Sleep(Speed);cout<<"t";Sleep(Speed);cout<<"i";Sleep(Speed);cout<<"a";Sleep(Speed);cout<<"l";
      Sleep(Speed);cout<<" ";Sleep(Speed);cout<<"c";Sleep(Speed);cout<<"u";Sleep(Speed);cout<<"r";
      Sleep(Speed);cout<<"r";Sleep(Speed);cout<<"e";Sleep(Speed);cout<<"n";Sleep(Speed);cout<<"c";
      Sleep(Speed);cout<<"y: ";
      
   }

   if(WhatText==5) //Enter NewCurr
   {
      gotoxy(1,9);
         
      Sleep(Speed);cout<<"C";Sleep(Speed);cout<<"o";Sleep(Speed);cout<<"n";Sleep(Speed);cout<<"v";
      Sleep(Speed);cout<<"e";Sleep(Speed);cout<<"r";Sleep(Speed);cout<<"t";Sleep(Speed);cout<<" ";

      Sleep(Speed+200);cout<<BaseVal;Sleep(Speed+200);cout<<BaseCurr;
      
      Sleep(Speed);cout<<" ";Sleep(Speed);cout<<"t";Sleep(Speed);cout<<"o";Sleep(Speed);cout<<" ";
      Sleep(Speed);cout<<"w";Sleep(Speed);cout<<"h";Sleep(Speed);cout<<"a";Sleep(Speed);cout<<"t";
      Sleep(Speed);cout<<" ";Sleep(Speed);cout<<"c";Sleep(Speed);cout<<"u";Sleep(Speed);cout<<"r";
      Sleep(Speed);cout<<"r";Sleep(Speed);cout<<"e";Sleep(Speed);cout<<"n";Sleep(Speed);cout<<"c";
      Sleep(Speed);cout<<"y";Sleep(Speed);cout<<"?";

      gotoxy(1,10);
      
      Sleep(Speed);cout<<"E";Sleep(Speed);cout<<"n";Sleep(Speed);cout<<"t";Sleep(Speed);cout<<"e";
      Sleep(Speed);cout<<"r";Sleep(Speed);cout<<" ";Sleep(Speed);cout<<"t";Sleep(Speed);cout<<"h";
      Sleep(Speed);cout<<"e";Sleep(Speed);cout<<" ";Sleep(Speed);cout<<"3";Sleep(Speed);cout<<"-";
      Sleep(Speed);cout<<"l";Sleep(Speed);cout<<"e";Sleep(Speed);cout<<"t";Sleep(Speed);cout<<"t";
      Sleep(Speed);cout<<"e";Sleep(Speed);cout<<"r";Sleep(Speed);cout<<" ";Sleep(Speed);cout<<"s";
      Sleep(Speed);cout<<"y";Sleep(Speed);cout<<"m";Sleep(Speed);cout<<"b";Sleep(Speed);cout<<"o";
      Sleep(Speed);cout<<"l";Sleep(Speed);cout<<" ";Sleep(Speed);cout<<"o";Sleep(Speed);cout<<"f";
      Sleep(Speed);cout<<" ";Sleep(Speed);cout<<"t";Sleep(Speed);cout<<"h";Sleep(Speed);cout<<"e";
      Sleep(Speed);cout<<" ";Sleep(Speed);cout<<"T";Sleep(Speed);cout<<"a";Sleep(Speed);cout<<"r";
      Sleep(Speed);cout<<"g";Sleep(Speed);cout<<"e";Sleep(Speed);cout<<"t";Sleep(Speed);cout<<" ";
      Sleep(Speed);cout<<"C";Sleep(Speed);cout<<"u";Sleep(Speed);cout<<"r";Sleep(Speed);cout<<"r";
      Sleep(Speed);cout<<"e";Sleep(Speed);cout<<"n";Sleep(Speed);cout<<"c";Sleep(Speed);cout<<"y: ";
      
   }
   
}//TypeWriter();


void ClearScreen()
{
   gotoxy(0,0);

   for(int x=0; x<1999; x++)  // each line on the console screen is 80 characters wide and by default there are 24 lines
   {cout<<" ";}
   

}//ClearScreen()

void Menu()
{

      gotoxy(56,0);cout<<"|";gotoxy(56,1);cout<<"|";gotoxy(56,2);cout<<"|";gotoxy(56,3);cout<<"|";
      gotoxy(56,4);cout<<"|";gotoxy(56,5);cout<<"|";gotoxy(56,6);cout<<"|";gotoxy(56,7);cout<<"|";
      gotoxy(56,8);cout<<"|";gotoxy(56,9);cout<<"|";gotoxy(56,10);cout<<"|";gotoxy(56,11);cout<<"|";
      gotoxy(56,12);cout<<"|";gotoxy(56,13);cout<<"|";gotoxy(56,14);cout<<"|";gotoxy(56,15);cout<<"|";
      gotoxy(56,16);cout<<"|";gotoxy(56,17);cout<<"|";gotoxy(56,18);cout<<"|";gotoxy(56,19);cout<<"|";
      gotoxy(56,20);cout<<"|";gotoxy(56,21);cout<<"|";gotoxy(56,22);cout<<"|";gotoxy(56,23);cout<<"|";
      gotoxy(56,24);cout<<"|";
      
      gotoxy(65,2);cout<<"LEGEND";
      gotoxy(58,5);cout<<"EUR - The Euro";
      gotoxy(58,6);cout<<"USD - U.S Dollar";
      gotoxy(58,7);cout<<"JPY - Japanese Yen";
      gotoxy(58,8);cout<<"GBP - British Pound";
      gotoxy(58,9);cout<<"CAD - Canadian Dollar";

}//Menu()



c++ i look forward to your review. and all thanks

Re: RE: CURRENCY CONVERTOR version 2

PostPosted: Fri Jul 03, 2009 6:09 pm
by pipey85
Well cool, like the way you've made it like a type writer, has given me a bit tof inspiration :)

Re: RE: CURRENCY CONVERTOR version 2

PostPosted: Sat Jul 04, 2009 11:13 pm
by antiRTFM
nice!
except-
1) global variables - NAO! you're too young for this!
2) void main() - seriously man, thats just wrong rotten non-standard C++ (maybe not even C++ but rather C...)

Re: RE: CURRENCY CONVERTOR version 2

PostPosted: Mon Jul 06, 2009 1:32 am
by glinka57
antiRTFM wrote:nice!
except-
1) global variables - NAO! you're too young for this!
2) void main() - seriously man, thats just wrong rotten non-standard C++ (maybe not even C++ but rather C...)


HAHA yea i know, but would you belive it im still not too familiar with the use of classes, so I have to resort to my lazy global variables, I intend to go over the classes again, I dont even use pointers :( i try K.I.S.S lol .
VOID MAIN yea I was just talking to a friend about that tonight and i said maybe its dangerous because perhaps the OS is 'expecting' an integer to be returned, or maybe its just 'not cool' LOL

char const main();
{

Re: RE: CURRENCY CONVERTOR version 2

PostPosted: Mon Jul 06, 2009 7:32 pm
by antiRTFM
Ogre main()
{

Re: RE: CURRENCY CONVERTOR version 2

PostPosted: Wed Jul 08, 2009 1:25 am
by glinka57
antiRTFM wrote:Ogre main()
{


LOL!!!

but it still cant top

Ogre tea;