[0.3.0] - 2015-07-28

All notable changes for version [v0.3.0] are documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning since release [v0.4.0].

Added

  • New gameplay features

    • Projectile arcs and ranged attack

    • Dropsites

    • Garrisoning

    • Gathering from resource objects

    • Quicksave/Quickload

    • Selection boxes

    • Display HP bar

    • Switch to correct villager graphics when gathering

    • Auto-task idle units

    • Villager commands and building

    • Show building outlines on selected buildings

  • cython-based C++-/Python interface

    • Handle openage as shared library

    • Move C++ source files to ./libopenage subdirectory

    • Move Python source files to ./openage subdirectory

    • Integrate cython into buildsystem

  • New logging system

  • Add testing for the coordinate system

  • CI caching

  • Customizable key bindings

  • More ideas for AI

  • Add documentation for buildings in AoE2

  • Add a CMake ‘doc’ target that explains why doc generation will not work

  • Add documentation and instructions for ingame development build hotkeys

  • Star count in README

  • Enable call graph generation in doxygen

  • Test cases for job manager

  • Add tests for pathfinder

  • Use C++14 as new standard

  • for_each function for containers

  • Random number generator (XORShift)

  • Introduce namespaced math constants available on all plattforms

  • Add a mode indicator label in map view

  • Color support for CMake

  • Add new discovered variables in empires.dat gamedata to converter logic

  • TerrainObjects handle building annexes using child/parent spaces

  • UnitTexture class handles delta graphics

Changed

  • Change ./configure instruction compiler argument to use gcc and clang instead of gnu and llvm

  • Use SVG build status image instead of PNG in README

  • Moved documentation files to ./doc subdirectory

  • Abort build on checkfull fail

  • Replace GLEW with libepoxy

  • Run make checkfull before compiling

  • Improve check for C++14 and clang

  • Align dependencies column in building.md

  • Improve portability of the CMake detection of opus location

  • use unsigned int C++ data type instead of non-standard uint

  • Use _WIN32 macros instead of WIN32 in CMake

  • Codestyle example updates and simplifications

  • Assure that multiple jobs are executed on the same background thread

  • Jobs can check whether they should be aborted and abort themselves

  • Integrate new job groups into the dynamic audio loading implementation

  • Load missing textures lazily

  • Change uneeded shared_ptr references to unique_ptr

  • Ensure glew.h is loaded before gl.h

  • Use pairing heap in pathfinding

  • Look for sound files in both sounds.drs and sounds_x1.drs folders

Removed

  • Duplicate code for accessing engine camera

  • SDL memleak example

  • Remove leftover config sections for coverity

Fixed

  • Gameplay fixes

    • Ungarrisoning no longer loses units

    • Prevent ranged units from freezing when garrisoning them

    • Make decaying units face correct direction and disappear after a short time

    • Stop segfaulting when gather target is removed

    • Garrison restricted to allied buildings

    • Siege now only placable on land

    • Buildings take time to train a unit

    • Units can ungarrison while the building is training something

  • Clean annexed buildings properly from memory

  • Visual fixes for dock/ships

  • Fix the CMake cmp0054 policy for using quoted if evaluation

  • Fix segfault when shutting down

  • Fix Tile.get_pos_on_chunk() to return the position of the tile on the chunk

  • Case sensitivity fixes

  • Fix crashes for missing arguments when calling executable

  • Clean up comments in converter code

  • Ignore empty gamedata.drs when converting

  • Relocate phys3 hashing to correct file

  • Fix wrong start offset of delta graphics

  • Add forgotten comment line separators in csv output

  • Fix judgement of child_errno

  • Do not assign lambda to variable

  • Fix new[]/delete mismatch

  • Fix error messages for legal header copyright years

  • Fix codecompliance script to be compatible with git rebase and cherry-pick

  • Fix conversion of empires.dat file strings with garbage data past their \0 terminators

  • Pass strings as const references instead of copying them

  • Better pep8 compliance

  • Various horrible typos (#301, #307)