Alpha 45: getting colorful!


Hello, and welcome to our latest alpha release! This release has focused more on the engine, with porting things from C to C++, cleaning up outdated or unused code, and implementing some new infrastructure. Some bugs have also been fixed.

To start off, mouse handling was improved: the cursor will never be locked if in_nograb is set to 1, mouse movements will be better coordinated with your window manager on menus, and the loading screen no longer displays an arbitrary cursor. Console history is now handled differently, with code cleanup, bug fixes, and it’s now thread-safe. A very large number of deprecated functions were removed, resulting in over two thousand lines of unused code being removed.

As part of refactoring the code involving colors and colored strings, it’s now possible to use a much broader variety of colors in text than before, something that would certainly be of use to clan players, server operators, and people that enjoy writing long rainbows of text. Two new color codes have been added: 12-bit and 24-bit hexadecimal RGB notation. You can use them just like the old color codes, starting with a ^ character. Respectively, they are ^xrgb and ^#rrggbb, with r, g, and b representing red, blue, and green values. That’s a lot of colors!

Lastly, there was an update to our Forlorn map, and boosters can now be built on walls and ceilings. Overall, 238 files have been changed over the last month, with 13,752 lines of additions and 7,752 lines of deletions.

By the way, we updated the forum’s phpBB version and the theme as well, check it out and let us know if you’re having any problems!


  • 94a9f92 Initial support for rgb colors in strings
  • 3882961 Full support for string color (engine-side)
  • f6c8d36 Increase maximum name size to accomodate the new color format
  • 3b04d1a Turn some macros into functions
  • 6e1705a Move color-related declarations and definitions to their own files
  • e71e348 Rename the color struct to match the coding convention
  • 6cc36bc Removed some unused code
  • 8db1d49 Convert g_color_table to the new color struct
  • 3f7c4e0 Remove more macros
  • 8b50277 Ensure new colors work with grep
  • b04aa52 Display new colors on tty using standard ANSI sequences
  • e644680 Display new colors on the curses console
  • b91a743 Handle new colors in the game code
  • 4fe8118 Clean up some unused code
  • f767b2d Add support for the new colors to the chat field
  • 5e60edd Move the color source files
  • a495322 Add namespace Color
  • f5cfad6 Introduce the color token iterator
  • 0e9c710 Rename Color::color_s
  • 2f44444 Completely remove the old functions from Color::
  • d9adde1 Remove color macros
  • 104675b Hide g_color_table
  • 27efac3 namespace Color::NamedFloat
  • f612d2d Document color classes
  • a07c9d0 Add some constexpr
  • a32e341 Refactor some members of Color::Color
  • 02f727a Add a class to store float colors
  • f0e6a17 Convert the type of NamedFloat constants
  • f3ae57b Move the functions that strip colors from strings in the Color:: namespace
  • 0c5de48 Add support to express 24bit RGB colors in strings
  • 24a15c3 Discard some invalid color codes
  • 914f9d4 Functions to get indexed colors
  • 0a2455f Use Math::Vec4 for ColorFloat
  • 169d23f Remove Vector4Lerp
  • bdda76c Remove Color::Named
  • 7035efb Change how the console stores its log
  • 2654d92 Remove integer-based colors
  • 066b5b6 Rename ColorFloat to Color
  • f92b45b Remove a todo (outside the scope of the color branch)
  • 103e5f0 Replace float arrays with Color::Color
  • 4d0a860 Remove implicit conversions between float* and Color
  • a5ac529 Rename Color::toArray to ToArray
  • 910a9b4 Remove an unused function
  • f712b80 Make Color a template class
  • bdab768 Use Color32bit instead of byte[4]
  • 711f09f Minor refactoring of the color string parser
  • 8c1e6f5 Use Color::Color when handling ROCKET_COLOR
  • ef0861e Remove Color::NamedString
  • 6501e4b Make BasicColor not inherit Math::Vector
  • 8edf084 Adaptor to convert between color representations
  • 6ffff67 Simplify the color adaptor
  • 44ae366 Better documentation for the color templates
  • ac8acd9 Use Color::Named for Color32Bit
  • 6b20af5 Fix the low ammo blinking color
  • 5adab9a Use some type aliases
  • f5eb876 Move To4bit to the console code
  • 172bfff Change license for Color.h and Color.cpp
  • 00f89de Remove OptionalColor
  • 4623c2f Remove the Color::Named namespace
  • 295e77a Color::Parser to represent a token range
  • d157b57 Remove templates from color-parsing classes
  • 0311021 Remove Color::Token::DEFAULT_COLOR
  • 462d7f2 Use macros for constexpr and noexcept
  • d61c9d2 Remove decolor on/off constants
  • 4ee1cf0 Remove #includes
  • 85c4954 Stop crashes on disconnect
  • ab97aa0 Fix project generation on Windows
  • c2f3521 Remove binary literals
  • e245919 Fix the issues that arise in environments lacking constexpr
  • 1203c98 Wrap explicitly defaulted functions in a conditional
  • b8bf1c3 Make Boosters buildable on walls and ceilings.
  • c6641fc Revert drawVert_t to use arrays
  • 7a5dd14 USE_CURSES: default to OFF for WIN32
  • 540f931 Force-enable curses for the windows server and tty client
  • 2f27aac Fix mouse behaviour on in_nograb
  • 1f7b22e Enable mouse when not grabbing and the console is open
  • eb755d5 Remove an unused cvar
  • 25e2c2a Revert “Stop crashes on disconnect”
  • e314ed5 Restore the level client after we clear the entity
  • 92c425e Fix compiliation on windows
  • 081ca9f Update cbse version
  • f825d96 Cursor mode toggleable from cgame
  • 2a60d01 Send mouse position when in cursor mode
  • e7319a1 Clean up cursor activation
  • 5b79087 Fix crash in daemonded when calling /systeminfo
  • 5b18054 Hide the mouse cursor during the loading screen
  • 6e3f6bb Minor refactoring of cursor mode
  • 8b6f99c Remove null_rocket.cpp
  • 576cf7e Rewrite how the console history is handled
  • 0dad33b Remove some includes
  • 26cf32a Have CMake auto generate CBSE componenets. Remove autogen’d files from source tree.
  • 75daea6 Add missing file
  • 68372bb Also add other changed file
  • 71a4afa Update gitignore with cbse and pk3 files
  • 530e4fb Revert CMake CBSE stuff. Not ready yet.
  • 1e479f3 Save the console history every time a new command is entered
  • a20951a Fix a typo on sdl_input.cpp
  • 8e7cfc4 Remove or mark unused functions
  • 771b937 Remove more functions
  • 9ccc173 Remove one more function
  • 5af5a18 Fix some warnings appearing with clang 3.7
  • a19f349 Don’t save the console history at shutdownsince it gets saved earlier
  • f9d6603 some nacl toolchain glitches in mingw
  • ab6cfc1 Remove the Unused tags
  • c82efd1 Remove some comments
  • 6f5533a Remove MAX and MIN macros
  • 186a8ae Avoid deadlock on the console history
  • 313c2aa Remove the creation of the unused hunkusage.dat file
  • 212b26c Remove CL_InitCGameCvars
  • 8012e3e Initialize the cgame on vid_restart
  • 79fc559 Shutdown lua before cleaning up rocket contexts
  • d57bf9b Version bump to Alpha 45

9 thoughts on “Alpha 45: getting colorful!”

  1. Nice to see some updates but to mention things like this:
    “Fix some warnings appearing with clang 3.7”
    is desperate.

    1. That’s a commit log. It’s all of the commits to the master branch between last release and this release. That is not a list of features.

Comments are closed.