Author Topic: Compiling on Linux (2bdc01f)  (Read 5721 times)

tomreyn

  • MegaGlest Team
  • Airship
  • ********
  • Posts: 2,764
    • View Profile
    • MegaGlest - the free and open source cross platform 3D real-time strategy game
Re: Compiling on Linux (2bdc01f)
« Reply #25 on: 17 October 2013, 17:28:25 »
Based on what you write I assume I do not need to rebuild, git pull should be enough. Correct?

I run into this crash (although the screen does not disappear, it just freezes) while loading the character creator now:
Code: [Select]
Crash
Version: Advanced Engine 0.3.93
Built: Tue Oct 15 22:53:57 CEST 2013
Time: Thu Oct 17 19:25:56 2013
Description: SIGSEGV: address not mapped to object
Address: 0xffffffffffffffe8
Backtrace:
./build/source/game/glestadv(_ZN6Shared8Platform24PlatformExceptionHandler7handlerEiP9siginfo_tPv+0x1aa) [0x7c6d0a]
/lib/x86_64-linux-gnu/libpthread.so.0(+0xfbd0) [0x7f0a68d28bd0]
./build/source/game/glestadv(_ZN5Glest7Widgets8DropList11setSelectedERKSs+0x32) [0x74a172]
./build/source/game/glestadv(_ZN5Glest3Gui16CharacterCreator23setupListBoxFactionTypeEv+0xa8) [0x5edb68]
./build/source/game/glestadv(_ZN5Glest3Gui16CharacterCreator17buildSovereignTabEv+0x2eb) [0x5eeccb]
./build/source/game/glestadv(_ZN5Glest3Gui16CharacterCreator9buildTabsEv+0x9) [0x5effd9]
./build/source/game/glestadv(_ZN5Glest4Menu13MenuStateRoot6updateEv+0x100) [0x686c30]
./build/source/game/glestadv(_ZN5Glest4Main7Program4loopEv+0x20e) [0x67603e]
./build/source/game/glestadv(_ZN5Glest4Main9glestMainEiPPc+0x2b6) [0x673126]
./build/source/game/glestadv(main+0x2d) [0x50f95d]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5) [0x7f0a66f06ea5]
./build/source/game/glestadv() [0x512d41]

=======================
atibox: Ryzen 1800X (8 cores @3.6GHz), 32 GB RAM, MSI Radeon RX 580 Gaming X 8G, PCI subsystem ID [1462:3417], (Radeon RX 580 chipset, POLARIS10) @3440x1440; latest stable Ubuntu release, (open source) radeon (amdgpu) / mesa video driver
atibox (old): Core2Quad Q9400 (4 cores @2.66GHz), 8 GB RAM, XFX HD-467X-DDF2, PCI subsystem ID [1682:2931], (Radeon HD 4670, RV730 XT) @1680x1050; latest stable Ubuntu release, (open source) radeon / mesa video driver
notebook: HP envy13d020ng
internet access: VDSL2+

· · · How YOU can contribute to MG · Latest development snapshot · How to build yourself · Megapack techtree · Currently hosted MG games · · ·

MoLAoS

  • Local Moderator
  • Ornithopter
  • ********
  • Posts: 433
    • View Profile
Re: Compiling on Linux (2bdc01f)
« Reply #26 on: 17 October 2013, 17:41:49 »
You need to rebuild. Your version is setting the ListBox to faction 3 which is now faction 2 and there is no 3, because I removed Humans. Sorry. How would you even start the program without rebuilding? Don't you have to hit the green debug button which builds before running the program?

tomreyn

  • MegaGlest Team
  • Airship
  • ********
  • Posts: 2,764
    • View Profile
    • MegaGlest - the free and open source cross platform 3D real-time strategy game
Re: Compiling on Linux (2bdc01f)
« Reply #27 on: 17 October 2013, 18:03:27 »
My terminal window does not provide a green rebuild button. ;-) I was running the same build I was previously reporting about then. Sorry - I should just have rebuilt and tried that.

Which I just did (e57dfd920d3b303f24d1b370e0113066d9c39c58), and the character creator menu came up fine and loaded much more swiftly than before. So that's looking good.
atibox: Ryzen 1800X (8 cores @3.6GHz), 32 GB RAM, MSI Radeon RX 580 Gaming X 8G, PCI subsystem ID [1462:3417], (Radeon RX 580 chipset, POLARIS10) @3440x1440; latest stable Ubuntu release, (open source) radeon (amdgpu) / mesa video driver
atibox (old): Core2Quad Q9400 (4 cores @2.66GHz), 8 GB RAM, XFX HD-467X-DDF2, PCI subsystem ID [1682:2931], (Radeon HD 4670, RV730 XT) @1680x1050; latest stable Ubuntu release, (open source) radeon / mesa video driver
notebook: HP envy13d020ng
internet access: VDSL2+

· · · How YOU can contribute to MG · Latest development snapshot · How to build yourself · Megapack techtree · Currently hosted MG games · · ·

MoLAoS

  • Local Moderator
  • Ornithopter
  • ********
  • Posts: 433
    • View Profile
Re: Compiling on Linux (2bdc01f)
« Reply #28 on: 17 October 2013, 19:17:43 »
My terminal window does not provide a green rebuild button. ;-) I was running the same build I was previously reporting about then. Sorry - I should just have rebuilt and tried that.

Which I just did (e57dfd920d3b303f24d1b370e0113066d9c39c58), and the character creator menu came up fine and loaded much more swiftly than before. So that's looking good.

Okay, so its mostly working without problems.

Can you try and load the scenario? Morning it's called. You can't actually do much, its just what I use for testing purposes but it would be good to know that it runs properly on Linux.

tomreyn

  • MegaGlest Team
  • Airship
  • ********
  • Posts: 2,764
    • View Profile
    • MegaGlest - the free and open source cross platform 3D real-time strategy game
Re: Compiling on Linux (2bdc01f)
« Reply #29 on: 18 October 2013, 09:17:09 »
Despite of the progress indicator turning into negative percentages it does load and initialize fine. There are selection issues (due to relying on GlSelectBuf, I assume) with structures and units but I think that's a known bug.

I played around for like 15 minutes during which all of my units and structures got destroyed and all I had left was this unit which looks hero like, a guy with a sword and cape who has a lot of points on everything and can create structures (and workers?). So I tinkered for a while, destroyed all the enemy buildings until I finally attacked one of the enemy daemons and ran into:
Code: [Select]
Crash
Version: Advanced Engine 0.3.93
Built: Thu Oct 17 19:29:00 CEST 2013
Time: Fri Oct 18 11:12:37 2013
Description: SIGSEGV: unrecognized si_code
Address: 0
Backtrace:
./build/source/game/glestadv(_ZN6Shared8Platform24PlatformExceptionHandler7handlerEiP9siginfo_tPv+0x1aa) [0x7c796a]
/lib/x86_64-linux-gnu/libpthread.so.0(+0xfbd0) [0x7f55c970abd0]
./build/source/game/glestadv(_ZN5Glest8Entities4Unit4killEv+0x2b6) [0x5a4ce6]
./build/source/game/glestadv(_ZN5Glest3Sim5World11updateUnitsEPKNS_8Entities7FactionE+0x44) [0x78d614]
./build/source/game/glestadv(_ZN5Glest3Sim5World12processFrameEv+0x8a) [0x79360a]
./build/source/game/glestadv(_ZN5Glest3Sim19SimulationInterface11updateWorldEv+0x46f) [0x7a164f]
./build/source/game/glestadv(_ZN5Glest3Gui9GameState6updateEv+0xbd) [0x6011dd]
./build/source/game/glestadv(_ZN5Glest4Main7Program4loopEv+0x20e) [0x676c9e]
./build/source/game/glestadv(_ZN5Glest4Main9glestMainEiPPc+0x2b6) [0x673d86]
./build/source/game/glestadv(main+0x2d) [0x50fb3d]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5) [0x7f55c78e8ea5]
./build/source/game/glestadv() [0x512f21]
atibox: Ryzen 1800X (8 cores @3.6GHz), 32 GB RAM, MSI Radeon RX 580 Gaming X 8G, PCI subsystem ID [1462:3417], (Radeon RX 580 chipset, POLARIS10) @3440x1440; latest stable Ubuntu release, (open source) radeon (amdgpu) / mesa video driver
atibox (old): Core2Quad Q9400 (4 cores @2.66GHz), 8 GB RAM, XFX HD-467X-DDF2, PCI subsystem ID [1682:2931], (Radeon HD 4670, RV730 XT) @1680x1050; latest stable Ubuntu release, (open source) radeon / mesa video driver
notebook: HP envy13d020ng
internet access: VDSL2+

· · · How YOU can contribute to MG · Latest development snapshot · How to build yourself · Megapack techtree · Currently hosted MG games · · ·

MoLAoS

  • Local Moderator
  • Ornithopter
  • ********
  • Posts: 433
    • View Profile
Re: Compiling on Linux (2bdc01f)
« Reply #30 on: 18 October 2013, 17:44:33 »
Despite of the progress indicator turning into negative percentages it does load and initialize fine. There are selection issues (due to relying on GlSelectBuf, I assume) with structures and units but I think that's a known bug.

I played around for like 15 minutes during which all of my units and structures got destroyed and all I had left was this unit which looks hero like, a guy with a sword and cape who has a lot of points on everything and can create structures (and workers?). So I tinkered for a while, destroyed all the enemy buildings until I finally attacked one of the enemy daemons and ran into:
Code: [Select]
Crash
Version: Advanced Engine 0.3.93
Built: Thu Oct 17 19:29:00 CEST 2013
Time: Fri Oct 18 11:12:37 2013
Description: SIGSEGV: unrecognized si_code
Address: 0
Backtrace:
./build/source/game/glestadv(_ZN6Shared8Platform24PlatformExceptionHandler7handlerEiP9siginfo_tPv+0x1aa) [0x7c796a]
/lib/x86_64-linux-gnu/libpthread.so.0(+0xfbd0) [0x7f55c970abd0]
./build/source/game/glestadv(_ZN5Glest8Entities4Unit4killEv+0x2b6) [0x5a4ce6]
./build/source/game/glestadv(_ZN5Glest3Sim5World11updateUnitsEPKNS_8Entities7FactionE+0x44) [0x78d614]
./build/source/game/glestadv(_ZN5Glest3Sim5World12processFrameEv+0x8a) [0x79360a]
./build/source/game/glestadv(_ZN5Glest3Sim19SimulationInterface11updateWorldEv+0x46f) [0x7a164f]
./build/source/game/glestadv(_ZN5Glest3Gui9GameState6updateEv+0xbd) [0x6011dd]
./build/source/game/glestadv(_ZN5Glest4Main7Program4loopEv+0x20e) [0x676c9e]
./build/source/game/glestadv(_ZN5Glest4Main9glestMainEiPPc+0x2b6) [0x673d86]
./build/source/game/glestadv(main+0x2d) [0x50fb3d]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5) [0x7f55c78e8ea5]
./build/source/game/glestadv() [0x512f21]

Pretty sure the Ruler can't create workers or units. However you can create units at all times, assuming you have the resources, from the faction build menu. But only particular ones that have the "faction" tag in XML.

As far as the error, can you get the debug data? You should be able to get line numbers. I can see its an error in Unit::kill() but not what in that function causes the error. The crash file in glestadv should at least have line numbers if your IDE doesn't.

tomreyn

  • MegaGlest Team
  • Airship
  • ********
  • Posts: 2,764
    • View Profile
    • MegaGlest - the free and open source cross platform 3D real-time strategy game
Re: Compiling on Linux (2bdc01f)
« Reply #31 on: 19 October 2013, 07:29:37 »
What I posted is the very output found in gae-crash.txt. I also had a core file (deleted since), which I ran GDB on, but I don't know which debug symbols are needed here so this is not too useful:
Code: [Select]
Core was generated by `./build/source/game/glestadv'.
Program terminated with signal 11, Segmentation fault.
#0  0x00007f6c7a2e2aab in ?? ()
#0  0x00007f6c7a2e2aab in ?? ()
#1  0x00000000007aef1b in ~PixmapIo (this=0xb, __in_chrg=<optimized out>) at /home/tomreyn/SCM/mandate/source/shared_lib/include/graphics/pixmap.h:45
#2  Shared::Graphics::PixmapIoJpg::~PixmapIoJpg (this=0xb, __in_chrg=<optimized out>) at /home/tomreyn/SCM/mandate/source/shared_lib/include/graphics/pixmap.h:143
#3  0x00007f6c71dc21d3 in ?? ()
#4  0x0000000000000024 in ?? ()
#5  0x00007f6c71dc21d3 in ?? ()
#6  0x000000000180ae98 in ?? ()
#7  0x0000000001c81df0 in ?? ()
#8  0xffffffffffffffff in ?? ()
#9  0xffffffffffffffff in ?? ()
#10 0x0000000000000000 in ?? ()

Do you have a list of dependencies? I looked at the ldd output but that's plenty:
Code: [Select]
    linux-vdso.so.1 =>  (0x00007fff833fe000)
    libGL.so.1 => /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1 (0x00007f061451b000)
    libGLU.so.1 => /usr/lib/x86_64-linux-gnu/libGLU.so.1 (0x00007f061429c000)
    libSDL-1.2.so.0 => /usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0 (0x00007f0614004000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f0613de7000)
    libopenal.so.1 => /usr/lib/x86_64-linux-gnu/libopenal.so.1 (0x00007f0613b8e000)
    liblua5.1.so.0 => /usr/lib/x86_64-linux-gnu/liblua5.1.so.0 (0x00007f0613960000)
    libfreetype.so.6 => /usr/lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007f06136c3000)
    libpng12.so.0 => /lib/x86_64-linux-gnu/libpng12.so.0 (0x00007f061349d000)
    libjpeg.so.8 => /usr/lib/x86_64-linux-gnu/libjpeg.so.8 (0x00007f061324b000)
    libGLEW.so.1.8 => /usr/lib/x86_64-linux-gnu/libGLEW.so.1.8 (0x00007f0612fc9000)
    libphysfs.so.1 => /usr/lib/x86_64-linux-gnu/libphysfs.so.1 (0x00007f0612d9f000)
    libvorbisfile.so.3 => /usr/lib/x86_64-linux-gnu/libvorbisfile.so.3 (0x00007f0612b96000)
    libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f0612893000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f061258e000)
    libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f0612377000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f0611faf000)
    libglapi.so.0 => /usr/lib/x86_64-linux-gnu/libglapi.so.0 (0x00007f0611d8a000)
    libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007f0611b77000)
    libXdamage.so.1 => /usr/lib/x86_64-linux-gnu/libXdamage.so.1 (0x00007f0611974000)
    libXfixes.so.3 => /usr/lib/x86_64-linux-gnu/libXfixes.so.3 (0x00007f061176e000)
    libX11-xcb.so.1 => /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1 (0x00007f061156b000)
    libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007f0611231000)
    libxcb-glx.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0 (0x00007f061101a000)
    libxcb-dri2.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-dri2.so.0 (0x00007f0610e14000)
    libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f0610bf6000)
    libXxf86vm.so.1 => /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1 (0x00007f06109f0000)
    libdrm.so.2 => /usr/lib/x86_64-linux-gnu/libdrm.so.2 (0x00007f06107e4000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f06105e0000)
    libasound.so.2 => /usr/lib/x86_64-linux-gnu/libasound.so.2 (0x00007f06102f6000)
    libpulse-simple.so.0 => /usr/lib/x86_64-linux-gnu/libpulse-simple.so.0 (0x00007f06100f1000)
    libpulse.so.0 => /usr/lib/x86_64-linux-gnu/libpulse.so.0 (0x00007f060fea9000)
    libcaca.so.0 => /usr/lib/x86_64-linux-gnu/libcaca.so.0 (0x00007f060fbdc000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f06147a0000)
    librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f060f9d3000)
    libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f060f7bc000)
    libvorbis.so.0 => /usr/lib/x86_64-linux-gnu/libvorbis.so.0 (0x00007f060f58e000)
    libogg.so.0 => /usr/lib/x86_64-linux-gnu/libogg.so.0 (0x00007f060f387000)
    libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007f060f182000)
    libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f060ef7c000)
    libpulsecommon-3.0.so => /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-3.0.so (0x00007f060ed18000)
    libjson.so.0 => /lib/x86_64-linux-gnu/libjson.so.0 (0x00007f060eb0f000)
    libdbus-1.so.3 => /lib/x86_64-linux-gnu/libdbus-1.so.3 (0x00007f060e8cb000)
    libslang.so.2 => /lib/x86_64-linux-gnu/libslang.so.2 (0x00007f060e53a000)
    libncursesw.so.5 => /lib/x86_64-linux-gnu/libncursesw.so.5 (0x00007f060e30d000)
    libtinfo.so.5 => /lib/x86_64-linux-gnu/libtinfo.so.5 (0x00007f060e0e5000)
    libwrap.so.0 => /lib/x86_64-linux-gnu/libwrap.so.0 (0x00007f060deda000)
    libsndfile.so.1 => /usr/lib/x86_64-linux-gnu/libsndfile.so.1 (0x00007f060dc74000)
    libasyncns.so.0 => /usr/lib/x86_64-linux-gnu/libasyncns.so.0 (0x00007f060da6e000)
    libnsl.so.1 => /lib/x86_64-linux-gnu/libnsl.so.1 (0x00007f060d853000)
    libFLAC.so.8 => /usr/lib/x86_64-linux-gnu/libFLAC.so.8 (0x00007f060d607000)
    libvorbisenc.so.2 => /usr/lib/x86_64-linux-gnu/libvorbisenc.so.2 (0x00007f060d137000)
    libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007f060cf1d000)
atibox: Ryzen 1800X (8 cores @3.6GHz), 32 GB RAM, MSI Radeon RX 580 Gaming X 8G, PCI subsystem ID [1462:3417], (Radeon RX 580 chipset, POLARIS10) @3440x1440; latest stable Ubuntu release, (open source) radeon (amdgpu) / mesa video driver
atibox (old): Core2Quad Q9400 (4 cores @2.66GHz), 8 GB RAM, XFX HD-467X-DDF2, PCI subsystem ID [1682:2931], (Radeon HD 4670, RV730 XT) @1680x1050; latest stable Ubuntu release, (open source) radeon / mesa video driver
notebook: HP envy13d020ng
internet access: VDSL2+

· · · How YOU can contribute to MG · Latest development snapshot · How to build yourself · Megapack techtree · Currently hosted MG games · · ·

Yggdrasil

  • GAE Team
  • Ornithopter
  • ********
  • Posts: 408
    • View Profile
Re: Compiling on Linux (2bdc01f)
« Reply #32 on: 19 October 2013, 12:18:38 »
Maybe the following script is of help to you:
http://sourceforge.net/p/glestae/glestae/ci/master/tree/prettify-crash.sh

It demangles the functions and resolves the addresses in the backtrace of the crash log.

tomreyn

  • MegaGlest Team
  • Airship
  • ********
  • Posts: 2,764
    • View Profile
    • MegaGlest - the free and open source cross platform 3D real-time strategy game
Re: Compiling on Linux (2bdc01f)
« Reply #33 on: 19 October 2013, 15:24:37 »
This looks a lot more useful indeed:
Code: [Select]
Crash
Version: Advanced Engine 0.3.93
Built: Thu Oct 17 19:29:00 CEST 2013
Time: Fri Oct 18 11:12:37 2013
Description: SIGSEGV: unrecognized si_code
Address: 0
Backtrace:
./build/source/game/glestadv(Shared::Platform::PlatformExceptionHandler::handler(int, siginfo_t*, void*)+0x1aa) [/home/tomreyn/SCM/mandate/source/shared_lib/sources/platform/sdl/platform_util.cpp:250]
/lib/x86_64-linux-gnu/libpthread.so.0(+0xfbd0) [??:0]
./build/source/game/glestadv(Glest::Entities::Unit::kill()+0x2b6) [/home/tomreyn/SCM/mandate/source/game/entities/unit.cpp:1764]
./build/source/game/glestadv(Glest::Sim::World::updateUnits(Glest::Entities::Faction const*)+0x44) [/home/tomreyn/SCM/mandate/source/game/world/world.cpp:290]
./build/source/game/glestadv(Glest::Sim::World::processFrame()+0x8a) [/home/tomreyn/SCM/mandate/source/game/world/world.cpp:315]
./build/source/game/glestadv(Glest::Sim::SimulationInterface::updateWorld()+0x46f) [/home/tomreyn/SCM/mandate/source/game/world/sim_interface.cpp:259]
./build/source/game/glestadv(Glest::Gui::GameState::update()+0xbd) [/home/tomreyn/SCM/mandate/source/game/game/game.cpp:325]
./build/source/game/glestadv(Glest::Main::Program::loop()+0x20e) [/home/tomreyn/SCM/mandate/source/game/main/program.cpp:326]
./build/source/game/glestadv(Glest::Main::glestMain(int, char**)+0x2b6) [/home/tomreyn/SCM/mandate/source/game/main/main.cpp:194]
./build/source/game/glestadv(main+0x2d) [/home/tomreyn/SCM/mandate/source/game/main/main.cpp:220 (discriminator 2)]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5) [??:0]
./build/source/game/glestadv() [??:?]

=======================

Thanks for providing this script, Yggdrasil.
atibox: Ryzen 1800X (8 cores @3.6GHz), 32 GB RAM, MSI Radeon RX 580 Gaming X 8G, PCI subsystem ID [1462:3417], (Radeon RX 580 chipset, POLARIS10) @3440x1440; latest stable Ubuntu release, (open source) radeon (amdgpu) / mesa video driver
atibox (old): Core2Quad Q9400 (4 cores @2.66GHz), 8 GB RAM, XFX HD-467X-DDF2, PCI subsystem ID [1682:2931], (Radeon HD 4670, RV730 XT) @1680x1050; latest stable Ubuntu release, (open source) radeon / mesa video driver
notebook: HP envy13d020ng
internet access: VDSL2+

· · · How YOU can contribute to MG · Latest development snapshot · How to build yourself · Megapack techtree · Currently hosted MG games · · ·

MoLAoS

  • Local Moderator
  • Ornithopter
  • ********
  • Posts: 433
    • View Profile
Re: Compiling on Linux (2bdc01f)
« Reply #34 on: 19 October 2013, 17:05:40 »
The dependencies are whatever GAE has. I didn't add anything.

At first I had no idea how you could get an error, but what appears to have happened is that you killed the owner of the unit, in this case the structure that auto spawned it, before you killed the unit, this making its owner pointer invalid so that on death it tried to access a garbage pointer to change some data.

I'm not really sure how to handle that quite yet because ownership is used for different things sometimes. Presumably I'll have to clear the owner pointer somehow. Then assign a new owner based on what that unit type uses ownership for. Autogenned units will want to just reset their owner to themselves, while units using the new AI will want to set to themselves until they can find a valid new owner. And service units like resource and item haulers will want to kill themselves.

MoLAoS

  • Local Moderator
  • Ornithopter
  • ********
  • Posts: 433
    • View Profile
Re: Compiling on Linux (2bdc01f)
« Reply #35 on: 19 October 2013, 19:15:47 »
I implemented some code in Unit::kill() where if a unit dies any units it owns now owns itself. That will solve the error and has to happen for every unit anyways. Later I'll add in some so that units who really need to have a proper owner will seek the most viable new owner or if there isn't one behave accordingly till one exists.