Subversion Repositories Games.Carmageddon

Rev

Rev 1 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. #ifndef _GRAPHICS_H_
  2. #define _GRAPHICS_H_
  3.  
  4. #include "dr_types.h"
  5.  
  6. extern int gPalette_munged;
  7. extern int gColourValues[1];
  8. extern int gNext_transient;
  9. extern int gCursor_x_offsets[8];
  10. extern int gCursor_y_offsets[8];
  11. extern int gCursor_gib_x_offsets[8];
  12. extern int gCursor_gib_y_offsets[8];
  13. extern int gCursor_giblet_sequence0[7];
  14. extern int gCursor_giblet_sequence1[5];
  15. extern int gCursor_giblet_sequence2[5];
  16. extern int gCursor_giblet_sequence3[5];
  17. extern int* gCursor_giblet_sequences[4];
  18. extern char* gFont_names[21];
  19. extern br_colour gRGB_colours[9];
  20. extern br_matrix34 gSheer_mat;
  21. extern br_matrix34 gIdentity34;
  22. extern tShadow_level gShadow_level;
  23. extern br_scalar gShadow_hither_z_move;
  24. extern br_scalar gShadow_hither_min_move;
  25. extern int gArrows[2][4][60];
  26. extern float gMap_render_x;
  27. extern float gMap_render_y;
  28. extern float gMap_render_width;
  29. extern float gMap_render_height;
  30. extern int gMouse_started;
  31. extern int gFaded_palette;
  32. extern int gAR_fudge_headups;
  33. extern br_pixelmap* gCurrent_splash;
  34. extern br_pixelmap* gCurrent_conversion_table;
  35. extern int gMap_colours[4];
  36. extern br_vector3 gShadow_points[8];
  37. extern tConcussion gConcussion;
  38. extern tClip_details gShadow_clip_planes[8];
  39. extern br_actor* gLollipops[100];
  40. extern tWobble_spec gWobble_array[5];
  41. extern tSaved_table gSaved_shade_tables[100];
  42. extern tCursor_giblet gCursor_giblets[45];
  43. extern tTransient_bm gTransient_bitmaps[50];
  44. extern float gCosine_array[64];
  45. extern br_pixelmap* gCursors[8];
  46. extern br_pixelmap* gCursor_giblet_images[18];
  47. extern br_pixelmap* gEval_1;
  48. extern br_pixelmap* gEval_2;
  49. extern br_vector3 gShadow_light_z;
  50. extern br_vector3 gShadow_light_x;
  51. extern int gShadow_dim_amount;
  52. extern int gNumber_of_lollipops;
  53. extern br_vector3 gShadow_light_ray;
  54. extern int gFancy_shadow;
  55. extern br_model* gShadow_model;
  56. extern br_actor* gShadow_actor;
  57. extern int gShadow_clip_plane_count;
  58. extern br_pixelmap* gPalette_conversion_table;
  59. extern br_material* gShadow_material;
  60. extern int gSaved_table_count;
  61. extern int gCurrent_cursor_index;
  62. extern int gPalette_index;
  63. extern int gCursor_transient_index;
  64. extern char* gScratch_pixels;
  65. extern br_pixelmap* gScratch_palette;
  66. extern int gLast_palette_change;
  67. extern br_pixelmap* gOrig_render_palette;
  68. extern br_pixelmap* gCurrent_palette;
  69. extern br_pixelmap* gRender_palette;
  70. extern float gCamera_to_horiz_angle;
  71. extern int gColours[9];
  72. extern br_pixelmap* gFlic_palette;
  73. extern tDR_font gFonts[21];
  74. extern char* gCurrent_palette_pixels;
  75. extern int gWidth;
  76. extern int gMap_render_height_i;
  77. extern int gScreen_wobble_x;
  78. extern int gScreen_wobble_y;
  79. extern br_scalar gCurrent_ambience;
  80. extern int gY_offset;
  81. extern int gMap_render_width_i;
  82. extern int gMouse_in_use;
  83. extern int gHeight;
  84. extern int gMouse_last_y_coord;
  85. extern int gMouse_last_x_coord;
  86. extern br_scalar gAmbient_adjustment;
  87. extern int gMap_render_x_i;
  88. extern int gX_offset;
  89. extern int gMap_render_y_i;
  90. extern int gMirror_on__graphics; // suffix added to avoid duplicate symbol
  91. extern br_scalar gYon_squared;
  92.  
  93. void TurnOnPaletteConversion(void);
  94.  
  95. void TurnOffPaletteConversion(void);
  96.  
  97. void ResetLollipopQueue(void);
  98.  
  99. int AddToLollipopQueue(br_actor* pActor, int pIndex);
  100.  
  101. void RenderLollipops(void);
  102.  
  103. void DRDrawLine(br_pixelmap* pDestn, int pX1, int pY1, int pX2, int pY2, int pColour);
  104.  
  105. void DrawDigitAt(br_pixelmap* gImage, int pX, int pY, int pY_pitch, int pValue);
  106.  
  107. void DrawNumberAt(br_pixelmap* gImage, int pX, int pY, int pX_pitch, int pY_pitch, int pValue, int pDigit_count, int pLeading_zeroes);
  108.  
  109. void BuildColourTable(br_pixelmap* pPalette);
  110.  
  111. void ClearConcussion(void);
  112.  
  113. tS8* SkipLines(tS8* pSource, int pCount);
  114.  
  115. void CopyWords(char* pDst, char* pSrc, int pN);
  116.  
  117. void Copy8BitStripImageTo16Bit(br_pixelmap* pDest, br_int_16 pDest_x, br_int_16 pOffset_x, br_int_16 pDest_y, br_int_16 pOffset_y, tS8* pSource, br_int_16 pSource_x, br_int_16 pSource_y, br_uint_16 pWidth, br_uint_16 pHeight);
  118.  
  119. void CopyStripImage(br_pixelmap* pDest, br_int_16 pDest_x, br_int_16 pOffset_x, br_int_16 pDest_y, br_int_16 pOffset_y, tS8* pSource, br_int_16 pSource_x, br_int_16 pSource_y, br_uint_16 pWidth, br_uint_16 pHeight);
  120.  
  121. void SetBRenderScreenAndBuffers(int pX_offset, int pY_offset, int pWidth, int pHeight);
  122.  
  123. void SetIntegerMapRenders(void);
  124.  
  125. void AdjustRenderScreenSize(void);
  126.  
  127. void ScreenSmaller(void);
  128.  
  129. void ScreenLarger(void);
  130.  
  131. void DRSetPaletteEntries(br_pixelmap* pPalette, int pFirst_colour, int pCount);
  132.  
  133. void DRSetPalette3(br_pixelmap* pThe_palette, int pSet_current_palette);
  134.  
  135. void DRSetPalette2(br_pixelmap* pThe_palette, int pSet_current_palette);
  136.  
  137. void DRSetPalette(br_pixelmap* pThe_palette);
  138.  
  139. void InitializePalettes(void);
  140.  
  141. void SwitchToPalette(char* pPal_name);
  142.  
  143. void ClearEntireScreen(void);
  144.  
  145. void ClearWobbles(void);
  146.  
  147. void InitWobbleStuff(void);
  148.  
  149. void NewScreenWobble(double pAmplitude_x, double pAmplitude_y, double pPeriod);
  150.  
  151. void SetScreenWobble(int pWobble_x, int pWobble_y);
  152.  
  153. void ResetScreenWobble(void);
  154.  
  155. void CalculateWobblitude(tU32 pThe_time);
  156.  
  157. void CalculateConcussion(tU32 pThe_time);
  158.  
  159. void SufferFromConcussion(float pSeriousness);
  160.  
  161. void ProcessNonTrackActors(br_pixelmap* pRender_buffer, br_pixelmap* pDepth_buffer, br_actor* pCamera, br_matrix34* pCamera_to_world, br_matrix34* pOld_camera_matrix);
  162.  
  163. int OppositeColour(int pColour);
  164.  
  165. void DrawMapBlip(tCar_spec* pCar, tU32 pTime, br_matrix34* pTrans, br_vector3* pPos, int pColour);
  166.  
  167. void DrawMapSmallBlip(tU32 pTime, br_vector3* pPos, int pColour);
  168.  
  169. void MungeClipPlane(br_vector3* pLight, tCar_spec* pCar, br_vector3* p1, br_vector3* p2, br_scalar pY_offset);
  170.  
  171. void TryThisEdge(tCar_spec* pCar, br_vector3* pLight, int pIndex_1, br_scalar pSign_1, int pIndex_2, br_scalar pSign_2, int pPoint_index_1, int pPoint_index_2, br_scalar pY_offset);
  172.  
  173. br_scalar DistanceFromPlane(br_vector3* pPos, br_scalar pA, br_scalar pB, br_scalar pC, br_scalar pD);
  174.  
  175. void DisableLights(void);
  176.  
  177. void EnableLights(void);
  178.  
  179. void ProcessShadow(tCar_spec* pCar, br_actor* pWorld, tTrack_spec* pTrack_spec, br_actor* pCamera, br_matrix34* pCamera_to_world_transform, br_scalar pDistance_factor);
  180.  
  181. void RenderShadows(br_actor* pWorld, tTrack_spec* pTrack_spec, br_actor* pCamera, br_matrix34* pCamera_to_world_transform);
  182.  
  183. void FlashyMapCheckpoint(int pIndex, tU32 pTime);
  184.  
  185. int ConditionallyFillWithSky(br_pixelmap* pPixelmap);
  186.  
  187. void RenderAFrame(int pDepth_mask_on);
  188.  
  189. void InitPaletteAnimate(void);
  190.  
  191. void RevertPalette(void);
  192.  
  193. void MungePalette(void);
  194.  
  195. void ResetPalette(void);
  196.  
  197. void Darken(tU8* pPtr, unsigned int pDarken_amount);
  198.  
  199. void SetFadedPalette(int pDegree);
  200.  
  201. void FadePaletteDown(void);
  202.  
  203. void FadePaletteUp(void);
  204.  
  205. void KillSplashScreen(void);
  206.  
  207. void EnsureRenderPalette(void);
  208.  
  209. void SplashScreenWith(char* pPixmap_name);
  210.  
  211. void EnsurePaletteUp(void);
  212.  
  213. br_uint_32 AmbientificateMaterial(br_material* pMat, void* pArg);
  214.  
  215. void ChangeAmbience(br_scalar pDelta);
  216.  
  217. void InitAmbience(void);
  218.  
  219. void DRPixelmapRectangleMaskedCopy(br_pixelmap* pDest, br_int_16 pDest_x, br_int_16 pDest_y, br_pixelmap* pSource, br_int_16 pSource_x, br_int_16 pSource_y, br_int_16 pWidth, br_int_16 pHeight);
  220.  
  221. void DRMaskedStamp(br_int_16 pDest_x, br_int_16 pDest_y, br_pixelmap* pSource);
  222.  
  223. void DRPixelmapRectangleOnscreenCopy(br_pixelmap* pDest, br_int_16 pDest_x, br_int_16 pDest_y, br_pixelmap* pSource, br_int_16 pSource_x, br_int_16 pSource_y, br_int_16 pWidth, br_int_16 pHeight);
  224.  
  225. void DRPixelmapRectangleShearedCopy(br_pixelmap* pDest, br_int_16 pDest_x, br_int_16 pDest_y, br_pixelmap* pSource, br_int_16 pSource_x, br_int_16 pSource_y, br_int_16 pWidth, br_int_16 pHeight, tX1616 pShear);
  226.  
  227. void DRPixelmapRectangleVScaledCopy(br_pixelmap* pDest, br_int_16 pDest_x, br_int_16 pDest_y, br_pixelmap* pSource, br_int_16 pSource_x, br_int_16 pSource_y, br_int_16 pWidth, br_int_16 pHeight);
  228.  
  229. void InitTransientBitmaps(void);
  230.  
  231. int AllocateTransientBitmap(int pWidth, int pHeight, int pUser_data);
  232.  
  233. void DeallocateTransientBitmap(int pIndex);
  234.  
  235. void DeallocateAllTransientBitmaps(void);
  236.  
  237. void RemoveTransientBitmaps(int pGraphically_remove_them);
  238.  
  239. void SaveTransient(int pIndex, int pX_coord, int pY_coord);
  240.  
  241. void DrawCursorGiblet(tCursor_giblet* pGib);
  242.  
  243. void ProcessCursorGiblets(int pPeriod);
  244.  
  245. int NewCursorGiblet(int pX_coord, int pY_coord, float pX_speed, float pY_speed, tU32 pDrop_time);
  246.  
  247. int DoMouseCursor(void);
  248.  
  249. int AllocateCursorTransient(void);
  250.  
  251. void StartMouseCursor(void);
  252.  
  253. void EndMouseCursor(void);
  254.  
  255. void LoadFont(int pFont_ID);
  256.  
  257. void DisposeFont(int pFont_ID);
  258.  
  259. void InitDRFonts(void);
  260.  
  261. void DrawDropImage(br_pixelmap* pImage, int pLeft, int pTop, int pTop_clip, int pBottom_clip, int pOffset);
  262.  
  263. void DropInImageFromTop(br_pixelmap* pImage, int pLeft, int pTop, int pTop_clip, int pBottom_clip);
  264.  
  265. void DropOutImageThruBottom(br_pixelmap* pImage, int pLeft, int pTop, int pTop_clip, int pBottom_clip);
  266.  
  267. void DropInImageFromBottom(br_pixelmap* pImage, int pLeft, int pTop, int pTop_clip, int pBottom_clip);
  268.  
  269. void DropOutImageThruTop(br_pixelmap* pImage, int pLeft, int pTop, int pTop_clip, int pBottom_clip);
  270.  
  271. void DrawTellyLine(br_pixelmap* pImage, int pLeft, int pTop, int pPercentage);
  272.  
  273. void DrawTellyImage(br_pixelmap* pImage, int pLeft, int pTop, int pPercentage);
  274.  
  275. void TellyInImage(br_pixelmap* pImage, int pLeft, int pTop);
  276.  
  277. void TellyOutImage(br_pixelmap* pImage, int pLeft, int pTop);
  278.  
  279. void SetShadowLevel(tShadow_level pLevel);
  280.  
  281. tShadow_level GetShadowLevel(void);
  282.  
  283. void ToggleShadow(void);
  284.  
  285. void InitShadow(void);
  286.  
  287. br_uint_32 SaveShadeTable(br_pixelmap* pTable, void* pArg);
  288.  
  289. void SaveShadeTables(void);
  290.  
  291. void DisposeSavedShadeTables(void);
  292.  
  293. void ShadowMode(void);
  294.  
  295. int SwitchToRealResolution(void);
  296.  
  297. int SwitchToLoresMode(void);
  298.  
  299. void DRPixelmapDoubledCopy(br_pixelmap* pDestn, br_pixelmap* pSource, int pSource_width, int pSource_height, int pX_offset, int pY_offset);
  300.  
  301. #endif
  302.