Jump to content


Photo

Dagonsquirrel -> Trunk Merge


  • This topic is locked This topic is locked
7 replies to this topic

#1 guyver6

guyver6

    Captain

  • Xenocide Programming Department
  • 599 posts

Posted 09 January 2006 - 10:49 AM

Yes, you're right, I've almost completed all Python stuff. Shortly what's the status:
- Removed Lua completely - done [Rincewind]
- Python interpreter integration - done [guyver6]
- Python-Console integration - done [guyver6, Garo]
- Easy binding of our classes to Python - done [Garo]
- CEGUI Python scripting module with CEGUI bindings - done [guyver6]
- Refactored settings to be more rubust to use - done [guyver6]
- Binded settings to Python - done [Garo]

What's left to do is loading settings from config files. I see 2 options:
- Use Ogre::ConfigFile and register all settings that ParamConverter class can parse
- Execute config files as Python scripts that will set those settings

I prefer to do a little additional work and write code that uses Ogre::ConfigFile. Rationale? I intend to introduce settings categories, this will make using python scripts harder, you would have to write sth like:
param.baseview.camera_x = 3
param.baseview.camera_y = 2
param.baseview.camera_z = 5
# where baseview is category name and camera_* is param name
Using Ogre config file is simpler:
[Baseview]
camera_x = 3
camera_y = 2
camera_z = 5

[AnotherCategory]
the_var = n[3, 1, 2]
This allows us to group them more visibly in config files. Btw, the param.category... access from Python is available all the time for the purpose to use it in scripts and in console.

Btw, as you you may noticed the strange n[3, 1, 2] syntax for a setting. Well, what it says is: 3D normalized (unit) vector along vector [3, 1, 2]. Yes, settings can now be 2D, 3D and 4D vectors as well as color values (RGBA, A optionally). This is still not implemented for Python, but it's there when you want to create new param (Param is a class that holds a value of a setting, it's responsible of getting that value to user or setting it, as well as converting string's like the one above to the actuall type). Settings class is responsible for registring new params with string names (Param class has doesn't have to have a name if you want to instantiate it) and for getting Params value to user (specified by name). It mostly has static methods now, so you only need to do
Settings::get<Bool>("some_bool_var");
to get a value. Everything else is done behind the scenes.

That's all for now. If you want to talk about some of the stuff covered by this post, I'm on IRC

EDIT: from all of it I've forgotten to write a little about my ideas of having trunk compilable all the time and to ease others work. I propose to do a branch for every feature you want to create and then merging this feature to trunk, when it's ready and tested. This will:
- allow others to correct small errors and bugs in trunk while you don't have to worry that some small commit will make you correct all your code, just because this small correction conflicts with your new code
- help maintain trunk as stable as possible
- work in small groups on particular features to polish them as much as possible without conflicts with other features

My proposition is to call branches "feat-featurename", like "feat-items" or "feat-python" for the last 2 most active branches. After a branch is merged into trunk it should be deleted from repo (history of it remains, but the branch isn't visible in later revisions).

EDIT2: OK, I've forgot the password to updater FTP so I can't upload new packages, and Updater symlink on our normal ftp doesn't work. I'm waiting for new password from mindstormmaster, then I'll proceed with everything.

Edited by guyver6, 09 January 2006 - 12:01 PM.

Posted Image
Sourceforge: guyver6
LinkedIn: Andrzej Haczewski
"A good business idea, they say, can be explained in one sentence. Similarly, each program entity should have one clear purpose."

Join #xenocide at irc.freenode.net.

#2 guyver6

guyver6

    Captain

  • Xenocide Programming Department
  • 599 posts

Posted 09 January 2006 - 02:31 PM

Sorry for DP but...

If you want your trunk compile, don't update packages with Updater :). Simply put: all packages are new ones, for upcoming merge of dagonsquirrel branch. I had succesfully merged trunk to dagonsquirrel branch to resolve all issues before merging it to trunk and finally commiting. It's working on my machine for both Release and Debug builds, thou we're experiencing little problem with Release build and trying to fix it atm. After that I'll merge dagonsquirrel to trunk and then we'll fix all issues that arrise.

Thank you all for your patience.
Posted Image
Sourceforge: guyver6
LinkedIn: Andrzej Haczewski
"A good business idea, they say, can be explained in one sentence. Similarly, each program entity should have one clear purpose."

Join #xenocide at irc.freenode.net.

#3 guyver6

guyver6

    Captain

  • Xenocide Programming Department
  • 599 posts

Posted 09 January 2006 - 07:34 PM

Ok, another post but it must be seen by all.

Merge is complete, Xenocide builds for me, release and debug, working in release and debug. Console hasn't got many fancy features, but me and Garo will work on that, as well as releasing Python development envinroment for programming Xenocide (with debugger).

ATTENTION!!!
Update deps with Package Updater, answer Yes when asked for cleanup.
ATTENTION!!!

Report all errors/bugs caused by this merge to this topic. Sorry in advance if something's broken, I really did my best to give away something better than it was, but as usual I'm only human so expect errors.

And now it's time to sleep. Good night :)
Posted Image
Sourceforge: guyver6
LinkedIn: Andrzej Haczewski
"A good business idea, they say, can be explained in one sentence. Similarly, each program entity should have one clear purpose."

Join #xenocide at irc.freenode.net.

#4 dteviot

dteviot

    Programming Department

  • [Xenocide Senior Members]
  • 1,479 posts

Posted 10 January 2006 - 03:45 AM

Ok, another post but it must be seen by all.

Merge is complete, Xenocide builds for me, release and debug, working in release and debug. Console hasn't got many fancy features, but me and Garo will work on that, as well as releasing Python development envinroment for programming Xenocide (with debugger).

ATTENTION!!!
Update deps with Package Updater, answer Yes when asked for cleanup.
ATTENTION!!!

Report all errors/bugs caused by this merge to this topic. Sorry in advance if something's broken, I really did my best to give away something better than it was, but as usual I'm only human so expect errors.

And now it's time to sleep. Good night :)

<{POST_SNAPBACK}>

Iíve downloaded the latest head & packages, and got a debug build to build and run. Congratulations. =b
Saving the world from the scum of the universe is hard work. Especially when you have to create the scum to begin with.

#5 Mad

Mad

    Creative Text Department

  • [Xenocide Senior Members]
  • 1,958 posts

Posted 10 January 2006 - 08:15 AM

Doesn't compile for me :(

..\..\..\xenocide\src\boost\python\detail\wrap_python.hpp(50) : fatal error C1083: Can not open Include-File: 'pyconfig.h': No such file or directory

In Xenocommon, Xenocore and xenoUI.

---Edit---
Ok, might have been my bad. Rebuilt everything from scratch, now it's working. Strange thing...

Edited by Mad, 10 January 2006 - 09:01 AM.

Keep smiling while dying

Of course I have gone mad with power! It would be completely ridiculous to go mad without power!
And no, this is not a quote from the Simpson's movie, I want it on paper, that I actually wrote that quite some time before the movie came out.

Posted Image

#6 Beetle

Beetle

    Programming Department

  • Xenocide Inactive
  • 350 posts

Posted 10 January 2006 - 10:22 AM

---Edit---
Ok, might have been my bad. Rebuilt everything from scratch, now it's working. Strange thing...

<{POST_SNAPBACK}>


Yeah i also sometimes have this, dunno why. When hit rebuild have errors, but when hit clean and then build everything works, happend about 3 or 4 times in my xeno history, could be quite annoying :)
Posted Image

#7 Beetle

Beetle

    Programming Department

  • Xenocide Inactive
  • 350 posts

Posted 12 January 2006 - 05:08 PM

wow OMG OMFG

\Programming\Projekty\Xenocide\xenocide\src\client\cegui\cegui_wrap.cpp(65536) : warning C4049: compiler limit : terminating line number emission
        Compiler limit for line number is 65535

xeno project never stop to astonish me :) :) :)
Posted Image

#8 guyver6

guyver6

    Captain

  • Xenocide Programming Department
  • 599 posts

Posted 13 January 2006 - 10:19 AM

wow  OMG OMFG

\Programming\Projekty\Xenocide\xenocide\src\client\cegui\cegui_wrap.cpp(65536) : warning C4049: compiler limit : terminating line number emission
        Compiler limit for line number is 65535

xeno project never stop to astonish me :) :) :)

<{POST_SNAPBACK}>

Hey, blame SWIG :P ;) :D
Posted Image
Sourceforge: guyver6
LinkedIn: Andrzej Haczewski
"A good business idea, they say, can be explained in one sentence. Similarly, each program entity should have one clear purpose."

Join #xenocide at irc.freenode.net.