RaceX.h
上传用户:sycq158
上传日期:2008-10-22
资源大小:15361k
文件大小:4k
源码类别:

游戏

开发平台:

Visual C++

  1. // RACE X
  2. //
  3. // Written by Mauricio Teichmann Ritter
  4. //
  5. // Copyright (C) 2002, Brazil. All rights reserved.
  6. // 
  7. //
  8. #include "stdafx.h"
  9. #include "cRaceCar.h" // Added by ClassView
  10. #include ".applibcApplication.h"
  11. #include ".applibcKeyboard.h"
  12. #include ".applibcMouse.h"
  13. #include ".applibcSurface.h"
  14. #include ".applibcSprite.h"
  15. #include ".applibcMultiplayer.h"
  16. #include ".applibcMessageHandler.h"
  17. #include ".applibcSoundInterface.h"
  18. #include ".applibcSound.h"
  19. #include ".applibcWavFile.h"
  20. #include "cRaceTrack.h"
  21. #include "cCompetition.h"
  22. #include "cTextWriter.h"
  23. #define GS_MAINSCREEN 1
  24. #define GS_RACE 2
  25. #define GS_CREATEGAME 3
  26. #define GS_JOINGAME 4
  27. #define GS_CREDITS 5
  28. #define GS_HELP 6
  29. #define GS_SELECTTRACK_AND_CAR 11
  30. #define GS_SELECTCAR 12
  31. #define GS_RACECOMPLETED 13
  32. #define GS_COMPETITIONSTATUS 14
  33. #define GS_NETWORKSTATUS 15
  34. #define GS_WAIT 16
  35. #define GS_WAITCOMPETITION 17
  36. #define MSG_PLAYER_INFO 1
  37. #define MSG_START_RACE 2
  38. #define MSG_KEYBOARD_STATUS 3
  39. #define MSG_RACECARS_STATUS 4
  40. #define MSG_RACECARS_INFO 5
  41. #define MSG_COMPETITIONSTATUS 6
  42. #define MSG_PLAYER_READY 7
  43. // This is the main application class
  44. class cRaceXApp : public cApplication, cMessageHandler
  45. {
  46. private:
  47. // This holds the startup flag for each one of the game states
  48. int iStart;
  49. // This vector hold the track names
  50. STRVECTOR pTrackNames;
  51. // RaceTrack instance
  52. cRaceTrack pRaceTrack;
  53. // This is used to process the Mouse and Keyboard input
  54. cMouse m_Mouse;
  55. cKeyboard m_Keyboard;
  56. // Textwritter classes, used to write text on the screen
  57. cTextWriter m_txDigital;
  58. cTextWriter m_txDigitalSmall;
  59. cTextWriter m_txVerdana;
  60. // Competiion class instance
  61. cCompetition m_pCompetition;
  62. // Main DXSound wrapper interface
  63. cSoundInterface m_pSoundInterface;
  64. // Multiplayer Management object
  65. cMultiplayer m_pMultiPlayer;
  66. public:
  67. int GetDifficultyLevel();
  68. int m_iDifficultyLevel;
  69. cSurface m_surfCarPannel;
  70. BOOL m_bSendKeyboard;
  71. cMultiplayer* GetMultiplayer();
  72. BOOL m_bIsMultiplayer;
  73. BOOL CheckInput(string*, int iMax);
  74. string m_sPlayerName;
  75. string m_sGameName;
  76. cSprite m_sptrCar;
  77. int m_iIncrY;
  78. int m_iIncrX;
  79. // Sound Objects
  80. cSound m_sndChangeOption;
  81. cSound m_sndSelect;
  82. cSound m_sndType;
  83. int m_iOption;
  84. int m_iTrack;
  85. // Surface Objects
  86. cSurface m_surfBigCars[4];
  87. cSurface m_surfCursor;
  88. cSurface m_surfCaret;
  89. cSurface m_surfTitle;
  90. cSurface m_surfHelmet;
  91. cSurface m_surfPanel;
  92. cSurface m_surfTophy;
  93. cSurface m_surfPositions;
  94. int m_iState;
  95. cSurface m_hcHit;
  96. cRaceCar* pCar;
  97. // To show the track to select
  98. int  m_iX, m_iY;
  99. void ExitApp();
  100. cRaceXApp() : cApplication()
  101. {
  102. m_bSendKeyboard = TRUE;
  103. m_lpszAppName = "RaceX";
  104. m_lpszwndClassName = "RaceXWnd";
  105. m_iState = GS_MAINSCREEN;
  106. m_bIsMultiplayer = FALSE;
  107. iStart = 0;
  108. WIN32_FIND_DATA lpFindData;
  109. HANDLE hFileFinder = FindFirstFile("*.rxt", &lpFindData);
  110. if(hFileFinder)
  111. {
  112. char* lpTmpString;
  113. do
  114. {
  115. lpTmpString = (char*) malloc(strlen(lpFindData.cFileName)+1);
  116. memcpy(lpTmpString, lpFindData.cFileName, strlen(lpFindData.cFileName)+1);
  117. pTrackNames.push_back(lpTmpString);
  118. lpTmpString = NULL;
  119. }while(FindNextFile(hFileFinder, &lpFindData) != 0);
  120. }
  121. }
  122. ~cRaceXApp()
  123. {
  124. }
  125. void AppInitialized();
  126. void DoIdle();
  127. void IncomingMessage(DWORD dwType, int idSender, BYTE* pBuffer, DWORD dwBufferSize);
  128. };
  129. cRaceXApp* GetRaceXApp();