GithubHelp home page GithubHelp logo

openapoc / openapoc Goto Github PK

View Code? Open in Web Editor NEW
488.0 64.0 97.0 116.08 MB

Opensource rebuild of the XCOM Apocalypse Engine that requires the original files to run.

Home Page: http://openapoc.org

License: GNU General Public License v3.0

CMake 0.99% C++ 97.90% C 0.47% Shell 0.06% NSIS 0.35% Lua 0.20% XSLT 0.03%
c-plus-plus sdl2 strategy-game-engine turn-based-combat xcom xcom-apocalypse xcom3

openapoc's Introduction

OpenApocalypse Tweet

OpenApoc is an open-source re-implementation of the original X-COM: Apocalypse, that requires the original files to run, licensed under the GPL3 and written in C++ / SDL2. It was originally founded by PmProg in July 2014, and has since grown in community.

Linux Build Status Windows Build Status Openapoc issues Translate OpenApoc OpenApoc GPL3 license
Openapoc forum Openapoc IRC chat Openapoc Discord Openapoc Facebook Openapoc Vkontakte Openapoc Reddit Openapoc Youtube

Table of Contents

Copyright

All rights for the original game and its resources belong to their respective owners. We do not encourage and do not support any form of illegal usage of the original game. We strongly advise to purchase the original game on GOG or other platforms. Pirated ISOs are not supported and will cause issues such as crashes and map problems with OpenApoc.

Key Features

  • Unlimited modding capabilities, which was not possible in the original
  • Port the game to any platform you like (windows, linux, android etc)
  • Support for modern screen resolutions
  • Added a full debug system (hot keys, etc.)
  • Added 'more options' menu (with more than 40 improvements)
  • Added skirmish module (fast fight)
  • The new engine has ample opportunities for expansion and changes:
    • High FPS, smooth sound during the game without bugs from original
    • No limitations which were in vanilla
    • Modern formats
  • After release, we can add Julian Gollop's cut ideas to the game through mods. Many have already been added but they need functionality and balance.
  • Julian Gollop "Yes, I am aware of the openApoc project and I very much do support it."
  • Fans creating Big Apoc Concept, for modders, thats should make OpenApoc more balanced, to provide:
    • A variety of interesting gameplay solutions
    • Make the game more complex and diverse
    • L.O.R.E more fulfilling, deep and mysterious, intertwined with real history and other games
    • Ending the game can be more interesting and less predictable

What's left?

  1. TO HAVE A TRULY PLAYABLE ALPHA STATE (DONE)
  2. TO REACH A BETA STATE (When All features implemented)
  3. TO REACH OPENAPOC RELEASE 1.0
  4. Modding Functions, Extra Features, Enhancements and Quality of Life Updates

Contribute and FAQ

http://openapoc.org/#contribute

Here you find news, detailing how you can participate in project. You can support the project by testing, translating, modding, drawing, modeling, concepting etc..

http://openapoc.org/#faq

Here you find the detailed FAQ (frequently asked questions)

Building

OpenApocalypse is built leveraging a number of libraries - to provide needed functionality (and save us the time of implementing it badly ourselves). Note: The following libraries will be fetched and built with vcpkg in a later step, ensuring you get the correct version.

  • SDL2
  • Boost - We specifially use the 'locale' library, used for localisation, 'algorithm' for some small stuff in string handling, 'program-options' for settings management, 'date-time' for some formatting, and parts of 'UUID' and 'CRC' for their hash functions and some temporary filename stuff.
  • Qt - needed for the launcher, can be disabled with 'BUILD_LAUNCHER'.
  • Libunwind - debug backtracing on linux - not needed on windows.
  • LibVorbis - Ogg vorbis music decoder library.

The following libraries are also used, but are shipped as submodules in the repository and directly included in the build, so you don't need to install these dependencies to build or use OpenApoc.

  • GLM - Math library.
  • libsmacker - Decoder for .smk video files.
  • lodepng - Reading/writing PNG image files.
  • Lua - Scripting language.
  • miniz - Zlib-comptible compression library.
  • physfs - Library for reading data from .iso files or directory trees (Note: We use a patched version, available on GitHub - required to read the .iso files we use).
  • pugixml - XML library used for reading/writing the game data files.
  • fmtlib - A c++ string formatting library - proposed for c++20 standard.

Building on Windows

  • Install Visual Studio (2017 or later) with "Desktop Development with C++" workload.
  • Install a Git client eg. Github Desktop.
  • Checkout OpenApoc from GitHub.
  • If you are using the GitHub Desktop client, the submodules should already be setup at first checkout. If not, or if the submodules have been updated, run the following commands in the 'git shell' from the root of the OpenApoc repository. This should reset the submodule checkouts to the latest versions (NOTE: This will overwrite any changes to code in the dependencies/ directory).
git submodule update --init --recursive
  • All the other dependencies (Boost, SDL2, Qt) need to be supplied separately. Install Vcpkg and integrate with Visual Studio. If you'd rather install them manually, run the following command:

    • For x64 builds:
vcpkg --triplet x64-windows install sdl2 boost-locale boost-program-options boost-uuid boost-crc qt5-base libvorbis
  • For x86 builds:
vcpkg --triplet x86-windows install sdl2 boost-locale boost-program-options boost-uuid boost-crc qt5-base libvorbis
  • For list of all supported by Vcpkg architectures: vcpkg help triplet

  • Copy the original XCom:Apocalypse .iso file into the "data/" directory. This could also be a directory containing all the extracted files from the CD, and it should be named the same (IE the directory should be data/cd.iso/). This is used during the build to extract some data tables.

  • Open the OpenApoc directory in Visual Studio (if you don't have an Open Folder option, generate a project with CMake).

  • Set your configuration to x64-Release or x86-Release (must match your Vcpkg dependencies). Release is recommended as Debug is very slow.

  • Visual Studio should automatically detect and configure CMake appropriately. If you didn't integrate Vcpkg, you will need to manually add it to your CMake Settings file:

    • Visual Studio 2017:
"variables": [
    {
        "name": "CMAKE_TOOLCHAIN_FILE",
        "value": "<path to vcpkg>\\scripts\\buildsystems\\vcpkg.cmake"
    }
]
  • Visual Studio 2019: Build > CMake Settings > Toolchain file > <path to vcpkg>\\scripts\\buildsystems\\vcpkg.cmake

  • Build OpenApoc. This will take a while on the first build, especially if Vcpkg hasn't installed all the dependencies yet. If you get errors, clear your cache from the Project/CMake menu and try again.

  • When running OpenApoc from the Visual Studio UI, the working directory is set to the root of the project, so the data folder should already be in the right place. If you want to run outside of Visual Studio, you need to copy the whole 'data' folder (including the cd.iso file) into the folder openapoc.exe resides in.

Building on Linux

(Tested on Ubuntu 22.04)

  • On Ubuntu, install the following packages:
sudo apt-get install sdl2-dev cmake build-essential git libunwind8-dev libboost-locale-dev libboost-program-options-dev qtbase5-dev libvorbis-dev
  • On Mageia, install the following packages as root:
urpmi "cmake(sdl2)" libstdc++-static-devel boost-devel boost unwind-devel task-c++-devel cmake git qtbase5-devel libvorbis-devel
  • On Fedora or other RedHat distro, install the folowing packages as root:
yum groupinstall "Development Tools" "Development Libraries"
yum install git SDL2-devel cmake libunwind-devel qt5-qtbase-devel libvorbis-devel
  • Checkout OpenApoc from GitHub.
  • Fetch the dependencies from git with the following terminal command (run from the just-created OpenApoc folder).
git submodule update --init --recursive
  • Copy the cd.iso file to the 'data' directory under the repository root (Note - despite dosbox having good linux support, the steam version of X-Com Apocalypse will only install if Steam Play is enabled).
cp /path/to/cd.iso data/
  • Create a subdirectory ('build' in this example) in the OpenApoc checkout directory, and from that use cmake to configure OpenApoc.
cd /path/to/OpenApoc
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo ..
  • This cmake command will fail if we're missing a dependency, or your system is for some other reason unable to build - if you have any issues please contact us (see above for links).
  • Build the project with the following command.
make -j4
  • This should create a directory 'bin' under the build directory, with the 'OpenApoc' executable file. OpenApoc by default expects the data folder to be in the current working directory, so running the executable from the root of the git checkout should work.
./build/bin/OpenApoc

Building on macOS

(Tested on macOS Ventura 13.0 (22A380)

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  • Checkout OpenApoc from GitHub:
git clone https://github.com/OpenApoc/OpenApoc.git
  • Fetch the dependencies from git with the following terminal command (run from the just-created OpenApoc folder):
cd /path/to/OpenApoc
git submodule update --init --recursive
  • Use the homebrew install the following dependencies:
brew install cmake boost pkg-config sdl2 qt@5 libvorbis
echo 'export PATH="/opt/homebrew/opt/qt@5/bin:$PATH"' >> ~/.bashrc
  • Copy the cd.iso file to the 'data' directory under the repository root (Note - despite dosbox having good linux support, the steam version of X-Com Apocalypse will only install if Steam Play is enabled).
cp /path/to/cd.iso data/
  • Create a subdirectory ('build' in this example) in the OpenApoc checkout directory, and from that use cmake to configure OpenApoc.
cd /path/to/OpenApoc
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo ..
  • This cmake command will fail if we're missing a dependency, or your system is for some other reason unable to build - if you have any issues please contact us (see above for links).
  • Build the project with the following command:
make -j4
  • This should create a directory 'bin' under the build directory, with the 'OpenApoc' executable file. OpenApoc by default expects the data folder to be in the current working directory, so running the executable from the root of the git checkout should work.
cd ..
open ./build/bin/OpenApoc.app

OpenApoc Coding Style

https://www.ufopaedia.org/index.php/Coding_Style_(OpenApoc)

This document specifies the guidelines for writing and formatting the c++ code that forms the core of OpenApoc.

How to setup OpenApoc

OPENGL 2.0 SUPPORTIVE VIDEO CARDS ARE REQUIRED

WINDOWS USERS: You will require the LATEST Visual C++ Libraries obtained from windows update to run OpenApoc https://docs.microsoft.com/en-US/cpp/windows/latest-supported-vc-redist?view=msvc-170

(Keep in mind that OpenApoc is ALPHA STATE - this means bugs, crushes and not all features implemented, use our bug-tracker at https://github.com/OpenApoc/OpenApoc/issues to report bugs and navigate known ones)

  1. Download the OpenApoc core files: Windows Build Status (Latest master build)
  • If the build link above doesn't work, visit https://ci.appveyor.com/project/OpenApoc/openapoc/history
  • If you see a green bar next to the latest build then you can download it, click a build that is green, or use "Show More" to list all builds
  • Click ARTIFACTS (Currently only Windows x64)
  • If there are no artifacts use https://github.com/OpenApoc/OpenApoc/releases for the latest Winx64 compile
  • Download the option that ends with a ".exe" (and without "debug" in it)
  • Run the downloaded exe installer, this will guide you through the installation
  • Use "portable install" if you want saves and settings to remain in the install directory
  1. Acquire the original X-Com Apocalypse CD-ROM and create an ISO Image of that, or use Steam's "cd.iso" or GOGs "xcom.cue"/"xcom.bin"
  • If you have already specified the "cd.iso" location in the installer, you don't need to do this step
  • You need have all files in the disc ISO file including MUSIC so only legit ISOs will work and not torrents that often lack the music
  • If the disc image is in .iso format, rename it to "cd.iso"
  • We also support the GOG .cue / .bin files!
  1. Put cd.iso (image or folder) into the data folder under the specified OpenApoc install folder
  • If you have already specified the "cd.iso" location in the installer, you don't need to do this step
  • To use GOG .cue/.bin you rename the XCOM.cue file to "cd.iso", put that in the OpenApoc data folder, then put the XCOM.BIN, without renaming it, into the data folder too
  1. Run and enjoy!

Contact us

If you're interested, please visit our website.

openapoc's People

Contributors

5thavenue avatar andy51 avatar atrosha avatar ayrtondenner avatar dl471 avatar emptyvoid avatar filmboy84 avatar franciscoda avatar idshibanov avatar istrebitel avatar jarskih avatar jonnyh avatar kgd192 avatar kurtsley avatar luiscamara avatar makus82 avatar pmprog avatar redrobin84 avatar redv avatar sfalexrog avatar shadowdancer avatar siemensschuckert avatar sparkstar avatar steveschnepp avatar stewartmatheson avatar superusercode avatar supsuper avatar treacherousone avatar xracer avatar zigmar avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

openapoc's Issues

Compile Error on Visual Studio 2013

Physfs

Error

Error 18 error C2065: 'rc' : undeclared identifier openapoc\dependencies\physfs\src\archiver_iso9660.c 712 1 physfs

Fix

archiver_iso9660.c - Line 709 should be braced

    if (bytesleft < len)
        {
        len = bytesleft;
        }

Allegro Error

Error 14 error C2664: 'char *_al_sane_strncpy(char *,const char *,size_t)' : cannot convert argument 2 from 'const WCHAR [260]' to 'const char *' openapoc\dependencies\allegro\src\win\wjoydxnu.cpp 485 1 allegro5

Game refuses to start with ripped CD, should it?

Some people still have small drives it seems, and for them it's better running the game with only graphics files (without music file which takes a lot of space proportionate to others). Some people, on the other hand, use a modified music file, with remastered music.

It seems before OpenApoc would run with a 0-length music file but now it complains if the file is of a different length.

Should we allow the game to run w/o music file, or with modified music file?

Figure out a better format than Xml for some (or all) our data files

Currently saving battlescape takes an unacceptable amount of time because it saves arrays of 0's and 1's and shit, and resulting file takes like 50 megabytes even compressed.

Xml is not a good format for anything except small packs of human-modified data. It's definitly not to be used for:

  • game saves (those containing things like map part lists, arrays of data etc.)
  • game maps / tilesets / sectors
  • voxel mapsโ€‹

We should figure out a new way to store stuff so that save/load times become acceptable at the very least

Form borders are strange

Some forms have a minsize of 640x480 but size of 646x484 and have a border of 2x2. Some don't. This looks good right now with form having a border, but what if a user wants to play fullscreen 640x480? It will still have a border! And user will see topleft border and miss 2px of the form content in the bottom right.

I propose to figure some way to change all forms to be 640x480, and add border in some other way (like, display a border under form if some tag is present on the form?)

Crediting Contributors

We really need to make a list of contributors so we don't miss anyone.

Don't know if it needs to be in the game, in a text file, or just on the OpenApoc site; but we should have one

Fonts for other languages

Right now the game comes with translation for many languages but it seems the fonts don't support it? Can we somehow quickly convert some basic font into game-usable format so that we can support at least cyrillic and most european languages?

Spritesheet error on Windows

Took ages to start the game, and got this:

A fatal error has occured

Spritesheet size 957 would be over max array size 512 - falling back to 'slow' path.

Did actually load and work though

We need a storage class for categorised externalised engine variables.

What I'm talking about is externalising things like max speed item can travel along XY when thrown, ticks it takes battleunit to move 1 voxel, projectile speed modifier, how many attempts pathfinding does before giving up, ticks between AI updates, AI priority multipliers for certain actions etc. All this should not be hardcoded but should be read from a file. And it should go in categories so there is a tree structure, at least 1 level deep. So it looks like

AI Consts

  • AI priority multiplier for action: throw grenade
  • AI priority multiplier for action: fire weapon
    ...

BattleUnit consts

  • Ticks per frame travelled
  • Ticks per frame turned
  • Ticks per debuff application
    ...

UI Icons

  • Icon for squad arrow #1 selected
  • Icon for squad arrow #1 unselected
    ...โ€‹

Missing Ufopaedia Strings

We don't seem to have any strings for the armours in STRINGS.XML

STR_MEGAPOL_BODY_ARMOUR
STR_MEGAPOL_BODY_ARMOUR_INFO
STR_MARSEC_BODY_UNIT
STR_MARSEC_BODY_UNIT_INFO
STR_XCOM_BODY_SHIELD
STR_XCOM_BODY_SHIELD_INFO

Vehicles should be on the map at all times

If you open vanilla's map in city, you'll see that all vehicles that are in buildings are still displayed on top of one of the exit ports. And if you give orders in pause, they show the direction they'll take.

In our implementation, vehicles are not present on map if they're not actually moving around it. So, when vehicle is parked, there's no way to see its target lines (where it's ordered to go).

Source tree: Check-in auto-generated code

Since 2ac50b1, some of the source files are auto-generated during build phase. Right now this works just fine for me as long as I'm using cmake && make combo, but some IDEs that claim cmake compatibility (cough_clion_cough) choke on the file generation process. What's even more concerning is the possibility of "cross-compiling" for other platforms with, uh, "native" tools. I'm pretty sure it's not that complicated to add some gradle magic to android builds and get all the files generated, but that'd actually require some build tools outside of the SDK+NDK combo.

Another point is that we've got some "auto-generated" data in the repo anyway (though it's not a fair comparison, seeing how regenerating data would take considerably longer and it's not compiled in), so generated files should not be a big problem, provided we regenerate them once in a while.

Rendering big or moving objects is improper

Rendering algorithm we use only properly renders objects that stay in their tiles. Otherwise all sorts of artifacts happen. We need a new algorithm to properly render moving objects and 2ั…2ั…2 units

Proper leading target code

Right now the code that calculates leading target is a crude implementation

This happens in places like:
- vehicle firing on vehicle
- vehicle firing on projectile
- unit firing on unit

  • brainsucker jumping on unit

We just add target's velocity multiplied by time for us to arrive. This is only correct if target is moving perpindicularily to fire vector on a sphere, or moving very slowly. Otherwise this fails. A proper intercept calculation should be made instead.

Rework vehicle firing

Right now vehicles firing is implemented in a strange way:

  • First we cycle through every equipment on vehicle
    to see if we have any functional weapon and remember biggest firing arc
  • Then we look for closest enemy in the firing arc.
  • Then we call "attack this enemy"
  • In which we again cycle through every equipment on vehicle
    and again confirm chosen enemy is within its firing arc

Instead we could just:

  • Cycle through every equipment
  • If it's a weapon then
  • If we already know an enemy matching this firing arc - attack him
  • If not - find an enemy matching this firing arc - attack him

Engine performance in battlescape and ways to improve it

Currently profiling shows that an intense battle (36 anthropods vs base defenses) has processor time spread as follows:

  • 50% on redering, of which:

  • 25% (a half) rendering map parts

  • 7% on TileObject.getCenter

  • 24% on battle.update, of which:

  • 10% updating map parts

  • 7% updating units, of which

  • 2% unit AI

  • 2% unit movement

I thought about making several code paths parallel, but it seems that won't improve a lot. How could we improve the most costly part, rendering map parts? It seems mostly spending time on allocation and deallocation if you dig further.

And is it worth paralleling stuff like unit AI and map part update, which takes like about 12% of total load?

I mean, here's what I could do (and it will take a lot of time):

  1. Right now unit AI is called when unit is updated, and gives a decision which is executed immediately.
    Instead, we could run all AI in parallel, store all decisions then execute them all in parallel.

  2. Right now, map parts try to re-link themselves immediately when they die.
    Instead, we could add all map parts that need re-linking to a set, and then update them after all map parts are updated.
    If we do some other changes, like, convert fallen map parts into rubble also in the end, not immediately, this would allow us to execute map part update in parallel.

  3. Several other cases could probably go parallel by adopting same model: instead of writing change immediately, store it in some place where we can write simulatenously, and then gather all the info and process it at once.

Is it worth the time? It looks like no, but I want to confirm. I want OpenApoc to run as good as it can, but at the same time its no use spending time on optimisation that's not worth the effort. Wanted to know your guys' opinion on this.

Figure out a better way of handling data to account for modding

Currently several things hamper modding:

a) There is no way to delete something.โ€‹

How do I remove Personal Disruptor Shields from the game? All I can do is make them useless, unproducable, name them "Broken Item" and expect player to sell the stock. But I should be able to just have them vanish once player installed the mod.

b) We don't separate types and templates from actual game data

Everything is loaded on game start and saved in one place. There is no real difference between changing an AgentType (which should never happen during the game, but could happen via modding) or changing City's Vehicles (which is done constantly during game, and should not be changed via modding).

IMHO, Data should be separated. Dome data should load from data files and never be changeable by playing the game (like, playing the game cannot change damage value of laser sniper). Some should be loaded, changed and saved (game data like agents, vehicles, projectiles...). This would allow us to mod data without it getting stored in the saves. Like, we would be able to change AgentType and have it affect the save that is loaded on next run, since AgentType is not stored in the save, but only referenced. This would both allow us to have saves take less space, and have way easier time using mods (even turning on/off mid-playthrough which EVERYBODY will want).

One other crucial example is dependencies and completeness of research. We change that directly in the data itself! Shouldn't it be some other place where we track what's developed and what's complete?

Crash when going into Battle

Exception thrown at 0x103F3CD8 (ig75icd32.dll) in OpenApoc.exe: 0xC0000005: Access violation reading location 0x00000520.
If there is a handler for this exception, the program may be safely continued.

OpenApoc.exe!OpenApoc::DataImpl::loadImage(const OpenApoc::UString & path, bool lazy) Line 596 C++
OpenApoc.exe!OpenApoc::serializeIn(const OpenApoc::GameState * __formal, std::shared_ptrOpenApoc::SerializationNode node, std::shared_ptrOpenApoc::Image & ptr) Line 90 C++
OpenApoc.exe!OpenApoc::serializeIn(const OpenApoc::GameState * state, std::shared_ptrOpenApoc::SerializationNode node, OpenApoc::BattleMapPartType & obj) Line 1721 C++
OpenApoc.exe!OpenApoc::serializeInOpenApoc::BattleMapPartType(const OpenApoc::GameState * state, std::shared_ptrOpenApoc::SerializationNode node, std::shared_ptrOpenApoc::BattleMapPartType & ptr) Line 162 C++
OpenApoc.exe!OpenApoc::serializeInOpenApoc::UString,std::shared_ptr<OpenApoc::BattleMapPartType >(const OpenApoc::GameState * state, std::shared_ptrOpenApoc::SerializationNode node, std::mapOpenApoc::UString,std::shared_ptr<OpenApoc::BattleMapPartType,std::lessOpenApoc::UString,std::allocator<std::pair<OpenApoc::UString const ,std::shared_ptrOpenApoc::BattleMapPartType > > > & map) Line 224 C++
OpenApoc.exe!OpenApoc::serializeIn(const OpenApoc::GameState * state, std::shared_ptrOpenApoc::SerializationNode node, OpenApoc::BattleMapTileset & obj) Line 590 C++

Threading GameCore loading

I want to thread BootUp::CreateGameCore so we can display a splash and that spinning disc icon to feel more responsive.

However, when I tried this, it crashed when it tried to move from the BootUp to the Menu stage. Can we look at this and get it fixed

Tab character breaks game

If a string contains a tab (by error?) it breaks the string printing as the charactersets don't recognise it.

We should either:
a) Replace tab characters with two spaces in code (or maybe even just one)
b) Maps tab char in the font xmls to a space

Wordwrapping - Line Break Characters

Control's WordWrapText function currently only line-breaks on a space.
Need to define a set of characters to which it needs to actually support breaks

Cityscape has no UI

ufodata/isobord* files seem to contain the 640x128 images used for the cityscape UI. Enable loading these (They're just palette indices with a 640 stride, no compression) and wire up to a Form

Textedit doesn't work

Looks like after moving to SDL api something got broken (onclick event sets editing = true and editing = false in single event.

Could you take a look @SupSuper ?

inverted image

http://f5.s.qip.ru/tfn6TIvs.png

openapoc_log.txt
I 0 __cdecl OpenApoc::Framework::Framework(const class OpenApoc::UString,const class std::vector<class OpenApoc::UString,class std::allocator >): Starting framework
I 1000100 __cdecl OpenApoc::Framework::Framework(const class OpenApoc::UString,const class std::vector<class OpenApoc::UString,class std::allocator >): Loading config

I 2000100 __cdecl OpenApoc::Data::Data(class OpenApoc::Framework &,class std::vector<class OpenApoc::UString,class std::allocator >,int,int,int): Initialised image loader allegro
I 2000100 __cdecl OpenApoc::Data::Data(class OpenApoc::Framework &,class std::vector<class OpenApoc::UString,class std::allocator >,int,int,int): Initialised sample loader raw
I 2000100 __cdecl OpenApoc::Data::Data(class OpenApoc::Framework &,class std::vector<class OpenApoc::UString,class std::allocator >,int,int,int): Initialised music loader raw
I 2000100 __cdecl OpenApoc::Data::Data(class OpenApoc::Framework &,class std::vector<class OpenApoc::UString,class std::allocator >,int,int,int): Setting write directory to "C:\Users\yriy\AppData\Roaming\OpenApoc\OpenApoc"
I 2000100 __cdecl OpenApoc::Data::Data(class OpenApoc::Framework &,class std::vector<class OpenApoc::UString,class std::allocator >,int,int,int): Resource dir "./data/cd.iso" mounted to "/"
I 2000100 __cdecl OpenApoc::Data::Data(class OpenApoc::Framework &,class std::vector<class OpenApoc::UString,class std::allocator >,int,int,int): Resource dir "./data/cd.iso" mounted to "/"
I 2000100 __cdecl OpenApoc::Data::Data(class OpenApoc::Framework &,class std::vector<class OpenApoc::UString,class std::allocator >,int,int,int): Resource dir "./data" mounted to "/"
I 2000100 __cdecl OpenApoc::Data::Data(class OpenApoc::Framework &,class std::vector<class OpenApoc::UString,class std::allocator >,int,int,int): Resource dir "./data" mounted to "/"
I 3000200 class OpenApoc::IFile __cdecl OpenApoc::Data::load_file(const class OpenApoc::UString &,enum OpenApoc::Data::FileMode): Loading "MUSIC" from "./data/cd.iso/MUSIC"
I 3000200 class OpenApoc::UString __cdecl anonymous-namespace'::GetCorrectCaseFilename(const class OpenApoc::UString &): Failed to find file "FileDoesntExist" I 3000200 class OpenApoc::IFile __cdecl OpenApoc::Data::load_file(const class OpenApoc::UString &,enum OpenApoc::Data::FileMode): Failed to find "FileDoesntExist" I 3000200 void __cdecl OpenApoc::Framework::Display_Initialise(void): Init display I 226013000 __cdeclanonymous-namespace'::OGL30Renderer::OGL30Renderer(void): Viewport {0,0,1600,900}
I 226013000 __cdecl anonymous-namespace'::OGL30Renderer::OGL30Renderer(void): MAX_ARRAY_TEXTURE_LAYERS: 2048 I 226013000 __cdeclanonymous-namespace'::OGL30Renderer::OGL30Renderer(void): MAX_COMBINED_TEXTURE_IMAGE_UNITS: 32
I 226013000 void __cdecl OpenApoc::Framework::Display_Initialise(void): Using renderer: OGL3.0 Renderer
I 226013000 void __cdecl OpenApoc::Framework::Audio_Initialise(void): Initialise Audio
I 251014400 void __cdecl OpenApoc::Framework::Audio_Initialise(void): Using sound backend allegro
I 251014400 void __cdecl OpenApoc::Framework::Run(void): Program loop started
I 260014900 class std::shared_ptr __cdecl `anonymous-namespace'::AllegroImageLoader::loadImage(class OpenApoc::UString): Failed to read image XCOM3/UFODATA/PAL_06.DAT
I 260014900 class std::shared_ptr __cdecl OpenApoc::Data::load_image(const class OpenApoc::UString &): Failed to load image "XCOM3/UFODATA/PAL_06.DAT"
I 261015000 class OpenApoc::IFile __cdecl OpenApoc::Data::load_file(const class OpenApoc::UString &,enum OpenApoc::Data::FileMode): Loading "XCOMAPOC.XML" from "./data/XCOMAPOC.XML"
I 262015000 class OpenApoc::IFile __cdecl OpenApoc::Data::load_file(const class OpenApoc::UString &,enum OpenApoc::Data::FileMode): Loading "XCOM3/UFODATA/PAL_06.DAT" from "./data/cd.iso/XCOM3/UFODATA/PAL_06.DAT"
I 262015000 void __cdecl OpenApoc::GameCore::ParseXMLDoc(class OpenApoc::UString): Loading XML file "XCOMAPOC.XML" - found at "./data/XCOMAPOC.XML"
I 263015100 class OpenApoc::IFile __cdecl OpenApoc::Data::load_file(const class OpenApoc::UString &,enum OpenApoc::Data::FileMode): Loading "LANGUAGES/LANGUAGES.XML" from "./data/LANGUAGES/LANGUAGES.XML"
I 263015100 void __cdecl OpenApoc::GameCore::ParseXMLDoc(class OpenApoc::UString): Loading XML file "LANGUAGES/LANGUAGES.XML" - found at "./data/LANGUAGES/LANGUAGES.XML"
I 263015100 class OpenApoc::IFile __cdecl OpenApoc::Data::load_file(const class OpenApoc::UString &,enum OpenApoc::Data::FileMode): Loading "LANGUAGES/STRINGS.XML" from "./data/LANGUAGES/STRINGS.XML"
I 263015100 void __cdecl OpenApoc::GameCore::ParseXMLDoc(class OpenApoc::UString): Loading XML file "LANGUAGES/STRINGS.XML" - found at "./data/LANGUAGES/STRINGS.XML"
I 266015200 class OpenApoc::IFile __cdecl OpenApoc::Data::load_file(const class OpenApoc::UString &,enum OpenApoc::Data::FileMode): Loading "LANGUAGES/FONTS.XML" from "./data/LANGUAGES/FONTS.XML"
I 266015200 void __cdecl OpenApoc::GameCore::ParseXMLDoc(class OpenApoc::UString): Loading XML file "LANGUAGES/FONTS.XML" - found at "./data/LANGUAGES/FONTS.XML"
I 266015200 class OpenApoc::IFile __cdecl OpenApoc::Data::load_file(const class OpenApoc::UString &,enum OpenApoc::Data::FileMode): Loading "LANGUAGES/SMALFONT.XML" from "./data/LANGUAGES/SMALFONT.XML"
I 267015300 void __cdecl OpenApoc::GameCore::ParseXMLDoc(class OpenApoc::UString): Loading XML file "LANGUAGES/SMALFONT.XML" - found at "./data/LANGUAGES/SMALFONT.XML"
I 270015500 class OpenApoc::IFile __cdecl OpenApoc::Data::load_file(const class OpenApoc::UString &,enum OpenApoc::Data::FileMode): Loading "xcom3/ufodata/smalfont.dat" from "./data/cd.iso/XCOM3/UFODATA/SMALFONT.DAT"
I 271015500 class OpenApoc::IFile __cdecl OpenApoc::Data::load_file(const class OpenApoc::UString &,enum OpenApoc::Data::FileMode): Loading "LANGUAGES/BIGFONT.XML" from "./data/LANGUAGES/BIGFONT.XML"
I 271015500 void __cdecl OpenApoc::GameCore::ParseXMLDoc(class OpenApoc::UString): Loading XML file "LANGUAGES/BIGFONT.XML" - found at "./data/LANGUAGES/BIGFONT.XML"
I 271015500 class OpenApoc::IFile __cdecl OpenApoc::Data::load_file(const class OpenApoc::UString &,enum OpenApoc::Data::FileMode): Loading "bigfont.dat" from "./data/bigfont.dat"
E 273015600 class std::shared_ptr __cdecl OpenApoc::ApocalypseFont::loadFont(class OpenApoc::Framework &,class tinyxml2::XMLElement *): apocfont "BIGFONT" glyph "ะฏ" has invalid offset 93 - file contains a max of 93 - skipping glyph 0x000000013FBC4C08 tinyxml2::XMLComment::ToComment+0x27ea8
0x000000013FBDC042 tinyxml2::XMLDocument::ShallowEqual+0xa742
0x000000013FBDCBE7 tinyxml2::XMLDocument::ShallowEqual+0xb2e7
0x000000013FBDBDF6 tinyxml2::XMLDocument::ShallowEqual+0xa4f6
0x000000013FBDCBE7 tinyxml2::XMLDocument::ShallowEqual+0xb2e7
0x000000013FBDBDF6 tinyxml2::XMLDocument::ShallowEqual+0xa4f6
0x000000013FBDB3F6 tinyxml2::XMLDocument::ShallowEqual+0x9af6
0x000000013FBD63D5 tinyxml2::XMLDocument::ShallowEqual+0x4ad5
0x000000013FBD7D4B tinyxml2::XMLDocument::ShallowEqual+0x644b
0x000000013FBD882A tinyxml2::XMLDocument::ShallowEqual+0x6f2a
0x000000013FBD816A tinyxml2::XMLDocument::ShallowEqual+0x686a
0x000000013FBD86F4 tinyxml2::XMLDocument::ShallowEqual+0x6df4
0x000000013FBD860D tinyxml2::XMLDocument::ShallowEqual+0x6d0d
0x000007FEF3C820DB Concurrency::details::_UnrealizedChore::_CheckTaskCollection+0x56b
0x000007FEF3C89497 CRT_RTC_INITW+0x23f7
0x000007FEF3C88025 CRT_RTC_INITW+0xf85
0x000007FEF3C9E15B Concurrency::details::_SetUnobservedExceptionHandler+0x56b
0x0000000076EA652D BaseThreadInitThunk+0xd
0x00000000770DC521 RtlUserThreadStart+0x21

I 1981113300 class OpenApoc::IFile __cdecl OpenApoc::Data::load_file(const class OpenApoc::UString &,enum OpenApoc::Data::FileMode): Loading "LANGUAGES/SMALLSET.XML" from "./data/LANGUAGES/SMALLSET.XML"
I 1982113400 void __cdecl OpenApoc::GameCore::ParseXMLDoc(class OpenApoc::UString): Loading XML file "LANGUAGES/SMALLSET.XML" - found at "./data/LANGUAGES/SMALLSET.XML"
I 1989113800 class OpenApoc::IFile __cdecl OpenApoc::Data::load_file(const class OpenApoc::UString &,enum OpenApoc::Data::FileMode): Loading "xcom3/ufodata/smallset.dat" from "./data/cd.iso/XCOM3/UFODATA/SMALLSET.DAT"
I 1991113900 class OpenApoc::IFile __cdecl OpenApoc::Data::load_file(const class OpenApoc::UString &,enum OpenApoc::Data::FileMode): Loading "UI/GRAPHICALIAS.XML" from "./data/UI/GRAPHICALIAS.XML"
I 1991113900 void __cdecl OpenApoc::GameCore::ParseXMLDoc(class OpenApoc::UString): Loading XML file "UI/GRAPHICALIAS.XML" - found at "./data/UI/GRAPHICALIAS.XML"
I 1991113900 class OpenApoc::IFile __cdecl OpenApoc::Data::load_file(const class OpenApoc::UString &,enum OpenApoc::Data::FileMode): Loading "UI/MAINMENU.XML" from "./data/UI/MAINMENU.XML"
I 1992114000 void __cdecl OpenApoc::GameCore::ParseXMLDoc(class OpenApoc::UString): Loading XML file "UI/MAINMENU.XML" - found at "./data/UI/MAINMENU.XML"
I 2167124000 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "Control" has 0 subcontrols (0, 0, 640, 32)
I 2167124000 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "Control" has 0 subcontrols (410, 464, 200, 16)
I 2169124100 class OpenApoc::IFile __cdecl OpenApoc::Data::load_file(const class OpenApoc::UString &,enum OpenApoc::Data::FileMode): Loading "XCOM3/UFODATA/NEWBUT.PCK" from "./data/cd.iso/XCOM3/UFODATA/NEWBUT.PCK"
I 2170124200 class OpenApoc::IFile __cdecl OpenApoc::Data::load_file(const class OpenApoc::UString &,enum OpenApoc::Data::FileMode): Loading "XCOM3/UFODATA/NEWBUT.TAB" from "./data/cd.iso/XCOM3/UFODATA/NEWBUT.TAB"
I 2173124300 class std::shared_ptr __cdecl OpenApoc::PCKLoader::load(class OpenApoc::Data &,class OpenApoc::UString,class OpenApoc::UString): Loaded "XCOM3/UFODATA/NEWBUT.PCK" - 80 images, max size {224,50}
I 2174124400 class OpenApoc::IFile __cdecl OpenApoc::Data::load_file(const class OpenApoc::UString &,enum OpenApoc::Data::FileMode): Loading "XCOM3/RAWSOUND/STRATEGC/INTRFACE/BUTTON1.RAW" from "./data/cd.iso/XCOM3/RAWSOUND/STRATEGC/INTRFACE/BUTTON1.RAW"
I 2174124400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "CHECK_DEBUGMODE" has 0 subcontrols (621, 464, 19, 16)
I 2174124400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "Control" has 3 subcontrols (2, 2, 640, 480)
I 2175124400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_NEWGAME" has 0 subcontrols (172, 190, 300, 32)
I 2175124400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_LOADGAME" has 0 subcontrols (172, 240, 300, 32)
I 2175124400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_OPTIONS" has 0 subcontrols (172, 290, 300, 32)
I 2175124400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_QUIT" has 0 subcontrols (172, 340, 300, 32)
I 2175124400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "FORM_MAINMENU" has 5 subcontrols (478, 208, 644, 484)
I 2175124400 class OpenApoc::IFile __cdecl OpenApoc::Data::load_file(const class OpenApoc::UString &,enum OpenApoc::Data::FileMode): Loading "UI/OPTIONS.XML" from "./data/UI/OPTIONS.XML"
I 2175124400 void __cdecl OpenApoc::GameCore::ParseXMLDoc(class OpenApoc::UString): Loading XML file "UI/OPTIONS.XML" - found at "./data/UI/OPTIONS.XML"
I 2175124400 void __cdecl OpenApoc::GameCore::ApplyAliases(class tinyxml2::XMLElement *): imagex value "TESTBACKGROUND" matches alias "xcom3/UFODATA/AGENTEQP.PCX"
I 2175124400 void __cdecl OpenApoc::GameCore::ApplyAliases(class tinyxml2::XMLElement *): textbutton attribute "text" value "TESTALIAS" matches alias "Testing Alias Text"
I 2352134600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "SCROLL_LISTPOSITION" has 0 subcontrols (559, 85, 13, 350)
I 2352134600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TEST_XCOMBASE" has 0 subcontrols (482, 349, 44, 32)
I 2352134600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TEST_UFOPAEDIA" has 0 subcontrols (482, 349, 44, 32)
I 2352134600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_DEBUGGING" has 0 subcontrols (482, 349, 44, 32)
I 2352134600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TEMP" has 0 subcontrols (482, 349, 44, 32)
I 2352134600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TEMP" has 0 subcontrols (482, 349, 44, 32)
I 2352134600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TEMP" has 0 subcontrols (482, 349, 44, 32)
I 2352134600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TEMP" has 0 subcontrols (482, 349, 44, 32)
I 2352134600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TEMP" has 0 subcontrols (482, 349, 44, 32)
I 2352134600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TEMP" has 0 subcontrols (482, 349, 44, 32)
I 2352134600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TEMP" has 0 subcontrols (482, 349, 44, 32)
I 2352134600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TEMP" has 0 subcontrols (482, 349, 44, 32)
I 2352134600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TEMP" has 0 subcontrols (482, 349, 44, 32)
I 2352134600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TEMP" has 0 subcontrols (482, 349, 44, 32)
I 2352134600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "LISTBOX_OPTIONS" has 13 subcontrols (23, 68, 526, 381)
I 2352134600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "Control" has 2 subcontrols (2, 2, 640, 480)
I 2352134600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_QUIT" has 0 subcontrols (604, 446, 35, 34)
I 2352134600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "TEXTEDIT_A" has 0 subcontrols (0, 468, 100, 16)
I 2352134600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "TEXTEDIT_B" has 0 subcontrols (110, 468, 100, 16)
I 2352134600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "LABEL_TESTXX" has 0 subcontrols (444, 0, 200, 200)
I 2352134600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "FORM_OPTIONSMENU" has 5 subcontrols (478, 208, 644, 484)
I 2352134600 class OpenApoc::IFile __cdecl OpenApoc::Data::load_file(const class OpenApoc::UString &,enum OpenApoc::Data::FileMode): Loading "UI/BASESCREEN.XML" from "./data/UI/BASESCREEN.XML"
I 2353134600 void __cdecl OpenApoc::GameCore::ParseXMLDoc(class OpenApoc::UString): Loading XML file "UI/BASESCREEN.XML" - found at "./data/UI/BASESCREEN.XML"
I 2353134600 void __cdecl OpenApoc::GameCore::ApplyAliases(class tinyxml2::XMLElement *): imagedepressed value "BUTTON_OK_DEPRESSED" matches alias "PCK:XCOM3/UFODATA/NEWBUT.PCK:XCOM3/UFODATA/NEWBUT.TAB:5:XCOM3/UFODATA/PAL_01.DAT"
I 2503143200 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "SCROLL_LISTPOSITION" has 0 subcontrols (32, 453, 180, 13)
I 2503143200 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "Control" has 1 subcontrols (2, 2, 640, 480)
I 2503143200 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_BASE_HIREFIRESTAFF" has 0 subcontrols (604, 42, 33, 32)
I 2503143200 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_BASE_BUYSELL" has 0 subcontrols (604, 82, 35, 34)
I 2503143200 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_BASE_TRANSFER" has 0 subcontrols (604, 122, 35, 34)
I 2503143200 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_BASE_EQUIPAGENT" has 0 subcontrols (604, 162, 35, 34)
I 2503143200 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_BASE_EQUIPVEHICLE" has 0 subcontrols (604, 202, 35, 34)
I 2503143200 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_BASE_RES_AND_MANUF" has 0 subcontrols (604, 242, 35, 34)
I 2503143200 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_BASE_ALIEN_CONTAINMENT" has 0 subcontrols (604, 282, 35, 34)
I 2503143200 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_OK" has 0 subcontrols (604, 445, 35, 34)
I 2503143200 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "FORM_BASESCREEN" has 9 subcontrols (478, 208, 644, 484)
I 2503143200 class OpenApoc::IFile __cdecl OpenApoc::Data::load_file(const class OpenApoc::UString &,enum OpenApoc::Data::FileMode): Loading "UI/UFOPAEDIA.XML" from "./data/UI/UFOPAEDIA.XML"
I 2503143200 void __cdecl OpenApoc::GameCore::ParseXMLDoc(class OpenApoc::UString): Loading XML file "UI/UFOPAEDIA.XML" - found at "./data/UI/UFOPAEDIA.XML"
I 2503143200 void __cdecl OpenApoc::GameCore::ApplyAliases(class tinyxml2::XMLElement *): imagedepressed value "BUTTON_OK_DEPRESSED" matches alias "PCK:XCOM3/UFODATA/NEWBUT.PCK:XCOM3/UFODATA/NEWBUT.TAB:5:XCOM3/UFODATA/PAL_01.DAT"
I 2716155400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "Control" has 0 subcontrols (2, 2, 640, 480)
I 2716155400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "Control" has 0 subcontrols (20, 16, 320, 40)
I 2716155400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "Control" has 0 subcontrols (344, 62, 270, 40)
I 2716155400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_ORGANISATIONS" has 0 subcontrols (4, 62, 636, 40)
I 2716155400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "Control" has 0 subcontrols (344, 102, 270, 40)
I 2716155400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_VEHICLES" has 0 subcontrols (4, 102, 636, 40)
I 2716155400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "Control" has 0 subcontrols (344, 142, 270, 40)
I 2716155400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_VEHICLEEQUIPMENT" has 0 subcontrols (4, 142, 636, 40)
I 2716155400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "Control" has 0 subcontrols (344, 182, 270, 40)
I 2716155400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_EQUIPMENT" has 0 subcontrols (4, 182, 636, 40)
I 2716155400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "Control" has 0 subcontrols (344, 222, 270, 40)
I 2716155400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_FACILITIES" has 0 subcontrols (4, 222, 636, 40)
I 2716155400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "Control" has 0 subcontrols (344, 262, 270, 40)
I 2716155400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_ALIENCRAFT" has 0 subcontrols (4, 262, 636, 40)
I 2716155400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "Control" has 0 subcontrols (344, 302, 270, 40)
I 2716155400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_ALIENS" has 0 subcontrols (4, 302, 636, 40)
I 2716155400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "Control" has 0 subcontrols (344, 342, 270, 40)
I 2716155400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_ALIENDIMENSION" has 0 subcontrols (4, 342, 636, 40)
I 2716155400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "Control" has 0 subcontrols (344, 382, 270, 40)
I 2716155400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_BUILDINGS" has 0 subcontrols (4, 382, 636, 40)
I 2716155400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_QUIT" has 0 subcontrols (604, 444, 35, 34)
I 2716155400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "FORM_UFOPAEDIA_TITLE" has 21 subcontrols (478, 208, 644, 484)
I 2716155400 void __cdecl OpenApoc::GameCore::ApplyAliases(class tinyxml2::XMLElement *): imagedepressed value "BUTTON_OK_DEPRESSED" matches alias "PCK:XCOM3/UFODATA/NEWBUT.PCK:XCOM3/UFODATA/NEWBUT.TAB:5:XCOM3/UFODATA/PAL_01.DAT"
I 2716155400 void __cdecl OpenApoc::GameCore::ApplyAliases(class tinyxml2::XMLElement *): imagedepressed value "BUTTON_PAEDIA_NEXTSECTION" matches alias "PCK:XCOM3/UFODATA/PED-BUT.PCK:XCOM3/UFODATA/PED-BUT.TAB:5:UI/UFOPAEDIA.PAL"
I 2716155400 void __cdecl OpenApoc::GameCore::ApplyAliases(class tinyxml2::XMLElement *): imagedepressed value "BUTTON_PAEDIA_NEXTTOPIC" matches alias "PCK:XCOM3/UFODATA/PED-BUT.PCK:XCOM3/UFODATA/PED-BUT.TAB:4:UI/UFOPAEDIA.PAL"
I 2716155400 void __cdecl OpenApoc::GameCore::ApplyAliases(class tinyxml2::XMLElement *): imagedepressed value "BUTTON_PAEDIA_PREVTOPIC" matches alias "PCK:XCOM3/UFODATA/PED-BUT.PCK:XCOM3/UFODATA/PED-BUT.TAB:3:UI/UFOPAEDIA.PAL"
I 2716155400 void __cdecl OpenApoc::GameCore::ApplyAliases(class tinyxml2::XMLElement *): imagedepressed value "BUTTON_PAEDIA_PREVSECTION" matches alias "PCK:XCOM3/UFODATA/PED-BUT.PCK:XCOM3/UFODATA/PED-BUT.TAB:2:UI/UFOPAEDIA.PAL"
I 2716155400 void __cdecl OpenApoc::GameCore::ApplyAliases(class tinyxml2::XMLElement *): imagedepressed value "BUTTON_PAEDIA_INFO" matches alias "PCK:XCOM3/UFODATA/PED-BUT.PCK:XCOM3/UFODATA/PED-BUT.TAB:0:UI/UFOPAEDIA.PAL"
I 2920167100 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "TEXT_TITLE_DATA" has 0 subcontrols (12, 22, 350, 22)
I 2920167100 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "TEXT_ORG_DATA" has 0 subcontrols (20, 280, 270, 180)
I 2920167100 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "TEXT_INFO" has 0 subcontrols (344, 62, 270, 400)
I 2920167100 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_QUIT" has 0 subcontrols (604, 444, 35, 34)
I 2920167100 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_NEXT_SECTION" has 0 subcontrols (570, 449, 26, 24)
I 2920167100 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_NEXT_TOPIC" has 0 subcontrols (538, 449, 26, 24)
I 2920167100 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_PREVIOUS_TOPIC" has 0 subcontrols (507, 449, 26, 24)
I 2920167100 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_PREVIOUS_SECTION" has 0 subcontrols (475, 449, 26, 24)
I 2920167100 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_INFORMATION" has 0 subcontrols (433, 444, 35, 34)
I 2920167100 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "SCROLL_LISTPOSITION" has 0 subcontrols (263, 4, 13, 362)
I 2920167100 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "LISTBOX_SHORTCUTS" has 0 subcontrols (4, 4, 260, 362)
I 2920167100 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "INFORMATION_PANEL" has 2 subcontrols (340, 68, 280, 370)
I 2920167100 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BACKGROUND_PICTURE" has 10 subcontrols (2, 2, 640, 480)
I 2920167100 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "FORM_UFOPAEDIA_BASE" has 1 subcontrols (478, 208, 644, 484)
I 2921167100 class OpenApoc::IFile __cdecl OpenApoc::Data::load_file(const class OpenApoc::UString &,enum OpenApoc::Data::FileMode): Loading "UI/DIFFICULTYMENU.XML" from "./data/UI/DIFFICULTYMENU.XML"
I 2922167200 void __cdecl OpenApoc::GameCore::ParseXMLDoc(class OpenApoc::UString): Loading XML file "UI/DIFFICULTYMENU.XML" - found at "./data/UI/DIFFICULTYMENU.XML"
I 2922167200 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "Control" has 0 subcontrols (0, 0, 640, 32)
I 2922167200 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "Control" has 1 subcontrols (2, 2, 640, 480)
I 2922167200 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_DIFFICULTY1" has 0 subcontrols (172, 190, 300, 32)
I 2922167200 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_DIFFICULTY2" has 0 subcontrols (172, 240, 300, 32)
I 2922167200 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_DIFFICULTY3" has 0 subcontrols (172, 290, 300, 32)
I 2922167200 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_DIFFICULTY4" has 0 subcontrols (172, 340, 300, 32)
I 2922167200 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_DIFFICULTY5" has 0 subcontrols (172, 390, 300, 32)
I 2922167200 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "FORM_DIFFICULTYMENU" has 6 subcontrols (478, 208, 644, 484)
I 2922167200 class OpenApoc::IFile __cdecl OpenApoc::Data::load_file(const class OpenApoc::UString &,enum OpenApoc::Data::FileMode): Loading "UI/DEBUGMENU.XML" from "./data/UI/DEBUGMENU.XML"
I 2922167200 void __cdecl OpenApoc::GameCore::ParseXMLDoc(class OpenApoc::UString): Loading XML file "UI/DEBUGMENU.XML" - found at "./data/UI/DEBUGMENU.XML"
I 2922167200 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_DUMPPCK" has 0 subcontrols (52, 190, 300, 32)
I 2922167200 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_QUIT" has 0 subcontrols (52, 240, 300, 32)
I 2922167200 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "FORM_DEBUG_MENU" has 2 subcontrols (598, 208, 404, 484)
I 2922167200 class OpenApoc::IFile __cdecl OpenApoc::Data::load_file(const class OpenApoc::UString &,enum OpenApoc::Data::FileMode): Loading "UI/INGAMEOPTIONS.XML" from "./data/UI/INGAMEOPTIONS.XML"
I 2922167200 void __cdecl OpenApoc::GameCore::ParseXMLDoc(class OpenApoc::UString): Loading XML file "UI/INGAMEOPTIONS.XML" - found at "./data/UI/INGAMEOPTIONS.XML"
I 2922167200 void __cdecl OpenApoc::GameCore::ApplyAliases(class tinyxml2::XMLElement *): imagedepressed value "BUTTON_OK_DEPRESSED" matches alias "PCK:XCOM3/UFODATA/NEWBUT.PCK:XCOM3/UFODATA/NEWBUT.TAB:5:XCOM3/UFODATA/PAL_01.DAT"
I 2922167200 void __cdecl OpenApoc::GameCore::ApplyAliases(class tinyxml2::XMLElement *): imagedepressed value "BUTTON_SLIDER_LEFT_DEPRESSED" matches alias "PCK:XCOM3/UFODATA/NEWBUT.PCK:XCOM3/UFODATA/NEWBUT.TAB:53:UI/menuopt.pal"
I 2922167200 void __cdecl OpenApoc::GameCore::ApplyAliases(class tinyxml2::XMLElement *): imagedepressed value "BUTTON_SLIDER_RIGHT_DEPRESSED" matches alias "PCK:XCOM3/UFODATA/NEWBUT.PCK:XCOM3/UFODATA/NEWBUT.TAB:54:UI/menuopt.pal"
I 2922167200 void __cdecl OpenApoc::GameCore::ApplyAliases(class tinyxml2::XMLElement *): imagedepressed value "BUTTON_SLIDER_LEFT_DEPRESSED" matches alias "PCK:XCOM3/UFODATA/NEWBUT.PCK:XCOM3/UFODATA/NEWBUT.TAB:53:UI/menuopt.pal"
I 2922167200 void __cdecl OpenApoc::GameCore::ApplyAliases(class tinyxml2::XMLElement *): imagedepressed value "BUTTON_SLIDER_RIGHT_DEPRESSED" matches alias "PCK:XCOM3/UFODATA/NEWBUT.PCK:XCOM3/UFODATA/NEWBUT.TAB:54:UI/menuopt.pal"
I 2922167200 void __cdecl OpenApoc::GameCore::ApplyAliases(class tinyxml2::XMLElement *): imagedepressed value "BUTTON_SLIDER_LEFT_DEPRESSED" matches alias "PCK:XCOM3/UFODATA/NEWBUT.PCK:XCOM3/UFODATA/NEWBUT.TAB:53:UI/menuopt.pal"
I 2922167200 void __cdecl OpenApoc::GameCore::ApplyAliases(class tinyxml2::XMLElement *): imagedepressed value "BUTTON_SLIDER_RIGHT_DEPRESSED" matches alias "PCK:XCOM3/UFODATA/NEWBUT.PCK:XCOM3/UFODATA/NEWBUT.TAB:54:UI/menuopt.pal"
I 3027173200 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_QUIT" has 0 subcontrols (602, 443, 35, 34)
I 3027173200 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "GLOBAL_GAIN_DOWN" has 0 subcontrols (61, 262, 16, 20)
I 3028173200 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "GLOBAL_GAIN_UP" has 0 subcontrols (222, 262, 17, 20)
I 3028173200 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "GLOBAL_GAIN_SLIDER" has 0 subcontrols (76, 264, 145, 14)
I 3028173200 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "MUSIC_GAIN_DOWN" has 0 subcontrols (61, 290, 16, 20)
I 3028173200 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "MUSIC_GAIN_UP" has 0 subcontrols (222, 290, 17, 20)
I 3028173200 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "MUSIC_GAIN_SLIDER" has 0 subcontrols (76, 290, 145, 14)
I 3028173200 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "SAMPLE_GAIN_DOWN" has 0 subcontrols (61, 318, 16, 20)
I 3028173200 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "SAMPLE_GAIN_UP" has 0 subcontrols (222, 318, 17, 20)
I 3028173200 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "SAMPLE_GAIN_SLIDER" has 0 subcontrols (76, 318, 145, 14)
I 3028173200 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "Control" has 10 subcontrols (0, 0, 640, 480)
I 3028173200 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "FORM_INGAMEOPTIONS" has 1 subcontrols (480, 210, 640, 480)
I 3028173200 class OpenApoc::IFile __cdecl OpenApoc::Data::load_file(const class OpenApoc::UString &,enum OpenApoc::Data::FileMode): Loading "UI/CITY/city.xml" from "./data/UI/CITY/city.xml"
I 3028173200 void __cdecl OpenApoc::GameCore::ParseXMLDoc(class OpenApoc::UString): Loading XML file "UI/CITY/city.xml" - found at "./data/UI/CITY/city.xml"
I 3030173300 class OpenApoc::IFile __cdecl OpenApoc::Data::load_file(const class OpenApoc::UString &,enum OpenApoc::Data::FileMode): Loading "XCOM3/UFODATA/ISOBORD1.DAT" from "./data/cd.iso/XCOM3/UFODATA/ISOBORD1.DAT"
I 3033173500 class std::shared_ptr __cdecl anonymous-namespace'::AllegroImageLoader::loadImage(class OpenApoc::UString): Failed to read image XCOM3/UFODATA/PAL_01.DAT I 3033173500 class std::shared_ptr<class OpenApoc::Image> __cdecl OpenApoc::Data::load_image(const class OpenApoc::UString &): Failed to load image "XCOM3/UFODATA/PAL_01.DAT" I 3035173600 class OpenApoc::IFile __cdecl OpenApoc::Data::load_file(const class OpenApoc::UString &,enum OpenApoc::Data::FileMode): Loading "XCOM3/UFODATA/PAL_01.DAT" from "./data/cd.iso/XCOM3/UFODATA/PAL_01.DAT" I 3035173600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "Control" has 0 subcontrols (0, 0, 640, 128) I 3035173600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_1" has 0 subcontrols (145, 22, 41, 21) I 3035173600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_2" has 0 subcontrols (189, 22, 41, 21) I 3035173600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_3" has 0 subcontrols (233, 22, 41, 21) I 3035173600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_4" has 0 subcontrols (277, 22, 41, 21) I 3035173600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_5" has 0 subcontrols (321, 22, 41, 21) I 3035173600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_6" has 0 subcontrols (365, 22, 41, 21) I 3035173600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_7" has 0 subcontrols (409, 22, 41, 21) I 3035173600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_8" has 0 subcontrols (453, 22, 41, 21) I 3035173600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_FOLLOW_VEHICLE" has 0 subcontrols (4, 7, 71, 21) I 3035173600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TOGGLE_STRATMAP" has 0 subcontrols (4, 30, 71, 21) I 3035173600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SHOW_ALIEN_INFILTRATION" has 0 subcontrols (4, 53, 35, 21) I 3035173600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SHOW_SCORE" has 0 subcontrols (40, 53, 35, 21) I 3035173600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SHOW_UFOPAEDIA" has 0 subcontrols (4, 76, 71, 21) I 3035173600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SHOW_OPTIONS" has 0 subcontrols (4, 99, 71, 21) I 3035173600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SHOW_LOG" has 0 subcontrols (83, 3, 25, 25) I 3035173600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_ZOOM_EVENT" has 0 subcontrols (532, 3, 25, 25) I 3036173700 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SPEED0" has 0 subcontrols (565, 7, 71, 21) I 3036173700 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SPEED1" has 0 subcontrols (565, 53, 35, 21) I 3036173700 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SPEED2" has 0 subcontrols (600, 53, 35, 21) I 3036173700 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SPEED3" has 0 subcontrols (565, 76, 35, 21) I 3036173700 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SPEED4" has 0 subcontrols (600, 76, 35, 21) I 3036173700 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SPEED5" has 0 subcontrols (565, 100, 71, 21) I 3036173700 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "FORM_CITY_UI_1" has 23 subcontrols (480, 772, 640, 128) I 3037173700 class OpenApoc::IFile __cdecl OpenApoc::Data::load_file(const class OpenApoc::UString &,enum OpenApoc::Data::FileMode): Loading "XCOM3/UFODATA/ISOBORD2.DAT" from "./data/cd.iso/XCOM3/UFODATA/ISOBORD2.DAT" I 3040173900 class std::shared_ptr<class OpenApoc::Image> __cdeclanonymous-namespace'::AllegroImageLoader::loadImage(class OpenApoc::UString): Failed to read image XCOM3/UFODATA/PAL_01.DAT
I 3040173900 class std::shared_ptr __cdecl OpenApoc::Data::load_image(const class OpenApoc::UString &): Failed to load image "XCOM3/UFODATA/PAL_01.DAT"
I 3041174000 class OpenApoc::IFile __cdecl OpenApoc::Data::load_file(const class OpenApoc::UString &,enum OpenApoc::Data::FileMode): Loading "XCOM3/UFODATA/PAL_01.DAT" from "./data/cd.iso/XCOM3/UFODATA/PAL_01.DAT"
I 3042174000 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "Control" has 0 subcontrols (0, 0, 640, 128)
I 3042174000 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_1" has 0 subcontrols (145, 22, 41, 21)
I 3042174000 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_2" has 0 subcontrols (189, 22, 41, 21)
I 3042174000 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_3" has 0 subcontrols (233, 22, 41, 21)
I 3042174000 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_4" has 0 subcontrols (277, 22, 41, 21)
I 3042174000 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_5" has 0 subcontrols (321, 22, 41, 21)
I 3042174000 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_6" has 0 subcontrols (365, 22, 41, 21)
I 3042174000 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_7" has 0 subcontrols (409, 22, 41, 21)
I 3042174000 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_8" has 0 subcontrols (453, 22, 41, 21)
I 3042174000 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_FOLLOW_VEHICLE" has 0 subcontrols (4, 7, 71, 21)
I 3042174000 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TOGGLE_STRATMAP" has 0 subcontrols (4, 30, 71, 21)
I 3042174000 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SHOW_ALIEN_INFILTRATION" has 0 subcontrols (4, 53, 35, 21)
I 3042174000 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SHOW_SCORE" has 0 subcontrols (40, 53, 35, 21)
I 3042174000 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SHOW_UFOPAEDIA" has 0 subcontrols (4, 76, 71, 21)
I 3042174000 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SHOW_OPTIONS" has 0 subcontrols (4, 99, 71, 21)
I 3042174000 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SHOW_LOG" has 0 subcontrols (83, 3, 25, 25)
I 3042174000 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_ZOOM_EVENT" has 0 subcontrols (532, 3, 25, 25)
I 3042174000 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SPEED0" has 0 subcontrols (565, 7, 71, 21)
I 3042174000 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SPEED1" has 0 subcontrols (565, 53, 35, 21)
I 3042174000 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SPEED2" has 0 subcontrols (600, 53, 35, 21)
I 3042174000 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SPEED3" has 0 subcontrols (565, 76, 35, 21)
I 3042174000 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SPEED4" has 0 subcontrols (600, 76, 35, 21)
I 3042174000 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SPEED5" has 0 subcontrols (565, 100, 71, 21)
I 3042174000 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "FORM_CITY_UI_2" has 23 subcontrols (480, 772, 640, 128)
I 3044174100 class OpenApoc::IFile __cdecl OpenApoc::Data::load_file(const class OpenApoc::UString &,enum OpenApoc::Data::FileMode): Loading "XCOM3/UFODATA/ISOBORD3.DAT" from "./data/cd.iso/XCOM3/UFODATA/ISOBORD3.DAT"
I 3046174300 class std::shared_ptr __cdecl anonymous-namespace'::AllegroImageLoader::loadImage(class OpenApoc::UString): Failed to read image XCOM3/UFODATA/PAL_01.DAT I 3046174300 class std::shared_ptr<class OpenApoc::Image> __cdecl OpenApoc::Data::load_image(const class OpenApoc::UString &): Failed to load image "XCOM3/UFODATA/PAL_01.DAT" I 3049174400 class OpenApoc::IFile __cdecl OpenApoc::Data::load_file(const class OpenApoc::UString &,enum OpenApoc::Data::FileMode): Loading "XCOM3/UFODATA/PAL_01.DAT" from "./data/cd.iso/XCOM3/UFODATA/PAL_01.DAT" I 3049174400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "Control" has 0 subcontrols (0, 0, 640, 128) I 3049174400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_1" has 0 subcontrols (145, 22, 41, 21) I 3049174400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_2" has 0 subcontrols (189, 22, 41, 21) I 3049174400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_3" has 0 subcontrols (233, 22, 41, 21) I 3049174400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_4" has 0 subcontrols (277, 22, 41, 21) I 3049174400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_5" has 0 subcontrols (321, 22, 41, 21) I 3049174400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_6" has 0 subcontrols (365, 22, 41, 21) I 3049174400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_7" has 0 subcontrols (409, 22, 41, 21) I 3049174400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_8" has 0 subcontrols (453, 22, 41, 21) I 3049174400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_FOLLOW_VEHICLE" has 0 subcontrols (4, 7, 71, 21) I 3049174400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TOGGLE_STRATMAP" has 0 subcontrols (4, 30, 71, 21) I 3049174400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SHOW_ALIEN_INFILTRATION" has 0 subcontrols (4, 53, 35, 21) I 3049174400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SHOW_SCORE" has 0 subcontrols (40, 53, 35, 21) I 3049174400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SHOW_UFOPAEDIA" has 0 subcontrols (4, 76, 71, 21) I 3049174400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SHOW_OPTIONS" has 0 subcontrols (4, 99, 71, 21) I 3049174400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SHOW_LOG" has 0 subcontrols (83, 3, 25, 25) I 3049174400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_ZOOM_EVENT" has 0 subcontrols (532, 3, 25, 25) I 3049174400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SPEED0" has 0 subcontrols (565, 7, 71, 21) I 3049174400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SPEED1" has 0 subcontrols (565, 53, 35, 21) I 3049174400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SPEED2" has 0 subcontrols (600, 53, 35, 21) I 3049174400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SPEED3" has 0 subcontrols (565, 76, 35, 21) I 3050174500 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SPEED4" has 0 subcontrols (600, 76, 35, 21) I 3050174500 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SPEED5" has 0 subcontrols (565, 100, 71, 21) I 3050174500 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "FORM_CITY_UI_3" has 23 subcontrols (480, 772, 640, 128) I 3051174500 class OpenApoc::IFile __cdecl OpenApoc::Data::load_file(const class OpenApoc::UString &,enum OpenApoc::Data::FileMode): Loading "XCOM3/UFODATA/ISOBORD4.DAT" from "./data/cd.iso/XCOM3/UFODATA/ISOBORD4.DAT" I 3054174700 class std::shared_ptr<class OpenApoc::Image> __cdeclanonymous-namespace'::AllegroImageLoader::loadImage(class OpenApoc::UString): Failed to read image XCOM3/UFODATA/PAL_01.DAT
I 3054174700 class std::shared_ptr __cdecl OpenApoc::Data::load_image(const class OpenApoc::UString &): Failed to load image "XCOM3/UFODATA/PAL_01.DAT"
I 3055174800 class OpenApoc::IFile __cdecl OpenApoc::Data::load_file(const class OpenApoc::UString &,enum OpenApoc::Data::FileMode): Loading "XCOM3/UFODATA/PAL_01.DAT" from "./data/cd.iso/XCOM3/UFODATA/PAL_01.DAT"
I 3056174800 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "Control" has 0 subcontrols (0, 0, 640, 128)
I 3056174800 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_1" has 0 subcontrols (145, 22, 41, 21)
I 3056174800 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_2" has 0 subcontrols (189, 22, 41, 21)
I 3056174800 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_3" has 0 subcontrols (233, 22, 41, 21)
I 3056174800 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_4" has 0 subcontrols (277, 22, 41, 21)
I 3056174800 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_5" has 0 subcontrols (321, 22, 41, 21)
I 3056174800 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_6" has 0 subcontrols (365, 22, 41, 21)
I 3056174800 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_7" has 0 subcontrols (409, 22, 41, 21)
I 3056174800 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_8" has 0 subcontrols (453, 22, 41, 21)
I 3056174800 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_FOLLOW_VEHICLE" has 0 subcontrols (4, 7, 71, 21)
I 3056174800 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TOGGLE_STRATMAP" has 0 subcontrols (4, 30, 71, 21)
I 3056174800 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SHOW_ALIEN_INFILTRATION" has 0 subcontrols (4, 53, 35, 21)
I 3056174800 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SHOW_SCORE" has 0 subcontrols (40, 53, 35, 21)
I 3056174800 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SHOW_UFOPAEDIA" has 0 subcontrols (4, 76, 71, 21)
I 3056174800 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SHOW_OPTIONS" has 0 subcontrols (4, 99, 71, 21)
I 3056174800 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SHOW_LOG" has 0 subcontrols (83, 3, 25, 25)
I 3056174800 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_ZOOM_EVENT" has 0 subcontrols (532, 3, 25, 25)
I 3056174800 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SPEED0" has 0 subcontrols (565, 7, 71, 21)
I 3056174800 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SPEED1" has 0 subcontrols (565, 53, 35, 21)
I 3056174800 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SPEED2" has 0 subcontrols (600, 53, 35, 21)
I 3056174800 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SPEED3" has 0 subcontrols (565, 76, 35, 21)
I 3056174800 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SPEED4" has 0 subcontrols (600, 76, 35, 21)
I 3056174800 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SPEED5" has 0 subcontrols (565, 100, 71, 21)
I 3056174800 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "FORM_CITY_UI_4" has 23 subcontrols (480, 772, 640, 128)
I 3058174900 class OpenApoc::IFile __cdecl OpenApoc::Data::load_file(const class OpenApoc::UString &,enum OpenApoc::Data::FileMode): Loading "XCOM3/UFODATA/ISOBORD5.DAT" from "./data/cd.iso/XCOM3/UFODATA/ISOBORD5.DAT"
I 3060175100 class std::shared_ptr __cdecl anonymous-namespace'::AllegroImageLoader::loadImage(class OpenApoc::UString): Failed to read image XCOM3/UFODATA/PAL_01.DAT I 3060175100 class std::shared_ptr<class OpenApoc::Image> __cdecl OpenApoc::Data::load_image(const class OpenApoc::UString &): Failed to load image "XCOM3/UFODATA/PAL_01.DAT" I 3062175200 class OpenApoc::IFile __cdecl OpenApoc::Data::load_file(const class OpenApoc::UString &,enum OpenApoc::Data::FileMode): Loading "XCOM3/UFODATA/PAL_01.DAT" from "./data/cd.iso/XCOM3/UFODATA/PAL_01.DAT" I 3062175200 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "Control" has 0 subcontrols (0, 0, 640, 128) I 3062175200 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_1" has 0 subcontrols (145, 22, 41, 21) I 3063175200 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_2" has 0 subcontrols (189, 22, 41, 21) I 3063175200 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_3" has 0 subcontrols (233, 22, 41, 21) I 3063175200 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_4" has 0 subcontrols (277, 22, 41, 21) I 3063175200 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_5" has 0 subcontrols (321, 22, 41, 21) I 3063175200 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_6" has 0 subcontrols (365, 22, 41, 21) I 3063175200 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_7" has 0 subcontrols (409, 22, 41, 21) I 3063175200 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_8" has 0 subcontrols (453, 22, 41, 21) I 3063175200 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_FOLLOW_VEHICLE" has 0 subcontrols (4, 7, 71, 21) I 3063175200 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TOGGLE_STRATMAP" has 0 subcontrols (4, 30, 71, 21) I 3063175200 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SHOW_ALIEN_INFILTRATION" has 0 subcontrols (4, 53, 35, 21) I 3063175200 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SHOW_SCORE" has 0 subcontrols (40, 53, 35, 21) I 3063175200 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SHOW_UFOPAEDIA" has 0 subcontrols (4, 76, 71, 21) I 3063175200 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SHOW_OPTIONS" has 0 subcontrols (4, 99, 71, 21) I 3063175200 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SHOW_LOG" has 0 subcontrols (83, 3, 25, 25) I 3063175200 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_ZOOM_EVENT" has 0 subcontrols (532, 3, 25, 25) I 3063175200 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SPEED0" has 0 subcontrols (565, 7, 71, 21) I 3063175200 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SPEED1" has 0 subcontrols (565, 53, 35, 21) I 3063175200 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SPEED2" has 0 subcontrols (600, 53, 35, 21) I 3063175200 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SPEED3" has 0 subcontrols (565, 76, 35, 21) I 3063175200 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SPEED4" has 0 subcontrols (600, 76, 35, 21) I 3063175200 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SPEED5" has 0 subcontrols (565, 100, 71, 21) I 3063175200 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "FORM_CITY_UI_5" has 23 subcontrols (480, 772, 640, 128) I 3065175300 class OpenApoc::IFile __cdecl OpenApoc::Data::load_file(const class OpenApoc::UString &,enum OpenApoc::Data::FileMode): Loading "XCOM3/UFODATA/ISOBORD6.DAT" from "./data/cd.iso/XCOM3/UFODATA/ISOBORD6.DAT" I 3068175500 class std::shared_ptr<class OpenApoc::Image> __cdeclanonymous-namespace'::AllegroImageLoader::loadImage(class OpenApoc::UString): Failed to read image XCOM3/UFODATA/PAL_01.DAT
I 3068175500 class std::shared_ptr __cdecl OpenApoc::Data::load_image(const class OpenApoc::UString &): Failed to load image "XCOM3/UFODATA/PAL_01.DAT"
I 3069175600 class OpenApoc::IFile __cdecl OpenApoc::Data::load_file(const class OpenApoc::UString &,enum OpenApoc::Data::FileMode): Loading "XCOM3/UFODATA/PAL_01.DAT" from "./data/cd.iso/XCOM3/UFODATA/PAL_01.DAT"
I 3070175600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "Control" has 0 subcontrols (0, 0, 640, 128)
I 3070175600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_1" has 0 subcontrols (145, 22, 41, 21)
I 3070175600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_2" has 0 subcontrols (189, 22, 41, 21)
I 3070175600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_3" has 0 subcontrols (233, 22, 41, 21)
I 3070175600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_4" has 0 subcontrols (277, 22, 41, 21)
I 3070175600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_5" has 0 subcontrols (321, 22, 41, 21)
I 3070175600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_6" has 0 subcontrols (365, 22, 41, 21)
I 3070175600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_7" has 0 subcontrols (409, 22, 41, 21)
I 3070175600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_8" has 0 subcontrols (453, 22, 41, 21)
I 3070175600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_FOLLOW_VEHICLE" has 0 subcontrols (4, 7, 71, 21)
I 3070175600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TOGGLE_STRATMAP" has 0 subcontrols (4, 30, 71, 21)
I 3070175600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SHOW_ALIEN_INFILTRATION" has 0 subcontrols (4, 53, 35, 21)
I 3070175600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SHOW_SCORE" has 0 subcontrols (40, 53, 35, 21)
I 3070175600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SHOW_UFOPAEDIA" has 0 subcontrols (4, 76, 71, 21)
I 3070175600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SHOW_OPTIONS" has 0 subcontrols (4, 99, 71, 21)
I 3070175600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SHOW_LOG" has 0 subcontrols (83, 3, 25, 25)
I 3070175600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_ZOOM_EVENT" has 0 subcontrols (532, 3, 25, 25)
I 3070175600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SPEED0" has 0 subcontrols (565, 7, 71, 21)
I 3070175600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SPEED1" has 0 subcontrols (565, 53, 35, 21)
I 3070175600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SPEED2" has 0 subcontrols (600, 53, 35, 21)
I 3070175600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SPEED3" has 0 subcontrols (565, 76, 35, 21)
I 3070175600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SPEED4" has 0 subcontrols (600, 76, 35, 21)
I 3070175600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SPEED5" has 0 subcontrols (565, 100, 71, 21)
I 3070175600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "FORM_CITY_UI_6" has 23 subcontrols (480, 772, 640, 128)
I 3072175700 class OpenApoc::IFile __cdecl OpenApoc::Data::load_file(const class OpenApoc::UString &,enum OpenApoc::Data::FileMode): Loading "XCOM3/UFODATA/ISOBORD7.DAT" from "./data/cd.iso/XCOM3/UFODATA/ISOBORD7.DAT"
I 3074175900 class std::shared_ptr __cdecl anonymous-namespace'::AllegroImageLoader::loadImage(class OpenApoc::UString): Failed to read image XCOM3/UFODATA/PAL_01.DAT I 3074175900 class std::shared_ptr<class OpenApoc::Image> __cdecl OpenApoc::Data::load_image(const class OpenApoc::UString &): Failed to load image "XCOM3/UFODATA/PAL_01.DAT" I 3076176000 class OpenApoc::IFile __cdecl OpenApoc::Data::load_file(const class OpenApoc::UString &,enum OpenApoc::Data::FileMode): Loading "XCOM3/UFODATA/PAL_01.DAT" from "./data/cd.iso/XCOM3/UFODATA/PAL_01.DAT" I 3077176000 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "Control" has 0 subcontrols (0, 0, 640, 128) I 3077176000 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_1" has 0 subcontrols (145, 22, 41, 21) I 3077176000 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_2" has 0 subcontrols (189, 22, 41, 21) I 3077176000 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_3" has 0 subcontrols (233, 22, 41, 21) I 3077176000 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_4" has 0 subcontrols (277, 22, 41, 21) I 3077176000 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_5" has 0 subcontrols (321, 22, 41, 21) I 3077176000 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_6" has 0 subcontrols (365, 22, 41, 21) I 3077176000 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_7" has 0 subcontrols (409, 22, 41, 21) I 3077176000 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_8" has 0 subcontrols (453, 22, 41, 21) I 3077176000 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_FOLLOW_VEHICLE" has 0 subcontrols (4, 7, 71, 21) I 3077176000 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TOGGLE_STRATMAP" has 0 subcontrols (4, 30, 71, 21) I 3077176000 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SHOW_ALIEN_INFILTRATION" has 0 subcontrols (4, 53, 35, 21) I 3077176000 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SHOW_SCORE" has 0 subcontrols (40, 53, 35, 21) I 3077176000 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SHOW_UFOPAEDIA" has 0 subcontrols (4, 76, 71, 21) I 3077176000 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SHOW_OPTIONS" has 0 subcontrols (4, 99, 71, 21) I 3077176000 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SHOW_LOG" has 0 subcontrols (83, 3, 25, 25) I 3077176000 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_ZOOM_EVENT" has 0 subcontrols (532, 3, 25, 25) I 3077176000 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SPEED0" has 0 subcontrols (565, 7, 71, 21) I 3077176000 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SPEED1" has 0 subcontrols (565, 53, 35, 21) I 3077176000 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SPEED2" has 0 subcontrols (600, 53, 35, 21) I 3077176000 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SPEED3" has 0 subcontrols (565, 76, 35, 21) I 3077176000 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SPEED4" has 0 subcontrols (600, 76, 35, 21) I 3077176000 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SPEED5" has 0 subcontrols (565, 100, 71, 21) I 3077176000 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "FORM_CITY_UI_7" has 23 subcontrols (480, 772, 640, 128) I 3079176100 class OpenApoc::IFile __cdecl OpenApoc::Data::load_file(const class OpenApoc::UString &,enum OpenApoc::Data::FileMode): Loading "XCOM3/UFODATA/ISOBORDA.DAT" from "./data/cd.iso/XCOM3/UFODATA/ISOBORDA.DAT" I 3082176300 class std::shared_ptr<class OpenApoc::Image> __cdeclanonymous-namespace'::AllegroImageLoader::loadImage(class OpenApoc::UString): Failed to read image XCOM3/UFODATA/PAL_01.DAT
I 3082176300 class std::shared_ptr __cdecl OpenApoc::Data::load_image(const class OpenApoc::UString &): Failed to load image "XCOM3/UFODATA/PAL_01.DAT"
I 3083176400 class OpenApoc::IFile __cdecl OpenApoc::Data::load_file(const class OpenApoc::UString &,enum OpenApoc::Data::FileMode): Loading "XCOM3/UFODATA/PAL_01.DAT" from "./data/cd.iso/XCOM3/UFODATA/PAL_01.DAT"
I 3084176400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "Control" has 0 subcontrols (0, 0, 640, 128)
I 3084176400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_1" has 0 subcontrols (145, 22, 41, 21)
I 3084176400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_2" has 0 subcontrols (189, 22, 41, 21)
I 3084176400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_3" has 0 subcontrols (233, 22, 41, 21)
I 3084176400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_4" has 0 subcontrols (277, 22, 41, 21)
I 3084176400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_5" has 0 subcontrols (321, 22, 41, 21)
I 3084176400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_6" has 0 subcontrols (365, 22, 41, 21)
I 3084176400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_7" has 0 subcontrols (409, 22, 41, 21)
I 3084176400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TAB_8" has 0 subcontrols (453, 22, 41, 21)
I 3084176400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_FOLLOW_VEHICLE" has 0 subcontrols (4, 7, 71, 21)
I 3084176400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_TOGGLE_STRATMAP" has 0 subcontrols (4, 30, 71, 21)
I 3084176400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SHOW_ALIEN_INFILTRATION" has 0 subcontrols (4, 53, 35, 21)
I 3084176400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SHOW_SCORE" has 0 subcontrols (40, 53, 35, 21)
I 3084176400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SHOW_UFOPAEDIA" has 0 subcontrols (4, 76, 71, 21)
I 3084176400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SHOW_OPTIONS" has 0 subcontrols (4, 99, 71, 21)
I 3084176400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SHOW_LOG" has 0 subcontrols (83, 3, 25, 25)
I 3084176400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_ZOOM_EVENT" has 0 subcontrols (532, 3, 25, 25)
I 3084176400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SPEED0" has 0 subcontrols (565, 7, 71, 21)
I 3084176400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SPEED1" has 0 subcontrols (565, 53, 35, 21)
I 3084176400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SPEED2" has 0 subcontrols (600, 53, 35, 21)
I 3084176400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SPEED3" has 0 subcontrols (565, 76, 35, 21)
I 3084176400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SPEED4" has 0 subcontrols (600, 76, 35, 21)
I 3085176500 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_SPEED5" has 0 subcontrols (565, 100, 71, 21)
I 3085176500 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "FORM_CITY_UI_8" has 23 subcontrols (480, 772, 640, 128)
I 3085176500 class OpenApoc::IFile __cdecl OpenApoc::Data::load_file(const class OpenApoc::UString &,enum OpenApoc::Data::FileMode): Loading "UI/CITY/infiltration.xml" from "./data/UI/CITY/infiltration.xml"
I 3085176500 void __cdecl OpenApoc::GameCore::ParseXMLDoc(class OpenApoc::UString): Loading XML file "UI/CITY/infiltration.xml" - found at "./data/UI/CITY/infiltration.xml"
I 3227184600 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "Control" has 0 subcontrols (0, 0, 640, 480)
I 3228184700 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_QUIT" has 0 subcontrols (602, 443, 40, 40)
I 3228184700 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "FORM_INFILTRATION_SCREEN" has 2 subcontrols (480, 210, 640, 480)
I 3228184700 class OpenApoc::IFile __cdecl OpenApoc::Data::load_file(const class OpenApoc::UString &,enum OpenApoc::Data::FileMode): Loading "UI/CITY/score.xml" from "./data/UI/CITY/score.xml"
I 3228184700 void __cdecl OpenApoc::GameCore::ParseXMLDoc(class OpenApoc::UString): Loading XML file "UI/CITY/score.xml" - found at "./data/UI/CITY/score.xml"
I 3363192400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "Control" has 0 subcontrols (0, 0, 640, 480)
I 3363192400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "BUTTON_QUIT" has 0 subcontrols (602, 443, 35, 34)
I 3363192400 void __cdecl OpenApoc::Control::ConfigureFromXML(class tinyxml2::XMLElement *): Control "FORM_SCORE_SCREEN" has 2 subcontrols (480, 210, 640, 480)
I 3363192400 class std::shared_ptr __cdecl anonymous-namespace'::AllegroImageLoader::loadImage(class OpenApoc::UString): Failed to read image XCOM3/TACDATA/TACTICAL.PAL I 3363192400 class std::shared_ptr<class OpenApoc::Image> __cdecl OpenApoc::Data::load_image(const class OpenApoc::UString &): Failed to load image "XCOM3/TACDATA/TACTICAL.PAL" I 3365192500 class OpenApoc::IFile __cdecl OpenApoc::Data::load_file(const class OpenApoc::UString &,enum OpenApoc::Data::FileMode): Loading "XCOM3/TACDATA/TACTICAL.PAL" from "./data/cd.iso/XCOM3/TACDATA/TACTICAL.PAL" I 3366192600 class OpenApoc::IFile __cdecl OpenApoc::Data::load_file(const class OpenApoc::UString &,enum OpenApoc::Data::FileMode): Loading "xcom3/TACDATA/MOUSE.DAT" from "./data/cd.iso/XCOM3/TACDATA/MOUSE.DAT" I 3381193400 class OpenApoc::IFile __cdecl OpenApoc::Data::load_file(const class OpenApoc::UString &,enum OpenApoc::Data::FileMode): Loading "music" from "./data/cd.iso/MUSIC" W 95889484600 void __cdeclanonymous-namespace'::AllegroSoundBackend::musicThreadFunction(class anonymous-namespace'::AllegroSoundBackend &,class std::shared_ptr<class OpenApoc::MusicTrack>,class std::function<void __cdecl(void *)>,void *): AllegroSoundBackend: Requested 11025 samples, got 0 - buffer underrun not yet handled correctly E 96890541900 void __cdeclanonymous-namespace'::AllegroSoundBackend::musicThreadFunction(class `anonymous-namespace'::AllegroSoundBackend &,class std::shared_ptr,class std::function<void __cdecl(void *)>,void *): Unimplement track progression 0x000000013FBC2CA6 tinyxml2::XMLComment::ToComment+0x25f46
0x000000013FBC384A tinyxml2::XMLComment::ToComment+0x26aea
0x000007FEF3C0D24C std::_Pad::_Release+0x6c
0x000007FEF3CA4F7F beginthreadex+0x107
0x000007FEF3CA5126 endthreadex+0x192
0x0000000076EA652D BaseThreadInitThunk+0xd
0x00000000770DC521 RtlUserThreadStart+0x21

Alias support in XML

Create an alias node in the openapoc xml format that any text can be looked up against for a "real" value

ie.
PCK:/xcom3/blar/blar.pck...
with
PCK:/xcom3/blar/blar.pck
BLARPIC1

Sometimes in city spacebar stops switching time

Most often happens when attacking with vehicles but couldn't reproduce.
Most likely happens because last time is somehow set to pause when current time is also pause?
Marking this as a bug now so that we remember it exists.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.