This is a patch file for "battalion" release 2004c. It's not compati- ble with older releases. These changes modify the way that city names are displayed. The stand- ard version of "battalion" pauses the game when you enter a city and displays the name in the center of the screen for a long time. The modified version operates as follows: a. In "omniscient" mode, the current city name is displayed con- tinuously at the top of the screen. Note: This is only done during active play. The city name isn't shown while demos are running. b. In other modes, the game still uses the old conventions; i.e., it pauses when you enter a city and displays the city name in the center of the screen. However, the delay factor used in this case has been reduced significantly. Requirement: This file assumes that the "battalion" sources were un- packed as follows: unzip -aq battalion2004c.zip If "unzip -aq" isn't used, "patch" operations that apply this file may fail. Explanation: Some of the "battalion" source files are stored in MS-DOS format. This file assumes that the files have been converted to UNIX format. "unzip -aq" converts text files to the correct format auto- matically (normally, binary files aren't affected). --- battalion2004.old/main.c +++ battalion2004/main.c @@ -984,7 +984,7 @@ globalzshift = 0; /* for showing the city name */ - levelStartCount = 60; + levelStartCount = 15; /* transition between levels */ levelEndCount = 0; @@ -1789,7 +1789,16 @@ if(levelStartCount > 0) { - showCityName(levelNames[currentLevel], lod); + +// If the view mode is OMNISCIENTVIEW, we don't need to display the +// city name here, because this distro's version of the program dis- +// plays the name elsewhere when OMNISCIENTVIEW is active. + + if (view != OMNISCIENTVIEW) + { + showCityName (levelNames [currentLevel], lod); + } + levelStartCount -=1; } --- battalion2004.old/text.c +++ battalion2004/text.c @@ -233,6 +233,30 @@ glPopMatrix(); /***********************/ + /* display city name */ + /***********************/ + + { + char *cp; + extern int currentLevel, mode, view; + extern char **levelNames; + + if ((mode != DEMOMODE) && + (view == OMNISCIENTVIEW) && + (levelNames != (char **) 0) && + (currentLevel >= 0) && + ((cp = levelNames [currentLevel]) != (char *) 0) && + (*cp != '\0')) + { + strcpy (textline, cp); + glPushMatrix(); + glTranslatef (-0.5, 3.85, 0); + DrawStr(strokeBase, textline); + glPopMatrix(); + } + } + + /***********************/ /* print out the score */ /***********************/