Jump to content

BoA Editor Remake


Recommended Posts

As most of you know, a BoA Editor remake is in the works. JV was contacted for his thoughts on this. In the interests of gaining support for this project, here was his reply:

 

Quote:

My intention with making the source code public was to give people the

information they needed to homegrow editors of their own. If people strip

that source code and rebuild it so much that only the data structures

remain in place, well, that still seems within the spirit of the thing.

 

In other words, I have no intention of chasing with lawyers people who work

hard to make a better version of my (admittedly imperfect) editor. When you

have something usable, please let me know so we can link to it. Or, if it's

cool enough, host it.

 

- Jeff Vogel

Link to comment
Share on other sites

  • Replies 168
  • Created
  • Last Reply

Top Posters In This Topic

The project is almost underway, and we'll soon be officially asking for support. If anyone believes they may be of help, please say so, but keep in mind that something may not go as planned with SourceForge. Be sure to include how you intend to help.

 

Also, anybody have any thoughts on what to name it?

Link to comment
Share on other sites

The BoA Editor Remake Project has currently been accepted at SourceForge, and the site is currently ready for at least discussing the Project:

Remake Site

 

If you want to suggest a feature, offer help, etc., please do it at the above site.

 

Kelandon: There is a chance we could use your help, but as of now, I do not know if the other two lead developers of this project (Isaac and Notus) are even aware of this project's acceptance. I'd like to wait for them before doing anything significant (including asking for help).

Link to comment
Share on other sites

Quote:
Originally written by KernelKnowledge12:
as of now, I do not know if the other two lead developers of this project (Isaac and Notus) are even aware of this project's acceptance. I'd like to wait for them before doing anything significant (including asking for help).
I don't expect to do a lot with this; I'm more expecting others to start it and me to contribute some if I can. smile

I think the most productive thing to do at this point is get on with it - you seem to know what you're doing, and waiting for other people who may not have a lot of time will not help. I hope you know where to start, and good luck!
Link to comment
Share on other sites

Quote:
Originally written by KernelKnowledge12:
Isaac: I still need your SourceForge.net user name (UNIX username) so I can give you developer access to the project. If you want to give it to me, email it or pm it.
Uhhh... I need to create an account on SourceForge? (well, obviously yes... anything else?) :p
Link to comment
Share on other sites

You'll have to tell me the UNIX username (not the publicly shown one) you choose, then I'll give you developer access to the files. This lets you directly change the files, but does not give you administrative control. If you want administrative access, I'll give it to you, but you'll have to be more active than you plan to be.

 

Also to get/change/commit the code you'll have to get a cvs client (if you don't have one already). If you don't know how to use cvs, well, this'll be a problem, as cvs is very hard to learn, but its not impossible. Since I used windows, I could get Tortoise CVS which is much easier to use than regular CVS, though it doesn't take advantage of advanced features. Don't know what clients there are for OS X, but the information is all on SourceForge.net. Also you can look up "The CVS Book." (Its free and online.)

Link to comment
Share on other sites

Quote:
Originally written by KernelKnowledge12:
You'll have to tell me the UNIX username (not the publicly shown one) you choose, then I'll give you developer access to the files.
Okay, I'll PM you what I think you mean (I've made a SourceForge account).

Quote:
Also to get/change/commit the code you'll have to get a cvs client (if you don't have one already). If you don't know how to use cvs, well, this'll be a problem, as cvs is very hard to learn, but its not impossible. Since I used windows, I could get Tortoise CVS which is much easier to use than regular CVS, though it doesn't take advantage of advanced features. Don't know what clients there are for OS X, but the information is all on SourceForge.net. Also you can look up "The CVS Book." (Its free and online.)
Hmm, oh well, I obviously use MacOSX, and I don't know how to use CVS, but I can probably figure it out....
Link to comment
Share on other sites

Isaac,

 

Can we support your 3D BoA Editor on SourceForge?

I'm now coding another bug fix, v1.0.2b4, patch for "Outdoor: drawing mode failure after moving section" bug.

 

May I issue the Windows port of your 3D BoA Editor to SourceForge?

It entered to debug phase finally. Though there are still a several bugs I know (and maybe tons of bugs I don't know), I hope I can start beta test on next weekend.

 

PS

MacOSX and Xcode are CVS savvy.

 

Setup guidance

Version Control with CVS on Mac OS X

http://developer.apple.com/internet/opensource/cvsoverview.html

Introduction to Xcode Source Control Management

http://developer.apple.com/documentation/DeveloperTools/Conceptual/Xcode_SCM/Int roduction.html

 

Client for MacOS

MacCVS

http://cvsgui.sourceforge.net/download.html

MacCVSClient

http://www.heilancoo.net/MacCVSClient/

Link to comment
Share on other sites

Quote:
Originally written by Notus:
Isaac,

Can we support your 3D BoA Editor on SourceForge?
I'm now coding another bug fix, v1.0.2b4, patch for "Outdoor: drawing mode failure after moving section" bug.
Yes, and you can put it there since you have the most bug-fixed version. Make sure it's clear what license it has.

Quote:
May I issue the Windows port of your 3D BoA Editor to SourceForge?
It entered to debug phase finally. Though there are still a several bugs I know (and maybe tons of bugs I don't know), I hope I can start beta test on next weekend.
Do that too.

Quote:
PS
MacOSX and Xcode are CVS savvy.

Setup guidance
Version Control with CVS on Mac OS X
http://developer.apple.com/internet/opensource/cvsoverview.html
Introduction to Xcode Source Control Management
http://developer.apple.com/documentation/DeveloperTools/Conceptual/Xcode_SCM/Int roduction.html

Client for MacOS
MacCVS
http://cvsgui.sourceforge.net/download.html
MacCVSClient
http://www.heilancoo.net/MacCVSClient/
Okay, thanks, I'll look into that.
Link to comment
Share on other sites

  • 2 weeks later...
Quote:
Originally written by Isaac:
I found a cross-platform C++ library that uses OpenGL: http://plib.sourceforge.net/ . I'm not sure how good it would be to use, but the abilities that it claims to have seem good.
Looks okay. Not as powerfull as others I've seen, but much easier to use. Here are some other libraries.

As for using OpenGL in the Remake, its pretty much been decided that this would complicate matters. This does not mean that the idea is dead as wxWidgets does have support for OpenGL.

Isaac - Check your PMs.
Link to comment
Share on other sites

Quote:
Originally written by Notus:
KernelKnowledge12, Isaac
Hard disk crashed on my Mac. Salvaged data partition but System partition is totally damaged. frown I must get another Hard disk.
I cannot send/receive E-mail for a few days. Sorry for your inconvenience.
Sorry to hear that frown . Can you still PM? Also, did you get the last two emails I sent you? If not, I can send them to you through PM, or just post them on the board.
Link to comment
Share on other sites

Quote:
Originally written by Notus:
Thanks,
I got a hard disk and will repair my Mac this evening. Maybe I can use E-mail tomorrow.
I received your E-mail. Mail log was on the data partition, and was salvaged successfully. Even if I didn't, mail server must hold it.
Awesome. Concerning the idea of the copy/paste idea, I think we should just go ahead with the square selection. We can improve it later (My emails contain a suggestion for that). Will this be added to the current 3D Editor (Dev-C++ Project)?

Also if you don't know by now, Isaac has joined the discussions concerning the planning of the application. He also has suggestions on the improvement of selection.
Link to comment
Share on other sites

Quote:
Will this be added to the current 3D Editor (Dev-C++ Project)?
Yes, for this purpose we prepared a test bench. I'll write a code for mouse tracker to draw selection rectangle on 2D and 3D.

Not only the selection phase, the paste phase also needs some consideration. On the paste phase, the pasted object is appeared in "floating" state on the screen until the position is determined. If the height information is included in the selected object, we should implement an user interface to adjust height too.

Umm, if we can manage to realize this function, it'll be the most frequently used tool on rapid scene making and scene retouch. Copy/Paste function may bring another copyright problem, but the community will reach to some consensus.
Link to comment
Share on other sites

Quote:
Originally written by Notus:

Not only the selection phase, the paste phase also needs some consideration. On the paste phase, the pasted object is appeared in "floating" state on the screen until the position is determined. If the height information is included in the selected object, we should implement an user interface to adjust height too.
The "floating" state is needed, but by using Jeff's code this could get complicated. We should think of height in pasting later. Putting paste functions that copy just the terrain should be our first priority. Then we should try and put a paste function that copies the height. What we can do afterwards is place a "Paste Special" menu item to handle any other type of pasting.

Quote:

Copy/Paste function may bring another copyright problem, but the community will reach to some consensus.
This'll only make it easier to violate copyright. Seeing as how the community seems ready to rip violaters limb from limb, I doubt the copy/paste function will really affect the desire to copy someone else's work.

If anyone has any comments on this please post them.

EDIT:

Concerning the "floating" terrain, perahaps we should implement a layering system. This wouldn't have to much to do with actual terrain design, except that people could work on several pieces of terrain without having to actually change the terrain.
Link to comment
Share on other sites

Social role of Copy/Paste

As the next step of Copy/Paste, I considered "clip file". "Clip file" is a file data whose content is selected on the Copy procedure. After copying a part of the edit screen, save the copied data to "clip file" instead of pasting it. This "clip file" is used to exchange "landscape parts".

 

These small landscape parts are uploaded to a sever like the louvre, and everyone can use it by the courtesy of the original creator.

 

This story will be the positive reason to support Copy/Paste.

 

Floating paste

Floating paste is realized on the graphic system buffer.

a) We need a buffer between the graphic system and the actual objects to maintain the scroll (redraw) speed.

During the development of Win 3D editor, I tried to convert global (static) definition of the basic data to pointer expression of the objects, such as

 

- original

outdoor_record_type current_terrain;

current_terrain.height[]

 

- pointer expression

outdoor_record_type* current_terrain;

current_terrain->height[]

 

This conversion reduced scroll (redraw) speed to half.

The reason is as follows.

- Compiler generates indirect access to the memory on the pointer expression, and direct access on the original expression. Indirect access is much slower than direct access.

- 300-400 lines of these expression exists on "Graphics.cpp". Moreover, most of them are in loop.

 

To maintain the scroll speed, we should keep direct access to the data memory in the graphic system. But static expression of the data extremely limits the object function, as it doesn't allow even inheritance. Thus we need a data buffer between data objects and the graphic system.

 

B) "Floating paste" is a visual effect. The actual objects is not changed until the position is determined by user. Thus it is proper to implement using graphic system buffer.

 

No Data Padding

Previously, I promised to investigate on the existence of padding on recorded data (.bas file). Next is the result.

 

a) Manual calculation

Calculate bytes size of each data structure (class) manually using Excel, assuming no padding between members of structure. The result was as follows.

 

scenario_data_type 7480

outdoor_record_type 12892

town_record_type 16346

big_tr_type 20480

ave_tr_type 11520

tiny_tr_type 5120

 

B) sizeof operator

The figures returned by sizeof operator to above structures perfectly correspond to above figures on Xcode, MSVC++.NET2003 and DevC++

 

c) Actual file size

The .bas file size made by the original BoA Editor (Win v1.0.3, Mac v1.1) is 48238 bytes, for one outdoor sector and one average size town. This figure matches next sum of above sizes.

scenario_data_type + outdoor_record_type + town_record_type + ave_tr_type

 

From these facts, I conclude there is no padding within the recorded data. And we can safely use sizeof operator on these structures as the recorded data size on these compilers (IDE). But I don't recommend to use sizeof operator. Use above constant instead. Constant is compiler independent.

 

[EDIT]

My Email is recovered. So I could send reply via Email, but the discussion on Copy/Paste should be open. And the information on data padding may be useful for other developers.

Link to comment
Share on other sites

Quote:
Originally written by Notus:

As the next step of Copy/Paste, I considered "clip file". "Clip file" is a file data whose content is selected on the Copy procedure. After copying a part of the edit screen, save the copied data to "clip file" instead of pasting it. This "clip file" is used to exchange "landscape parts".

These small landscape parts are uploaded to a sever like the louvre, and everyone can use it by the courtesy of the original creator.
Well, this is just brilliant! I never even considered this! Perhaps we can extend this (if we make this) to make the editor behave as a link to a database full of maps/custom graphics/scripts etc.

Quote:
Originally written by Notus:

Floating paste is realized on the graphic system buffer.
a) We need a buffer between the graphic system and the actual objects to maintain the scroll (redraw) speed.
During the development of Win 3D editor, I tried to convert global (static) definition of the basic data to pointer expression of the objects
Is this really neccessary with the use of inheritance? Can't we use inheritance without changing the global variables to pointers, or am I missing something?

Quote:
Originally written by Notus:

Thus we need a data buffer between data objects and the graphic system.
I am a little confused by this notion. What exactly would the buffer do?

Quote:

From these facts, I conclude there is no padding within the recorded data. And we can safely use sizeof operator on these structures as the recorded data size on these compilers (IDE). But I don't recommend to use sizeof operator. Use above constant instead. Constant is compiler independent.
I think I may be able to automate the constant size, using my class_base class. I developed it enough so that it automatically creates the default constructor, copy constructor, get/set functions, assignment operator and i/o routines given a class' "schematic". (The schematic is just a type sequence such as boost::vector< int, int, bool ... >.) I know this does not have too much to do with the application design, but it will make development much faster and easier. Look at the boa_primitives.hpp file in the CVS to see how its implemented.

I'll put a static const size_t that tells the size of class that ignores any evident inheritance.

Note:

I was thinking about wxDev-Cpp, and I'm not too sure we should use it, since:

a) It is based off of Dev-C++, not an actual plugin, although it says it is.

B) It uses a slightly older version of Dev-C++.

c) We don't really need it, since we should be able to do the code itself.

Do you have any opinions on this matter?
Link to comment
Share on other sites

Clip file

Even the clip file should include custom graphics, custom terrain script, custom item script, etc. Thumbnail and creator's name, comment also are desirable. Graphics need to be converted according to the platform. To solve these subjects, fair amount of effort will be needed, but it will be fruitful. Clip file implementation will provide the basis of unification on graphics editor and script editor as you suggested. It's the final goal.

But now, we should concentrate on graphics editor. Go step by step.

 

Basic data classes

Quote:
Is this really neccessary with the use of inheritance? Can't we use inheritance without changing the global variables to pointers, or am I missing something?
As these basic data have a common character that is loaded from and saved to .bas file, we will probably make a superclass on these classes to handle streaming on them. If we make a superclass, these data objects cannot be declared as global (static) variables because of inheritance. They should be generated by new operator dynamically. This means we must access them through pointers.

 

The initialization of static variables occurs on early phase of loading of an execute file. But in that phase, inheritance chain and RTTI are not established yet. Thus a static object that has inheritance aren't initialized properly.

 

Graphic system buffer

Graphic system buffer holds all of basic data to draw current view (window). If a town is the top window, it holds such as,

 

scenario.start_in_what_town

 

town.wall_1_sheet

town.wall_2_sheet

town.ter_scripts[]

town.start_locs[]

...

t_d.floor[][]

t_d.terrain[][]

t_d.height[][]

t_d.lighting[][]

 

maybe 40kbytes or so.

The contents of graphic system buffer should be swapped when another town/outdoor window takes the top view, or on update event to redraw another town/outdoor.

It takes only several msec to swap the contents of graphic system buffer.

 

GUI builder

Quote:
I was thinking about wxDev-Cpp, and I'm not too sure we should use it, since:
I found wxglade as a candidate but not examined so much yet.
Link to comment
Share on other sites

Quote:
Originally written by Notus:

Even the clip file should include custom graphics, custom terrain script, custom item script, etc. Thumbnail and creator's name, comment also are desirable. Graphics need to be converted according to the platform.
If we do this, maybe we should create a sort of package manager, similar to that featured in Dev-C++.

Quote:
As these basic data have a common character that is loaded from and saved to .bas file, we will probably make a superclass on these classes to handle streaming on them. If we make a superclass, these data objects cannot be declared as global (static) variables because of inheritance. They should be generated by new operator dynamically. This means we must access them through pointers.

The initialization of static variables occurs on early phase of loading of an execute file. But in that phase, inheritance chain and RTTI are not established yet. Thus a static object that has inheritance aren't initialized properly.
Would implementing the wxWidget's App class speed thinks up to any extent? (The globals would be encapsulated in the app class.)

Quote:

Graphic system buffer
Graphic system buffer holds all of basic data to draw current view (window). If a town is the top window, it holds such as,

scenario.start_in_what_town

maybe 40kbytes or so.
As I recall, the code loads images into memory temporarily to draw them. It then releases them. Would it speed things up to load these files at runtime, and hold these (by pointers or other means) in the definition types (creature_record_type, item_record_type, etc.)?

Other than this, should we get started on the buffer class?

Quote:

I found wxglade as a candidate but not examined so much yet.
I looked at it. Its a standalone metaprogram that is capable of generating C++ code based on a form design. It should work fine.
Link to comment
Share on other sites

Quote:
Originally written by Notus:
Quote:
Is this really neccessary with the use of inheritance? Can't we use inheritance without changing the global variables to pointers, or am I missing something?
As these basic data have a common character that is loaded from and saved to .bas file, we will probably make a superclass on these classes to handle streaming on them. If we make a superclass, these data objects cannot be declared as global (static) variables because of inheritance. They should be generated by new operator dynamically. This means we must access them through pointers.

The initialization of static variables occurs on early phase of loading of an execute file. But in that phase, inheritance chain and RTTI are not established yet. Thus a static object that has inheritance aren't initialized properly.
Really? I thought whatever you're talking about was handled fine, and the main problem with static variables was the order they get initialized in relation to each other. Sure, statically declared variables can't have their type determined polymorphically, but so what? You don't want to determine their type at runtime do you? Polymorphism != inheritance. (If you're still right, could you give me an example of the problem occuring?)

Also, if the STL is amazing, then boost::mpl is at least doubly amazing. Templates look almost simple at first, but it turns out that many recent programming paradigms and other things can be implemented with them...
Link to comment
Share on other sites

Quote:
Originally written by Isaac:
Really? I thought whatever you're talking about was handled fine, and the main problem with static variables was the order they get initialized in relation to each other. Sure, statically declared variables can't have their type determined polymorphically, but so what? You don't want to determine their type at runtime do you? Polymorphism != inheritance.
It is true that polymorphism is not inheritance, but polymorphism is needed in virtual inheritance, which is what we are trying to implement.

Quote:
Originally written by Notus:

The initialization of static variables occurs on early phase of loading of an execute file. But in that phase, inheritance chain and RTTI are not established yet. Thus a static object that has inheritance aren't initialized properly.


Is this something that can be controlled by the compiler?

Just had a thought on globals. We could create a struct such as game_struct, which would have as data members all globals, and all global functions as member functions (everything would be public). The game_struct would be declared in the main(...) function, and all code in the main function would call functions through this object. Doing this in the current code would be a waste of time, but for future reference would this at all work, or would the invisible this pointer that is passed to the internal functions of the struct slow things down?

Quote:

Also, if the STL is amazing, then boost::mpl is at least doubly amazing.


What's even more amazing is that the MPL is only a very small part of what can be done with templates. Read the book "C++ Template Metaprogramming" by David Abrahams and Aleksey Gurtovoy (I am currently reading this).

Note: If that last part is considered advertising, I apologize.
Link to comment
Share on other sites

Quote:
It is true that polymorphism is not inheritance, but polymorphism is needed in virtual inheritance, which is what we are trying to implement.
What do you mean, "virtual inheritance"? Like 'class derived : virtual base'? If so, I don't know a lot about that, or what difference it makes. If you mean virtual functions, those shouldn't be a problem.

Quote:
What's even more amazing is that the MPL is only a very small part of what can be done with templates. Read the book "C++ Template Metaprogramming" by David Abrahams and Aleksey Gurtovoy (I am currently reading this).

Note: If that last part is considered advertising, I apologize.
I don't dislike it as advertising. It would probably be useful to look at something like that, since I don't even know quite what is legal to do with templates in C++, and learning just that wouldn't be all that useful by itself either.
Link to comment
Share on other sites

Quote:
Originally written by Isaac:
What do you mean, "virtual inheritance"? Like 'class derived : virtual base'? If so, I don't know a lot about that, or what difference it makes. If you mean virtual functions, those shouldn't be a problem.
Here's an example of virtual inheritance (although you probably have the idea already):
Quote:
It would probably be useful to look at something like that, since I don't even know quite what is legal to do with templates in C++, and learning just that wouldn't be all that useful by itself either.
Template metaprogramming is amazingly simple to write. (Reading it however will warp your brain, as it did mine :p .) The main thing you'll want to keep in mind is what Koenig calls the Fundamental Theorem of Software Engineering:

"We can solve any problem by introducing an extra level of indirection."
- Butler Lampson

This is applicable in all programming, but especially so in template metaprogramming, since the majority of the latter is run at compile-time.

Boost has a quick start tutorial which should be pretty self-explanatory, and if you have any questions I'd be more than willing to answer (assuming I know the answer).

EDIT:

Was messing with some code, and I ran into an error I cannot explain in my class_base class. It worked fine, and then I had to reinstall my compiler (keep in mind my code was never changed). Now I get an error equivalent to the following:

Code:
class A {public:void do_thing(){};};class B : protected A {public:using A::do_thing;};int main(...) {B b;b.do_thing() // --> error, function is not available in this context.  Because B derives from A using protected, // do_thing is protected, but since there is a using A::do_thing in a public spot, it should be (and was) considered public}
Something happened to my compiler (Dev-C++) when I reinstalled it that causes this annoying, incorrect and limiting error. Does anyone know how I could remedy this problem?
Link to comment
Share on other sites

Well, I tested your example or "virtual inheritance", only by doing everything in static objects' constructors. I can't see how there could be anything wrong with this thing.

Code:
#include <iostream>class base {public:     virtual void do_thing() = 0;};class derived_A : public base {public:     virtual void do_thing() { std::cout << "A's do thing" << std::endl; }};class derived_B : public base {public:     virtual void do_thing() { std::cout << "B's do thing" << std::endl; }};derived_A a;derived_B b;struct some_global {     some_global() {		 base* p = NULL;		 p = &a;		 p->do_thing();		 p = &b;		 p->do_thing();     }} g;int main (int argc, char *argv[]){	std::cout << "hello" << std::endl;	return 0;}
And I got:

Code:
A's do thingB's do thinghello
But wait...

Code:
//...extern derived_A a;extern derived_B b;struct some_global {     some_global() {		 base* p = NULL;		 p = &a;		 p->do_thing();		 p = &b;		 p->do_thing();     }} g;derived_A a;derived_B b;//...
crashes the program.

 

So as far as I can tell, it should be fine as long as we avoid using it before it's constructed. Which we'd have to do the equivalent of anyway if we didn't declare it statically.

 

EDIT: KernelKnowledge, could you remove that really long comment from your code, or break it into multiple lines? It's stretching the page.

 

EDIT 2: Don't forget, references allow polymorphism just like pointers. (probably obvious, but... just mentioning it)

 

EDIT 3: Or is this a compiler-dependent thing? I'm using GCC (because XCode uses that).

Link to comment
Share on other sites

initialization of global (static) objects

More precisely, the initialization fails on next condition.

a) The given class derives from a base class.

B) The base class has "virtual" function.

If we cannot use "virtual" function, there is no meaning to use inheritance in these basic data objects.

 

Not only the problem on initialization, next behavior also causes problems.

In this condition, sizeof( 'given class' ) increases by 4 bytes, the pointer to vtable, in most compiler. Xcode, VC++, DevC++ are not exception. Moreover, &'object' points this hidden pointer, not the first member of the class.

This behavior affects the file loader/saver directly because it uses sizeof operator as the data size, and address of the object as buffer for read/write.

 

It may be solved by forcing compiler to use static binding in all cases. But this setting may be incompatible to application framework.

 

Modularization

One of the reason we feel the editor code is cluttered is that each module is not established well. Especially, global variables have double meaning, data holding object and interface of each module. The global variables I counted up before as the graphic system buffer, are actually a part of the "interface" of the graphic system.

I propose to determine the interface of each module according to current editor's code. Of course, no need to copy current code as it is, where we can apply improvement.

Link to comment
Share on other sites

Quote:
Originally written by Isaac:

EDIT: KernelKnowledge, could you remove that really long comment from your code, or break it into multiple lines? It's stretching the page.
Oops, . . . sorry bout that.

Quote:
I propose to determine the interface of each module according to current editor's code. Of course, no need to copy current code as it is, where we can apply improvement.
Does this mean we're now reorganizing the code?

EDIT:

Just remembered something. wxWidgets used to have its app class be a global when the IMPLEMENT_APP(...) macro is invoked. They changed this for the exact reason outlined by Notus. While the error does not usually occur, its much safer and cleaner to just do it another way.
Link to comment
Share on other sites

Quote:
Does this mean we're now reorganizing the code?
Partially. Only module name (function) and its interface.
Determine module function - module name, and its interface. If you list up module name, I'll list up their interface from current editor code.
When the list is accomplished, discuss on interface.

wxGlade is not bad, but not so good. It worked both on Mac and Win, but I cannot figure out how to put other controls on notebook view.
Link to comment
Share on other sites

When you say module, do you mean function? If so, we can use global.h to create the list on SourceForge (forums), so we all (developers) can go in and edit it.

 

The list would be somewhat as follows:

 

Function Name:

var name

var name

.

.

.

 

Another function:

.

.

.

 

If I misinterpreted, please elaborate.

Link to comment
Share on other sites

Argh.

 

I've been trying to install the Boost libraries.

 

When it gets to compiling "xml_grammar", it eats the rest of my ~1.8 GB disk space, presumably for virtual memory, and never finishes compiling it. When I restart my computer, I can repeat the process -- not much fun.

 

These are the shell commands I entered trying to follow some advice ( Boost-getting started , Boost Wiki-MacOSX build help ):

Code:
cd /Users/isaac/Applications/Programming/boost_1_32_0env PYTHON_ROOT=/System/Library/Frameworks/Python.framework/Versions/2.3 PYTHON_VERSION=2.3 /Users/isaac/Applications/Programming/boost-jam-3.1.10-1-macosxppc/bjam "-sTOOLS=darwin" install
Any advice?
Link to comment
Share on other sites

This looks really good. Will we be able to have more than one palette open at once (terrains in one palette, a second palette with floors selected, a third right underneath them that has items)?

 

And what is this "registered" business? Sorry if it's explained in the discussion above, but I can't seem to find it.

 

I really like the way this looks, though.

 

Speaking of which, now that my scenario is released, I'm going to get to work on the web site.

Link to comment
Share on other sites

Isaac,

boost package is distributed on FINK, but over CVS.

 

http://fink.sourceforge.net/pdb/package.php/boost1.32

 

"xml_grammar" compilation problem may be irrelevant with phyton.

 

Kelandon,

 

Quote:
Will we be able to have more than one palette open at once (terrains in one palette, a second palette with floors selected, a third right underneath them that has items)?
In this design, only one palette is displayed at once and the contents is switched by the top tab, as I felt screen is filled with palettes. But if it is better to display all palettes at once, I'll try to reduce the palette window size.

 

"registered" is added to reduce items displayed on the icon display area. Ordinarily, entire items are displayed on this area, but when "registered only" is checked, only selected items that are registered on the registered item list are displayed on it.

Link to comment
Share on other sites

Quote:
Originally written by Isaac:

I've been trying to install the Boost libraries.
You should ask the people at Boost through the Boost-Users mailing list. They should be able to solve your problem.

Quote:

Module is like "Edit screen drawer (2D/3D)" "Menu command handler", "Outdoor resize command" "Scenario loader/saver"
Ahh. This makes more sense. Here are a few I can think of:

* New Town
* New Scenario (this might be part of the loader/saver)
* Tool palette
* Import Town/Outdoor
Link to comment
Share on other sites

We should be able to adjust the palette window size using the box in the lower right-hand corner. It's there; I hope it's operational.

 

At any rate, some of us have differently sized monitors; I happen to have a largish one, so it works for me to have a lot on the screen at once. I think we should be able to create as many windows of palettes as we feel like, each with switching tabs, and adjust the sizes ourselves.

 

I don't know if that adds to the technical difficulty of programming, though.

 

And what makes an item "registered"?

 

EDIT: Also, for the life of me, I can't figure out how to send something to Sourceforge that actually shows up as the home page for the project. Can someone tell me what to enter in my "Connect to" field?

Link to comment
Share on other sites

Quote:
Originally written by Kelandon:

I don't know if that adds to the technical difficulty of programming, though.
It shouldn't. This type of functionality is handled by the framework's code. We shouldn't have to do any real programming.

Quote:

EDIT: Also, for the life of me, I can't figure out how to send something to Sourceforge that actually shows up as the home page for the project. Can someone tell me what to enter in my "Connect to" field?
This might help.
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...