boolean game_status_last_screen = -1;
boolean level_editor_test_game = FALSE;
boolean network_playing = FALSE;
boolean game_status_last_screen = -1;
boolean level_editor_test_game = FALSE;
boolean network_playing = FALSE;
short MovPos[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
short MovDir[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
short MovDelay[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
short MovPos[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
short MovDir[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
short MovDelay[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
int TimeFrames, TimePlayed, TimeLeft, TapeTime;
boolean network_player_action_received = FALSE;
int TimeFrames, TimePlayed, TimeLeft, TapeTime;
boolean network_player_action_received = FALSE;
struct LevelInfo level, level_template;
struct PlayerInfo stored_player[MAX_PLAYERS], *local_player = NULL;
struct HiScore highscore[MAX_SCORE_ENTRIES];
struct LevelInfo level, level_template;
struct PlayerInfo stored_player[MAX_PLAYERS], *local_player = NULL;
struct HiScore highscore[MAX_SCORE_ENTRIES];
-/* ------------------------------------------------------------------------- */
-/* element definitions */
-/* ------------------------------------------------------------------------- */
+// ----------------------------------------------------------------------------
+// element definitions
+// ----------------------------------------------------------------------------
- /* ----------------------------------------------------------------------- */
- /* "real" level file elements */
- /* ----------------------------------------------------------------------- */
+ // --------------------------------------------------------------------------
+ // "real" level file elements
+ // --------------------------------------------------------------------------
- "mm_polarisator_cross_1",
- "mm_polarisator_cross",
- "two-way polarisator (0\xb0)"
+ "mm_polarizer_cross_1",
+ "mm_polarizer_cross",
+ "two-way polarizer (0\xb0)"
- "mm_polarisator_cross_2",
- "mm_polarisator_cross",
- "two-way polarisator (22.5\xb0)"
+ "mm_polarizer_cross_2",
+ "mm_polarizer_cross",
+ "two-way polarizer (22.5\xb0)"
- "mm_polarisator_cross_3",
- "mm_polarisator_cross",
- "two-way polarisator (45\xb0)"
+ "mm_polarizer_cross_3",
+ "mm_polarizer_cross",
+ "two-way polarizer (45\xb0)"
- "mm_polarisator_cross_4",
- "mm_polarisator_cross",
- "two-way polarisator (67.5\xb0)"
+ "mm_polarizer_cross_4",
+ "mm_polarizer_cross",
+ "two-way polarizer (67.5\xb0)"
{
"df_wooden_grid_rotating_1",
"df_wooden_grid_rotating",
{
"df_wooden_grid_rotating_1",
"df_wooden_grid_rotating",
},
{
"df_wooden_grid_rotating_2",
"df_wooden_grid_rotating",
},
{
"df_wooden_grid_rotating_2",
"df_wooden_grid_rotating",
},
{
"df_wooden_grid_rotating_3",
"df_wooden_grid_rotating",
},
{
"df_wooden_grid_rotating_3",
"df_wooden_grid_rotating",
},
{
"df_wooden_grid_rotating_4",
"df_wooden_grid_rotating",
},
{
"df_wooden_grid_rotating_4",
"df_wooden_grid_rotating",
},
{
"df_wooden_grid_rotating_5",
"df_wooden_grid_rotating",
},
{
"df_wooden_grid_rotating_5",
"df_wooden_grid_rotating",
},
{
"df_wooden_grid_rotating_6",
"df_wooden_grid_rotating",
},
{
"df_wooden_grid_rotating_6",
"df_wooden_grid_rotating",
},
{
"df_wooden_grid_rotating_7",
"df_wooden_grid_rotating",
},
{
"df_wooden_grid_rotating_7",
"df_wooden_grid_rotating",
},
{
"df_wooden_grid_rotating_8",
"df_wooden_grid_rotating",
},
{
"df_wooden_grid_rotating_8",
"df_wooden_grid_rotating",
},
{
"df_steel_grid_rotating_1",
"df_steel_grid_rotating",
},
{
"df_steel_grid_rotating_1",
"df_steel_grid_rotating",
},
{
"df_steel_grid_rotating_2",
"df_steel_grid_rotating",
},
{
"df_steel_grid_rotating_2",
"df_steel_grid_rotating",
},
{
"df_steel_grid_rotating_3",
"df_steel_grid_rotating",
},
{
"df_steel_grid_rotating_3",
"df_steel_grid_rotating",
},
{
"df_steel_grid_rotating_4",
"df_steel_grid_rotating",
},
{
"df_steel_grid_rotating_4",
"df_steel_grid_rotating",
},
{
"df_steel_grid_rotating_5",
"df_steel_grid_rotating",
},
{
"df_steel_grid_rotating_5",
"df_steel_grid_rotating",
},
{
"df_steel_grid_rotating_6",
"df_steel_grid_rotating",
},
{
"df_steel_grid_rotating_6",
"df_steel_grid_rotating",
},
{
"df_steel_grid_rotating_7",
"df_steel_grid_rotating",
},
{
"df_steel_grid_rotating_7",
"df_steel_grid_rotating",
},
{
"df_steel_grid_rotating_8",
"df_steel_grid_rotating",
},
{
"df_steel_grid_rotating_8",
"df_steel_grid_rotating",
- /* ----------------------------------------------------------------------- */
- /* "real" (and therefore drawable) runtime elements */
- /* ----------------------------------------------------------------------- */
+ // --------------------------------------------------------------------------
+ // "real" (and therefore drawable) runtime elements
+ // --------------------------------------------------------------------------
- /* ----------------------------------------------------------------------- */
- /* "unreal" (and therefore not drawable) runtime elements */
- /* ----------------------------------------------------------------------- */
+ // --------------------------------------------------------------------------
+ // "unreal" (and therefore not drawable) runtime elements
+ // --------------------------------------------------------------------------
- /* ----------------------------------------------------------------------- */
- /* dummy elements (never used as game elements, only used as graphics) */
- /* ----------------------------------------------------------------------- */
+ // --------------------------------------------------------------------------
+ // dummy elements (never used as game elements, only used as graphics)
+ // --------------------------------------------------------------------------
-/* ------------------------------------------------------------------------- */
-/* element action and direction definitions */
-/* ------------------------------------------------------------------------- */
+// ----------------------------------------------------------------------------
+// element action and direction definitions
+// ----------------------------------------------------------------------------
{ ".part_32", ACTION_PART_32, FALSE },
{ ".other", ACTION_OTHER, FALSE },
{ ".part_32", ACTION_PART_32, FALSE },
{ ".other", ACTION_OTHER, FALSE },
{ "", ACTION_DEFAULT, TRUE },
{ NULL, 0, 0 }
{ "", ACTION_DEFAULT, TRUE },
{ NULL, 0, 0 }
{ ".TOONS", GFX_SPECIAL_ARG_TOONS, },
{ ".SCORESOLD", GFX_SPECIAL_ARG_SCORESOLD, },
{ ".SCORESNEW", GFX_SPECIAL_ARG_SCORESNEW, },
{ ".TOONS", GFX_SPECIAL_ARG_TOONS, },
{ ".SCORESOLD", GFX_SPECIAL_ARG_SCORESOLD, },
{ ".SCORESNEW", GFX_SPECIAL_ARG_SCORESNEW, },
{ ".FADING", GFX_SPECIAL_ARG_FADING, },
{ ".QUIT", GFX_SPECIAL_ARG_QUIT, },
{ ".FADING", GFX_SPECIAL_ARG_FADING, },
{ ".QUIT", GFX_SPECIAL_ARG_QUIT, },
{ "", GFX_SPECIAL_ARG_DEFAULT, },
{ NULL, 0, }
};
{ "", GFX_SPECIAL_ARG_DEFAULT, },
{ NULL, 0, }
};
-/* ------------------------------------------------------------------------- */
-/* font definitions */
-/* ------------------------------------------------------------------------- */
+// ----------------------------------------------------------------------------
+// font definitions
+// ----------------------------------------------------------------------------
-/* Important: When one entry is a prefix of another entry, the longer entry
- must come first, because the dynamic configuration does prefix matching!
- (These definitions must match the corresponding definitions in "main.h"!) */
+// Important: When one entry is a prefix of another entry, the longer entry
+// must come first, because the dynamic configuration does prefix matching!
+// (These definitions must match the corresponding definitions in "main.h"!)
{ "font.game_info" },
{ "font.info.elements" },
{ "font.info.levelset" },
{ "font.game_info" },
{ "font.info.elements" },
{ "font.info.levelset" },
{ "gfx.global.anim_1", },
{ "gfx.global.anim_2", },
{ "gfx.global.anim_3", },
{ "gfx.global.anim_1", },
{ "gfx.global.anim_2", },
{ "gfx.global.anim_3", },
{ "gfx.global.anim_31", },
{ "gfx.global.anim_32", },
{ "gfx.global.anim_31", },
{ "gfx.global.anim_32", },
-/* ------------------------------------------------------------------------- */
-/* music token prefix definitions */
-/* ------------------------------------------------------------------------- */
+
+// ----------------------------------------------------------------------------
+// music token prefix definitions
+// ----------------------------------------------------------------------------
-/* ========================================================================= */
-/* main() */
-/* ========================================================================= */
+// ============================================================================
+// main()
+// ============================================================================
if (fileExists(config_filename))
{
// if program config file exists, derive Unix user data directory from it
if (fileExists(config_filename))
{
// if program config file exists, derive Unix user data directory from it
- userdata_basename = getBaseName(config_filename);
+ // (but only if the program config file is not generic "setup.conf" file)
+ if (!strEqual(getBaseNamePtr(config_filename), SETUP_FILENAME))
+ {
+ userdata_basename = getBaseName(config_filename);
- if (strSuffix(userdata_basename, ".conf"))
- userdata_basename[strlen(userdata_basename) - 5] = '\0';
+ if (strSuffix(userdata_basename, ".conf"))
+ userdata_basename[strlen(userdata_basename) - 5] = '\0';
+ }