Jump to content
XCOMUFO & Xenocide

Dagonsquirrel -> Trunk Merge


Recommended Posts

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:
[code]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[/code]
Using Ogre config file is simpler:
[code][Baseview]
camera_x = 3
camera_y = 2
camera_z = 5

[AnotherCategory]
the_var = n[3, 1, 2][/code]
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
[code]Settings::get<Bool>("some_bool_var");[/code]
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
Link to comment
Share on other sites

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.
Link to comment
Share on other sites

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).

[b]ATTENTION!!![/b]
Update deps with Package Updater, answer Yes when asked for cleanup.
[b]ATTENTION!!![/b]

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 :)
Link to comment
Share on other sites

[quote name='guyver6' date='Jan 10 2006, 02: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).

[b]ATTENTION!!![/b]
Update deps with Package Updater, answer Yes when asked for cleanup.
[b]ATTENTION!!![/b]

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 :)
[right][post="143961"]<{POST_SNAPBACK}>[/post][/right][/quote]
I’ve downloaded the latest head & packages, and got a debug build to build and run. Congratulations. =b
Link to comment
Share on other sites

Doesn't compile for me :(
[quote]..\..\..\xenocide\src\boost\python\detail\wrap_python.hpp(50) : fatal error C1083: Can not open Include-File: 'pyconfig.h': No such file or directory[/quote]
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
Link to comment
Share on other sites

[quote name='Mad' date='Jan 10 2006, 03:15 PM']---Edit---
Ok, might have been my bad. Rebuilt everything from scratch, now it's working. Strange thing...
[right][post="143996"]<{POST_SNAPBACK}>[/post][/right][/quote]

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 :)
Link to comment
Share on other sites

wow OMG OMFG

[code]\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[/code]

xeno project never stop to astonish me :) :) :)
Link to comment
Share on other sites

[quote name='Beetle' date='Jan 13 2006, 12:08 AM']wow  OMG OMFG

[code]\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[/code]

xeno project never stop to astonish me :) :) :)
[right][post="144156"]<{POST_SNAPBACK}>[/post][/right][/quote]
Hey, blame SWIG :P ;) :D
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...