bbosen - 2020-12-23

I just uploaded a new version of Linux Air Combat, designated "Lac08p40" or simply V8.40. It's now available in the "Files" section of our archives on sourceforge.net according to our usual pattern. Here is a brief summary of the changes in this and a few other recent versions:

Changes in Lac08p40

This version derives directly from Lac08p38 (bypassing Lac08p39 which has different objectives). It remains fully compatible with the prior published version. If you are happily using prior version 8.38 or 8.39, there is little reason to update to this new version. However, new users may benefit, especially if they are not using a full-size keyboard. Several small improvements were made as follows:

The cockpit's "SPEED" instrumentation has been enhanced. In addition to displaying the True Airspeed, additional controls now also display Indicated Airspeed ("IAS") and Ground Speed ("GS") when in flight.

Improved Menu references to "Peabody's Mission": LAC's previous few versions have resulted in very nice completion of "Peabody's Mission". However, the menu text describing that mission was still advertising it as "BETA TEST" and "UNFINISHED MISSION". We updated those menu references to advertise the mission's completion and stable status. We also enhanced menu text associated with that mission to more clearly define its objectives and unique aspects.

Improved commentary within the LacConfig.txt file to update and clarify certain details that have been evolving during the past several months.

Improved support for compact keyboards: Many users have been running LAC on laptop computers that lack a full-size keyboard. Because those keyboards often lack or scatter the organized cluster of six keys that LAC's standard arrangement uses for zooming the Field of View, the RADAR, and the Map in and out, use of these "simplified" keyboards has proven to be cumbersome. Furthermore, the Raspberry Pi Foundation announced availability of their new Raspberry Pi Model 400, which is becoming very popular. Like many laptops, its keyboard layout does not include the convenient rectangular cluster of six keys that we have been using for all of LAC's "zoom" functions. Several other keyboard keys are missing too, including "F11" and "F12". We want LAC to run well on that hardware.

To compensate, this version allows an easy option to "double-map" the keyboard keys for affected functions. In addition to the existing logic that maps keys to functions according to our existing online documentation, this new option hard-codes the following additional keys and functions:

Num+ = RADAR Zoom In.
Num- = RADAR Zoom Out.
NumDel = FOV Zoom In.
NumIns = FOV Zoom Out.
NumEnter = Query Forward Observer for status of selected enemy airfield.
Z = Cycle Map View Zoom.

As you can see, most of those hard-coded changes rely upon formerly unused numeric keypad keys.

We now activate all of this new logic by consulting the "64" bit of the "NetworkMode" variable as configured within the "LacConfig.txt" configuration file, according to the established pattern for other run-time configuration options. The prompting text associated with "NetworkMode" within the "LacConfig.txt" configuration file has been expanded to explain all of this. It prompts the user to use the "64 bit" of "NetworkMode" to designate use of an alternate keyboard map and guides him in the calculation of the appropriate value.

Brief online testing confirms success: Now, if the user sets the "64" bit of "NetworkMode", (s)he can use the following extra keys from the numeric keypad (in addition to any already configured for the same purposes) to zoom FOV and RADAR range in and out:

NumIns: FOV Zoom Out
NumDel: FOV Zoom In
Num-: RADAR Zoom Out
Num+: RADAR Zoom In
NumEnter: Query Forward Observer

Additionally, if the operator presses "z", (s)he can cycle Map Zoom through all available settings. Each "z" zooms Map Range in farther and farther until maximum zoom is achieved. An additional "z" resets Map Zoom out to maximum, and the cycle repeats indefinitely as the operater presses "z".

As a consequence of this new optional keyboard map, LAC players that use laptop computers, Raspberry Pi Model 400 computers or others lacking a standard, robust keyboard will still have easy access to all of LAC's important functions through formerly unused keys on the Numeric Keypad.

Alternative Makefiles: This version also includes two alternative Makefiles, for use by those that have had trouble compiling LAC with our standard Makefile. The alternative Makefiles are named "MakefileV2" and "MakefileV3". As you might well suppose, the file named "MakefileV1" is a duplicate copy of "Makefile".

Thanks to a new posting in our online forums by Daniel Barland, we have learned of improvements in LAC's Makefile that seem to help Ubuntu compilation efforts. In his post (in the "Welcome to Ubuntu" thread), he refers to our YouTube video playlist showing exactly how we downloaded, compiled, installed, and tested LAC on a brand new Ubuntu system in September of 2020. Here is the YouTube playlist to which he refers:

https://www.youtube.com/watch?v=7pgCJ5QLj6A&list=PL1IYes9MY6lLv_g8KUGIHWgpirjnzyi2i

Here is the text of Daniel's original post containing his improved PlayList:

========== BEGIN ==========
For those running Ubuntu 18.04LTS, things may be a little different from 20.04LTS as shown in the video playlist. You must still install the needed libraries, but successful compilation (Lac08p38) with 18.04LTS required a couple of tiny tweaks of the provided Makefile, as shown below. My 18.04 installation is using gcc 7.5.0, make 4.1, and glibc 2.27 on AMD64. The tweaks needed are to remove g++ PIE flag and that the linker requires libraries to be appended at the end of the compiler call.

Makefile:

OBJS=3ds.o aiobject.o audio.o cockpit.o common.o conf.o dirs.o effects.o fileloader.o FlightModel.o gl.o glland.o land.o loader_tga.o main.o mathtab.o menu.o mission.o model.o NetworkApi.o object.o objload.o pilots.o vertexarray.o

LIBS=pkg-config --libs SDL_mixer -lglut -lGL -lGLU

Lac08p38: $(OBJS)
g++ -o Lac08p38 $(OBJS) $(LIBS)
cp Lac08p38 bin/Release/Lac08p38
chmod +x bin/Release/Lac08p38

clean:
@rm -f *.o
@rm Lac08p38
================ END =============

Daniel's new Makefile is included herewith as "MakefileV2". If our standard Makefile doesn't work for you, replace it with MakefileV2 and give it a try (or use the "CodeBlocks" option, with which many, many people have had success). "MakefileV3" derives from Daniel's MakefileV2 but includes compiler directives for "speed at any price". It should result in better frame rates.

Further information about compiling LAC with all of these options can be found in our "Compiling and Installing LAC" forum here:

https://sourceforge.net/p/linuxaircombat/discussion/compilinglac

No changes were made that affect flight. When used in any of the three classic online, multi-user, server-based missions, this version remains operationally compatible with all prior versions since Lac07p92.

Changes in Lac08p38

This version derives directly from Version 8.36 (bypassing version 8.37). Three minor bugs were fixed in "Peabody's Mission" as follows:

1 of 3: RADAR was tracking targets flying too low to be realistically detected (down in valleys, etc.)

2 of 3: Target reticles were drawn around those same targets even when flying too low to be tracked by RADAR.

3 of 3: The rotating RADAR antenna at field "RED2" was positioned a few feet to far to the West.

Note that none of these bugs affected any other missions.

We also eliminated run-time diagnostic reporting during Peabody's Mission, resulting in much quieter operation. This was done by simply "commenting out" the associated source code lines. Accordingly, Mission Developers can easily re-enable that run-time reporting should they ever want to enhance the Mission or derive some future mission from it.

We also eliminated the "TEST" label associated with Peabody's Mission in the main menu, since it is now confirmed to be of "production" quality.

We also tweaked some of the graphic detail settings in main.cpp to achieve a very very slight improvement in frame rate.

No changes were made that affect flight. When used in any of the three classic online, multi-user, server-based missions, this version remains operationally compatible with all prior versions since Lac07p92.

Changes in Lac08p36

This version derives directly from Version 8.34 (bypassing version 8.35). This version fixes two bugs in "Peabody's Mission" as follows:

1 of 2: Peabody's Mision was failing to display the RADAR antenna at secondary airfields,

2 of 2: In Peabody's Mission, the player's aircraft was prematurely destroyed whenever his secondary airfield was heavily damaged.

(Extensive online testing has recently confirmed that "Peabody's Mission" is now well-behaved and although it is still marked "TEST" in the menus, it can now be considered to be of "production" quality.

No changes were made that affect flight. When used in any of the three classic online, multi-user, server-based missions, this version remains operationally compatible with all prior versions since Lac07p92.

Changes in Lac08p34

This version derives directly from Version 8.32 (bypassing version 8.33). It enhances cockpit messages and vocalizations in support of users that have disabled LAC's automated management of Mumble. Accordingly, even if a player must disable LAC's automated management of Mumble, it is easier for him to monitor Mumble channel activity of others on his team.

No changes were made that affect flight. When used in any of the three classic online, multi-user, server-based missions, this version remains operationally compatible with all prior versions since Lac07p92.

Changes in Lac08p33:

Version 8.33 is functionally identical to versio 8.32, but the executable is named "lac" and its filesystem location is moved to /usr/bin/lac. Additionally, required resource files are moved into a new subidirectory named named "lac" at /usr/share/lac. The Makefile and the install.sh scrip are both modified accordingly. This version was an experimental version, made in support of "Installers" who are working to bring LAC into popular repositories. This version was never published.

No changes were made that affect flight. When used in any of the three classic online, multi-user, server-based missions, this version remains operationally compatible with all prior versions since Lac07p92.

Changes in Lac08p32:

This version fixes one bug from Lac08p31 which won't affect very many people. Back in version 7.92 we added logic to disable LAC's automated management of Mumble, such as its automatic invocation at the commencement of a new LAC session, and automated Mumble channel changing to match the user's current LAC Realm, Mission, and Team. (Disabling that Mumble-management logic requires editing the "NetworkMode" field of the LacConfig.txt file.) Recent exercising of that logic revealed several bugs that failed to disable LAC's automated Mumble-management logic even when configured to disable it. This version fixes those bugs.

Very very few people have ever used that feature, since LAC's automated management of Mumble generally works perfectly. However, recent experiments on Ubuntu Desktop Linux from September 2020 revealed that extra copies of Mumble were being invoked each time a LAC user changed to a different Mumble channel. Accordingly, it is desirable for Ubuntu users (and perhaps other LINUX platforms too) to disable LAC's automated management of Mumble, leading to discovery and repair of this little bug.

No changes were made that affect flight. When used in any of the three classic online, multi-user, server-based missions, this version remains operationally compatible with all prior versions since Lac07p92.

Changes in Lac08p31:

Joystick logic has been enhanced to provide much better support for 4-axis, analog "game console"-style joysticks of the type that are in commonplace use on "XBOX", "PlayStation", and similar consumer-oriented console gaming systems. To take advantage of this new logic, players wishing to use a LINUX-compatible game controller of that style will need to edit the "NetworkMode" attribute of their LacConfig.txt file. That file now contains additional commentary details in support of that option. After making that change, players will also need to edit their LacControls.txt file to re-map the available joystick axes and buttons according to their own preferences.

The distribution archive now includes a new folder named "ConfigFileSamples" that contains several sample configuration files, each with descriptive names, that can be used to replace the "LacControls.txt" file and/or the "LacConfig.txt" file in certain popular situations. For example, the following new files are available for reference by those wishing to customize LAC:

LacConfig.1279x600.GameConsoleController.txt Replace the text of your LacConfig.txt file with this text to configure LAC for use with a game-console style joystick controller and to operate in full-screen mode with 1280x600 resolution.

LacConfig.1280x720.txt Replace the text of your LacConfig.txt file with this text to configure LAC for use with a conventional joystick and to operate in full-screen mode with 1280x720 resolution.

LacConfig720x480.txt Replace the text of your LacConfig.txt file with this text to configure LAC for use with a conventional joystick and to operate in full-screen mode with 720x480 resolution.

LacControls.LogitechExtreme3dPro.txt Replace the text of your LacControls.txt file with this text to optimize joystick button and axis mapping for use with the popular Logitech Extreme 3dPro conventional joystick.

LacControls.LogitechGameConsoleController.txt Replace the text of your LacControls.txt file with this text to optimize joystick button and axis mapping for use with most analog game-console joysticks of the type that have become popular with "XBOX" and "Playstation" hardware.

LacControls.Sidewider2.txt Replace the text of your LacControls.txt file with this text to optimize joystick button and axis mapping for use with the old "Microsoft Sidewinder 2" joysticks.

Target vocalization has been slowed down for better clarity and to fix bugs that sometimes caused the vocalization to skip words or syllables.

Fixed a bug in the Raspbian version that had prevented proper refueling, re-arming, and repair services at airstrips.

No changes were made that affect flight. When used in any of the three classic online, multi-user, server-based missions, this version remains operationally compatible with all prior versions since Lac07p92.

Changes in Lac08p30:

I enhanced handling of two items in the handling of LAC's configuration file "LacConfig.txt" to benefit operations on Raspberry Pi as follows:

1 of 2: The name of the "PreferredBrowser" is now set to "chromium-browser" when the "Raspbian" operating system is in use. This makes it much easier to access LAC's online help and to see YouTube video clips related to each of LAC's 54 simulated aircraft. Related, explanatory text in the LacConfig.txt file has been
improved to clarify this.

2 of 2: The menus that automate management of video display resolution have been expanded and better optimized. Now they support additional, popular options, including 1280x720, diminishing any need to manually edit the LacConfig.txt file.

The "common.h" source-code file now has a new line of code that can be enabled or disabled via the well-known "comment it out" mechanism, and which triggers special logic when the "RASPBIAN" operating system is defined for use. By default, that line is commented out (disabled). People compiling LAC for use on the Raspbian operating system should enable that line.

The logic that handles landings on unusual surfaces has been improved. Now, when landing at an airstrip, it is necessary to remain on or very near the paved areas in order to receive repair, refuel, or re-arm services.

Water landings are now more realistic: A great deal of extra damage is inflicted if you attempt to land on water with landing gear extended. A loud "splash" sound effect is heard as your aircraft settles into the water at sea level. Your aircraft is no longer serviced, re-fueled, or re-armed after a water landing. (Note that some of these water landing details do not work as nicely when landing on lakes that are NOT at sea level.)

Landings on moving aircraft carriers are improved a little, but it is still necessary to use your engines to move forward with the aircraft carrier as it moves through the water, or the ship will drive out from beneath you. If you are VERY careful you can land on an aircraft carrier and remain in sync with its moving deck long enough to be refueled, re-armed, and repaired. After that you can take off.

No changes were made that affect flight. When used in any of the three classic online, multi-user, server-based missions, this version remains operationally compatible with all prior versions since Lac07p92.

 

Last edit: bbosen 2020-12-23