EURO_DSK.CPP 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4. #include "eurodefs.h"
  5. #include "euro_fxd.h"
  6. #include "mallocx.h"
  7. #include "euro_sym.h"
  8. #include "euro_def.h"
  9. #include "euro_var.h"
  10. #include "euro.equ"
  11. FILE *fp2; // symbol creation file.
  12. //********************************************************************************************************************************
  13. signed int ReadLine( FILE *fp, char *buf )
  14. {
  15. signed char c;
  16. buf[0] = 0;
  17. int nc = 0;
  18. while( (( (c=fgetc(fp)) !=LF)&&(c!=EOF)))
  19. {
  20. if (c==EOF || c==LF || c==255)
  21. *(buf++)=0;
  22. else
  23. {
  24. *(buf++)=c;
  25. nc++;
  26. }
  27. }
  28. if(c==EOF) nc=-1;
  29. return(nc);
  30. }
  31. //********************************************************************************************************************************
  32. void ReadDataOffsetFile( char *filename )
  33. {
  34. FILE *fp1;
  35. fp1=fopen( filename, "rb" );
  36. if ( fp1 != NULL )
  37. {
  38. fread( Offset_table, sizeof(BYTE), 512*4, fp1 );
  39. fclose(fp1);
  40. printf("þ Data Offset file loaded.\n");
  41. }
  42. else
  43. printf("þ Error loading Data Offset file.\n");
  44. }
  45. //********************************************************************************************************************************
  46. void ReadData( int file, char *filename, BYTE *buffer )
  47. {
  48. long seek_pos, file_size, len;
  49. FILE *fd;
  50. fd = fopen( filename, "rb" );
  51. if(fd!=NULL)
  52. {
  53. seek_pos = Offset_table[file/8].offset;
  54. file_size = Offset_table[file/8].size;
  55. fseek( fd, seek_pos , SEEK_SET );
  56. fread( buffer, sizeof(BYTE), file_size, fd );
  57. }
  58. else
  59. printf("þ Error loading from Datafile.\n");
  60. fclose( fd );
  61. }
  62. //********************************************************************************************************************************
  63. void LoadTexturePage( int file, char *filename, unsigned char Page, texture_info *texture )
  64. {
  65. if ( Page < TexturePagesAvailable )
  66. ReadData( file, filename, texture->page_start + (texture->page_width*texture->page_height*Page) );
  67. else
  68. printf("ERROR... trying to access texture page: %d, when only %d page(s) exist\n",
  69. Page, TexturePagesAvailable);
  70. }
  71. //********************************************************************************************************************************
  72. void LoadPalette( int file, char *filename, int offset )
  73. {
  74. ReadData( file, filename, &PaletteBuffer[ (offset*3) ] );
  75. }
  76. //********************************************************************************************************************************
  77. void LoadTactics( int tactic, char *filename, int *buffer)
  78. {
  79. ReadData( (tactic*8)+TAC_TAC_316, filename, (BYTE *)buffer );
  80. }
  81. //********************************************************************************************************************************
  82. void SaveGameData(char *filename)
  83. {
  84. FILE *fp=fopen(filename,"wb");
  85. if(fp!=NULL)
  86. {
  87. fwrite(SquadInfo, sizeof(char), 16*20, fp);
  88. fwrite(FormationInfo, sizeof(char), 16, fp);
  89. fwrite(GroupDrawInfo, sizeof(char), 16, fp);
  90. fwrite(LeagueTable, sizeof(League_info), 16, fp);
  91. fwrite(&NoOfSubs, sizeof(char), 1, fp);
  92. fwrite(&WinPts, sizeof(char), 1, fp);
  93. fwrite(&DrawPts, sizeof(char), 1, fp);
  94. fwrite(&MatchNumber, sizeof(MatchNumber), 1, fp);
  95. fclose(fp);
  96. }
  97. }
  98. //********************************************************************************************************************************
  99. void LoadGameData(char *filename)
  100. {
  101. FILE *fp=fopen(filename,"rb");
  102. if(fp!=NULL)
  103. {
  104. fread(SquadInfo, sizeof(char), 16*20, fp);
  105. fread(FormationInfo, sizeof(char), 16, fp);
  106. fread(GroupDrawInfo, sizeof(char), 16, fp);
  107. fread(LeagueTable, sizeof(League_info), 16, fp);
  108. fread(&NoOfSubs, sizeof(char), 1, fp);
  109. fread(&WinPts, sizeof(char), 1, fp);
  110. fread(&DrawPts, sizeof(char), 1, fp);
  111. fread(&MatchNumber, sizeof(MatchNumber), 1, fp);
  112. fclose(fp);
  113. }
  114. }
  115. //********************************************************************************************************************************