* all except pol
* pol and includes under defines
* something weird has happened
* remove own folder from include searchpath
* fixed remaining, adapted include style for external headers
* missing include
* isolate uofile globals into a singleton
* refactor singleton into object instance in uoconvert
* get rid of lazy loading and singleton, move singleton to uotool
* move files
* fix includes
* delete dead code
* relocate singleton
* move functions into uotool
* move uotool only static functions
* get rid of uofilei.h
* get rid of uofile.h
* extract tiledatacache class
* extract staticscache class and file handle UniqueFile
* clean map reading
* fix uoconvert errors with map2
* fix line length
* C style to std::array
* light modernization
* fix old Tokuno map issue
* quick fixes
* restructure mapwriter to store files in memory until a write is needed
* add dirty flag to only flush files which changed
* change uoconvert use of mapwriter to a stack variable
* added detailed timers to uoconvert map
* precalculate lowest adjacent z so we dont need to calculate again for each tile
* syntax formatting
* read landtiles directly instead of using safe_getmapinfo
* encapsulate the solid block processing result for a single block
* make processing parallel - 5 sec to 2,7 sec for britannia
* add changelog entry
* reduce redundant per-tile work in the solid-block loop
* bucket each static block once instead of rescanning it per tile
readstatics_block() presorts a block's statics by cell in a single pass
(storage order preserved); each tile's bucket then serves directly as the
per-tile scratch, dropping the 64x whole-block rescan and the per-tile copy.
Outputs byte-identical (SHA256 gate, map+maptile, both realms).
* extract merge_shapes and flatten the water-type lookup
- the shape-consolidation loop moves verbatim into merge_shapes(), with
its invariants and comments; ComputeSolidBlock now reads as
collect -> filter -> sort -> merge -> emit
- DiscardedWaterTypes is snapshotted into a flat per-graphic table after
config load; the hot per-static probe drops the tree lookup
Outputs byte-identical (SHA256 gate, map+maptile, both realms).
* name the conversion's magic numbers
MAX_LANDTILE_ID joins LANDTILE_COUNT in plib; wall height, water-discard
window and sand-over-water gap become named constexprs. Landtile classifiers become constexpr in
terrainplane.h with their id lists sourced. Outputs byte-identical.
* unify the block-index math into one helper per layout
realm_block_index (8x8 row-major: base.dat/solidx1/statics.dat),
maptile_index (64x64, rounded-up stride), and staticblock_from_coords
(client mul column-major, reused in RawMap::rawinfo) replace eight
hand-rolled copies of the stride dance. SOLIDX_* macros become constexpr;
dead mapblob.h (wrong 16x16 sizes, never included) is deleted.
Outputs byte-identical; unittest_pol+escript suites pass.
* refactor file writing
* add file RAII
* fix macos
* document uofiles and MORE_SOLIDS flag
* modernize: span for extract_planes, set contains, const/constexpr fixes
* update changelog
* probe landtile classes through a compile-time table and change push_back to emplace_back
* fix corechanges.xml mismatch
* add erorr handling to ReadEntireFile
Added uoconvert.cfg element StaticOptions extended by DiscardedWaterTiles. Lists
the tiles that will be discarded during the processing of solid statics, where
the map is at or below the same Z level as the static, allowing boats to bump
into shores. Defaults to tiles in the range from 0x1796 to 0x17B2 if not present
in the config file.
* use c++20
* increased used clang version
* compiler report and logfacility use now compile time formatting, which
means that the formatstring gets checked at compile time. (which found 2 errors)
adapted a few places since report only accepts formatting arguments
adapted a few places with logging since char[] is compile time
formatting and string or chr* is runtime formatting
* use std::ranges instead of boost
* disabled pragma_assume vs specific macro (I guess noone cares)
* needed to fix ancient ms exception code
* modernized SpinLock
* removed unused code in ECompile
* replaced std::filesystem::path::u8string with string. It now returns an actual u8string type
* cleanup layers.h added the defines for other layers which where before
only defined in the pkt
* osmod::OpenConnection and HTTPRequest cleanup: early outs, dont check for pChild which is
only needed for startscript and placed suspend at the very last
position
* fix warning
* rebuild cache with new compiler version
* define c++ standard for external libs where possible
* added fixme
- Add uoconvert support for MultiCollection.uop
- Allow multiple elements in MultiTypes and Mounts in uoconvert.cfg
- Simplify entries in uoconvert.cfg to remove House and Stairs properties in the MultiTypes element
* POLLOG* macros use the new formatting
removed all old logging functions
* removed old fmt lib from everything except StreamWriter
removed unneeded functions
* fixed review comments
* renamed include guard to be able to use both format lib versions in
parallel
* build Fmt lib and link it into clib
* use std::string instead of format Writer for logging
added variant "2" for logging with new fmt lib
* use new logging variant for two logs
* always add \n to flush log, lets see if the assumption holds
* use new lib for tostring
* replaced all INFO_PRINTS in clib
* formatter for Token, BObject and BObjectImp
* started with bsccript
* use function instead of actual object for logging
* remaining bscript, started plib
* logvariant without newline added, more template magic
* format support for base types, added test for format padding
new version for fdump
* chanhed ecompile/runecl fixed compilation with ESCRIPT_PROFILE
* rewrite INFO_PRINT in plib,poltool/uoconvert/uotool
* replaced remaining INFO_PRINTS, renamed macros INFO_PRINT for logging
without newline, INFO_PRINTLN for newline addition.
Replaced also INFO_PRINT_TRACE and renamed it to INFO_PRINTLN_TRACE
* gitignore for fmt lib
* cleanup vim leftovers
Authors are not forced to use the clang-format setting, but should
atleast be inspired by the style.
The only thing which is now not allowed are tabs for ident/alignment!