Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  1. /*
  2.  * OpenTyrian: A modern cross-platform port of Tyrian
  3.  * Copyright (C) 2007-2009  The OpenTyrian Development Team
  4.  *
  5.  * This program is free software; you can redistribute it and/or
  6.  * modify it under the terms of the GNU General Public License
  7.  * as published by the Free Software Foundation; either version 2
  8.  * of the License, or (at your option) any later version.
  9.  *
  10.  * This program is distributed in the hope that it will be useful,
  11.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13.  * GNU General Public License for more details.
  14.  *
  15.  * You should have received a copy of the GNU General Public License
  16.  * along with this program; if not, write to the Free Software
  17.  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  18.  */
  19. #ifndef CONFIG_H
  20. #define CONFIG_H
  21.  
  22. #include "opentyr.h"
  23. #include "config_file.h"
  24.  
  25. #include "SDL.h"
  26.  
  27. #include <stdio.h>
  28.  
  29. #define SAVE_FILES_NUM (11 * 2)
  30.  
  31. /* These are necessary because the size of the structure has changed from the original, but we
  32.    need to know the original sizes in order to find things in TYRIAN.SAV */
  33. #define SAVE_FILES_SIZE 2398
  34. #define SIZEOF_SAVEGAMETEMP SAVE_FILES_SIZE + 4 + 100
  35. #define SAVE_FILE_SIZE (SIZEOF_SAVEGAMETEMP - 4)
  36.  
  37. /*#define SAVE_FILES_SIZE (2502 - 4)
  38. #define SAVE_FILE_SIZE (SAVE_FILES_SIZE)*/
  39.  
  40. typedef SDLKey JE_KeySettingType[8]; /* [1..8] */
  41. typedef JE_byte JE_PItemsType[12]; /* [1..12] */
  42.  
  43. typedef JE_byte JE_EditorItemAvailType[100]; /* [1..100] */
  44.  
  45. typedef struct
  46. {
  47.         JE_word       encode;
  48.         JE_word       level;
  49.         JE_PItemsType items;
  50.         JE_longint    score;
  51.         JE_longint    score2;
  52.         char          levelName[11]; /* string [9]; */ /* SYN: Added one more byte to match lastLevelName below */
  53.         JE_char       name[15]; /* [1..14] */ /* SYN: Added extra byte for null */
  54.         JE_byte       cubes;
  55.         JE_byte       power[2]; /* [1..2] */
  56.         JE_byte       episode;
  57.         JE_PItemsType lastItems;
  58.         JE_byte       difficulty;
  59.         JE_byte       secretHint;
  60.         JE_byte       input1;
  61.         JE_byte       input2;
  62.         JE_boolean    gameHasRepeated; /*See if you went from one episode to another*/
  63.         JE_byte       initialDifficulty;
  64.  
  65.         /* High Scores - Each episode has both sets of 1&2 player selections - with 3 in each */
  66.         JE_longint    highScore1,
  67.                       highScore2;
  68.         char          highScoreName[30]; /* string [29] */
  69.         JE_byte       highScoreDiff;
  70. } JE_SaveFileType;
  71.  
  72. typedef JE_SaveFileType JE_SaveFilesType[SAVE_FILES_NUM]; /* [1..savefilesnum] */
  73. typedef JE_byte JE_SaveGameTemp[SAVE_FILES_SIZE + 4 + 100]; /* [1..sizeof(savefilestype) + 4 + 100] */
  74.  
  75. extern const JE_byte cryptKey[10];
  76. extern const JE_KeySettingType defaultKeySettings;
  77. extern const char defaultHighScoreNames[34][23];
  78. extern const char defaultTeamNames[22][25];
  79. extern const JE_EditorItemAvailType initialItemAvail;
  80. extern JE_boolean smoothies[9];
  81. extern JE_byte starShowVGASpecialCode;
  82. extern JE_word lastCubeMax, cubeMax;
  83. extern JE_word cubeList[4];
  84. extern JE_boolean gameHasRepeated;
  85. extern JE_shortint difficultyLevel, oldDifficultyLevel, initialDifficulty;
  86. extern uint power, lastPower, powerAdd;
  87. extern JE_byte shieldWait, shieldT;
  88.  
  89. enum
  90. {
  91.         SHOT_FRONT,
  92.         SHOT_REAR,
  93.         SHOT_LEFT_SIDEKICK,
  94.         SHOT_RIGHT_SIDEKICK,
  95.         SHOT_MISC,
  96.         SHOT_P2_CHARGE,
  97.         SHOT_P1_SUPERBOMB,
  98.         SHOT_P2_SUPERBOMB,
  99.         SHOT_SPECIAL,
  100.         SHOT_NORTSPARKS,
  101.         SHOT_SPECIAL2
  102. };
  103.  
  104. extern JE_byte shotRepeat[11], shotMultiPos[11];
  105. extern JE_boolean portConfigChange, portConfigDone;
  106. extern char lastLevelName[11], levelName[11];
  107. extern JE_byte mainLevel, nextLevel, saveLevel;
  108. extern JE_KeySettingType keySettings;
  109. extern JE_shortint levelFilter, levelFilterNew, levelBrightness, levelBrightnessChg;
  110. extern JE_boolean filtrationAvail, filterActive, filterFade, filterFadeStart;
  111. extern JE_boolean gameJustLoaded;
  112. extern JE_boolean galagaMode;
  113. extern JE_boolean extraGame;
  114. extern JE_boolean twoPlayerMode, twoPlayerLinked, onePlayerAction, superTyrian, trentWin;
  115. extern JE_byte superArcadeMode;
  116. extern JE_byte superArcadePowerUp;
  117. extern JE_real linkGunDirec;
  118. extern JE_byte inputDevice[2];
  119. extern JE_byte secretHint;
  120. extern JE_byte background3over;
  121. extern JE_byte background2over;
  122. extern JE_byte gammaCorrection;
  123. extern JE_boolean superPause, explosionTransparent, youAreCheating, displayScore, background2, smoothScroll, wild, superWild, starActive, topEnemyOver, skyEnemyOverAll, background2notTransparent;
  124. extern JE_byte versionNum;
  125. extern JE_byte fastPlay;
  126. extern JE_boolean pentiumMode;
  127. extern JE_byte gameSpeed;
  128. extern JE_byte processorType;
  129. extern JE_SaveFilesType saveFiles;
  130. extern JE_SaveGameTemp saveTemp;
  131. extern JE_word editorLevel;
  132.  
  133. extern Config opentyrian_config;
  134.  
  135. void JE_initProcessorType( void );
  136. void JE_setNewGameSpeed( void );
  137. const char *get_user_directory( void );
  138. void JE_loadConfiguration( void );
  139. void JE_saveConfiguration( void );
  140.  
  141. void JE_saveGame( JE_byte slot, const char *name );
  142. void JE_loadGame( JE_byte slot );
  143.  
  144. void JE_encryptSaveTemp( void );
  145. void JE_decryptSaveTemp( void );
  146.  
  147. #endif /* CONFIG_H */
  148.  
  149.