XL Engine source code release!

Not about OpenMW? Just about Morrowind in general? Have some random babble? Kindly direct it here.
User avatar
psi29a
Posts: 4801
Joined: 29 Sep 2011, 10:13
Location: Belgium
Gitlab profile: https://gitlab.com/psi29a/
Contact:

Re: XL Engine source code release!

Post by psi29a » 04 Apr 2018, 07:02

Keep an eye out here: https://github.com/Mindwerks/XLEngine

Initial tag will be the original AprilFools files.

Initial wave of commits will be the original files, as needed and none of the binaries shipped in the file unless necessary.

I've fixed a few things:
dos2unix files as needed (proper line endings, let git handle things)
fixed broken refactors in some code (likely none-tested linux based code)

gcc seems get us far, but lucius relied on MSVC magic to make things work that is not valid C++

Code: Select all

Engine.cpp: In static member function ‘static void Engine::Engine_SetCameraData(f32*, f32*, f32, f32, u32)’:
Engine.cpp:491:19: error: cannot bind non-const lvalue reference of type ‘Vector3&’ to an rvalue of type ‘Vector3’
  pCamera->SetLoc( Vector3(pos[0], pos[1], pos[2]) );
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from Engine.cpp:13:0:
render/Camera.h:26:8: note:   initializing argument 1 of ‘void Camera::SetLoc(Vector3&)’
   void SetLoc(Vector3& loc);
        ^~~~~~
Engine.cpp:492:19: error: cannot bind non-const lvalue reference of type ‘Vector3&’ to an rvalue of type ‘Vector3’
  pCamera->SetDir( Vector3(dir[0], dir[1], dir[2]) );
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Need to figure that one out...

raven
Posts: 66
Joined: 26 May 2016, 09:54

Re: XL Engine source code release!

Post by raven » 04 Apr 2018, 07:46

Make it const Vector3& or pass by value.

User avatar
AnyOldName3
Posts: 1799
Joined: 26 Nov 2015, 03:25

Re: XL Engine source code release!

Post by AnyOldName3 » 04 Apr 2018, 13:42

It might also be enough just to declare the vector on another line before it actually gets used without meddling with anything else.
AnyOldName3, Master of Shadows

raven
Posts: 66
Joined: 26 May 2016, 09:54

Re: XL Engine source code release!

Post by raven » 04 Apr 2018, 14:16

Well, the question is why should a function called Set take a non-const reference as argument? What is it setting?

User avatar
psi29a
Posts: 4801
Joined: 29 Sep 2011, 10:13
Location: Belgium
Gitlab profile: https://gitlab.com/psi29a/
Contact:

Re: XL Engine source code release!

Post by psi29a » 04 Apr 2018, 18:19

OK... initial drop is there
https://github.com/Mindwerks/XLEngine/tree/master

My changes to the code have not yet been pushed.

There is currently no make system, but if you wish to build with code blocks or with msvc, in the zip file provided in the first release are the files necessary to do that. I wanted to make a clean split with only Lucius's code, no 3rd-party stuff like angelscript and enet.

I also commited under LuciusDXL name, since I don't have his email address. I didn't know what was more respectful.

@Klasodeth, would you prefer that I release it under your name and email instead?

Cheers

Chris
Posts: 1575
Joined: 04 Sep 2011, 08:33

Re: XL Engine source code release!

Post by Chris » 04 Apr 2018, 19:07

psi29a wrote:
04 Apr 2018, 18:19
OK... initial drop is there
https://github.com/Mindwerks/XLEngine/tree/master
Since the archive contains an SVN trunk, could you get a proper commit history from it for the Git repo? I found this, which could help.

User avatar
psi29a
Posts: 4801
Joined: 29 Sep 2011, 10:13
Location: Belgium
Gitlab profile: https://gitlab.com/psi29a/
Contact:

Re: XL Engine source code release!

Post by psi29a » 04 Apr 2018, 20:04

I already tried to do this (like I already did for other sourceforge repos in the past like mygui), but this wasn't possible. The svn required access:

Code: Select all

[email protected]:~/Downloads/xlengine/XLEngineV1/trunk$ svn log
Authentication realm: <https://subversion.assembla.com:443> Assembla Restricted Area
This is where LuciusDXL hosted his work and I don't have his username/password.

Code: Select all

[email protected]:~/Downloads/xlengine/XLEngineV1$ git svn log
Migrating from a git-svn v1 layout...
Data from a previous version of git-svn exists, but
	.git/svn
	(required for this version (2.14.1) of git-svn) does not exist.
Done migrating from a git-svn v1 layout
fatal: your current branch appears to be broken
------------------------------------------------------------------------



[email protected]:~/Downloads/xlengine/XLEngineV1$ git svn clone . ~/temp
perl: /build/subversion-NGWwD7/subversion-1.9.7/subversion/libsvn_subr/dirent_uri.c:310: canonicalize: Assertion `type != type_uri' failed.
error: git-svn died of signal 6

If I did, then could do a proper port that included commit history. If you get it working, let me know! :)

Chris
Posts: 1575
Joined: 04 Sep 2011, 08:33

Re: XL Engine source code release!

Post by Chris » 04 Apr 2018, 20:34

psi29a wrote:
04 Apr 2018, 20:04
I already tried to do this (like I already did for other sourceforge repos in the past like mygui), but this wasn't possible. The svn required access
Right. I forgot SVN doesn't keep a local history on the user's system like Git does. Oh well.

User avatar
psi29a
Posts: 4801
Joined: 29 Sep 2011, 10:13
Location: Belgium
Gitlab profile: https://gitlab.com/psi29a/
Contact:

Re: XL Engine source code release!

Post by psi29a » 04 Apr 2018, 20:36

I asked klaso if he could do it for us or let me 'borrow' his credentials to do it ourselves. :)

User avatar
psi29a
Posts: 4801
Joined: 29 Sep 2011, 10:13
Location: Belgium
Gitlab profile: https://gitlab.com/psi29a/
Contact:

Re: XL Engine source code release!

Post by psi29a » 05 Apr 2018, 08:53

status update:

moving through the code file by file, just doing the bare minimum to get it compiled.

So far I've discovered the following dependencies:
* DevIL (libdevil-dev) Cross-platform image loading and manipulation toolkit
* enet (libenet-dev) Thin network communication layer on top of UDP
* angelscript (not in Debian/Ubuntu) Flexible cross-platform scripting library
* additional libs: -lGL -lX11 -ldl -lm

AS will be interesting since there are currently no downstream (distro) packages. I'll have to roll my own.

I still need to resolve gcc issues involving world/ ui/ render/

I've not yet looked at networking and scriptsystem

I'm currently not yet looking at code cleanups, that comes with refactoring but I'm currently interested in getting it all up and running.

If anyone wants to help, fork the repo... dive into the directories I listed above and just run gcc -c *.cpp and fix any issues raised, warnings too if you can and send a PR. That will help move us along and we'll see what work and doesn't.

Post Reply